Enterprise Integration Servers

A typical multi-tier applications involved a front end, middle-tier server, and backend servers. The front end could be a server (web server) that is a client to the middle-tier server. Typically, a web browser is used as the client to communicate with the web server for multi-tier applicaitons on the net.


Tier 2 Servers

Web/Proxy Server

Web server is an Internet server which communicates with clients via Hyper Text Transfer Protocol (HTTP). There are more than 20 web servers on the market. The most popular one is a freeware version named Apache. Attached is the latest Web servers survey from Netcraft:
Developer     01/03           %         02/03       %       Change

Apache      22,045,420      62.23    22,492,327    62.72     0.49

Microsoft    9,739,590      27.49     9,687,454    27.01    -0.48

Zeus           736,744       2.08       768,951     2.14     0.06

SunONE         471,942       1.33       428,004     1.19    -0.14

SunONE (a.k.a. Netscape)

Netscape includes Enterprise Server FastTrack, Commerce, Communications, Netsite-Commerce & Netsite-Communications. Doesn't work on Linux. It runs on all major Unix boxes and NT. It does not come with OS and it allows to install into designated directory that you prefer.

IIS

Microsoft IIS includes IIS, IIS-W, PWS-95, and PWS. IIS comes with NT and you may install it into a designated directory that you prefer after installing NT.

Apache

Apache was originally based on code and ideas found NCSA httpd 1.3 (early 1995). It has evolved into a far superior system which can surpass almost any other web server in terms of functionality, efficiency and speed. In addition, it has been ported to Win32 environment, BS2000/OSD on an IBM 390-compatible processor and AS 400. Open Linux2.3 installs Apache under /home/apache. It is easy to compile and install the latest version of Apache with Apache-XML (Extensible Meta Language) parser to handle XML. Typically Apache is installed under /usr/local/apache. Apache has a Jserv project for providing servlet and RMI capability.

Server Directory Layout and Configuration

Directory Layout
Configuration (httpd.conf)
ServerRoot "/usr/local/apache"
# Dynamic Shared Object (DSO) Support
LoadModule servletexec_module libexec/mod_servletexec.so
Port 80
User nobody
Group nobody
ServerAdmin root@1sa11.bitmotel.com
ServerName 1sa11.bitmotel.com
DocumentRoot "/usr/local/apache/htdocs"

    Options Indexes FollowSymLinks ExecCGI

< Directory >
    Options FollowSymLinks ExecCGI
    AllowOverride None
< /Directory >

ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
AddHandler cgi-script .cgi

Virtual Host
 < VirtualHost www.smallco.com >
    ServerAdmin webmaster@mail.smallco.com
    DocumentRoot /groups/smallco/www
    ServerName www.smallco.com
    ErrorLog /groups/smallco/logs/error_log
    TransferLog /groups/smallco/logs/access_log
 < /VirtualHost >

 Redirect / http://www.apache.org/
The majority of servers configuration on Unix platform can be accomplished with an editor (such as emacs and vi). There are GUI tools for cross platform configuration and management.

Apache Modules

Apache has been designed with 'modular' architecture in mind. Meaning that adding new functions to the server is possible.

Application Servers: EJB

Application servers work hand in hand with web servers. The most noticeable technology is EJB which is a specification published by Sun.

Steps of a typical Web application
Zope is a free, open source application server. Although it is not an EJB technology, it is getting popular in the Linux platform because of its attractive cost and features.
  1. Client (e.g. browser) invokes Web server's servlet via http.
  2. Servlet calls EJB components (See next graphics for more details)
  3. Transact with legacy systems (handled by EJB container or beans)
  4. Generate response in html (Select JSP or not)

EJB's main advantage is to provide the service framework for developers of application servers, transaction process monitors, object request brokers, and database management systems.

Architecture of EJB

The EJB server is the core of EJB architecture. It provides transaction, naming (via JNDI), persistence services, and managing EJB containers. (Note: Some vendors do not distinguish server from container.)

The competing products are:

Major EJB components are:

Feature

Supported through

Component model
  • Session beans
  • Entity beans
Object Persistence
  • Entity beans (EJB containers)
Transaction management
  • JTS/JTA
  • javax.jts.UserTransaction
  • Can be vendor-proprietary
Exception handling
  • Client- and server-side
Security
  • java.security
  • Security-related methods in javax.ejb.EJBContext
  • Deployment descriptor properties (Java security ACLs, RunAs properties)
Naming and directory service
  • Java Naming and Directory Interface (JNDI)
Wire protocol
  • RMI/JRMP
  • IIOP (via CORBA mapping)
  • (Any other distributed protocol)
Support for CORBA
  • CORBA mapping (ejb.idl)
  • CORBA services
Attribute-based programming
  • Deployment descriptor file
Deployment
  • EJB JAR file

EJB feature list

Java Transaction Service

JTS specifies the implementation of a Transaction Manager which supports the Java Transaction API (JTA) 1.0 Specification and implements the Java mapping of the OMG Object Transaction Service (OTS) 1.1. JTS uses the standard CORBA ORB/TS interfaces and Internet Inter-ORB Protocol (IIOP) for transaction context propagation between JTS Transaction Managers. Every enterprise bean must have a transaction attribute setting in the deployment descriptor. The available attributes are:

Java Message Service

JMS is an API for accessing enterprise messaging systems. Many vendors have application server supports JMS such as MQSeries by IBM.

Publish-Subscribe Model

Publishers produce messages into a queue that is consumed by subscribers, for instance, a stock quote. With XML, JMS can use Extensible Stylesheet Language (XSL) to re-format portable data for different subscribers, such as HTML and RTF.

Point-to-Point Model

It is one-to-one relationship between sender and receiver. The sender and receiver can be a one-way or a two-way relationship. In a two-way relationship, one party sends a message and expects to receive a message in return.

JMS Clients

XML

XML is a universal standard for structuring content in e-documents. It is a well-formated and structured ASCII text without proprietary data format. XML is capable of defining new markup languages (such as defining your own tags) without the limitation of HTML. With Document Type Definition (DTD), the rules of XML document can be established and validated to achieve portability. Documentation in a heterogeneous organization may not have the same format. With DTD, all the organizations involved can agree upon the documentation structures using XML/DTD to exchange information. XML is used in EJB deployment descriptor for providing declarative information about the enterprise beans which may contain transaction requirements and information for application server to perform SQL onto database servers. In addition, the Extensible Style-sheet Language (XSL), the Simple API for XML (SAX), the Document Object Model, and the Extensible Linking Language (XLL) are important languages that empower XML with programming and GUI presentation capabilities. With the portable data and portable code features, it makes XML to be a base for portable objects. E-commerce will depend on XML to describe orders, transactions, inventory, and billing.

Summary

Many EJB vendors have built their servers on top of CORBA. OMG, however, is working on EJB components in 3.0 specifications. As a result, this will further confuse the market/industry for selecting a distributed computing environment not to mention Microsoft DCOM/MTS technology. Given the momentum and two heavy weight vendors (Sun and IBM) as the major driving force, EJB certainly positions itself to take over the lead in the distributed environment (CORBA's complexity is another reason). In particular, Java programmers are on the rise and will provide the main resource for EJB.

There are, however, issues concerning enterprise beans compatibilities. Different EJB servers may not communicate with each other since EJB is only a specifications. Not all the vendors will comply with the optional technologies. EJB is still a relatively new technology. (most of the vendors have released their products about 6 months to 1 year old). Overall, the success stories about companies adopting EJB will validate EJB's role in the complicated middleware market.


References:
  • How to Set Up and Maintain a Web Site
  • CA
  • ModSSL
  • SeamLess Web
  • IBM WebSphere
  • eServer
  • EJB Resources
  • The state of Java middleware, Part 2: Enterprise JavaBeans
  • Evaluating Enterprise JavaBean Application Servers
  • Apache - The Definitive Guide by Ben and Peter Laurie
  • EJB Tutorials
  • Introduction to XML
  • Practical XML with Linux
  • Developers Tools
  • Corba
  • Corba FAQs
  • Apache for E-commerce
  • SSI
  • Appache Installation
  • Integrating with PHP
  • PPTP Server
  • App-Serv
  • CGI
  • Apache Wirelss
  • Apache with Suexec Cgi-lib History of Web Installation of a Secure Web Server Security design for Application Protocols AYR Certificate Shopping Cart DHCP PoPTop VPN FUDforum