+ All Categories
Home > Documents > The World according to the App layer. What the App layer does * Facilitate the flow of information...

The World according to the App layer. What the App layer does * Facilitate the flow of information...

Date post: 27-Mar-2015
Category:
Upload: christian-law
View: 213 times
Download: 0 times
Share this document with a friend
Popular Tags:
26
The World according to the App layer
Transcript
Page 1: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

The World according to the App layer

Page 2: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

What the App layer does

* Facilitate the flow of information between view and data representations (which have different requirements).

* Presenting information as to the configuration of the system to the UI and service layers, and receive information from them.

* Allowing a point of extension and integration in terms of extra data feeds and storage mechanisms, extendible through a plugin-like mechanism.

Page 3: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

The Code

Page 4: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

CSPi vs CSP

The app layer is split into

CSP = CollectionSpace PluginsCSPi = CollectionSpace Plugin implementations

The use of implementations allow the App layer to easily grow and accommodate multiple data sources and structures

Page 5: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

CSPi Schema

Parses cspace-config.xml and makes it available to all areas of the App layer

Page 6: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

CSPI-Schema / Spec

Page 7: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

cspace-config.xml

Page 8: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

CSPi WebUI

Deals with all calls from the UI and works out what to do with them

Page 9: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

CSPi-WebUI/WebUI.java

Page 10: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

CSPi-WebUI / WebLoginStatus

Page 11: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

CSPi-WebUI / UISpec

Page 12: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

CSPi-WebUI / RecordRead

Page 13: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

RecordRead.java

/chain/objects/ef505766-b2be-49bc-bfe8

WebUI Spec

Cspace-config.xml

TermsUsed RecordDataRelatedObjects

/relations/subject/*/

/relations/csid

/{recordtype}/{csid}

/{recordtype}/{csid}/authorityrefs

/{recordtype}/{authcsid}/items/{itemscsid}

/{csid}

JSONObject

JSONObject

/chain/objects/ef505766-b2be-49bc-bfe8

APP LAYER

RESTFul toService Layer in CSPi-Services

JSONObjectJSONObject

Page 14: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

CSPi Services

Talks to the service layer and finds out everything the UI needs to know

Page 15: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

CSPi-Services / ServiceStorageGenerator

Page 16: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

CSPi-Services / RecordStorage

Page 17: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

Storage

Page 18: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

XmlJsonConversion

Page 19: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

A more complex example

Important to note that that filePath sent from the webUI is not necessarily the URL that the service layer needs and is more like a flag which helps the app layer decide what to do with it once it hits CSPi Services as sometimes we need to make multiple calls to the Service Layers RestFul services to get all the information needed

Page 20: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

CSPi-WebUI/ RecordRead

Page 21: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

CSPi-WebUI/ RecordRead

Page 22: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

In Summary

Page 23: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

Data Flow

Berkeley

Services

Toronto UI

MagicCSPi-

Services

CSPi-WebUI

RESTful XML/cspace-services/xxx/x

JSON/chain/xxx/xxx

App Layer

CSPi-Schema

cspace-config.xml

Page 24: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

CSPi-Schema

This is responsible for maintaining the "core" configuration.

Many plugins will just be able to use the configuration managed by this plugin, and not have their own extensions at all.

Spec.java is the main class and is initialised only once at the startup and will parse the config against a set of “rules”.

Rules can be added in any class, any where in the system – which means that you can override specific rules for different implementations if needed.

Page 25: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

CSPi-WebUI Main

WebUI.java maps urls to classes

Record/authority/relate/userroles/userdetails

All Fundamentally the same

Have 4 classes

CreateUpdate Delete Read Search

Nuispec

Magic that makes the uispecs for the UI layer from the config.

Page 26: The World according to the App layer. What the App layer does * Facilitate the flow of information between view and data representations (which have different.

CSPi-Services XXXStorage

AutocreateJSON

UpdateJSON

DeleteJSON

GetPathsJSON

Everything else is mostly to do with caching, mini records and differences between the structure of XML that the service layer sends us for different data type

MiniRecords are summary records created (hopefully) only from the subset of data pulled when retrieving lists of data from the service layer. This should be enough data to populate RH columns and Search results.

The app layer internally talks to itself with JSON(hence why all the functions have JSON in the name)


Recommended