Changes

Jump to: navigation, search

Umlaut Technical Overview

1,391 bytes removed, 09:13, 26 November 2008
m
link
To give you an overview of the technical architecture of umlaut[[Umlaut]], we will go through a typical Resolve request, identifying all the classes involved, and pointing to their api doc if possible.
OpenURLs are sent to the default index action of the [http://umlaut.rubyforge.org/api/files/app/controllers/resolve_controller_rb.html resolve controller].
In the resolve controller, a before filter method called init_processing is run to parse the OpenURL and set up the Umlaut request (or retrieve an existing request).
==Setting up the Request and it's contextTechnical Overview Sections==
===OpenURL parsing # [[Request Setup and storing===Environmental Context]] In understanding Umlaut, it's helpful to understand a bit about the nature of an OpenURL, including that an OpenURL is composed of several entities or groupings of metadata. Jeff Young's # [http://q6.oclc.org/2006/08/welcome_1.html Q6 blog[ServiceResponse data structures and generation]] includes one good explanation of the six OpenURL entities.  Two sets of classes are involved in dealing with OpenURLs in Umlaut. The ropenurl library is generally used to parse OpenURLs. However, Umlaut serializes OpenURLs to it's own classes--[http://umlaut.rubyforge.org/api/files/app/models/request_rb.html Request], Includes guide to represent an incoming OpenURL request, and some constituent data in [http://umlautwriting your own services.rubyforge.org/api/files/app/models/referent_rb.html Referrent], # [http://umlaut.rubyforge.org/api/files/app/models/referent_value_rb.html Referent Value[View architecture and control flow], and [http://umlaut.rubyforge.org/api/files/app/models/referrer_rb.html Referrer]. A bit confusingly, Umlaut's own Request (which represents a parsed OpenURL request) should not be confused with the Rails ActionController::Request class which represents the complete details of an 'raw' HTTP request.  So the first thing the resolve action does is pass the incoming HTTP request details to the Umlaut Request#new_request method, which will ''either'' create a new Request, or recover an already created Request from the db. The point of this recovery is that if the user presses the browser reload button, the app should be connected with the same already created request[[Background services]] --allowing the same already generated responses to be used, among other things.    ===Building the service Collection: Institutions control and Services===view architectures for background services
37
edits

Navigation menu