INTRODUCTION:

In the fast-paced world of e-commerce, businesses are constantly seeking robust and scalable solutions to provide seamless online shopping experiences. One such solution that has gained prominence is HCL Commerce, an innovative platform designed to meet the diverse needs of modern e-commerce. At the heart of HCL Commerce lies its common architecture, a carefully crafted framework that ensures flexibility, scalability, and performance. In this blog, we’ll delve into the intricacies of HCL Commerce Common Architecture, breaking down each layer to provide a comprehensive understanding.

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 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 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 façade, 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.

HCL Commerce application layers

Now that you have seen how the various software components related to HCL Commerce fit together, it is important to understand the application architecture. This understanding can help you to understand which parts are foundation layers and which parts you can modify.

The following diagram shows the various layers that compose the application architecture:

 

Business models:

In HCL Commerce, a business model represents a sample business situation in which the HCL Commerce product might be used. A business model describes a scenario in which various parties use HCL Commerce to achieve their needs. The business models that are provided by HCL Commerce are:

B2B
B2C

Within each business model, HCL Commerce provides starter stores, which might be used as a starting point to develop online sites. You can create other business models to suit your business needs.

Business processes:

Represent the processes available in HCL Commerce divided by business model. The business processes are divided into three areas:

Administrative processes

Processes that are used to administer a site, a store, or an organization. Administrative processes are described generically. These processes are generally used as-is. That is, a change to or an addition of an additional administrative process usually entails customizing HCL Commerce.

Starter stores

Starter stores contain sample processes that would be followed by customers of the store. Many different kinds of stores, satisfying a wide range of business needs can be created with HCL Commerce. Use the processes that are described in starter stores as a guideline, or a starting point, for site development. Changing or adding a process to a starter store process requires changes to the site design. Frequently, this type of change does not require customizing the underlying infrastructure.

Solution

A solution describes the high-level view of how all the administrative processes and starter store processes fit under the overall business model. A solution combines processes into a coherent picture which explains the relationship between the various process groups.

Presentation layer:

The presentation layer is responsible for displaying results. By default, there are two supported types of presentation layers supported: Web and rich client. For the Web presentation layer, the display is rendered using JSP files, whereas, for the rich client the presentation is rendered with Eclipse views and editors implemented using SWT components.

Service layer:

The service layer, implemented using OAGIS messages, is a channel-independent mechanism that can access HCL Commerce business logic. The service layer segregates the implementation of business logic such as order and catalog. This segregation permits the underlying implementation to change without requiring that the caller change. All clients, including Web clients and back-end services, go through the service layer to run business logic. The service layer supports two transport mechanisms: local Java binding and Web services.

Business logic:

The business logic layer is where business rules are implemented independent of the presentation layer. Business logic is implemented using the command pattern. Two types of commands are implemented.

controller commands:

Accessible by the presentation layer and used as a coordinator of tasks.

task commands:

Not accessible by the presentation layer but called from the controller commands. This command type is used to implement business rules.

Persistence layer:

The persistence layer records the data and operations of the HCL Commerce system. The persistence layer represents entities within the commerce domain and encapsulate the data-centric logic that is required to extract or interpret information that is contained within the database. These entities comply with the Enterprise JavaBeans specification.

These entity beans act as an interface between the business components and the database. In addition, the entity beans are easier to comprehend than complex relationships between columns in database tables.

Database schema:

HCL Commerce database schema, which includes over 600 tables, is designed specifically for e-commerce applications and their data requirements. The database schema supports persistence requirements for the HCL Commerce subsystems (Order, Catalog, Member, Marketing, Trading). HCL Commerce supports both DB2 and Oracle relational databases.

Conclusion:

HCL Commerce Common Architecture is a robust and versatile framework that empowers businesses to build and scale their e-commerce platforms effectively. By understanding the nuances of each layer – from the user interface to the data storage – organizations can make informed decisions to optimize performance, enhance security, and deliver exceptional online shopping experiences. As e-commerce continues to evolve, HCL Commerce stands as a reliable foundation for businesses seeking agility and innovation in the digital marketplace.