The iSeries server, IBM's showpiece and well-known successor of the AS/400, has been implemented on a large scale over the past twenty-five years in small and medium businesses (SMB). This midrange computer is still being praised because of its operational ease-of-use, its reliability, flexibility, and scalability. However, because it lacks a graphical user interface and poorly integrates with other software products, its use has declined and users have shifted towards more user-friendly Windows and INTEL based systems .
IBM tried to solve this problem with WebSphere. Java concepts such as Enterprise Java Beans, HTML, and Web servers were to be the new foundations for iSeries software development.
The iSeries community, however, was not very receptive to this new solution. For a lot of iSeries developers it was still a "bridge too far". Instead of a radical revolution, they really just wanted a step-by-step modernization of their enterprise applications. The reason being that aside from some standard software packages, the major part of their IT solutions are custom-made and subsequently store the bulk of a company's knowledge and experience. The whole idea of enterprise application modernization is the renewal of existing software so that it can satisfy the need of integration and graphical presentation without any loss of functionality.
Java is an ideal language for the development of information and communications technology solutions because it can answer the user's needs, and at the same time, fit the industry-accepted, model-view-controller design pattern.
The framework described below, shows how a combination of Java on the client side and an integrated language engine for business logic and database access on the server side can not only provide a graphical user interface, but also open the possibility of third party software integration. A good example is the integration of legacy applications into a new Windows-type environment. This integrate-ability allows for the step-by-step modernization of business applications.
Every modern framework for software development is intrinsically a multi-tier architecture consisting of business logic, presentation logic, and controller logic. Business logic is responsible for database management and its accompanying transactions; presentation logic is used to present data to the user by means of an intuitive interface; and the interactive controller orchestrates the flow between the front- and back-end systems. This architecture can be represented schematically by a ball bearings structure (see figure 1) .
Figure 1: Multi-tiered architecture as a ball bearings structure
The use of a multi-tier architecture to design software offers a solution to problems that occur at three different levels: It allows performance and reusable business logic on the iSeries, it has a framework for the construction of complex rich-client applications, and offers a generically usable Java connector for iSeries business logic.
iSeries Business Logic
The need for modern looking interfaces and integration with non-iSeries software is one of the main reasons why most iSeries shops look and incorporate new technologies. Although IBM has been one of the chief Java evangelist for years (just think about WebSphere), a lot of iSeries companies are still very reluctant to take the plunge and start using Java, J2EE, or enterprise Java beans. Companies may lack the necessary technical knowledge and skills to implement Java, or are concerned about the required coexistence, integration, and even the reusability of existing iSeries applications. They may also have reservations about the performance, stability, and manageability of J2EE applications. However, what often makes most companies hesitant and cautious is the potential consequences the new technology may have on their business logic. To implement it, technical iSeries knowledge needs to be reoriented. Specifically, domain expertise needs to be transposed to a Java context, which some companies believe hasn't proven itself sufficiently.
To put these fears at bay, IBM recently put a new scenario forward as part of its evolution strategy for iSeries customers. The scenario starts from the existing transactional context on the iSeries by modularizing existing applications and separating the user interface logic, which will the be developed through new and state-of-the-art technologies. In version 3.0 of IBM's roadmap,1 IBM confirmed that both rich-clients and web-clients are acceptable goals in the iSeries developer roadmap as the majority of iSeries users are non-web users.
The iSeries integated language environment (ILE) is the perfect environment to build performing and scaleable transactional logic for the iSeries. The well thought-out use of the operating system's work and memory concepts, combined with service programs, activation groups, and modularized RPG, offer the potential to create an unbeatable transactional context that can rapidly respond to incoming requests. Reusing the platform and expertise acquired from ILE has already proven worthwhile, making these the two major advantages of such a strategy.
By using code generators to create code skeletons for business logic routines, the developer only has to direct his attention to the applicative aspects of the software. These skeleton generators (in contrast to true 4GL environments) go beyond, when necessary, the applicative level, and for example, build in memory databases (virtual databases) or embed SQL in the generated code. 4GL development tools generate pseudo-code and, in general, are not flexible enough in complex business environments.
The most important result is, of course, a transactional context and corresponding business logic that are universally accessible and can be called from any presentation form, not just to display data but, more importantly, to launch transactions. Business logic can be written once and reused everywhere with controlled, performance. The inner-part of the bearing represents this part of the framework.
1. Cfr. http://www-1.ibm.com/servers/enable/tools/innovation/roadmap.html
As previously mentioned, the call for modern user interfaces is often the main reason behind the search for new technologies and application architectures. Often, companies think about building their front-end with HTML. Despite the obvious advantages of such a set-up, such as centralized web server management, etc., more and more IT professionals tend to focus on HTML's intrinsic disadvantages: low interactivity, problems with page orientation, limitations of the call/response model of HTTP protocol, and the limited state management of web applications. Other arguments against this approach include the limited set of available user interface components and metaphors, and the absence of intelligent data manipulation at the client-side. From the point of view of the developer, HTML applications are difficult to write. State management is located entirely on the server-side and implementation of event handling on the client side results in complex script code, which is hard to maintain. From the users viewpoint, HTML applications appear to have little interaction and are uncomfortable to use.
New features in the Java APIs are mainly focused on the server-side, or in other words, are focused on the model and controller in the MVC architectures. During the last couple of years, however, a few innovative technologies have been introduced for the front-end level such as Java server pages (JSP) and very recently Java server faces (JSF). While these frameworks can resolve a number of developer issues, they won't be able to solve those of the user because user interfaces are still in HTML.
Although HTML can have added value for certain applications, such as interaction with suppliers and customers, most iSeries shops do not regard a web application to be the logical migration path for their business critical applications—applications that were developed specifically for demanding users within their company. For the same reasons, most tools such as screen scrapers, web facers, and GUI'fiers are regarded as "beautifiers" that do not offer any real added value. Moreover, most companies have a lot of questions about the front-end impact of back-end modifications. Most notably, these tools do not intrinsically change the application nor do they offer anything new to the user. The choice for a new front-end technology should at least lead to more functionality for the users, greater interactivity, and a greater intuitive display of data. Critical developers will demand rich-clients for the power users of company critical applications, instead of HTML interfaces.
Is it possible to overcome this lack of a structured framework for rich clients? The framework described in figure 1 is made up of two outer tiers: a presentation layer and an interactive controller, both developed fully in Java. All events triggered at the presentation layer are handled by the interactive controller. The controller will call the appropriate business logic or will steer the presentation layer accordingly. An interactive controller, called a workflow manager, orchestrates the interaction between the user and the back-end system. Notice that the workflow manager fully controls the GUI, which means that the presentation layer will really become a "dumb" client. The controller gives meaning and content to the user's working session.
The presentation layer and workflow have been designed in such a way that they can be separated physically. This means that the middle tier can be hosted on an application server and that the connections to the back-end system can be divided among different users. The application server can also be used for extra functionalities such as starting background processes for print jobs, and the server may be used as an on-line help platform, etc. Because the middle-tier has been completely developed in Java, it can also run on the iSeries, when desired.
The first application that has been built on top of this framework is a graphical applications navigator (GAN). This is a dynamic menuing system which offers users access to different applications. These applications are grouped in tree-like menus and submenus and are called functions in GAN. They are the leaves of the tree structure. The user will only see those functions which he has been authorized too see in GAN. Double-clicking the appropriate function will launch the application. This can be a Java-rich client workflow application, but can also be a link to a web site, web application, or even a desktop application such as Word and Excel. Finally, the full integration of a Java 5250 emulator makes it possible to co-host the GUI environment within the existing 5250 environment. The emulator handles automatic login and can launch the desired 5250 application. Old and renewed applications can be unified in this framework and a simple pass-through function will allow the user to start a 5250 application from his GUI context. All these features turn the combination of the framework and GAN into the ideal evolution platform for every iSeries environment.
In order to let the two outer layers of the architecture communicate with the back-end business logic a connector needs to be written in Java. For iSeries and i5 power server, this connector uses the open source version of the Java Toolbox for AS/400. This toolkit can open all iSeries resources for access over TCP/IP. On the iSeries platform this toolkit connects to the host servers that are standard on the i5/OS operating system. No extra functionality will be needed on the client side over and above what is provided by the Java Virtual Machine. In addition to the existing functionalities of the standard i5/OS toolkit, the Java Connector provides a pooling mechanism to assure that the work management and job scheduling principles of the iSeries are optimally used. The resulting jobs are transparently integrated into the security mechanisms of the iSeries so that the object and adopted authority policies are preserved.
On the Java side, the connector provides the developer with abstract interfaces. In other words, the toolbox is not directly used for the coding of applications. This makes the connector from the workflow manager component universally usable and alternative data sources can be called transparently and even simultaneously. It is therefore possible to retrieve data from relational databases using SQL, or from other Java objects, such as enterprise Java beans (EJB) located on other servers, by means of remote method invocation (RMI). Data can also be retrieved from other applications, through, for example, XML and Web services or through the current, standardized Java connector architecture (JCA).
Parallel to this universal access for the workflow framework, the connector is also responsible for the universal reusability in alternative Java environments. This means that the same iSeries business logic can be reused over the connector in any Java environment. Web applications can easily be created based on HTML, servlets, Java server pages and Java server faces. These web applications can even generate wireless mark-up language (WML) for applications based on PDAs or mobile phones. The connector can also be used to generate XML to build Web services or to convert XML into documents by means of style sheets. The ultimate goal is, of course, to reuse the same set of iSeries business logic routines for all the different forms of presentation.
Besides server consolidation, or the fact that the same hardware can be used for various operating systems, the iSeries can also be used as an "integrated business server" which offers a major advantage to the companies with regards to server management and maintenance. See figure 2.
Fig. 2 Integrated Business Center
These three components, presentation independent iSeries business logic, a rich client framework, and a universal Java connector, make it possible to develop all types of applications according to need. The resulting architecture is presented schematically in the drawing below.
Ultimately, this framework should definitely not be regarded as an "easy way out" solution. It requires the dedication of motivated people and important investments in building up knowledge. The available software products have to be used to their full capacity. It is absolutely imperative to preserve the good things from the past such as the database, business knowledge, security, and to enrich them with the newest ideas and techniques. In this way, SMBs can avoid losing the value of their ICT solutions, which have been built up over a period of many years. For SMBs who feel the need to modernize and enrich their ICT environments, JAWFLOW is an ideal solution because it allows them to do so without running as many risks.
Enterprise application modernization and the creation of modern intuitive, graphical applications is possible with standard IBM software on the i5 power server, and standard and open-source JAVA or J2EE software.
About the Authors
Ludo Dierckx is president of L.D. Consulting, Belgium. He has twenty-five years experience using IBM midrange computers from S/38 up to i5 power server. He has also created several ERP-based concepts on management information through operational systems. Initiated this R&D project in 1999.
Wim Van Leuven, is the research and development manager at L.D. Consulting. He has introduced innovative concepts in using Java and combining with the strengths of i5/OS and ILE languages.
Both authors are regular speakers on IBM and Common conferences.
Dierckx can be reached at firstname.lastname@example.org and Van Leuven can be reached at email@example.com.