1 / 26

The World according to the App layer

The World according to the App layer. * 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.

orly
Download Presentation

The World according to the App layer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The World according to the App layer

  2. * 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. What the App layer does

  3. The Code

  4. The app layer is split into CSP = CollectionSpace Plugins CSPi = CollectionSpace Plugin implementations The use of implementations allow the App layer to easily grow and accommodate multiple data sources and structures CSPi vs CSP

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

  6. CSPI-Schema / Spec

  7. cspace-config.xml

  8. CSPi WebUI Deals with all calls from the UI and works out what to do with them

  9. CSPi-WebUI/WebUI.java

  10. CSPi-WebUI / WebLoginStatus

  11. CSPi-WebUI / UISpec

  12. CSPi-WebUI / RecordRead

  13. CSPi Services Talks to the service layer and finds out everything the UI needs to know

  14. CSPi-Services / ServiceStorageGenerator

  15. CSPi-Services / RecordStorage

  16. Storage

  17. XmlJsonConversion

  18. 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

  19. CSPi-WebUI/ RecordRead

  20. CSPi-WebUI/ RecordRead

  21. In Summary

  22. Data Flow App Layer Toronto UI Berkeley Services CSPi-Services CSPi-WebUI Magic RESTful XML /cspace-services/xxx/x JSON /chain/xxx/xxx CSPi-Schema cspace-config.xml

  23. 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. CSPi-Schema

  24. 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.

  25. 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)

More Related