Proxy Services run on a centrally-hosted services platform (the Bamboo Services Platform or BSP), and are available to users or clients via RESTful service APIs. In turn, these proxy services forward a user's request to other servers or services that perform the actual work requested:
Examples of remote servers or services include: a morphological analysis service, operated by the Perseus project at Tufts University; a syntactic annotation repository, operated by The Alpheios Project; a geoparsing service, Unlock, run by the University of Edinburgh; Philologic services run by the ARTFL project at University of Chicago; analytical services operated by the SEASR project at UIUC; etc.
Proxy services are useful only if they add value by 'getting in the middle' of an otherwise-direct transaction between a scholar's Research Environment or tool, and the remotely-operating server s/he wishes to use.
Proxy services as implemented by Project Bamboo add value in the following ways:
- Leverage an identity infrastructure to permit a variety of services to be offered within the same user model: that is, the researcher requesting use of the remote service is known as a Bamboo user across the spectrum of service calls s/he makes. Whether she is calling on a Geoparsing service in Scotland or a Morphological Analysis service in Massachusetts, the Proxy Service can track metadata about the researcher's scholarship and identify her in a well-understood, uniform manner.
- Leverage a policy (permissions) infrastructure to limit calls to the remote server or service as required by the remote host, where the proxy service is the point of enforcement for the policy and the remote service provider need only specify the desired policy rather than be responsible for identifying users and enforcing policies itself.
- Leverage a caching service available to the proxy service to enable temporary storage of results that may take a long time to be generated by the remote server or service provider, freeing the user (scholar/researcher) and her Research Environment to perform other work rather than wait for long-running processes to complete.
- Present a RESTful service interface that follows a common pattern that is easy for a variety of clients (Research Environments, etc.) to address. This is especially useful in a world of scholarly tools and services that offer a variety of integration protocols (REST, SOAP, RPC, etc.).
- Present a single interface to multiple service-providers that offer a variety of interfaces, to simplify the task of integrating a Research Environment or tool with functionality offered by diverse service providers. An example would be the Morphology Service, which presents a single interface to different morphology engines that analyze Greek, Latin, and Arabic language texts, respectively; as additional morphology engines are supported by the proxy service, they can be easily utilized by a scholar's Research Environment or tool, because the proxy service's interface remains constant.
Proxy services implemented by Project Bamboo add values enumerated 1-3, above, by taking advantage of services that run in the same environment where they are deployed, on the Bamboo Services Platform (BSP). These additional services manage identity and profile information; policy and access; temporary storage of results; and notification (e.g., notification of a researcher when the result of a long-running process she invoked is ready to use). Project Bamboo established a set of conventions for all RESTful interfaces presented by BSP-hosted services, realizing the values enumerated in 4 and 5, above.
Tufts University designed, developed, released, and deployed Morphological Analysis and Syntactic Annotation services on centrally-hosted instances of the Bamboo Services Platform during the active period of the Bamboo Technology Project (October 2010 through September 2012). In addition, the University of Chicago designed and developed proxy services to Philologic 4; these services were not released or deployed on centrally-hosted instances of the Bamboo Services Platform during the active period of the Bamboo Technology Project. Additional proxy services, planned or designed but not completed, included a Places in Text service intended to leverage the Unlock Geoparser service offered by EDINA, a JISC-designated national data center based at the University of Edinburgh; and SEASR services developed by UIUC, performing analysis on texts in the HathiTrust digital repository.
Services and APIs
RESTful APIs for the Morphological Analysis and Syntactic Annotation services developed by Tufts University are located beneath the wiki page Service APIs - Centrally-Hosted Bamboo Services. Generated Javadoc for the service-layer interfaces of these services is located at http://javadoc.projectbamboo.org/.
RESTful APIs for PhiloLogic 4 services developed by University of Chicago are located beneath the wiki page Service APIs - Other Services.
Availability of Deployed Scholarly Services
Deployed scholarly services are available at http://sosol.perseus.tufts.edu/bsp/ as of 27 March 2013, and are intended to be available beyond the end-date of Project Bamboo. This URL will be updated should it change.