From 3e86fd27b15d6e6ff8d88a09520fe6b2e26f37d4 Mon Sep 17 00:00:00 2001 From: Dan Scott Date: Mon, 12 Nov 2012 11:32:31 -0500 Subject: [PATCH] Add "Intro to OpenSRF" to development section We have the Asciidoc source, so let's drop it into place. Triggered by a request for info on OpenSRF development on IRC that was answered with "we don't really have much information on that" response. *Poof*, now we have some. Signed-off-by: Dan Scott --- docs/development/intro_opensrf.txt | 1353 ++++++++++++++++++++++++++++ docs/development/perl_client.pl | 40 + docs/development/python_client.py | 60 ++ docs/media/CONNECT.png | Bin 0 -> 122883 bytes docs/media/REQUEST.png | Bin 0 -> 94552 bytes docs/root.txt | 1 + 6 files changed, 1454 insertions(+) create mode 100644 docs/development/intro_opensrf.txt create mode 100644 docs/development/perl_client.pl create mode 100644 docs/development/python_client.py create mode 100644 docs/media/CONNECT.png create mode 100644 docs/media/REQUEST.png diff --git a/docs/development/intro_opensrf.txt b/docs/development/intro_opensrf.txt new file mode 100644 index 0000000000..a659cf5688 --- /dev/null +++ b/docs/development/intro_opensrf.txt @@ -0,0 +1,1353 @@ += Easing gently into OpenSRF = +Dan Scott +v0.9, May 2010 + +== Abstract == +The Evergreen open-source library system serves library consortia composed of +hundreds of branches with millions of patrons - for example, +http://www.georgialibraries.org/statelibrarian/bythenumbers.pdf[the Georgia +Public Library Service PINES system]. One of the claimed advantages of +Evergreen over alternative integrated library systems is the underlying Open +Service Request Framework (OpenSRF, pronounced "open surf") architecture. This +article introduces OpenSRF, demonstrates how to build OpenSRF services through +simple code examples, and explains the technical foundations on which OpenSRF +is built. + +== Introducing OpenSRF == +OpenSRF is a message routing network that offers scalability and failover +support for individual services and entire servers with minimal development and +deployment overhead. You can use OpenSRF to build loosely-coupled applications +that can be deployed on a single server or on clusters of geographically +distributed servers using the same code and minimal configuration changes. +Although copyright statements on some of the OpenSRF code date back to Mike +Rylander's original explorations in 2000, Evergreen was the first major +application to be developed with, and to take full advantage of, the OpenSRF +architecture starting in 2004. The first official release of OpenSRF was 0.1 in +February 2005 (http://evergreen-ils.org/blog/?p=21), but OpenSRF's development +continues a steady pace of enhancement and refinement, with the release of +1.0.0 in October 2008 and the most recent release of 1.2.2 in February 2010. + +OpenSRF is a distinct break from the architectural approach used by previous +library systems and has more in common with modern Web applications. The +traditional "scale-up" approach to serve more transactions is to purchase a +server with more CPUs and more RAM, possibly splitting the load between a Web +server, a database server, and a business logic server. Evergreen, however, is +built on the Open Service Request Framework (OpenSRF) architecture, which +firmly embraces the "scale-out" approach of spreading transaction load over +cheap commodity servers. The http://evergreen-ils.org/blog/?p=56[initial GPLS +PINES hardware cluster], while certainly impressive, may have offered the +misleading impression that Evergreen is complex and requires a lot of hardware +to run. + +This article hopes to correct any such lingering impression by demonstrating +that OpenSRF itself is an extremely simple architecture on which one can easily +build applications of many kinds – not just library applications – and that you +can use a number of different languages to call and implement OpenSRF methods +with a minimal learning curve. With an application built on OpenSRF, when you +identify a bottleneck in your application's business logic layer, you can +adjust the number of the processes serving that particular bottleneck on each +of your servers; or if the problem is that your service is resource-hungry, you +could add an inexpensive server to your cluster and dedicate it to running that +resource-hungry service. + +=== Programming language support === + +If you need to develop an entirely new OpenSRF service, you can choose from a +number of different languages in which to implement that service. OpenSRF +client language bindings have been written for C, Java, JavaScript, Perl, and +Python, and server language bindings have been written for C, Perl, and Python. +This article uses Perl examples as a lowest common denominator programming +language. Writing an OpenSRF binding for another language is a relatively small +task if that language offers libraries that support the core technologies on +which OpenSRF depends: + + * http://tools.ietf.org/html/rfc3920[Extensible Messaging and Presence +Protocol] (XMPP, sometimes referred to as Jabber) - provides the base messaging +infrastructure between OpenSRF clients and servers + * http://json.org[JavaScript Object Notation] (JSON) - serializes the content +of each XMPP message in a standardized and concise format + * http://memcached.org[memcached] - provides the caching service + * http://tools.ietf.org/html/rfc5424[syslog] - the standard UNIX logging +service + +Unfortunately, the +http://evergreen-ils.org/dokuwiki/doku.php?id=osrf-devel:primer[OpenSRF +reference documentation], although augmented by the +http://evergreen-ils.org/dokuwiki/doku.php?id=osrf-devel:primer[OpenSRF +glossary], blog posts like http://evergreen-ils.org/blog/?p=36[the description +of OpenSRF and Jabber], and even this article, is not a sufficient substitute +for a complete specification on which one could implement a language binding. +The recommended option for would-be developers of another language binding is +to use the Python implementation as the cleanest basis for a port to another +language. + +=== OpenSRF communication flows over XMPP === + +The XMPP messaging service underpins OpenSRF, requiring an XMPP server such +as http://www.ejabberd.im/[ejabberd]. When you start OpenSRF, the first XMPP +clients that connect to the XMPP server are the OpenSRF public and private +_routers_. OpenSRF routers maintain a list of available services and connect +clients to available services. When an OpenSRF service starts, it establishes a +connection to the XMPP server and registers itself with the private router. The +OpenSRF configuration contains a list of public OpenSRF services, each of which +must also register with the public router. Services and clients connect to the +XMPP server using a single set of XMPP client credentials (for example, +`opensrf@private.localhost`), but use XMPP resource identifiers to +differentiate themselves in the Jabber ID (JID) for each connection. For +example, the JID for a copy of the `opensrf.simple-text` service with process +ID `6285` that has connected to the `private.localhost` domain using the +`opensrf` XMPP client credentials could be +`opensrf@private.localhost/opensrf.simple-text_drone_at_localhost_6285`. + +[id="OpenSRFOverHTTP"] +=== OpenSRF communication flows over HTTP === +Any OpenSRF service registered with the public router is accessible via the +OpenSRF HTTP Translator. The OpenSRF HTTP Translator implements the +http://www.open-ils.org/dokuwiki/doku.php?id=opensrf_over_http[OpenSRF-over-HTTP +proposed specification] as an Apache module that translates HTTP requests into +OpenSRF requests and returns OpenSRF results as HTTP results to the initiating +HTTP client. + +.Issuing an HTTP POST request to an OpenSRF method via the OpenSRF HTTP Translator +[source,bash] +-------------------------------------------------------------------------------- +# curl request broken up over multiple lines for legibility +curl -H "X-OpenSRF-service: opensrf.simple-text" \ # <1> + --data 'osrf-msg=[ \ # <2> + {"__c":"osrfMessage","__p":{"threadTrace":0,"locale":"en-CA", \ # <3> + "type":"REQUEST","payload": {"__c":"osrfMethod","__p": \ + {"method":"opensrf.simple-text.reverse","params":["foobar"]} \ + }} \ + }]' \ +http://localhost/osrf-http-translator \ # <4> +-------------------------------------------------------------------------------- + +<1> The `X-OpenSRF-service` header identifies the OpenSRF service of interest. + +<2> The POST request consists of a single parameter, the `osrf-msg` value, +which contains a JSON array. + +<3> The first object is an OpenSRF message (`"__c":"osrfMessage"`) with a set of +parameters (`"__p":{}`) containing: + + * the identifier for the request (`"threadTrace":0`); this value is echoed +back in the result + + * the message type (`"type":"REQUEST"`) + + * the locale for the message; if the OpenSRF method is locale-sensitive, it +can check the locale for each OpenSRF request and return different information +depending on the locale + + * the payload of the message (`"payload":{}`) containing the OpenSRF method +request (`"__c":"osrfMethod"`) and its parameters (`"__p:"{}`), which in turn +contains: + + ** the method name for the request (`"method":"opensrf.simple-text.reverse"`) + + ** a set of JSON parameters to pass to the method (`"params":["foobar"]`); in +this case, a single string `"foobar"` + +<4> The URL on which the OpenSRF HTTP translator is listening, +`/osrf-http-translator` is the default location in the Apache example +configuration files shipped with the OpenSRF source, but this is configurable. + +[id="httpResults"] +.Results from an HTTP POST request to an OpenSRF method via the OpenSRF HTTP Translator +[source,bash] +-------------------------------------------------------------------------------- +# HTTP response broken up over multiple lines for legibility +[{"__c":"osrfMessage","__p": \ # <1> + {"threadTrace":0, "payload": \ # <2> + {"__c":"osrfResult","__p": \ # <3> + {"status":"OK","content":"raboof","statusCode":200} \ # <4> + },"type":"RESULT","locale":"en-CA" \ # <5> + } +}, +{"__c":"osrfMessage","__p": \ # <6> + {"threadTrace":0,"payload": \ # <7> + {"__c":"osrfConnectStatus","__p": \ # <8> + {"status":"Request Complete","statusCode":205} \ # <9> + },"type":"STATUS","locale":"en-CA" \ # <10> + } +}] +-------------------------------------------------------------------------------- + +<1> The OpenSRF HTTP Translator returns an array of JSON objects in its +response. Each object in the response is an OpenSRF message +(`"__c":"osrfMessage"`) with a collection of response parameters (`"__p":`). + +<2> The OpenSRF message identifier (`"threadTrace":0`) confirms that this +message is in response to the request matching the same identifier. + +<3> The message includes a payload JSON object (`"payload":`) with an OpenSRF +result for the request (`"__c":"osrfResult"`). + +<4> The result includes a status indicator string (`"status":"OK"`), the content +of the result response - in this case, a single string "raboof" +(`"content":"raboof"`) - and an integer status code for the request +(`"statusCode":200`). + +<5> The message also includes the message type (`"type":"RESULT"`) and the +message locale (`"locale":"en-CA"`). + +<6> The second message in the set of results from the response. + +<7> Again, the message identifier confirms that this message is in response to +a particular request. + +<8> The payload of the message denotes that this message is an +OpenSRF connection status message (`"__c":"osrfConnectStatus"`), with some +information about the particular OpenSRF connection that was used for this +request. + +<9> The response parameters for an OpenSRF connection status message include a +verbose status (`"status":"Request Complete"`) and an integer status code for +the connection status (`"statusCode":205). + +<10> The message also includes the message type (`"type":"RESULT"`) and the +message locale (`"locale":"en-CA"`). + + +[TIP] +Before adding a new public OpenSRF service, ensure that it does +not introduce privilege escalation or unchecked access to data. For example, +the Evergreen `open-ils.cstore` private service is an object-relational mapper +that provides read and write access to the entire Evergreen database, so it +would be catastrophic to expose that service publicly. In comparison, the +Evergreen `open-ils.pcrud` public service offers the same functionality as +`open-ils.cstore` to any connected HTTP client or OpenSRF client, but the +additional authentication and authorization layer in `open-ils.pcrud` prevents +unchecked access to Evergreen's data. + +=== Stateless and stateful connections === + +OpenSRF supports both _stateless_ and _stateful_ connections. When an OpenSRF +client issues a `REQUEST` message in a _stateless_ connection, the router +forwards the request to the next available service and the service returns the +result directly to the client. + +.REQUEST flow in a stateless connection +image:media/REQUEST.png[REQUEST flow in a stateless connection] + +When an OpenSRF client issues a `CONNECT` message to create a _stateful_ conection, the +router returns the Jabber ID of the next available service to the client so +that the client can issue one or more `REQUEST` message directly to that +particular service and the service will return corresponding `RESULT` messages +directly to the client. Until the client issues a `DISCONNECT` message, that +particular service is only available to the requesting client. Stateful connections +are useful for clients that need to make many requests from a particular service, +as it avoids the intermediary step of contacting the router for each request, as +well as for operations that require a controlled sequence of commands, such as a +set of database INSERT, UPDATE, and DELETE statements within a transaction. + +.CONNECT, REQUEST, and DISCONNECT flow in a stateful connection +image:media/CONNECT.png[CONNECT, REQUEST, and DISCONNECT flow in a stateful connection] + +== Enough jibber-jabber: writing an OpenSRF service == +Imagine an application architecture in which 10 lines of Perl or Python, using +the data types native to each language, are enough to implement a method that +can then be deployed and invoked seamlessly across hundreds of servers. You +have just imagined developing with OpenSRF – it is truly that simple. Under the +covers, of course, the OpenSRF language bindings do an incredible amount of +work on behalf of the developer. An OpenSRF application consists of one or more +OpenSRF services that expose methods: for example, the `opensrf.simple-text` +http://svn.open-ils.org/trac/OpenSRF/browser/trunk/src/perl/lib/OpenSRF/Application/Demo/SimpleText.pm[demonstration +service] exposes the `opensrf.simple-text.split()` and +`opensrf.simple-text.reverse()` methods. Each method accepts zero or more +arguments and returns zero or one results. The data types supported by OpenSRF +arguments and results are typical core language data types: strings, numbers, +booleans, arrays, and hashes. + +To implement a new OpenSRF service, perform the following steps: + + 1. Include the base OpenSRF support libraries + 2. Write the code for each of your OpenSRF methods as separate procedures + 3. Register each method + 4. Add the service definition to the OpenSRF configuration files + +For example, the following code implements an OpenSRF service. The service +includes one method named `opensrf.simple-text.reverse()` that accepts one +string as input and returns the reversed version of that string: + +[source,perl] +-------------------------------------------------------------------------------- +#!/usr/bin/perl + +package OpenSRF::Application::Demo::SimpleText; + +use strict; + +use OpenSRF::Application; +use parent qw/OpenSRF::Application/; + +sub text_reverse { + my ($self , $conn, $text) = @_; + my $reversed_text = scalar reverse($text); + return $reversed_text; +} + +__PACKAGE__->register_method( + method => 'text_reverse', + api_name => 'opensrf.simple-text.reverse' +); +-------------------------------------------------------------------------------- + +Ten lines of code, and we have a complete OpenSRF service that exposes a single +method and could be deployed quickly on a cluster of servers to meet your +application's ravenous demand for reversed strings! If you're unfamiliar with +Perl, the `use OpenSRF::Application; use parent qw/OpenSRF::Application/;` +lines tell this package to inherit methods and properties from the +`OpenSRF::Application` module. For example, the call to +`__PACKAGE__->register_method()` is defined in `OpenSRF::Application` but due to +inheritance is available in this package (named by the special Perl symbol +`__PACKAGE__` that contains the current package name). The `register_method()` +procedure is how we introduce a method to the rest of the OpenSRF world. + +[id="serviceRegistration"] +=== Registering a service with the OpenSRF configuration files === + +Two files control most of the configuration for OpenSRF: + + * `opensrf.xml` contains the configuration for the service itself as well as +a list of which application servers in your OpenSRF cluster should start +the service + * `opensrf_core.xml` (often referred to as the "bootstrap configuration" +file) contains the OpenSRF networking information, including the XMPP server +connection credentials for the public and private routers; you only need to touch +this for a new service if the new service needs to be accessible via the +public router + +Begin by defining the service itself in `opensrf.xml`. To register the +`opensrf.simple-text` service, add the following section to the `` +element (corresponding to the XPath `/opensrf/default/apps/`): + +[source,xml] +-------------------------------------------------------------------------------- + + + 3 + 1 + perl + OpenSRF::Application::Demo::SimpleText + 100 + + 1000 + opensrf.simple-text_unix.log + opensrf.simple-text_unix.sock + opensrf.simple-text_unix.pid + 5 + 15 + 2 + 5 + + + + + +-------------------------------------------------------------------------------- + +<1> The element name is the name that the OpenSRF control scripts use to refer +to the service. + +<2> Specifies the interval (in seconds) between checks to determine if the +service is still running. + +<3> Specifies whether OpenSRF clients can call methods from this service +without first having to create a connection to a specific service backend +process for that service. If the value is `1`, then the client can simply +issue a request and the router will forward the request to an available +service and the result will be returned directly to the client. + +<4> Specifies the programming language in which the service is implemented + +<5> Specifies the name of the library or module in which the service is implemented + +<6> (C implementations): Specifies the maximum number of requests a process +serves before it is killed and replaced by a new process. + +<7> (Perl implementations): Specifies the maximum number of requests a process +serves before it is killed and replaced by a new process. + +<8> The name of the log file for language-specific log messages such as syntax +warnings. + +<9> The name of the UNIX socket used for inter-process communications. + +<10> The name of the PID file for the master process for the service. + +<11> The minimum number of child processes that should be running at any given +time. + +<12> The maximum number of child processes that should be running at any given +time. + +<13> The minimum number of child processes that should be available to handle +incoming requests. If there are fewer than this number of spare child +processes, new processes will be spawned. + +<14> The minimum number of child processes that should be available to handle +incoming requests. If there are more than this number of spare child processes, +the extra processes will be killed. + +To make the service accessible via the public router, you must also +edit the `opensrf_core.xml` configuration file to add the service to the list +of publicly accessible services: + +.Making a service publicly accessible in `opensrf_core.xml` +[source,xml] +-------------------------------------------------------------------------------- + + + router + public.localhost + + opensrf.math + opensrf.simple-text + + +-------------------------------------------------------------------------------- + +<1> This section of the `opensrf_core.xml` file is located at XPath +`/config/opensrf/routers/`. + +<2> `public.localhost` is the canonical public router domain in the OpenSRF +installation instructions. + +<3> Each `` element contained in the `` element +offers their services via the public router as well as the private router. + +Once you have defined the new service, you must restart the OpenSRF Router +to retrieve the new configuration and start or restart the service itself. + +=== Calling an OpenSRF method === +OpenSRF clients in any supported language can invoke OpenSRF services in any +supported language. So let's see a few examples of how we can call our fancy +new `opensrf.simple-text.reverse()` method: + +==== Calling OpenSRF methods from the srfsh client ==== +`srfsh` is a command-line tool installed with OpenSRF that you can use to call +OpenSRF methods. To call an OpenSRF method, issue the `request` command and pass +the OpenSRF service and method name as the first two arguments; then pass a list +of JSON objects as the arguments to the method being invoked. + +The following example calls the `opensrf.simple-text.reverse` method of the +`opensrf.simple-text` OpenSRF service, passing the string `"foobar"` as the +only method argument: + +[source,sh] +-------------------------------------------------------------------------------- +$ srfsh +srfsh # request opensrf.simple-text opensrf.simple-text.reverse "foobar" + +Received Data: "raboof" + +=------------------------------------ +Request Completed Successfully +Request Time in seconds: 0.016718 +=------------------------------------ +-------------------------------------------------------------------------------- + +[id="opensrfIntrospection"] +==== Getting documentation for OpenSRF methods from the srfsh client ==== + +The `srfsh` client also gives you command-line access to retrieving metadata +about OpenSRF services and methods. For a given OpenSRF method, for example, +you can retrieve information such as the minimum number of required arguments, +the data type and a description of each argument, the package or library in +which the method is implemented, and a description of the method. To retrieve +the documentation for an opensrf method from `srfsh`, issue the `introspect` +command, followed by the name of the OpenSRF service and (optionally) the +name of the OpenSRF method. If you do not pass a method name to the `introspect` +command, `srfsh` lists all of the methods offered by the service. If you pass +a partial method name, `srfsh` lists all of the methods that match that portion +of the method name. + +[NOTE] +The quality and availability of the descriptive information for each +method depends on the developer to register the method with complete and +accurate information. The quality varies across the set of OpenSRF and +Evergreen APIs, although some effort is being put towards improving the +state of the internal documentation. + +[source,sh] +-------------------------------------------------------------------------------- +srfsh# introspect opensrf.simple-text "opensrf.simple-text.reverse" +--> opensrf.simple-text + +Received Data: { + "__c":"opensrf.simple-text", + "__p":{ + "api_level":1, + "stream":0, \ # <1> + "object_hint":"OpenSRF_Application_Demo_SimpleText", + "remote":0, + "package":"OpenSRF::Application::Demo::SimpleText", \ # <2> + "api_name":"opensrf.simple-text.reverse", \ # <3> + "server_class":"opensrf.simple-text", + "signature":{ \ # <4> + "params":[ \ # <5> + { + "desc":"The string to reverse", + "name":"text", + "type":"string" + } + ], + "desc":"Returns the input string in reverse order\n", \ # <6> + "return":{ \ # <7> + "desc":"Returns the input string in reverse order", + "type":"string" + } + }, + "method":"text_reverse", \ # <8> + "argc":1 \ # <9> + } +} +-------------------------------------------------------------------------------- + +<1> `stream` denotes whether the method supports streaming responses or not. + +<2> `package` identifies which package or library implements the method. + +<3> `api_name` identifies the name of the OpenSRF method. + +<4> `signature` is a hash that describes the parameters for the method. + +<5> `params` is an array of hashes describing each parameter in the method; +each parameter has a description (`desc`), name (`name`), and type (`type`). + +<6> `desc` is a string that describes the method itself. + +<7> `return` is a hash that describes the return value for the method; it +contains a description of the return value (`desc`) and the type of the +returned value (`type`). + +<8> `method` identifies the name of the function or method in the source +implementation. + +<9> `argc` is an integer describing the minimum number of arguments that +must be passed to this method. + +==== Calling OpenSRF methods from Perl applications ==== + +To call an OpenSRF method from Perl, you must connect to the OpenSRF service, +issue the request to the method, and then retrieve the results. + +[source,perl] +-------------------------------------------------------------------------------- +#/usr/bin/perl +use strict; +use OpenSRF::AppSession; +use OpenSRF::System; + +OpenSRF::System->bootstrap_client(config_file => '/openils/conf/opensrf_core.xml'); # <1> + +my $session = OpenSRF::AppSession->create("opensrf.simple-text"); # <2> + +print "substring: Accepts a string and a number as input, returns a string\n"; +my $result = $session->request("opensrf.simple-text.substring", "foobar", 3); # <3> +my $request = $result->gather(); # <4> +print "Substring: $request\n\n"; + +print "split: Accepts two strings as input, returns an array of strings\n"; +$request = $session->request("opensrf.simple-text.split", "This is a test", " "); # <5> +my $output = "Split: ["; +my $element; +while ($element = $request->recv()) { # <6> + $output .= $element->content . ", "; # <7> +} +$output =~ s/, $/]/; +print $output . "\n\n"; + +print "statistics: Accepts an array of strings as input, returns a hash\n"; +my @many_strings = [ + "First I think I'll have breakfast", + "Then I think that lunch would be nice", + "And then seventy desserts to finish off the day" +]; + +$result = $session->request("opensrf.simple-text.statistics", @many_strings); # <8> +$request = $result->gather(); # <9> +print "Length: " . $result->{'length'} . "\n"; +print "Word count: " . $result->{'word_count'} . "\n"; + +$session->disconnect(); # <10> +-------------------------------------------------------------------------------- + +<1> The `OpenSRF::System->bootstrap_client()` method reads the OpenSRF +configuration information from the indicated file and creates an XMPP client +connection based on that information. + +<2> The `OpenSRF::AppSession->create()` method accepts one argument - the name +of the OpenSRF service to which you want to want to make one or more requests - +and returns an object prepared to use the client connection to make those +requests. + +<3> The `OpenSRF::AppSession->request()` method accepts a minimum of one +argument - the name of the OpenSRF method to which you want to make a request - +followed by zero or more arguments to pass to the OpenSRF method as input +values. This example passes a string and an integer to the +`opensrf.simple-text.substring` method defined by the `opensrf.simple-text` +OpenSRF service. + +<4> The `gather()` method, called on the result object returned by the +`request()` method, iterates over all of the possible results from the result +object and returns a single variable. + +<5> This `request()` call passes two strings to the `opensrf.simple-text.split` +method defined by the `opensrf.simple-text` OpenSRF service and returns (via +`gather()`) a reference to an array of results. + +<6> The `opensrf.simple-text.split()` method is a streaming method that +returns an array of results with one element per `recv()` call on the +result object. We could use the `gather()` method to retrieve all of the +results in a single array reference, but instead we simply iterate over +the result variable until there are no more results to retrieve. + +<7> While the `gather()` convenience method returns only the content of the +complete set of results for a given request, the `recv()` method returns an +OpenSRF result object with `status`, `statusCode`, and `content` fields as +we saw in <>. + +<8> This `request()` call passes an array to the +`opensrf.simple-text.statistics` method defined by the `opensrf.simple-text` +OpenSRF service. + +<9> The result object returns a hash reference via `gather()`. The hash +contains the `length` and `word_count` keys we defined in the method. + +<10> The `OpenSRF::AppSession->disconnect()` method closes the XMPP client +connection and cleans up resources associated with the session. + +=== Accepting and returning more interesting data types === + +Of course, the example of accepting a single string and returning a single +string is not very interesting. In real life, our applications tend to pass +around multiple arguments, including arrays and hashes. Fortunately, OpenSRF +makes that easy to deal with; in Perl, for example, returning a reference to +the data type does the right thing. In the following example of a method that +returns a list, we accept two arguments of type string: the string to be split, +and the delimiter that should be used to split the string. + +.Text splitting method - streaming mode +[source,perl] +-------------------------------------------------------------------------------- +sub text_split { + my $self = shift; + my $conn = shift; + my $text = shift; + my $delimiter = shift || ' '; + + my @split_text = split $delimiter, $text; + return \@split_text; +} + +__PACKAGE__->register_method( + method => 'text_split', + api_name => 'opensrf.simple-text.split' +); +-------------------------------------------------------------------------------- + +We simply return a reference to the list, and OpenSRF does the rest of the work +for us to convert the data into the language-independent format that is then +returned to the caller. As a caller of a given method, you must rely on the +documentation used to register to determine the data structures - if the developer has +added the appropriate documentation. + +=== Accepting and returning Evergreen objects === + +OpenSRF is agnostic about objects; its role is to pass JSON back and forth +between OpenSRF clients and services, and it allows the specific clients and +services to define their own semantics for the JSON structures. On top of that +infrastructure, Evergreen offers the fieldmapper: an object-relational mapper +that provides a complete definition of all objects, their properties, their +relationships to other objects, the permissions required to create, read, +update, or delete objects of that type, and the database table or view on which +they are based. + +The Evergreen fieldmapper offers a great deal of convenience for working with +complex system objects beyond the basic mapping of classes to database +schemas. Although the result is passed over the wire as a JSON object +containing the indicated fields, fieldmapper-aware clients then turn those +JSON objects into native objects with setter / getter methods for each field. + +All of this metadata about Evergreen objects is defined in the +fieldmapper configuration file (`/openils/conf/fm_IDL.xml`), and access to +these classes is provided by the `open-ils.cstore`, `open-ils.pcrud`, and +`open-ils.reporter-store` OpenSRF services which parse the fieldmapper +configuration file and dynamically register OpenSRF methods for creating, +reading, updating, and deleting all of the defined classes. + +.Example fieldmapper class definition for "Open User Summary" +[source,xml] +-------------------------------------------------------------------------------- + + + + + + + + + + + + + + + + + + +-------------------------------------------------------------------------------- + +<1> The `` element defines the class: + + * The `id` attribute defines the _class hint_ that identifies the class both +elsewhere in the fieldmapper configuration file, such as in the value of the +`field` attribute of the `` element, and in the JSON object itself when +it is instantiated. For example, an "Open User Summary" JSON object would have +the top level property of `"__c":"mous"`. + + * The `controller` attribute identifies the services that have direct access +to this class. If `open-ils.pcrud` is not listed, for example, then there is +no means to directly access members of this class through a public service. + + * The `oils_obj:fieldmapper` attribute defines the name of the Perl +fieldmapper class that will be dynamically generated to provide setter and +getter methods for instances of the class. + + * The `oils_persist:tablename` attribute identifies the schema name and table +name of the database table that stores the data that represents the instances +of this class. In this case, the schema is `money` and the table is +`open_usr_summary`. + + * The `reporter:label` attribute defines a human-readable name for the class +used in the reporting interface to identify the class. These names are defined +in English in the fieldmapper configuration file; however, they are extracted +so that they can be translated and served in the user's language of choice. + +<2> The `` element lists all of the fields that belong to the object. + + * The `oils_persist:primary` attribute identifies the field that acts as the +primary key for the object; in this case, the field with the name `usr`. + + * The `oils_persist:sequence` attribute identifies the sequence object +(if any) in this database provides values for new instances of this class. In +this case, the primary key is defined by a field that is linked to a different +table, so no sequence is used to populate these instances. + +<3> Each `` element defines a single field with the following attributes: + + * The `name` attribute identifies the column name of the field in the +underlying database table as well as providing a name for the setter / getter +method that can be invoked in the JSON or native version of the object. + + * The `reporter:datatype` attribute defines how the reporter should treat +the contents of the field for the purposes of querying and display. + + * The `reporter:label` attribute can be used to provide a human-readable name +for each field; without it, the reporter falls back to the value of the `name` +attribute. + +<4> The `` element contains a set of zero or more `` elements, +each of which defines a relationship between the class being described and +another class. + + * The `field` attribute identifies the field named in this class that links +to the external class. + + * The `reltype` attribute identifies the kind of relationship between the +classes; in the case of `has_a`, each value in the `usr` field is guaranteed +to have a corresponding value in the external class. + + * The `key` attribute identifies the name of the field in the external +class to which this field links. + + * The rarely-used `map` attribute identifies a second class to which +the external class links; it enables this field to define a direct +relationship to an external class with one degree of separation, to +avoid having to retrieve all of the linked members of an intermediate +class just to retrieve the instances from the actual desired target class. + + * The `class` attribute identifies the external class to which this field +links. + +<5> The `` element defines the permissions that must have been +granted to a user to operate on instances of this class. + +<6> The `` element is one of four possible children of the +`` element that define the permissions required for each action: +create, retrieve, update, and delete. + + * The `permission` attribute identifies the name of the permission that must +have been granted to the user to perform the action. + + * The `contextfield` attribute, if it exists, defines the field in this class +that identifies the library within the system for which the user must have +prvileges to work. If a user has been granted a given permission, but has not been +granted privileges to work at a given library, they can not perform the action +at that library. + +<7> The rarely-used `` element identifies a linked field (`link` +attribute) in this class which links to an external class that holds the field +(`field` attribute) that identifies the library within the system for which the +user must have privileges to work. + +When you retrieve an instance of a class, you can ask for the result to +_flesh_ some or all of the linked fields of that class, so that the linked +instances are returned embedded directly in your requested instance. In that +same request you can ask for the fleshed instances to in turn have their linked +fields fleshed. By bundling all of this into a single request and result +sequence, you can avoid the network overhead of requiring the client to request +the base object, then request each linked object in turn. + +You can also iterate over a collection of instances and set the automatically +generated `isdeleted`, `isupdated`, or `isnew` properties to indicate that +the given instance has been deleted, updated, or created respectively. +Evergreen can then act in batch mode over the collection to perform the +requested actions on any of the instances that have been flagged for action. + +=== Returning streaming results === + +In the previous implementation of the `opensrf.simple-text.split` method, we +returned a reference to the complete array of results. For small values being +delivered over the network, this is perfectly acceptable, but for large sets of +values this can pose a number of problems for the requesting client. Consider a +service that returns a set of bibliographic records in response to a query like +"all records edited in the past month"; if the underlying database is +relatively active, that could result in thousands of records being returned as +a single network request. The client would be forced to block until all of the +results are returned, likely resulting in a significant delay, and depending on +the implementation, correspondingly large amounts of memory might be consumed +as all of the results are read from the network in a single block. + +OpenSRF offers a solution to this problem. If the method returns results that +can be divided into separate meaningful units, you can register the OpenSRF +method as a streaming method and enable the client to loop over the results one +unit at a time until the method returns no further results. In addition to +registering the method with the provided name, OpenSRF also registers an additional +method with `.atomic` appended to the method name. The `.atomic` variant gathers +all of the results into a single block to return to the client, giving the caller +the ability to choose either streaming or atomic results from a single method +definition. + +In the following example, the text splitting method has been reimplemented to +support streaming; very few changes are required: + +.Text splitting method - streaming mode +[source,perl] +-------------------------------------------------------------------------------- +sub text_split { + my $self = shift; + my $conn = shift; + my $text = shift; + my $delimiter = shift || ' '; + + my @split_text = split $delimiter, $text; + foreach my $string (@split_text) { # <1> + $conn->respond($string); + } + return undef; +} + +__PACKAGE__->register_method( + method => 'text_split', + api_name => 'opensrf.simple-text.split', + stream => 1 # <2> +); +-------------------------------------------------------------------------------- + +<1> Rather than returning a reference to the array, a streaming method loops +over the contents of the array and invokes the `respond()` method of the +connection object on each element of the array. + +<2> Registering the method as a streaming method instructs OpenSRF to also +register an atomic variant (`opensrf.simple-text.split.atomic`). + +=== Error! Warning! Info! Debug! === +As hard as it may be to believe, it is true: applications sometimes do not +behave in the expected manner, particularly when they are still under +development. The server language bindings for OpenSRF include integrated +support for logging messages at the levels of ERROR, WARNING, INFO, DEBUG, and +the extremely verbose INTERNAL to either a local file or to a syslogger +service. The destination of the log files, and the level of verbosity to be +logged, is set in the `opensrf_core.xml` configuration file. To add logging to +our Perl example, we just have to add the `OpenSRF::Utils::Logger` package to our +list of used Perl modules, then invoke the logger at the desired logging level. + +You can include many calls to the OpenSRF logger; only those that are higher +than your configured logging level will actually hit the log. The following +example exercises all of the available logging levels in OpenSRF: + +[source,perl] +-------------------------------------------------------------------------------- +use OpenSRF::Utils::Logger; +my $logger = OpenSRF::Utils::Logger; +# some code in some function +{ + $logger->error("Hmm, something bad DEFINITELY happened!"); + $logger->warn("Hmm, something bad might have happened."); + $logger->info("Something happened."); + $logger->debug("Something happened; here are some more details."); + $logger->internal("Something happened; here are all the gory details.") +} +-------------------------------------------------------------------------------- + +If you call the mythical OpenSRF method containing the preceding OpenSRF logger +statements on a system running at the default logging level of INFO, you will +only see the INFO, WARN, and ERR messages, as follows: + +.Results of logging calls at the default level of INFO +-------------------------------------------------------------------------------- +[2010-03-17 22:27:30] opensrf.simple-text [ERR :5681:SimpleText.pm:277:] Hmm, something bad DEFINITELY happened! +[2010-03-17 22:27:30] opensrf.simple-text [WARN:5681:SimpleText.pm:278:] Hmm, something bad might have happened. +[2010-03-17 22:27:30] opensrf.simple-text [INFO:5681:SimpleText.pm:279:] Something happened. +-------------------------------------------------------------------------------- + +If you then increase the the logging level to INTERNAL (5), the logs will +contain much more information, as follows: + +.Results of logging calls at the default level of INTERNAL +-------------------------------------------------------------------------------- +[2010-03-17 22:48:11] opensrf.simple-text [ERR :5934:SimpleText.pm:277:] Hmm, something bad DEFINITELY happened! +[2010-03-17 22:48:11] opensrf.simple-text [WARN:5934:SimpleText.pm:278:] Hmm, something bad might have happened. +[2010-03-17 22:48:11] opensrf.simple-text [INFO:5934:SimpleText.pm:279:] Something happened. +[2010-03-17 22:48:11] opensrf.simple-text [DEBG:5934:SimpleText.pm:280:] Something happened; here are some more details. +[2010-03-17 22:48:11] opensrf.simple-text [INTL:5934:SimpleText.pm:281:] Something happened; here are all the gory details. +[2010-03-17 22:48:11] opensrf.simple-text [ERR :5934:SimpleText.pm:283:] Resolver did not find a cache hit +[2010-03-17 22:48:21] opensrf.simple-text [INTL:5934:Cache.pm:125:] Stored opensrf.simple-text.test_cache.masaa => "here" in memcached server +[2010-03-17 22:48:21] opensrf.simple-text [DEBG:5934:Application.pm:579:] Coderef for [OpenSRF::Application::Demo::SimpleText::test_cache] has been run +[2010-03-17 22:48:21] opensrf.simple-text [DEBG:5934:Application.pm:586:] A top level Request object is responding de nada +[2010-03-17 22:48:21] opensrf.simple-text [DEBG:5934:Application.pm:190:] Method duration for [opensrf.simple-text.test_cache]: 10.005 +[2010-03-17 22:48:21] opensrf.simple-text [INTL:5934:AppSession.pm:780:] Calling queue_wait(0) +[2010-03-17 22:48:21] opensrf.simple-text [INTL:5934:AppSession.pm:769:] Resending...0 +[2010-03-17 22:48:21] opensrf.simple-text [INTL:5934:AppSession.pm:450:] In send +[2010-03-17 22:48:21] opensrf.simple-text [DEBG:5934:AppSession.pm:506:] AppSession sending RESULT to opensrf@private.localhost/_dan-karmic-liblap_1268880489.752154_5943 with threadTrace [1] +[2010-03-17 22:48:21] opensrf.simple-text [DEBG:5934:AppSession.pm:506:] AppSession sending STATUS to opensrf@private.localhost/_dan-karmic-liblap_1268880489.752154_5943 with threadTrace [1] +... +-------------------------------------------------------------------------------- + +To see everything that is happening in OpenSRF, try leaving your logging level +set to INTERNAL for a few minutes - just ensure that you have a lot of free disk +space available if you have a moderately busy system! + +=== Caching results: one secret of scalability === +If you have ever used an application that depends on a remote Web service +outside of your control-say, if you need to retrieve results from a +microblogging service-you know the pain of latency and dependability (or the +lack thereof). To improve response time in OpenSRF applications, you can take +advantage of the support offered by the `OpenSRF::Utils::Cache` module for +communicating with a local instance or cluster of memcache daemons to store +and retrieve persistent values. + +[source,perl] +-------------------------------------------------------------------------------- +use OpenSRF::Utils::Cache; # <1> +sub test_cache { + my $self = shift; + my $conn = shift; + my $test_key = shift; + my $cache = OpenSRF::Utils::Cache->new('global'); # <2> + my $cache_key = "opensrf.simple-text.test_cache.$test_key"; # <3> + my $result = $cache->get_cache($cache_key) || undef; # <4> + if ($result) { + $logger->info("Resolver found a cache hit"); + return $result; + } + sleep 10; # <5> + my $cache_timeout = 300; # <6> + $cache->put_cache($cache_key, "here", $cache_timeout); # <7> + return "There was no cache hit."; +} +-------------------------------------------------------------------------------- + +This example: + +<1> Imports the OpenSRF::Utils::Cache module + +<2> Creates a cache object + +<3> Creates a unique cache key based on the OpenSRF method name and +request input value + +<4> Checks to see if the cache key already exists; if so, it immediately +returns that value + +<5> If the cache key does not exist, the code sleeps for 10 seconds to +simulate a call to a slow remote Web service, or an intensive process + +<6> Sets a value for the lifetime of the cache key in seconds + +<7> When the code has retrieved its value, then it can create the cache +entry, with the cache key, value to be stored ("here"), and the timeout +value in seconds to ensure that we do not return stale data on subsequent +calls + +=== Initializing the service and its children: child labour === +When an OpenSRF service is started, it looks for a procedure called +`initialize()` to set up any global variables shared by all of the children of +the service. The `initialize()` procedure is typically used to retrieve +configuration settings from the `opensrf.xml` file. + +An OpenSRF service spawns one or more children to actually do the work +requested by callers of the service. For every child process an OpenSRF service +spawns, the child process clones the parent environment and then each child +process runs the `child_init()` process (if any) defined in the OpenSRF service +to initialize any child-specific settings. + +When the OpenSRF service kills a child process, it invokes the `child_exit()` +procedure (if any) to clean up any resources associated with the child process. +Similarly, when the OpenSRF service is stopped, it calls the `DESTROY()` +procedure to clean up any remaining resources. + +=== Retrieving configuration settings === +The settings for OpenSRF services are maintained in the `opensrf.xml` XML +configuration file. The structure of the XML document consists of a root +element `` containing two child elements: + + * `` contains an `` element describing all +OpenSRF services running on this system -- see <> --, as +well as any other arbitrary XML descriptions required for global configuration +purposes. For example, Evergreen uses this section for email notification and +inter-library patron privacy settings. + * `` contains one element per host that participates in +this OpenSRF system. Each host element must include an `` element +that lists all of the services to start on this host when the system starts +up. Each host element can optionally override any of the default settings. + +OpenSRF includes a service named `opensrf.settings` to provide distributed +cached access to the configuration settings with a simple API: + + * `opensrf.settings.default_config.get`: accepts zero arguments and returns +the complete set of default settings as a JSON document + * `opensrf.settings.host_config.get`: accepts one argument (hostname) and +returns the complete set of settings, as customized for that hostname, as a +JSON document + * `opensrf.settings.xpath.get`: accepts one argument (an +http://www.w3.org/TR/xpath/[XPath] expression) and returns the portion of +the configuration file that matches the expression as a JSON document + +For example, to determine whether an Evergreen system uses the opt-in +support for sharing patron information between libraries, you could either +invoke the `opensrf.settings.default_config.get` method and parse the +JSON document to determine the value, or invoke the `opensrf.settings.xpath.get` +method with the XPath `/opensrf/default/share/user/opt_in` argument to +retrieve the value directly. + +In practice, OpenSRF includes convenience libraries in all of its client +language bindings to simplify access to configuration values. C offers +osrfConfig.c, Perl offers `OpenSRF::Utils::SettingsClient`, Java offers +`org.opensrf.util.SettingsClient`, and Python offers `osrf.set`. These +libraries locally cache the configuration file to avoid network roundtrips for +every request and enable the developer to request specific values without +having to manually construct XPath expressions. + +== Getting under the covers with OpenSRF == +Now that you have seen that it truly is easy to create an OpenSRF service, we +can take a look at what is going on under the covers to make all of this work +for you. + +=== Get on the messaging bus - safely === +One of the core innovations of OpenSRF was to use the Extensible Messaging and +Presence Protocol (XMPP, more colloquially known as Jabber) as the messaging +bus that ties OpenSRF services together across servers. XMPP is an "XML +protocol for near-real-time messaging, presence, and request-response services" +(http://www.ietf.org/rfc/rfc3920.txt) that OpenSRF relies on to handle most of +the complexity of networked communications. OpenSRF achieves a measure of +security for its services through the use of public and private XMPP domains; +all OpenSRF services automatically register themselves with the private XMPP +domain, but only those services that register themselves with the public XMPP +domain can be invoked from public OpenSRF clients. + +In a minimal OpenSRF deployment, two XMPP users named "router" connect to the +XMPP server, with one connected to the private XMPP domain and one connected to +the public XMPP domain. Similarly, two XMPP users named "opensrf" connect to +the XMPP server via the private and public XMPP domains. When an OpenSRF +service is started, it uses the "opensrf" XMPP user to advertise its +availability with the corresponding router on that XMPP domain; the XMPP server +automatically assigns a Jabber ID (JID) based on the client hostname to each +service's listener process and each connected drone process waiting to carry +out requests. When an OpenSRF router receives a request to invoke a method on a +given service, it connects the requester to the next available listener in the +list of registered listeners for that service. + +The opensrf and router user names, passwords, and domain names, along with the +list of services that should be public, are contained in the `opensrf_core.xml` +configuration file. + +=== Message body format === +OpenSRF was an early adopter of JavaScript Object Notation (JSON). While XMPP +is an XML protocol, the Evergreen developers recognized that the compactness of +the JSON format offered a significant reduction in bandwidth for the volume of +messages that would be generated in an application of that size. In addition, +the ability of languages such as JavaScript, Perl, and Python to generate +native objects with minimal parsing offered an attractive advantage over +invoking an XML parser for every message. Instead, the body of the XMPP message +is a simple JSON structure. For a simple request, like the following example +that simply reverses a string, it looks like a significant overhead: but we get +the advantages of locale support and tracing the request from the requester +through the listener and responder (drone). + +.A request for opensrf.simple-text.reverse("foobar"): +[source,xml] +-------------------------------------------------------------------------------- + + 1266781414.366573.12667814146288 + +[ + {"__c":"osrfMessage","__p": + {"threadTrace":"1","locale":"en-US","type":"REQUEST","payload": + {"__c":"osrfMethod","__p": + {"method":"opensrf.simple-text.reverse","params":["foobar"]} + } + } + } +] + + +-------------------------------------------------------------------------------- + +.A response from opensrf.simple-text.reverse("foobar") +[source,xml] +-------------------------------------------------------------------------------- + + 1266781414.366573.12667814146288 + +[ + {"__c":"osrfMessage","__p": + {"threadTrace":"1","payload": + {"__c":"osrfResult","__p": + {"status":"OK","content":"raboof","statusCode":200} + } ,"type":"RESULT","locale":"en-US"} + }, + {"__c":"osrfMessage","__p": + {"threadTrace":"1","payload": + {"__c":"osrfConnectStatus","__p": + {"status":"Request Complete","statusCode":205} + },"type":"STATUS","locale":"en-US"} + } +] + + +-------------------------------------------------------------------------------- + +The content of the `` element of the OpenSRF request and result should +look familiar; they match the structure of the <> that we previously dissected. + +=== Registering OpenSRF methods in depth === +Let's explore the call to `__PACKAGE__->register_method()`; most of the elements +of the hash are optional, and for the sake of brevity we omitted them in the +previous example. As we have seen in the results of the <>, a +verbose regisration method call is recommended to better enable the internal +documentation. So, for the sake of completeness here, is the set of elements +that you should pass to `__PACKAGE__->register_method()`: + + * `method`: the name of the procedure in this module that is being registered as an OpenSRF method + * `api_name`: the invocable name of the OpenSRF method; by convention, the OpenSRF service name is used as the prefix + * `api_level`: (optional) can be used for versioning the methods to allow the use of a deprecated API, but in practical use is always 1 + * `argc`: (optional) the minimal number of arguments that the method expects + * `stream`: (optional) if this argument is set to any value, then the method supports returning multiple values from a single call to subsequent requests, and OpenSRF automatically creates a corresponding method with ".atomic" appended to its name that returns the complete set of results in a single request; streaming methods are useful if you are returning hundreds of records and want to act on the results as they return + * `signature`: (optional) a hash describing the method's purpose, arguments, and return value + ** `desc`: a description of the method's purpose + ** `params`: an array of hashes, each of which describes one of the method arguments + *** `name`: the name of the argument + *** `desc`: a description of the argument's purpose + *** `type`: the data type of the argument: for example, string, integer, boolean, number, array, or hash + ** `return`: a hash describing the return value of the method + *** `desc`: a description of the return value + *** `type`: the data type of the return value: for example, string, integer, boolean, number, array, or hash + +== Evergreen-specific OpenSRF services == + +Evergreen is currently the primary showcase for the use of OpenSRF as an +application architecture. Evergreen 1.6.0 includes the following +set of OpenSRF services: + + * `open-ils.actor`: Supports common tasks for working with user accounts + and libraries. + * `open-ils.auth`: Supports authentication of Evergreen users. + * `open-ils.cat`: Supports common cataloging tasks, such as creating, + modifying, and merging bibliographic and authority records. + * `open-ils.circ`: Supports circulation tasks such as checking out items and + calculating due dates. + * `open-ils.collections`: Supports tasks to assist collections services for + contacting users with outstanding fines above a certain threshold. + * `open-ils.cstore`: Supports unrestricted access to Evergreen fieldmapper + objects. This is a private service. + * `open-ils.ingest`: Supports tasks for importing bibliographic and authority + records. + * `open-ils.pcrud`: Supports permission-based access to Evergreen fieldmapper + objects. + * `open-ils.penalty`: Supports the calculation of penalties for users, such as + being blocked from further borrowing, for conditions such as having too many + items checked out or too many unpaid fines. + * `open-ils.reporter`: Supports the creation and scheduling of reports. + * `open-ils.reporter-store`: Supports access to Evergreen fieldmapper objects + for the reporting service. This is a private service. + * `open-ils.search`: Supports searching across bibliographic records, + authority records, serial records, Z39.50 sources, and ZIP codes. + * `open-ils.storage`: A deprecated method of providing access to Evergreen + fieldmapper objects. Implemented in Perl, this service has largely been + replaced by the much faster C-based `open-ils.cstore` service. + * `open-ils.supercat`: Supports transforms of MARC records into other formats, + such as MODS, as well as providing Atom and RSS feeds and SRU access. + * `open-ils.trigger`: Supports event-based triggers for actions such as overdue + and holds available notification emails. + * `open-ils.vandelay`: Supports the import and export of batches of + bibliographic and authority records. + +Of some interest is that the `open-ils.reporter-store` and `open-ils.cstore` +services have identical implementations. Surfacing them as separate services +enables a deployer of Evergreen to ensure that the reporting service does not +interfere with the performance-critical `open-ils.cstore` service. One can also +direct the reporting service to a read-only database replica to, again, avoid +interference with `open-ils.cstore` which must write to the master database. + +There are only a few significant services that are not built on OpenSRF in +Evergreen 1.6.0, such as the SIP and Z39.50 servers. These services implement +different protocols and build on existing daemon architectures (Simple2ZOOM +for Z39.50), but still rely on the other OpenSRF services to provide access +to the Evergreen data. The non-OpenSRF services are reasonably self-contained +and can be deployed on different servers to deliver the same sort of deployment +flexibility as OpenSRF services, but have the disadvantage of not being +integrated into the same configuration and control infrastructure as the +OpenSRF services. + +== Evergreen after one year: reflections on OpenSRF == + +http://projectconifer.ca[Project Conifer] has been live on Evergreen for just +over a year now, and as one of the primary technologists I have had to work +closely with the OpenSRF infrastructure during that time. As such, I am in +a position to identify some of the strengths and weaknesses of OpenSRF based +on our experiences. + +=== Strengths of OpenSRF === + +As a service infrastructure, OpenSRF has been remarkably reliable. We initially +deployed Evergreen on an unreleased version of both OpenSRF and Evergreen due +to our requirements for some functionality that had not been delivered in a +stable release at that point in time, and despite this risky move we suffered +very little unplanned downtime in the opening months. On July 27, 2009 we +moved to a newer (but still unreleased) version of the OpenSRF and Evergreen +code, and began formally tracking our downtime. Since then, we have achieved +more than 99.9% availability - including scheduled downtime for maintenance. +This compares quite favourably to the maximum of 75% availability that we were +capable of achieving on our previous library system due to the nightly downtime +that was required for our backup process. The OpenSRF "maximum request" +configuration parameter for each service that kills off drone processes after +they have served a given number of requests provides a nice failsafe for +processes that might otherwise suffer from a memory leak or hung process. It +also helps that when we need to apply an update to a Perl service that is +running on multiple servers, we can apply the updated code, then restart the +service on one server at a time to avoid any downtime. + +As promised by the OpenSRF infrastructure, we have also been able to tune our +cluster of servers to provide better performance. For example, we were able to +change the number of maximum concurrent processes for our database services +when we noticed that we seeing a performance bottleneck with database access. +Making a configuration change go live simply requires you to restart the +`opensrf.setting` service to pick up the configuration change, then restart the +affected service on each of your servers. We were also able to turn off some of +the less-used OpenSRF services, such as `open-ils.collections`, on one of our +servers to devote more resources on that server to the more frequently used +services and other performance-critical processes such as Apache. + +The support for logging and caching that is built into OpenSRF has been +particularly helpful with the development of a custom service for SFX holdings +integration into our catalogue. Once I understood how OpenSRF works, most of +the effort required to build that SFX integration service was spent on figuring +out how to properly invoke the SFX API to display human-readable holdings. +Adding a new OpenSRF service and registering several new methods for the +service was relatively easy. The support for directing log messages to syslog +in OpenSRF has also been a boon for both development and debugging when +problems arise in a cluster of five servers; we direct all of our log messages +to a single server where we can inspect the complete set of messages for the +entire cluster in context, rather than trying to piece them together across +servers. + +=== Weaknesses === + +The primary weakness of OpenSRF is the lack of either formal or informal +documentation for OpenSRF. There are many frequently asked questions on the +Evergreen mailing lists and IRC channel that indicate that some of the people +running Evergreen or trying to run Evergreen have not been able to find +documentation to help them understand, even at a high level, how the OpenSRF +Router and services work with XMPP and the Apache Web server to provide a +working Evergreen system. Also, over the past few years several developers +have indicated an interest in developing Ruby and PHP bindings for OpenSRF, but +the efforts so far have resulted in no working code. Without a formal +specification, clearly annotated examples, and unit tests for the major OpenSRF +communication use cases that could be ported to the new language as a base set +of expectations for a working binding, the hurdles for a developer new to +OpenSRF are significant. As a result, Evergreen integration efforts with +popular frameworks like Drupal, Blacklight, and VuFind result in the best +practical option for a developer with limited time -- database-level +integration -- which has the unfortunate side effect of being much more likely +to break after an upgrade. + +In conjunction with the lack of documentation that makes it hard to get started +with the framework, a disincentive for new developers to contribute to OpenSRF +itself is the lack of integrated unit tests. For a developer to contribute a +significant, non-obvious patch to OpenSRF, they need to manually run through +various (undocumented, again) use cases to try and ensure that the patch +introduced no unanticipated side effects. The same problems hold for Evergreen +itself, although the +http://svn.open-ils.org/ILS-Contrib/constrictor[Constrictor] stress-testing +framework offers a way of performing some automated system testing and +performance testing. + +These weaknesses could be relatively easily overcome with the effort through +contributions from people with the right skill sets. This article arguably +offers a small set of clear examples at both the networking and application +layer of OpenSRF. A technical writer who understands OpenSRF could contribute a +formal specification to the project. With a formal specification at their +disposal, a quality assurance expert could create an automated test harness and +a basic set of unit tests that could be incrementally extended to provide more +coverage over time. If one or more continual integration environments are set +up to track the various OpenSRF branches of interest, then the OpenSRF +community would have immediate feedback on build quality. Once a unit testing +framework is in place, more developers might be willing to develop and +contribute patches as they could sanity check their own code without an intense +effort before exposing it to their peers. + +== Summary == +In this article, I attempted to provide both a high-level and detailed overview +of how OpenSRF works, how to build and deploy new OpenSRF services, how to make +requests to OpenSRF method from OpenSRF clients or over HTTP, and why you +should consider it a possible infrastructure for building your next +high-performance system that requires the capability to scale out. In addition, +I surveyed the Evergreen services built on OpenSRF and reflected on the +strengths and weaknesses of the platform based on the experiences of Project +Conifer after a year in production, with some thoughts about areas where the +right application of skills could make a significant difference to the Evergreen +and OpenSRF projects. + +== Appendix: Python client == + +Following is a Python client that makes the same OpenSRF calls as the Perl +client: + +[source, python] +-------------------------------------------------------------------------------- +include::python_client.py[] +-------------------------------------------------------------------------------- + +NOTE: Python's `dnspython` module refuses to read `/etc/resolv.conf`, so to +access hostnames that are not served up via DNS, such as the extremely common +case of `localhost`, you may need to install a package like `dnsmasq` to act +as a local DNS server for those hostnames. + +// vim: set syntax=asciidoc: diff --git a/docs/development/perl_client.pl b/docs/development/perl_client.pl new file mode 100644 index 0000000000..7a47232242 --- /dev/null +++ b/docs/development/perl_client.pl @@ -0,0 +1,40 @@ +#/usr/bin/perl +use strict; +use OpenSRF::AppSession; +use OpenSRF::System; +use Data::Dumper; + +OpenSRF::System->bootstrap_client(config_file => '/openils/conf/opensrf_core.xml'); + +my $session = OpenSRF::AppSession->create("opensrf.simple-text"); + +print "substring: Accepts a string and a number as input, returns a string\n"; +my $request = $session->request("opensrf.simple-text.substring", "foobar", 3); + +my $response; +while ($response = $request->recv()) { + print "Substring: " . $response->content . "\n\n"; +} + +print "split: Accepts two strings as input, returns an array of strings\n"; +$request = $session->request("opensrf.simple-text.split", "This is a test", " ")->gather(); +my $output = "Split: ["; +foreach my $element (@$request) { + $output .= "$element, "; +} +$output =~ s/, $/]/; +print $output . "\n\n"; + +print "statistics: Accepts an array of strings as input, returns a hash\n"; +my @many_strings = [ + "First I think I'll have breakfast", + "Then I think that lunch would be nice", + "And then seventy desserts to finish off the day" +]; + +$request = $session->request("opensrf.simple-text.statistics", @many_strings)->gather(); +print "Length: " . $request->{'length'} . "\n"; +print "Word count: " . $request->{'word_count'} . "\n"; + +$session->disconnect(); + diff --git a/docs/development/python_client.py b/docs/development/python_client.py new file mode 100644 index 0000000000..d0c6dfcdbd --- /dev/null +++ b/docs/development/python_client.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python +"""OpenSRF client example in Python""" +import osrf.system +import osrf.ses + +def osrf_substring(session, text, sub): + """substring: Accepts a string and a number as input, returns a string""" + request = session.request('opensrf.simple-text.substring', text, sub) + + # Retrieve the response from the method + # The timeout parameter is optional + response = request.recv(timeout=2) + + request.cleanup() + # The results are accessible via content() + return response.content() + +def osrf_split(session, text, delim): + """split: Accepts two strings as input, returns an array of strings""" + request = session.request('opensrf.simple-text.split', text, delim) + response = request.recv() + request.cleanup() + return response.content() + +def osrf_statistics(session, strings): + """statistics: Accepts an array of strings as input, returns a hash""" + request = session.request('opensrf.simple-text.statistics', strings) + response = request.recv() + request.cleanup() + return response.content() + + +if __name__ == "__main__": + file = '/openils/conf/opensrf_core.xml' + + # Pull connection settings from section of opensrf_core.xml + osrf.system.System.connect(config_file=file, config_context='config.opensrf') + + # Set up a connection to the opensrf.settings service + session = osrf.ses.ClientSession('opensrf.simple-text') + + result = osrf_substring(session, "foobar", 3) + print(result) + print + + result = osrf_split(session, "This is a test", " ") + print("Received %d elements: [" % len(result)), + print(', '.join(result)), ']' + + many_strings = ( + "First I think I'll have breakfast", + "Then I think that lunch would be nice", + "And then seventy desserts to finish off the day" + ) + result = osrf_statistics(session, many_strings) + print("Length: %d" % result["length"]) + print("Word count: %d" % result["word_count"]) + + # Cleanup connection resources + session.cleanup() diff --git a/docs/media/CONNECT.png b/docs/media/CONNECT.png new file mode 100644 index 0000000000000000000000000000000000000000..b30d4028ac8fae43ba14e1fac85edc650faefbd0 GIT binary patch literal 122883 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%0AXJ;3^2b%1MLQ}#PVGr}DB5q-floY6j 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∨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 z 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