|
Introduction
There has been lots of press within the industry about application servers or web application servers in recent months. For the industry press and consultants, 1999 has almost become the "Year of the Application Server" with numerous product reviews, articles and reports. There are dozens of web application servers products now available. All of the various product data sheets and brochures include long lists of technology buzz words. They all claim to improve the productivity and quality of your application development environment.
On the other hand, application servers are fairly large and sophisticated products. Many of the products are priced in the thousands or even of tens of thousands of dollars per copy. There is also expense involved in learning and administering a sophisticated new product like a web application server.
So, why should you consider using a web application server on iSeries? That's the question that I'll attempt to address in this article. To start with, I'm assuming that you have an interest in participating in e-Business. If you don't have an interest in e-Business, your ability to compete in the future may be at risk. But its not my intent to convince you of that in this article. I'm also assuming that you have some existing AS/400 programs and data that form a core part of your business operation. With those two assumptions behind us, we'll look at five aspects of e-Business applications that differentiate them from traditional applications:
- e-Business applications are web based
- e-Business applications have different workload characteristics
- e-Business applications require integration of data and programs
- e-Business applications require new approaches to security
- e-Business applications typically demand rapid development
For each of these aspects, we'll take a look at the unique requirements that are raised and how web application servers help you meet those requirements. By the end of this article, I hope you'll recognize that web application servers integrate essential e-Business capabilities; that they are really an extension of your operating system for e-Business; and that if you are doing e-Business, you should use a web application server.
Application requirements
The fact that e-Business applications are web based is probably obvious, but there are some of underlying implications that merit highlighting and further discussion. First, a web based application implies a different user interface. With web applications, you don't have a 5250 "green screen" user interface or even a Windows user interface. Web based applications use a web browser as the user interface. The web browser interprets HTML and Java to render the user interface.
Second, web based applications are built on a different communications infrastructure. 5250, SNA and related protocols don't play on the web. The web is based on IP protocols such as TCP/IP and HTTP.
Lastly, web based applications rely on different programming models. With the web, you no longer build standalone applications. Your web applications are initiated by, and often run within the context, of your web server. There are several different web programming models to choose from including HTML, CGI, Java Servlets, Java Server Pages (JSP), and Enterprise JavaBeans (EJB). You choose from this set of programming models based on your application requirements and you may choose a combination of models.,
How application servers address these requirements
Application servers naturally support web based applications. They provide the services and tools for generation of web user interfaces, they support all of the web related protocols and infrastructure, and they support all of the web programming models. Furthermore, they integrate all of these interfaces, protocols, and programming models into a single product where everything works well together.
Application requirements
With traditional applications, user sessions tend to be very long. In many cases, a user session may begin at the start of the work day and not end until the work day is completed. With an e-Business application, user sessions tend to be much more dynamic. Sessions might last for only a few minutes on average, but many more sessions will be started and ended during a typical work day.
The web also increases the variability of the load on your application. This is particularly true for Internet applications where you do not control who uses your application and, in fact, anyone in the world can access your application at any time.
Lastly, usage of the web has been and continues to grow dramatically over time. With any web based application, you need to plan for significant growth in usage of your application over time.
The fact that the web is world wide and is growing rapidly is exactly what makes it such an excellent opportunity for businesses. However, you need to take these same workload characteristics into account in your application planning and design.
How application servers address these requirements
Application servers address the different workload characteristics of e-Business applications by providing a variety of resource management capabilities such as resource pooling, caching, and clustering. Database connection pooling is one the key resource management functions and addresses needs that arise as a result of dynamic, short duration web sessions. Creating database connections is relatively expensive both in terms of time and server resources. With database connection pooling, the application server creates a pool of database connections ahead of time. When a new client session request arrives, a connection can be assigned from the pool without the delays for creating a new connection. When the short session completes, the connection is returned to the pool for use by another session. Server resource utilization is minimized by not going through the expensive connection creation process over and over. Application servers also may provide pooling of threads, communications connections, and other resources associated with a session.
Application servers also typically provide various types of caching including caching of web pages, caching of Enterprise JavaBeans objects, and caching of data from a database or other programs. Caching can provide significant performance and scalability advantages for your application.
Clustering features are becoming standard fare for application servers. Clustering features allow you to define a "cluster" consisting of multiple copies of an application server on multiple machines (possibly of different types). The cluster provides improved performance and scalability by automatically balancing work load across the servers in the cluster. It also provides improved availability by automatically failing over applications from one server to another when needed. Clustering provides a "single system image" which keeps things simple from an application and client perspective. It also allows you to grow and reconfigure the cluster resources without disrupting your applications or clients.
Application requirements
In most cases you'll want your e-Business application to support high quality "self-service" scenarios. Say, for example, you have a web based "shopping cart" or product catalog and ordering application. You would probably want your application to integrate data from your customer database, so that customers don't have to repeatedly enter their mailing address. You also would probably want to integrate data from your inventory system, so that you could determine whether you have sufficient quantity of an item in stock to fill an order. You might even provide integration by sending a message to your inventory system or inventory personnel when stock for an item goes below a certain value. You may also integrate with a web based application service for credit card validation. Integrating these services benefits the customer by providing them with the service they need when they want it. And, it benefits you by reducing service costs. However, complete self-service requires integration across the different services, applications, systems and data that participate in a transaction If you can't integrate all of the systems in all the scenarios, then some human intervention is required.
Your most significant integration need is likely with your existing AS/400 programs and data. You no doubt have existing AS/400 data and programs that form a core part of your business. These are probably key assets of your business that may have taken many years to develop. They aren't going to go away anytime soon and you're not going to convert everything to Java.
You may also need to integrate with your suppliers and other partners systems. Perhaps, you use EDI today or perhaps you haven't tapped this opportunity to reduce costs yet, but in either case its an area that you should consider as your proceed with e-Business.
You may also wish to consider using web based application services as part of your application. For example, you may use a web based application service for credit card validation before processing a transaction. This is a relatively new concept, but seems to be growing rapidly and could provide advantages for your business.
How application servers address these requirements
Application servers provide a number of capabilities to address these integration issues. First, and foremost, they provide relational database access. You can access data at the database table, row and column level by using the Java Database Connection (JDBC) interface which provides you with a standard, dynamic SQL based mechanism for data access. If you are using EJB, you can use EJB's persistence capabilities for accessing your data in a more object-oriented manner.
Application servers also typically allow you to deal with data that is distributed across multiple databases and multiple servers. With EJB in particular, the application server includes a distributed transaction manager that allows data from multiple sources to participate in a single transaction with the application server automatically managing transaction commitment control.
"Connectors" and asynchronous messaging are provided by application servers for integration of other programming systems. Connectors are frequently provided for integration of other programming systems (e.g., ERP systems). A connector is just a standard interface provided by the application server for this type of interaction. Application servers are also beginning to support the Java Messaging Service (JMS) for support of asynchronous messaging. Asynchronous messaging products, such as MQSeries, provide a powerful "glue" for integration of disparate systems and JMS provides the Java interfaces to make them easy to use from within your e-Business applications.
Of course, you can also use the AS/400 Toolbox for Java with your web application server program. The AS/400 Toolbox for Java is a library of Java classes that provides support similar to functions available when using the Client Access/400 APIs. It uses the OS/400 servers that are part of the base OS/400 operating system to access data and resources on an AS/400 system such as DB2/400, Integrated File System, programs, commands, data queues, print, jobs, messages, users and groups, user spaces, digital certificates, data areas, system values, and system status..
Application servers are typically built on a CORBA IIOP infrastructure. This provides you with a level of integration with existing CORBA system. There are also some products on the market that provide integration with Microsoft COM.
Lastly, application servers are beginning to incorporate XML technology. XML promises to become the standard for data interchange and will be particularly significant for business to business data interchange.
There are typically many "pieces" that need to be integrated in an e-Business application. Exactly which of these pieces you'll need to deal with will depend on your environment and application. The key is to integrate all of these pieces within a transaction to provide a complete self service application. Application servers provide you with the framework to do that. They are the "plumbing" that supports your application and allows you to focus on your application's business logic.
Application requirements
Web based applications introduce some new security requirements. Of primary importance is making sure that your system is protected from accidental or malicious actions. However, to take advantage of e-Business opportunities, you also need to make your application available and useful to your end-users. With an e-Business application, your users are typically much more loosely affiliated with your business and, in fact, you may have users that were previously unknown to you. This balance of opening up your application to a wider range of users while still protecting your assets requires some new approaches to security.
How application servers address these requirements
Application servers provide a number of capabilities for dealing with these issues. They typically provide a separate user management mechanism or user registry. Frequently, application servers provide a mechanism that integrates the user registry with the operating system's user registry. This approach has advantages if your users are fairly closely affiliated with your business and you need to maintain tight control. Applications servers also frequently provide mechanisms for integration with third party directory and authentication systems. This approach has advantages if your users are loosely affiliated or if your application is distributed across multiple operating systems.
No matter how you choose to manage your user registry, you still need to authenticate users before giving them access to sensitive information. For web based applications, basic authentication using a user ID and password and authentication using a digital certificate are the standard mechanisms. Application servers typically support both of these approaches.
After you authenticate a user, you still need to control access to resources and application servers help with this too. Application servers include some kind of access control list mechanism to control resource access based on users and groups. Application servers also typically provide encryption capabilities so that you can protect transmitted data.
Firewalls are a key technology for protecting your web enabled application system. Firewall products are separate from your application server. However, application servers support the protocols such as HTTP tunneling that allow your web enabled applications to work with your firewall.
Application requirements
Once an organization decides that they want to do e-Business, they usually want the application yesterday. The excitement and allure of the new opportunity and the rapid pace of the competition on the web contribute to the "web year" mentality.
For most organizations, development of an e-Business strategy and applications is a series of projects and enhancements, rather than a single task or application. Most organizations want to get started as soon as they can, so they start with some fairly simple applications and add to them over time. Deployment of more advanced web applications might also be delayed until the technology becomes more widely available and affordable. The key point here is that you need to plan for web application development as an ongoing process.
How application servers address these requirements
While application servers can't deliver your application "yesterday", they can help you with these issues in a number of ways. First, application development for web application servers is done with the most modern and productive development tools. The tools available provide integrated development environments that include source code editing, compiling, debugging, etc. from a single rich graphical interface. The tools include wizards and visual composition facilities that allow you to develop application code without typing source code statements.
Second, your application development is based on Java. I have seen estimates of Java productivity improvement (mostly versus C or C++) that range from about 20% improvement to over 100% improvement. Your actual productivity improvement will depend on the experience of your staff, nature of your application, training and tools you provide, and many other factors. However, the evidence seems very clear that you will realize a productivity improvement from Java.
Lastly, web application servers foster component-oriented design which facilitates reuse and improvement of your application over time. The component orientation of application servers starts with the object-oriented nature of Java. The JavaBeans and Enterprise JavaBeans component models further reinforce this component orientation. Furthermore, the individual Java programming models fit together to form a very elegant and effective model-view-controller programming model with JavaBean and/or EJB components as your model, Java servlets as your controller, and Java Server Pages as your view (see http://www.ibm.com//servers/solutions/erp/iseries for further discussion of this model).
For traditional AS/400 5250 applications, the OS/400 operating system provided all of the protocols, tools, runtimes, and other support you needed for application development and deployment. However, as distributed system evolved more infrastructure and tools were needed. Initially, networked or distributed programming required coding low level communications interfaces and protocols. These later evolved into higher level interfaces like sockets to simplify the task. Later still, the evolution continued with remote procedure calls, separate interface definitions and parameter marshaling, naming and directory services, connection management services. Now, distributed programming has evolved into the current concept of a web application server which integrates these services with the web, database, work and transaction management, and clustering to dramatically simplify the task of writing distributed or networked applications. The web application server provides an extension to OS/400 for distributed applications. It integrates all of the essential development and deployment support and it becomes your platform for web applications. The web application server doesn't replace your operating system, but it works with it and extends it to make your web and distributed applications successful. If you are doing e-Business, you should use a web application server.
Which specific web application server product or products you choose will depend on your specific objectives and goes beyond the scope of this article. However, I will introduce some of the products that you should consider.
IBM's WebSphere product family provides a complete range of web application servers and related products. WebSphere Application Server Standard Edition is shipped free with each OS/400 on V4R3 and later. It provides support for many of the capabilities discussed in this article and is an economical choice for fairly simple web applications that don't entail highly advanced capabilities (e.g., complex transactions across multiple databases). For more sophisticated capabilities, you should consider other products in the WebSphere family such as WebSphere Application Server Advanced Edition, WebSphere Performance Pack, or MQSeries. There are also non-IBM application servers available for the iSeries from BEA WebXpress and Bluestone Software.
There are a number of development tools available that you should consider. IBM's WebSphere Studio and VisualAge for Java Enterprise Edition provide the tightest integration with the WebSphere Application server family, but there are also many non-IBM tools available.
- For further information on IBM's WebSphere Application Servers
http://www.ibm.com/software/webservers/
- For further information on IBM's WebSphere Studio
http://www.ibm.com/software/webservers/studio/
- For further information on IBM WebSphere on iSeries
WebSphere Application Server on iSeries Home Page
- For further information about AS/400 Java support
http://www.as400.ibm.com/java/
- For further information about the AS/400 Toolbox for Java
http://www.as400.ibm.com/toolbox/
- For further information about Bluestone's Sapphire/Web
http://www.bluestone.com
|