e-Business Technology Components - PBulletin, October 1999
e-Business Technology Components
Client/Server computing introduced a further level of complexity to software development, deployment and maintenance over traditional host computing. Client/Server applications are 2-tier and require a database on the server, connectivity software and the actual application on the client.
E-Business Application Components
E-Business applications are n-tier applications and require an even more complex environment to execute: Web Browser, Web Server, Application Server, Transaction Server and Database Server. Additional components, Firewalls and Proxy servers are required to ensure security and performance. Other software components enable activity on the Web site to be monitored and the access paths of Web site browsers to be analysed.
N-tier E-Business Application Components (simplified)
In year 3 of the "Internet revolution" (Bill Gates focused Microsoft activities on Internet development in 1996, which made everybody understand how significant the changes would be) there is probably little need to explain the Web Browser and Web Server.
"Application Servers and Transaction Servers" are certainly worth exploring in more detail. The terms have become familiar, but the actual definitions are vague, not least due to the choice of terminology by software vendors.
What are the requirements for Application and Transaction Servers?
Let's have a look at the functional requirements for software that provides an execution environment for application components and why such an environment is needed in the first place.
An E-commerce application, like a shopping site, can be accessed by an unlimited (and unknown) number of users and, unlike a shopping site, has to be available 24x7. Web shoppers don't tolerate error messages stating the unavailability of a shopping site, they simply search for the next site which offers similar products or services AND IS AVAILABLE.
As soon as a user commences a transaction on a web site, e.g. places an order, the integrity of this transaction has to be 100% guaranteed. Web shoppers do not appreciate receiving an order confirmation, in a worst case scenario having money withdrawn from their credit card account, and then not receiving the goods. Transaction integrity, even under erroneous conditions due to infrastructure failures, is of vital importance for a successful E-Business application.
Thus, the execution environment has to provide high-availability with fail-over mechanisms and theoretically unlimited scalability. It further has to provide mechanisms which guarantee the integrity of transactions, even across multiple databases.
Application and Transaction Servers
Application and Transaction servers are the tools which help to fulfil these requirements. The terms should not be used synonymously, but most vendors bundle the two software products together under the heading "Application Server" e.g. Sybase's Enterprise Application Server (which consists of Jaguar CTS, the Transaction server and PowerDynamo the Application server).
The Application Server allows the execution of code modules on the server within the context of a web application, thus offering functionality for dynamic web sites. A "standard" Web Server enables the return of static HTML pages, stored in a virtual system, upon request. The Web Server further offers interfaces to extend its functionality (CGI - Common Gateway Interface, NSAPI and ISAPI - Netscape/Internet Server API - for Netscape or Microsoft Web Servers), which the Application Server utilises. The Web Server routes a request to the Application Server, which processes it and returns generated HTML, which the Web Server sends back to the requesting browser client. MS Active Server Pages (ASP) extends the Internet Information Server (IIS) to allow the execution of code on the server (server side scripting), thus extending IIS to become an Application Server. Sybase's PowerDynamo offers similar functionality, although it is not restricted to one platform only (it supports all mainstream Web servers).
A Transaction server such as Sybase's Jaguar CTS or Microsoft's MTS provides the execution environment for software components whilst offering full transaction control. Other standard functionality includes load balancing across multiple servers and fail-over mechanisms. Transaction servers support one or multiple protocols to communicate with requestors: CORBA, DCOM and Enterprise Java Beans (EJB) are the most prominent. Whereas DCOM is essentially bound to a Microsoft environment (although Software AG has ported DCOM as EntireX into the OS/390 and Unix environments), CORBA and EJB are supported across multiple platforms.
Application Software Components
The application software components, which encapsulate the applications business rules, are executed in the Transaction server and can be developed in a variety of tools such as Java, PowerBuilder, C++ or VB. The key design criteria for the successful implementation of these components are reliability and reusability.
Each components interface (the functions which a component provides along with it's interface syntax) has to be effectively documented to facilitate maximum reusability by the development team and thus return of investment. Further, the designers and ultimately the programmers have to have a clear understanding of transactions and how to maintain their integrity.
Since databases are a critical part of E-Business applications it is essential to develop data models which provide the functionality and flexibility required by the business. Again, data integrity has to be a major consideration when designing the data model.
Security is a very wide and extremely important topic which we will address in more detail in a subsequent article. Measures to protect an E-Business site are as important as offering customers secure methods of completing a commercial transaction e.g. the SET (Secure Electronic Transaction) standard.
Web site activity analysis is another important topic. Analysing statistics about a web site will help to improve its acceptance among the target user community. Again, we will address this topic in a subsequent article.
The technologies for developing and deploying web applications have come of age. A clear conceptual understanding of these technologies and the component approach to software design is essential for the development of successful E-Business applications. Whilst the maturing technology is simplifying the technical challenge, it should not be forgotten that a full understanding of the business requirements and the design of innovative solutions to meet these requirements are the overriding objectives and remain as challenging as ever.