WebSphere Commerce common architecture
Before examining how the WebSphere Commerce Server functions, it is useful to look at the larger picture of the software components that relate to WebSphere Commerce.
The following diagram shows a simplified view of these software products:
The Web server is the first point of contact for incoming HTTP requests for your e-commerce application. In order to interface efficiently with the WebSphere Application Server, it uses the WebSphere Application Server plug-in to manage the connections between the two components.
The WebSphere Commerce Server runs within the WebSphere Application Server, allowing it to take advantage of many of the features of the application server. The database server holds most of your application's data, including product and customer data. In general, extensions to your application are made by modifying or extending the code for the WebSphere Commerce Server. In addition, you may have a need to store data that falls outside of the realm of the WebSphere Commerce database schema within your database.
Developers use Rational Application Developer to perform the following tasks:
- create and customize storefront assets such as JSP and HTML pages
- create and modify business logic in Java
- create and modify access beans and EJB entity beans
- test code and storefront assets
- create and modify Web services
The WebSphere Commerce development environment uses a development database. Developers can use their preferred database tools (including Rational Application Developer) to make database modifications. WebSphere Commerce supports a one to one mapping between the WebSphere Commerce instance and the WebSphere Commerce database. Running multiple WebSphere Commerce instances against the same database is not supported.
New to this release is the further decoupling of the presentation tier from the business logic tier to better enable support for multiple sales channels. A sales channel is a method that a customer can use to purchase merchandise for example, in-store, from an online store, or from a call center. As shown in the following diagram, requests can enter the WebSphere Commerce Server from different types of clients such as a rich client, kiosk or as a browser request.
WebSphere Commerce is multichannel-enabled, meaning that WebSphere Commerce can support transactions across various sales channels. The framework enhancements in this release support multiple presentation layers, responsible for displaying results, which decouple control logic from business logic.
The preceding diagram depicts how WebSphere Commerce supports two channels: the Web channel and the sales channel. For the Web channel the presentation is rendered using JSP pages and the Web controller layer uses Struts. For the sales channel, the display uses the Eclipse rich client technology. The presentation is rendered with Eclipse views and editors implemented using SWT components. Regardless of the channel, the business logic facade, a generic interface implemented as a stateless session bean, is used by controller calls to invoke controller commands. The command layer is implemented as WebSphere Commerce commands. The persistence layer provides EJB 2.0 support.