HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

Before we start on the technical front, let me tell you about my latest acquisition. I recently went out to purchase a watch. My wife wanted me to buy one of the fancy ones, but I'm more excited by watches that have all the features ­ stopwatch, backlight, barometer, altimeter, everymeter ­ and the time displayed in BOLD DIGITAL NUMBERS. I usually end up using maybe three out of a hundred features, but at least I have them.

But I digress. I thought about where I could get the watch. The amazing thing is that you can buy them in nearly every kind of store ­ superstore, sports store, general merchandise stores, even gas stations. This is just an example of how the market grabs a commodity and merchants make it a part of their standard offering.

The Java application server market is no different. Application servers enable companies to build e-businesses by offering them the tools to do so. They started out by abstracting the interaction with the operating system from the application. Thus they created a new execution environment for industrial-strength distributed applications. The application developers were saved the pain of dealing with low-level system programming details and could concentrate on solving the business problem on hand. As the application server market matured, several of these services became commodity services. The application server vendors embraced standards for the object programming models, transactions, Web access, security, and so on. Consequently, applications developed using application server services became portable across application servers. Java is responsible in a large part for enabling this "cross-appserver" application execution environment. This is because Java provides a virtual platform that is portable across different hardware platforms. Thus Java was used as a base for the object model (EJB) in the application server market. With its penetration into the middleware market, Java has also become the base for defining the APIs for the other app server services mentioned earlier. In fact, the term Web application server is almost synonymous with the term Java application server (Microsoft's application server suite notwithstanding).

The past year has seen a consolidation of several companies that offered different niche services in the app server market. You may have followed this thread of discussion in one of the previous E-Java columns. The current generation of Java application servers offers most of the following environments:

  • Integrated development environments (IDEs)
  • Scripting support
  • J2EE development and execution environments
The Need for Commerce Servers
Existing application server environments allow application developers to develop the business logic for their specific applications. The next stage in the evolution of application servers involves the enhancement of the presentation tier of distributed applications. Scripting using JSPs, ASPs and other similar technologies allows the data generated in the business logic tier to be presented to the users of the application in a format specific to the business the application was built for in the first place. However, scripting is still too low level to completely design the front-end presentation tier. As the demands of the application become more complex, maintaining the content via scripting techniques becomes less manageable. These demands arise as business processes are exposed to the user of the application, and an environment is needed for the user to have a richer interaction with the system. In addition, new requirements arise for the development of reusable components that can be applied to different businesses.

These requirements gave birth to commerce servers, a new breed of application server that offers services for implementing business processes. These servers are application packages that encapsulate functionality for commerce interaction such as buying and selling, collaborations, marketing, shopping and ordering, order management, and order tracking and fulfillment. Commerce servers combined with knowledge servers form the basis for creating portals and exchanges for dissemination of information. These server environments provide the means to enable personalization, membership registration, role-based access, usage trend analysis and market analytics. IBM's Net.Commerce, BroadVision's Enterprise server, Vignette's eBusiness Platform, Allaire Spectra, Microsoft Commerce Server and Oracle iStore are examples of commerce servers. Commerce servers help in developing customer-facing applications and are often found in front-office business technologies. Typical markets targeted by these servers are customer relationship management (CRM) and sales force automation (SFA) in the C2B space.

Commerce servers have existed in the application server market for a while, as stand-alone environments that can be combined with other Java application servers to provide complete customer-facing solutions. The next logical step in the evolution of Java application servers is for the application servers to offer a tighter integration with commerce servers. Going with the current market trend of acquisitions and mergers, this means that the same vendor should offer traditional services offered by Java application servers as well as those offered by commerce servers. This evolution is already taking place. Several of the Java application server vendors are now offering commerce services.

Commerce Services
Before we go into specific examples, let's examine some of the common services usually associated with commerce servers. Typical Java application servers usually don't include inherent support for these services, though they often work in collaboration with products that do. Some services that should be provided by these servers are discussed below.

  • Directory Services: Application servers often provide support for directory services, which are used for authentication and access control for the applications hosted by these servers. Most application servers that support directory services can work with an LDAP-based directory server, which is used for authenticating users and configuring groups with roles around partners and customers across multiple applications.
  • Role-Based Access: Role-based security describes a set of services that allow you, the business manager, to create a set of access rules or set permissions to assign users to activities. Permissions enable different users (or roles) different access to content and activities in the system.
  • Membership Registration: Membership registration is closely tied with directory services and role-based access. Membership registration is a feature of commerce servers that enables the creation of member groups for the purposes of authenticating and authorizing users for using the application in different ways. The registration service causes the members to get associated with a user group, which in turn defines their access permissions and membership privileges. Thus the users get associated with a specific role.
  • Personalization: Personalization is a concept that addresses the ability of an application to offer services customized to the user's preferences and business processes. Personalization includes the ability to perform dynamic profiling and target information to end users based on their interests and behavior. It's also used to track and store user information for use in the delivery of customized content and product information. Most personalization services offer rules-based personalization that implements publishing rules that deliver customized content based on user preference information expressed in the form of personalization rules.

Commerce Server Environments
Commerce servers offer programming and configuration environments used to define the business associated with the application. Some examples of such environments follow.

  • Content management environments: Content management encompasses designing the content, logic, presentation and delivery of an application's Web front-end. This includes content syndication, which allows a business site to share content with other Web sites regardless of format or application environment. Outside content can be brought into the application. At the same time, a business's site assets can be exposed to site affiliates, allowing them to subscribe and define the delivery schedule and format.
  • Commerce component building environments: Commerce servers offer sophisticated tools for building business components that interact with the underlying Java application servers. Such components include standard business components like shopping carts and electronic payment modules.
  • Messaging and workflow environments: Workflow engines and messaging systems interact closely with application servers to provide an execution environment for a business process. Application servers provide an environment for creating abstractions to a particular business task inside a business process. Workflow engines provide a mechanism that allows nonprogrammers to define and model their business process. A single business process leverages one or many business tasks encapsulated by an application server. Application servers use messaging systems to provide distributed asynchronous communications in a publish/subscribe environment, message queuing and guaranteed delivery of messages.

Java: Not a Panacea
Java enthusiasts may say, "But we can do all this in Java." This is certainly true. With the advent of J2EE, several of the business environments can be built using Java APIs and technologies. In fact, JavaServer Pages are touted by Sun as the solution to the presentation tier for e-business applications. The idea is that JSPs can be leveraged to create commerce components for customer-facing businesses. Figure 1 illustrates how Java application servers can use JSPs to create commerce components. JSPs will supposedly separate the programmers from the Web and business development teams. While true, the level of effort involved in creating such components and templates from scratch is substantial. In addition, the assumption is that, going with the open standards trend, these components will be reusable across different platforms running Java. The underlying assumption is that vendors will agree on what is a reusable component beyond the minimum standards and guidelines provided by Java. Although Java is certainly gaining the lead in the middle tier, it isn't the only player. Obviously, Microsoft and other technologies have a fair share of the marketplace. And while Java technologies suggest mechanisms for bridging with other technologies, most of the time this isn't a feasible solution in an enterprise-level solution.

Figure 1
Figure 1:

The market already offers several choices in mature products that offer commerce components and services. A better choice for application developers is to combine these products with Java application servers to provide a comprehensive solution to their business needs. This is already taking place in the market today. Several businesses are building the middle tier of their applications based on Java technologies and are using third-party market leaders for other services needed by their applications. For example, Vignette's eBusiness Platform and BroadVision's Enterprise may be used to provide the commerce services that supplement the middle-tier services implemented in Java application servers such as BEA's WebLogic application server. Figure 2 illustrates how Java application servers can leverage third-party components.

Figure 2
Figure 2:

Java App Servers with Commerce Services
As mentioned earlier, the next logical step for Java application server vendors is to partner with commerce servers to offer comprehensive solutions for e-businesses. Going one step further, these vendors can combine to become one-stop shops for creating end-to-end distributed business applications. Figure 3 illustrates how a Java application server may be used with a commerce server. Such mergers and acquisitions have been in fashion for the past year and the combined product suites are already available in the market today. Some examples of these product suites are discussed below.

Figure 3
Figure 3:

iPlanet ECXpert, Portal Server and iPlanet Application Server
The Sun­AOL (Netscape) alliance has been combining their product offering to offer the iPlanet suite that offers products ranging from Web servers to e-business portals. Two of the recent offerings in this product suite are the ECXpert and the Portal Server. iPlanet ECXpert is an Internet commerce exchange application that enables an enterprise to automate and manage the processes that occur between organizations over the Internet and existing private networks. The iPlanet Portal Server is a portal platform that enables delivery of content, services, business processes and applications in personalized portals. Features offered by the Portal Server include community creation and management; multitiered portal personalization; creation of integrated content, applications and services through customizable portal channels; secure extranet access to portals by mobile/ remote employees and suppliers; and integration with subscription-based external content from AOL/Netscape. These products leverage the iPlanet Application Server (formerly the Netscape Application Server) to provide a comprehensive suite of products.

BEA WebLogic Commerce Server, Application Server
BEA's traditional Java application server offerings have been enhanced with their commerce server, which enables deployment of personalized e-commerce applications that can be modified to meet customer demands or take advantage of new market opportunities. It provides online catalog, shopping cart, inventory management, order entry, order management and shipping components as well as a product recommendation engine that learns customers' behaviors over time. It offers business controls for marketing professionals that enable modification of the behavior of e-commerce applications that define interactions with individual customers ­ including what promotions they receive, what access they have and what content they see. The same controls allow product managers to manage product catalogs dynamically and change pricing policies at multiple levels. BEA's commerce server adds to their popular WebLogic Enterprise Java application server.

Allaire Spectra, ColdFusion and Egipt Application Servers
Unlike other vendors that started with base middle-tier functionality and worked their way to the front end, Allaire's products have expanded from Web authoring tools to a complete enterprise application product suite. Their flagship product is a non-Java application server (ColdFusion) that enables rapid deployment of Web sites. However, in the past year (and this one) Allaire has acquired technologies that should get them entry into the Java application server space, specifically LiveSoftware (JRun) and Valto (Egipt). Since Allaire started from the Web front-end, it isn't surprising that their commerce server, Spectra, is built in-house. Spectra is a packaged system for developing large-scale Web applications. Powered by ColdFusion application server, it spans three crucial application areas ­ content services, e-commerce and customer management. Spectra can be used to design the content, logic, presentation and delivery of the application, workflow and process flow automation, role-based security, personalization, business intelligence and data plus application syndication. Spectra uses the ColdFusion application server to get to its underlying Egipt Java application server.

Bluestone Total-e-Business Suite and Sapphire Java Application Server
Bluestone recently announced Total-e-Business product suite, a comprehensive e-business solution for deploying e-business that addresses foundational e-business platform requirements including infrastructure, integration, content management and personalization. In addition, it delivers a set of e-commerce components typically required for selling goods and services on the Web ­ for example, catalog management, shopping cart and credit card processing.

SilverStream's Advanced Portal Framework and SilverStream Java Application Server
SilverStream recently announced an advanced portal framework solution. Based on their SilverStream application server, it provides core features including Personalization, Content Management, a Component Framework and a library of commerce components. SilverStream's Portal Framework is a part of the SilverStream eBusiness Platform. The Portal Framework offers core commerce features such as user profiling, rules-based personalization, workflow management, caching and content management.

Trading Places
Back to my wristwatch. I ended up buying one with lots of cool features. The good thing about the wristwatch is that all the parts are developed in-house by the same vendor and are a part of the same product. Thus, if my "dual-alarm" feature breaks, I don't have to figure out how it interfaces with the rest of the cool features. The manufacturer knows how these things work together. However, in the case of one-stop shop application server vendors, it's a different story.

The hooks into the Java middle tier for all these commerce products are still the Java enterprise APIs. However, when you go out into the market for a comprehensive product suite, you need to be aware of some caveats. Most of these product suites have been packaged recently and are made up of several disjointed products. Just because a vendor offers the complete solution doesn't mean that the integration between the products is complete or painless. Vendors have gone through several acquisitions to complete the market story, to stay competitive and to drive up the price of their stock. Integrating these products into a single product offering will take time, effort and money. When you shop in the market for a product suite suitable for your needs, use due diligence to make sure you have integration support from the vendor. Sometimes it may be easier to buy mature products from separate vendors and do the integration as a part of your application development.

Author Bio
Ajit Sagar is a member of a leading e-commerce firm in Dallas, Texas, focusing on Web-based e-commerce applications and architectures. A Sun-certified Java programmer, Ajit is also the editor-in-chief of SYS-CON's XML-Journal.
[email protected]


All Rights Reserved
Copyright ©  2004 SYS-CON Media, Inc.
  E-mail: [email protected]

Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.