HCL Commerce common architecture
Before examining how the Transaction server functions, it is useful to look at the larger picture of the software components that relate to HCL Commerce.
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 Transaction 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 Transaction server. In addition, you may have a need to store data that falls outside of the realm of the HCL 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 JPA entities
- Test code and storefront assets
- Create and modify Web services
The HCL Commerce development environment uses a development database. Developers can use their preferred database tools (including Rational Application Developer) to make database modifications. HCL Commerce supports a one to one mapping between the HCL Commerce instance and the HCL Commerce database. Running multiple HCL 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 Transaction server from different types of clients such as a rich client, kiosk or as a browser request.
HCL Commerce is multichannel-enabled, meaning that HCL 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 HCL 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 HCL Commerce commands. The persistence layer provides JPA support.