Typical server and process configuration

Your Product Master system is a three-tier Java™ Platform, Enterprise Edition application. In a typical production system, the web and application tiers are combined on one or more physical systems (application servers).

The application server work station runs a Java application server, typically WebSphere® Application Server. Your system does not run within the context of the Java application server, but as separate process. The third tier, the data store, is a Relational Database Management System (RDBMS) on a separate physical system.

The application server communicates with the data store by using Java Database Connectivity (JDBC) over the underlying network, which is usually TCP/IP over Ethernet. Users interact with the system over the network with HTTP, either through a web server such as Apache or directly with the Java application server.

The system consists of the following services:
  1. admin service
  2. rmiregistry
  3. eventprocessor
  4. scheduler
  5. queuemanager
  6. workflowengine
  7. appsvr service
  8. pimcollector service
  9. indexer service
  10. ML services

The appsvr process is the Java Platform, Enterprise Edition application server. The admin service and rmiregistry services must be run on each system. You can implement load sharing by instantiating one or more of each of the remaining four services on the same or separate physical work stations (except workflowengine service). The pimcollector service interacts with the IBM® Product Master Server to extract item and category data for indexing. The extracted data is then published to the indexer service over a messaging channel. After full indexing is scheduled, the service receives the trigger from the Product Master server to start fetching items from all the existing catalogs, convert them to it into JSON and publish to a queue. The indexer service transforms the item data that is received from the pimcollector service and indexes it to the Elasticsearch. The service uses elasticsearch API endpoints to index catalog items and categories.

Optimizing the application server tier involves optimizing the server hardware for the chosen application server and tuning the Java application server. You must tune your system for your environment and system demands.

Following is an example of a typical system configuration where all services exist on one physical work station.

In clustered environments, tuning involves the placement and number of the services on multiple physical work stations. Following are the requirements for clustered environments,

  • The system binary files that are stored in the $TOP and $TOP/public_html folders should exist on a shared file system such as Network File System (NFS).
  • The Java application server must be installed on local storage where all application servers use the same Unique Identifier (UID) and Group ID (GID) to access the shared file system.
  • In cases where there is a separate web tier, for example, the system uses Apache or some other web server that passes requests to the Java application server. The load that is placed on the system by the web server can be assumed to be negligible.

Following is an example of a clustered system configuration with multiple work stations with multiple services.

Multiple application servers