NewGenLib is based on the so called n-tier architecture with an Application Server that mediates between the client machines and the database server. The diagram below shows the NewGenLib architecture.
NewGenLib Architecture
The concept of Application Servers [3] followed the success of the Java platform known as J2EE (Java-2 Enterprise Edition). The advantages of using a middle tier application server resulted in many enterprise level application servers and among these, IBMs WebSphere, WebLogic, JBoss, JonAs, Glassfish are well known. In an application server, Web modules are servlets and Java Server Pages (JSP), while business logic (processing algorithms specific to the business for which the application is designed) is built into the Enterprise JavaBeans (EJB-3). A Java Server Page executes in a Web container—the Java equivalent of CGI scripts. JSPs create HTML pages by embedding references to the server logic within the page. The Hibernate Project (also used in NewGenLib) provides an EJB container implementation for JBoss. NewGenLib’s OPAC uses JSPs. The JBoss application server (open source from RedHat) embeds the Apache Tomcat web server another open-source offering.
Several advantages of using a middle-tier application server are cited and some of these are:
NewGenLib on the other hand is entirely Java-based and uses the following related software technologies in its presentation, application and database server layers.
Some of the features associated with Java Web Start [4] include:
Other software technologies used in NewGenLib’s presentation layer are:
The use of a distinct software technology for the presentation layer in NewGenLib does make it possible, theoretically at least, of moving the front-end to a richer Internet application using new tools such as Adobe’s Flex-3. A recent example of an application that exposes a rich internet interface is Biblios (http://biblios.org/), an open source cataloguing application. How difficult such a move is for NewGenLib and the extent to which code can be reused or repurposed is an issue that will come into play.
Technologies used by NewGenLib in the Application server layer are:
Given the differences in the technological base of the software, it would appear that NewGenLib, because of its more modular architecture, use of object-oriented analysis and design, its use of middle-tier technologies, XML Streams and EJB containers that encapsulate business logic, is probably better suited to be broken into modules with a service-orientation than Koha. NewGenLib may be in a better position to take advantage of the OLE Project’s findings: for modular components dealing with the core processes and for these to connect to one or more open services based on well defined w3c standards.
A distinction between the terms: service-oriented architectures (SOA) and web services is in order. SOA is an approach [http://www.slideshare.net/bikesandbooks/open-library-environment-samm-08] where:
NewGenLib already uses XML streams for exchange of data between clients and servers in its different modules. Conceivably, it should be easy for NewGenLib to expand into using web services protocols both at its client as well as server sides, although it does not use any so far. It is not clear to what extent Koha modules use XML streams to communicate between Koha clients and servers and with other servers. But the fact that Koha modules are all written in Perl and that it already invokes web services means that Koha too should have the capability to expand into being compliant with current and new web service applications and standards.