|On this page:|
� Big companies love application servers
� Application servers
� Messaging Middleware
|Three Tier Architectures||home - top of the page - email|
The absolute majority of business application today can be described
as consisting of at least 3 layers (3-tier architecture):
|� Front-end (text, forms, etc.) - delivering and presenting
the data, getting input from the user. This layer also called "client"
and can be done differently, for example: browser, Java application,
MS Excel, etc. Web server is usually also included into this layer.
� Middle - some programms connecting the front-end with the back-end. These programs can be written as scripts (shell, Perl, Tcl ,etc.), scripts imbedded into templates (JSP, ASP, PHP, etc.), compiled programs (C-CGI programs, C++, Java), beans or servlets running inside applications servers (Java servlet containers and application servers, etc.). There are many options here - see below.
� Back-end - data (database, SQL).
Sometimes to achieve independence of the back-end database and of the front-end browser / mobile client, developers add extra abstraction layers on both sides:
� presentation objects layer
� Middle - logic
� bus. objects layer
� Back-end - data
Architecture of business applications mostly vary in how the middle layer is implemented.
� Sometimes it is implemented as simple CGI scripts (written in shell
or Perl or even in C).
� Sometimes middle layer is imbedded into the front layer:
- Tcl script imbedded into AOL web server
- Perl scripts imbedded into Apache web server with mod_perl module
- C-extensions for Netscape Enterprise server
- java applet in the browser talking directly to the database
� Sometimes it is imbedded into the back end (like Oracle or Sybase).
� Sometimes it is implemented as an independent middle-layer server
- Fast CGI
- Java servlets container
- Application server (running Java servlets, JSP, EJB)
This list can go on and on (Microsoft's ASP, Open Source PHP and Zope, etc.)
In real life you can see more than 3 layers. For example you can
see something like this:
Browser �- web server �- servlet �- XML >> MQSeries_Messaging << XML �- Appl.server �- Database
|Big companies love application servers||home - top of the page - email|
|Big companies love application servers (AS).
AS-s are usually big programs designed to run Enterprise Java Beans (EJB),
Java servlets and JSP.
The big promise of AS-s is to make it easier for programmers to develop and maintain big distributed enterprise systems. This is accomplished by putting a lot of responsibility on the AS. Things like naming service, support for distributed operation, support for transactions, messaging, persistence, fine-granulated security access, etc.
Looking into the future, Java and AS-s seem like a very good choice. But today using AS-s is a difficult task.
Here are some negatives as of today:
| - AS-s usually consume huge amounts of CPU and memory.
And even given latest fastest servers, they are still slow.
- Using AS-s is very expensive. They may cost $30,000 and more per CPU. With average installation having 4 computers, each having 4 CPUs - we come to $500,000 just to install the software. Plus you need a good database. Plus you need a bunch of expensive Java consultants to make the whole thing work. So only big companies (mostly financial) can afford to use AS-s.
- AS-s are not very easy to program. It takes substantial time to develop a system. There are many reasons why. As-s are just too new on the market. They are growing and changing very fast. There is always a deficit of books and qualified specialists. It is difficult to find answers to your questions on the Internet. No convenient development tools. Incompatibility between different AS-s.
- AS-s are still not very reliable. And not very convenient. For example, IBM's Web Sphere has an administration console which can't work with many developers simultaneously.
Many developers believe that using AS-s gives more problems than provide
benefits. A very clear analysis is done by Phillip Greenspun: www.arsdigita.com/asj/application-servers.
On the other side, they can already be successfully used for distributed
applications in large companies.
|Application Servers||home - top of the page - email|
|So, large companies use expensive application servers (AS) as a middle layer between the web server (as front end) and database (backend).|
Review of several AS-s: webreview.com/wr/pub/app_servers
� WebLogic - www.weblogic.com/ = www.beasys.com/= Java application server
(see more on my WebLogic page.)
� Dynamo Application Server 4.0 (DAS) http://www.atg.com - Art Technology Group, Boston, MA
� http://webreview.com/pub/p/Dynamo_Application_Server_4.0_(DAS) - read review
� IBM WebSphere - www.software.ibm.com/webservers
� Oracle Application Server - www.oracle.com/asd/oas/oas.html
� iPlanet (Netscape/Sun) Application Server (former Kiva) www.kivasoft.com
� nas_fsq.html - NAS Frequently Searched Questions
� http://docs.iplanet.com/docs/manuals/enterprise.html - NES docs
� Silver Stream - www.SilverStream.com
� Sun NetDynamics AS - www.netdynamics.com/
� Sybase Enterprise AS - www.sybase.com/products/application_servers/
� Microsoft MTS - www.microsoft.com/
� Cold Fusion - www.allaire.com
� EJB (Enterprise Java Beans) - java.sun.com/products/ejb
� Hahtsite - www.hahtsite.com
� www.resonate.com/ - site management (load balancing, advanced traffic management and service level control)
|Messaging Middleware||home - top of the page - email|
There are 2 ways how applications can talk to each other:
1. Connecting point-to-point (Internet sockets) and talking in real time.
2. Sending messages (similar to sending email) - via a 3rd party products like Tibco, MQSeries or others.
Messaging services have advantage of de-coupling parts of the system, thus making it more robust and easy to program and maintain. You can use different type of messages (for example, broadcasting, publish-subscribe, guaranteed delivery, etc.)
Lately all vendors of messaging services rush to announce that their
products are JMS compliant.
JMS stands for Java Messaging Service. It is NOT a product - it is just a standard API (like JDBC for databases).
Today's favorite approach is to use XML messages to pass data and for remote procedure calls (RPC) and callbacks. Notable implementation of this philosophy - .NET from Microsoft, SOAP.
Before XML took over, the favorite way of communication was by exchanging objects - CORBA, RMI (Java only), COM/DCOM (Windows). This method was more difficult in programming and maintenance, because it usually requires that both sides have the same version of software for binary compatibility.
Some links for finding out about asynchoronous events and messaging
� CORBA Event and Notification Services at the OMG (Object Management Group)
� CORBA Based Event Architecture (COBEA) from the OPERA Group, University of Cambridge Computer Laboratory
Workshop on Internet Scale Event Notification:http://www.ics.uci.edu/IRUS/twist/wisen98/
Workshop on Internet Scale Namespaces:http://www.ics.uci.edu/IRUS/twist/twist99/
� Hewlett-Packard's E-Speak architecture
Message Oriented Middleware (MOM) / Asynchronous Messaging:
� IBM MQSeries. IBM also a lot of useful information on MQSeries in their collection of free IBM Redbooks which provide technical and marketing information on their products. There is also a redbook related to "patterns for e-business" at the Redbooks site.
� Sun's Java Message Queue (JMQ),
� Microsoft Message Queue (MSMQ),
� objectEvents ??
� Middleware.org: Includes information on Message Oriented Middleware and Message Queueing Middleware
� Distributed Computing online
� DSOnline ??
� www.search400.com/ - place to search
� www.sybase.com/products/middleware/ - Sybase Middleware Products
� BEA Systems, a developer of middleware products, provides a publication called Inside Middleware.
� OpenLink Software offers middleware products that support Open Database Connectivity (ODBC), allowing applications to access multiple databases using SQL queries. OpenLinks also supports Java Database Connectivity (JDBC) and Universal Database Connectivity (UDBC).
� XIPC is middleware from Level 8 Systems that manages multi-thread process communication across a distributed network (MOM - "message-oriented middleware").
� ORBIX - http://www.iona-iportal.com/suite/orbix.htm
� www.internet2.edu/html/middleware.html - Internet2 Middleware - consortium by over 170 universities.
� www.compaq.com/products/software/middleware.html - Compaq
� www.research.ibm.com/Middleware2000/ - Conference
- Sun's messaging product
� www.gii.co.jp/english/wg4842_ms_middleware_messaging.html - report
Companies: BEA Systems, BMC, Candle, CommerceQuest, Integrasolv, IBM, Landmark, Level 8 Systems, MQ Software, New Era of Networks, SAP, Software AG, Saga Software, STC, Tibco
� www.gii.co.jp/english/wg4842_ms_middleware_messaging_toc.html - toc of report
Middleware-and-Messaging-Systems.html - middleware links
� www.middlewarespectra.com/abstracts/8_94_01.htm - Middleware Spectra - by Spectrum Reports
Embedded_System_Tools/40330.html - iBus messaging for Java
� www.roguewave.com -
Rogue Wave components (cross platform C++ components, middleware, XML,
|Tibco||home - top of the page - email|
� www.tibco.com - TIBCO
Inc. - messaging system. No central server - it is a distributed
system. Typically $4K/box software, for faster service typically uses separate
network (2nd netowrk cards in the computers) - UDP.
Tibco is a provider of real-time infrastructure software for the Internet and enterprise that enables business to dynamically link internal operations, business partners and customer channels.
� http://www.rv.tibco.com/filetran/index.html - downloads, documentation
TIBCO Enterprise Transaction Express(tm) (TIBCO ETX(tm)) software
extends TIB functionality to provide a transactional form of publish/subscribe
for distributed organizations. It is being adopted by financial institutions
seeking secure, real-time, guaranteed data delivery across applications
in heterogeneous computer environments.
|MQSeries||home - top of the page - email|
Probably the best is messaging, and ~70% of messaging market belongs
to IBM software called MQSeries.
� http://www-4.ibm.com/software/ts/mqseries/about/ - The IBM MQSeries family provides an open, scalable, industrial-strength messaging and information infrastructure (covers 66% of this niche market):
Main idea - exchange messages using a big central messaging server.
- MQSeries messaging (Heterogeneous any-to-any connectivity from desktop to mainframe (over 35 platforms supported). Assured one-time delivery. Has 65% market share, used by over 7000 customers, including 70 of the Fortune 100 and two thirds of the world's leading banks. More than 350 of IBM's top 500 customers use MQSeries. One major US organization uses MQSeries to transmit over 250 million messages per day. There are more than 2000 Certified MQSeries Specialists working for more than 650 different companies worldwide.)
- MQSeries Integrator - centralizes and applies the rules for operating your business (simplifies adding, extending, or replacing applications in an MQSeries network, applies intelligent routing, adds application-to-application message transformation, supports custom built and predefined application libraries, supports PeopleSoft GL, SAP R/3, and S.W.I.F.T. templates from New Era of Networks Inc. (NEON))
- MQSeries Workflow enables you to capture, visualize, and automate your business processes (MQSeries & XML).
Len Gilman's Distributed Computing with IBM MQSeries
Alan Dickman's Designing Applications with MSMQ
|Citrix server||home - top of the page - email|
- www.citrix.com/ - Citrix
Systems, Inc. offers today's version of a mainframe dumb-terminal architecture.
The application runs on the Citrix MetaFrame server (Windows
Terminal Server or Unix). Special technology (ICA - Independent
Computing Architecture) is used to deliver the screens to the client,
and to deliver client's actions (mouse movements, key pressing) back to
the application on the server.
- Very low bandwidth requirements (as low as a 28.8Kbps connection)
- Any client platofrm can be easily supported (Win32, Unix, Mac, handheld, etc.).
- Security (RSA RC5 encryption).
Program Neighborhood: control which users have access
to specific applications, and �push� the applications out to the ICA Client.
Citrix Nfuse® - dynamically �pushing� applications out to users without the need of the full ICA Client. Using nothing more than a web browser, users can receive customized dynamic application lists, by user, and run these applications directly from their web browser.
Citrix Load Balancing Services - to create distributed server �farms� (for load balancing & redundancy in the event of a failure).
- a 14 pages brochure
- http://www.altotraining.com/Systems/Courses/CTX410.asp - training
- http://www.atrioncomm.com/solutions/citrix.htm -
- http://www.integtech.com/products_citrix.htm -
ICA = Citrix's Independent Computing Architecture:
- http://www.newtechgrp.com/resources/thinclientsrvr/thin_ica.htm -
- http://www.citrix.com/products/clients/ica/technology.asp -
- http://www.ucalgary.ca/library/access97/darnell/tsld004.htm - ICA also known as "Intelligent Console Architechture"
Microsoft Windows Terminal Server (WTS) is a server program running
on its Windows NT 4.0 (or higher)
operating system that provides the graphical user interface (GUI) of the Windows desktop to user terminals that
don't have this capability themselves. The latter include the relatively low-cost NetPC or "thin client" that some
companies are purchasing as alternatives to the autonomous and more expensive PC with its own operating
system and applications. The Windows Terminal Server was code-named "Hydra" during development.
|Marimba||home - top of the page - email|
� http://www.marimba.com/ - Marimba
Inc. - software to distribute, manage, and maintain applications over
corporate LANs (including mobile devices). Distributing and
managing of mission-critical applications, documents and data. Distribution
may use encryption, authentication and digital certificate technologies.
Examples of usage:
� distribute applications in any major languages including Java, Visual Basic, C/C++, and SmallTalk.
� distribute MS Office to a desktop using Castanet or a WTS server using Timbale. Marimba's Application Packager accurately tracks intricate DLL and registry changes within Windows applications to ensure successful distribution and management of applications and updates.
Marimba committed to standards:
� W3C standards,
� Microsoft OSD (Open Software Description) -a compact software language for describing the contents and dependencies of software packages
� in-house technology called DRP (Distribution and Replication Protocol) - a W3C draft.
� the Castanet product family - a robust framework to distribute, update and manage applications and related content over corporate Intranets, extranets and the Internet to multiple endpoints.
Also there are DocService, and Timbale product family.
� http://www.marimba.com/products/products.htm - Marimba products and services
|p2p||home - top of the page - email|
- The O'Reilly Peer-to-Peer and Web Services Conference - Washington, D.C.
-- September 18-21, 2001
� http://jxtaperl.jxta.org/project/www/docs/DomainFAQ.html - Project JXTA - technologies for distributed network computing using peer-to-peer topology. Project started at Sun - and then posted under the Apache Software License.
� http://jxtaperl.jxta.org/servlets/ProjectHome - JXTA in Perl
|Tivoli||home - top of the page - email|
� www.tivoli.com/ - Tivoli Systems is an IBM-owned soft.devel. company. Tools to help large organization to keep track of and upgrading computer equipment and various levels of operating systems and applications.
- E-business infrastructure management
- E-marketplace solutions
- Industry-specific solutions
- Service provider capabilities
- Availability and application management
- Network management
- Operations management
- OS/390 management
- Pervasive management (management of mobile devices and point-of-sale terminals)
- Storage and storage area network (SAN) management
- Security management
- Service management
- Web management