Académique Documents
Professionnel Documents
Culture Documents
By Nitin Gaur
Introduction:
IBM WebSphere eXtreme Scale is specifically designed to help applications lower the load they
place on back-end servers, increase availability and scalability, and provide the facilities for
extreme transaction processing. A software layer between an application and its back-end
resources, WebSphere eXtreme Scale accelerates applications by caching objects obtained from
the back-end, providing a customizable, pluggable data fabric framework that allows applications
to share data across a wide range of application scenarios.
This paper attempts to serve as an operational readiness checklist and is designed for
customers and IBM software services community, who are interested in implementing a highly
available and scalable e-business infrastructure using the IBM WebSphere eXtreme Scale.
Through WebSphere eXtreme Scale, customers can postpone or virtually eliminate costs
associated with upgrading more expensive, heavily loaded back-end database and transactional
systems, while meeting the high availability and scalability requirements for today’s
environments. While not an exhaustive list, this paper includes primarily the infrastructure
planning requirements of WXS environment.
1. Grid Servers: These are JVM that will contain grid container. Much like a typical
description of a container in a J2EE™ context, grid containers essentially provide the
grid application services such as security, transaction support, JNDI lookup service,
remote connectivity, and so forth. The grid containers house shard distribution and
placement, and enable easy manageability of the grid infrastructure. Much like other
containers (Web and EJB™ container, for example), a grid container can also take
advantage of the configuration service provided by the WebSphere Application Server
infrastructure in a managed environment.
2. Grid Clients: Clients connect to a grid and are attached to the whole grid. Clients need
to examine the key of application data to determine to which partition to route the request.
Any entity that is attached to the grid with any kind of request becomes a client. The
client directly accesses the partition that holds the data. The location information
regarding the partition is provided by the catalog servers.
3. Catalog Servers: The catalog server is the engine that drives the grid operations. The
catalog server maintains the healthy operation of grid servers and containers. The catalog
server becomes the central nervous system of the grid operation by providing the
following essential operation services:
The above Data Model describes the relationship between the components in an eXtreme Scale
environment.
1. The JVM can be either an application server or a stand-alone JVM and can host many grid
containers. A JVM contains a runtime and a number of containers, usually one.
2. A grid container that resides in a JVM can host many ObjectGrid instances, or many
ObjectGrid instances spread across many grid containers.
3. A MapSet is a collection of maps that are typically used together. Many MapSets can exist in
one ObjectGrid instance.
4. An ObjectGrid consists of a number of partitions. Each partition has a primary shard and N
replica shards.
5. One partition can host many BackingMaps.
6. An ObjectGrid consists of a number of maps, called a mapSet. A mapSet is partitioned using a
key. Each map in the mapSet is defined by a BackingMap.
7. An ObjectGrid can host a set of grid containers. A grid container can only host
shards from one ObjectGrid. This means that multiple ObjectGrids can be started on a single
JVM. Each grid started has its own container within the JVM. Those grid containers will host
shards from the grid as determined by the catalog server.
WXS Infrastructure Planning Considerations:
c. Multi data Center Catalog Server support : Multi data center would imply a
WXS zoned configuration. In a Zoned configuration, usually one catalog server
per zone ( or data center) is a good start.
3. Co-locating Grid client and server (Application and Grid container in same JVM):
a. This is when the ObjectGrid servers are collocated in the same processes where
the servlets run. The WXS session manager can communicate directly to the
local ObjectGrid instance, since it is collocated with in the same server process.
b. When WebSphere Application Server as runtime and grid container, simply place
the supplied objectGrid.xml and objectGridDeployment.xml files into the
META-INF directories of your WAR files. ObjectGrid will automatically detect
the presence of these files when the application starts and will then automatically
launch the ObjectGrid containers in the same process as the session manager.
You can modify the objectGridDeployment.xml depending on which type of
replication (synchronous or asynchronous) and how many replicas you want
configured. This step assumes that your have augmented the application server
profile/instance with WXS.
c. When the grid container is collocated with the enterprise application in the same
application server, the grid container becomes more vulnerable. Issues in the
application (for example, memory leaks, deadlock situations) can bring the grid
container down.
4. Isolating the application from the grid (i.e. application and grid in separate JVMs):
a. Unlike the topology discussed above the server process hosting the application is
different from the server process hosting the JVMs. This is beneficial for the
application with either voluminous HTTP session traffic or relatively larger http
session objects. In this case the WXS session manager, which resides on the
application server process, communicates to a remote ObjectGrid server
processes. In effect the WXS session manager becomes the client, to the Object
grid servers, which are the hosts to grid containers.
b. To use a remote, ObjectGrid, the WXS session manager must be configured to
communicate with the catalog servers and grid servers. The session manager will
then use an ObjectGrid client connection to communicate to the catalog server
and the ObjectGrid servers, wherever they reside. If the ObjectGrid servers are to
be started in independent, standalone J2SE processes, then it is advisable to
launch the ObjectGrid containers using the objectGridStandAlone.xml and
objectGridDeploymentStandAlone.xml files supplied in the session manager
samples directory. This differentiation is to indicate that the HTTP session store
is standalone and isolated. The core functionality of the file remains, i.e. like
objectGrid.xml, objectGridStandalone.xml defines the grid for sessions, and
objectGridDeploymentStandalone.xml defines the mechanics of grid deployment.
b. Supported Transport layer security: SSL Supported and SSL required are two
supported transport Type. SSL required, transportType support was added in
6.1.0.5. SSLv2, SSLv3, and TLSv1 are all considered SSL protocols.For
Transport, One can choose to use Secure Sockets Layer (SSL), TCP/IP or both as
the inbound transport that a server supports. If you specify TCP/IP, the server
only supports TCP/IP and cannot accept SSL connections. If you specify SSL-
supported, this server can support either TCP/IP or SSL connections. If you
specify SSL-required, then any server communicating with this one must use
SSL.
SSL Supported: If you select SSL-supported, then the server opens both a
TCP/IP and an SSL listener port and most inbound requests are received using
SSL
SSL Required : If you select SSL-required, then the server opens an SSL
listener port only and all inbound requests are received using SSL.
Note: you can set the transportType property in the following client and server
security configuration files:
• Client ( application - in Managed WAS env) : The transportType property in the
security.ogclient.props file.
• Container or Grid server or cache server: The transportType property in the
containerServer.props file.
• Catalog Server: The transportType property in the security.ogserver.props file or
containerServer.props file, depending on which file you use.
References: