User Tools

Site Tools


eg_developer_overview

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
eg_developer_overview [2016/07/12 09:25] rjs7eg_developer_overview [2022/02/10 13:34] (current) – external edit 127.0.0.1
Line 6: Line 6:
   - OpenSRF, forming the backend communication layer for Evergreen. Primarily dealt with via Perl modules, but also including C.   - OpenSRF, forming the backend communication layer for Evergreen. Primarily dealt with via Perl modules, but also including C.
   - PostgreSQL Database, both in database design and stored procedures. Most stored procedures are written in SQL, PL/pgSQL, or Perl.   - PostgreSQL Database, both in database design and stored procedures. Most stored procedures are written in SQL, PL/pgSQL, or Perl.
-  - XML/(X)HTML/XUL/JavaScript, for OPAC and Staff Client development. The staff client is currently XULRunner application, with benefits and downsides thereof.+  - Template Toolkit/JavaScript/Dojo/AngularJS, for OPAC and Staff Client development. The staff client is a browser-based client (written mostly in AngularJS) beginning with Evergreen 3.0 (Fall 2017). The former XUL client will be removed in Evergreen 3.2 (Fall 2018).
  
 See also the [[https://docs.google.com/drawings/d/17aNEr8vLen5wBjCAP4NPnjL7fYT3VxK6_9wVArR9VII/edit?usp=sharing|Evergreen Technical Diagram]]. See also the [[https://docs.google.com/drawings/d/17aNEr8vLen5wBjCAP4NPnjL7fYT3VxK6_9wVArR9VII/edit?usp=sharing|Evergreen Technical Diagram]].
 +
 ===== OpenSRF and Services ===== ===== OpenSRF and Services =====
  
 Evergreen is built upon the Open Scalable Request Framework, or OpenSRF (pronounced "open surf"). OpenSRF provides communication between various "Applications" and the clients that wish to call them. Each application provides a service, and usually the applications are referred to as services because of this. Evergreen is built upon the Open Scalable Request Framework, or OpenSRF (pronounced "open surf"). OpenSRF provides communication between various "Applications" and the clients that wish to call them. Each application provides a service, and usually the applications are referred to as services because of this.
 +
 +
 +  * [[osrf-devel:User's Guide|User's Guide]] -- Installation, setup and basic Application development
 +  * [[osrf-devel:primer|OpenSRF Primer]]
 +  * Blog entry: [[http://open-ils.org/blog/?p=36|OpenSRF Jabber: A Technical Review]]
  
 ==== OpenSRF Basics ==== ==== OpenSRF Basics ====
Line 63: Line 69:
   * open-ils.cstore (C)   * open-ils.cstore (C)
     *   CStore is a database search and retrieval service, and the default target for the CStoreEditor Perl class. It does not check or require authentication tokens. It can be used to perform complicated queries via json_query calls.     *   CStore is a database search and retrieval service, and the default target for the CStoreEditor Perl class. It does not check or require authentication tokens. It can be used to perform complicated queries via json_query calls.
 +  * open-ils.ebook_api (added in 2.12)
   * open-ils.fielder (Perl, Public)   * open-ils.fielder (Perl, Public)
     *   Currently unused(?) service for loading FieldMapper information.     *   Currently unused(?) service for loading FieldMapper information.
 +  * <del>open-ils.ingest</del> [[https://bugs.launchpad.net/evergreen/+bug/1187029|Removed in 2.6]], [[http://docs.evergreen-ils.org/2.6/_miscellaneous.html|release notes]]
 +    * Handles ingest of bibliographic records. Replaced by database triggers and stored procedures.
 +  * open-ils.hold-targeter (added in 2.12)
   * open-ils.justintime (Perl, XML-RPC)   * open-ils.justintime (Perl, XML-RPC)
     *   Action/Trigger revalidator for use with things like external telephony.     *   Action/Trigger revalidator for use with things like external telephony.
   * open-ils.pcrud (C, Public)   * open-ils.pcrud (C, Public)
-    *   PCrud is a database search and retrieval service that checks and requires authentication tokens to control access to information. Unlike CStore it cannot "flesh" data at this time, requiring individual calls to retrieve data across links+    *   PCrud is a database search and retrieval service that checks and requires authentication tokens to control access to information. 
-  * open-ils.penalty (Perl)+  * <del>open-ils.penalty (Perl)</del> [[https://bugs.launchpad.net/evergreen/+bug/1312308|Removed in 2.9]], [[http://docs.evergreen-ils.org/2.9/_remove_open_ils_penalty_service.html|release notes]]
     *   A wrapper around the OpenILS::Utils::Penalty module for calculating patron penalties.     *   A wrapper around the OpenILS::Utils::Penalty module for calculating patron penalties.
   * open-ils.permacrud (Perl, Public)   * open-ils.permacrud (Perl, Public)
-    *   A Perl authentication checking wrapper around CStore calls.+    * A Perl authentication checking wrapper around CStore calls
 +    * See bug [[https://bugs.launchpad.net/evergreen/+bug/1680566|Remove open-ils.permacrud service]] 
 +  * open-ils.qstore 
 +    * Executes database queries that have been previously defined, in an abstract form, within the database itself.
   * open-ils.reporter (Perl, Public)   * open-ils.reporter (Perl, Public)
     *   The Staff creation and query service for the reports system.     *   The Staff creation and query service for the reports system.
Line 133: Line 146:
     *   The metabib schema holds pre-parsed metadata about bib records, including search information, pre-extracted MARC data, and facet data.     *   The metabib schema holds pre-parsed metadata about bib records, including search information, pre-extracted MARC data, and facet data.
   * money   * money
-    *   The money schema contains billing and payment information for billable actions throughout the system. For note, the action.circulation and booking.reservation tables inherit the billable_xact table contained within it.+    *   The money schema contains billing and payment information for billable actions throughout the system. Note that the action.circulation and booking.reservation tables inherit the money.billable_xact table.
   * offline   * offline
     *   Evergreen contains a built-in offline mode. The offline schema handles information about processing of the offline circulations.     *   Evergreen contains a built-in offline mode. The offline schema handles information about processing of the offline circulations.
Line 179: Line 192:
 ==== JSPAC (no longer included as of Evergreen 2.9) ==== ==== JSPAC (no longer included as of Evergreen 2.9) ====
  
-To start with, at this point it is recommended that new features not be developed for the JSPAC unless they involve security or limiting patron actions. Otherwise development should be targeted at TPAC. +The JSPAC was built on the JavaScript OpenSRF interfaces and built almost everything outside of the base page layouts client side. Search results and account information were populated via AJAX after the initial page load. This included use of the Dojo Toolkit, though for a number of reasons Evergreen is currently limited to the somewhat outdated Dojo version 1.3.
- +
-The JSPAC is built on the JavaScript OpenSRF interfaces and builds almost everything outside of the base page layouts client side. Search results and account information are populated after the initial page load as the system makes backend calls with the AJAX technologies the browser supports. Development is thus more oriented towards JavaScript programming and XHTML pages than anything else. This includes use of the Dojo Toolkit, though for a number of reasons Evergreen is currently limited to the somewhat outdated Dojo version 1.3.+
  
-Though JSPAC supports multiple skins only one is currently shipped with Evergreen.+The JSPAC supported multiple skins, but only one shipped with Evergreen.
  
 ===== Staff Client ===== ===== Staff Client =====
  
-Work on a browser-based staff client is [[dev:browser_staff:dev_sprints|in process]]. Circulation features were released as a preview with Evergreen 2.8(?and are intended for production use beginning with version 2.10(?).+The Evergreen browser-based (or "web"staff client is now the main client, and the XUL client is not supported starting with Evergreen version 3.(Fall 2018). Because of this, Evergreen 3.1 has an extended support window for sites that are not ready to switch to the web client.
  
-The full Staff Client is currently a XULRunner application built on the XULRunner 3 serieswhich is equivalent to the Firefox 3 seriesOne goal is to eventually move to a later version of XULRunneranother is to create a new staff client built on other technologies.+We are currently converting all the old Dojo interfaces into Angular (version 7+). After thatwe will re-write the AngularJS interfaces as well (See [[dev:browser_staff:angjs_to_ang_migration]] for the proposed timeline.)  Development for the web Staff Client can involve Angular (using TypeScript), AngularJS, JavaScript, (X)HTML, and OPAC development. Perhaps all at the same timedepending on your goals.
  
-The staff client is a combination of local and remote XUL pages, JavaScript, and the OPAC itself. It is compatible with both the JSPAC and the TPAC, and also loads a number of interfaces that work like the JSPAC and/or TPAC. Some of these interfaces can be easily used outside of the staff client itself, others expect to be loaded from within it.+**History**
  
-Development for the Staff Client can thus involve XUL, JavaScript, (X)HTML, and OPAC development. Perhaps all at the same time, depending on your goals.+Circulation features were released as a preview with Evergreen 2.8(?), and the full browser client was released with Evergreen 3.0 in October 2017.  XUL interfaces have been converted to AngularJS, while most Dojo interfaces were initially embedded in the web client as-is, with hopes to convert them to AngularJS or new Angular eventually.  The old Staff Client was a XULRunner application built on the XULRunner 3 series, which is equivalent to the Firefox 3 series. It was a combination of local and remote XUL pages, JavaScript, and the OPAC itself.
  
 ===== External Code - SIPServer ===== ===== External Code - SIPServer =====
eg_developer_overview.1468329911.txt.gz · Last modified: 2022/02/10 13:34 (external edit)

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

© 2008-2022 GPLS and others. Evergreen is open source software, freely licensed under GNU GPLv2 or later.
The Evergreen Project is a U.S. 501(c)3 non-profit organization.