|By Nitin Gaur||
|February 26, 2010 01:00 PM EST||
HTTP session management is a function offered by Java Enterprise Edition (JEE) application servers. It allows JEE applications to store state information about a given user across many HTTP requests. The JEE specification provides an API to store and retrieve information specific to the given user. WebSphere application servers and other competing products, provide session replication functionality. This is normally done either by writing to a database or through memory-to-memory replication technology. These approaches while extensively used today, have operational challenges and cost implications. HTTP session replication enables for seamless session recovery, in event of an application failure, but we currently do not have a reliable, predictable and cost effective solution to handle session recovery in event of a data center failure. Until now we have discouraged the session replication across cells and data centers primarily due to cost and performance impact. With introduction of WXS' Zone support technology, it is now possible to achieve session recovery in event of a data center failure.
This paper will attempt to discuss the usage scenario and demonstrate the use of WXS as a separate in memory data grid to store http sessions. This paper will discuss history and existing technology and introduces WXS as a technology that differentiates itself, by addressing existing scalability challenges in a cost effective manner. We will also discuss the simplification of technical implementation of WXS grid, which makes WXS a compelling yet simple solution to store HTTP session.
Challenges of storing HTTP sessions?
Many enterprise applications today require HTTP session persistence. This requirement stems primarily from end user expectations, regulatory constraints and/or SLA (service level agreements) commitments. The session persistence provides the application with features such as, handling session state information, high availability of end user sessions and application performance enhancements. WebSphere Application server provides an application infrastructure to ensure efficient session persistence management and configuration. For instance WebSphere Application server provides two distinct mechanisms to persist sessions, they are a. memory-to-memory replication and b. store session object in shared database. While these two mechanisms provide persistence mechanism, there is a need to ensure the validity of session state across clustered application servers. The suggested and accepted approach includes (Brown et al)
Use of Shared database to store sessions
While these options exist to store HTTP session and state beyond the life of an application server or JVM, facilitating high availability, these approaches have challenges of their own. The growth and changing dynamic of the e-business applications, have forced application infrastructure to rethink the session persistence strategies. Some of these growing challenges include:
a. Use of runtime real-estate i.e. application server JVM heap to store session, seems inefficient use of resources.
b. Higher administrative and maintenance costs due to increase in user base and subsequent linear growth in application hosting infrastructure.
c. Performance consideration of storing, replicating and managing state of session objects.
d. Performance consideration due to large session objects in some specific use cases.
The challenges around session storage revolve around performance costs due to serialization of the session object to a database or to other Application servers/JVMs across the network. This performance costs coupled with the management of session state such as replication, updates and invalidation as add significant performance bottlenecks to the application hosting platforms.
Figure 1: memory to memory session replication.
Figure 2: Database session replication.
- Why use WXS?
Websphere eXtreme Scale (WXS) attempts to address these performance considerations by introducing a new technological platform that purports improvised management and replication, thus addressing the challenges imposed by conventional HTTP session persistent mechanism. It is to be noted that while WXS also employs the memory to memory replication of http sessions, it significantly differs from the same mechanism employed by the WebSphere Network Deployment. WXS provides features such as QoS, replication reliability and linear scalability, which is non existent in Websphere ND. WXS distinguishes itself from traditional approaches in the following ways:
- Enabling a grid of JVMs with a sole purpose of storing Http session (or any java) objects.
- Isolating the application runtime from grid runtime, thereby, freeing up the JVM heap for application use.
- Provide linear scalability to accommodate growth, with growth in sessions or size of session objects.
- Providing an implicit replication and management of session objects within the grid.
- <*NEW*> With Zone support enabling storing of session objects across geographically disperse datacenters (and cells), overcoming the traditional limitation of single cell replication.
- QoS and replication reliability: Replication in WebSphere ND is best effort, which implies that consistency and changes cannot be guaranteed. WXS offers a reliable replication mechanism.
Figure 3A: WXS enabled grid for session persistence. Here WXS Grid JVMs are Isolated from Application JVMs
Figure 3B: WXS co-located HTTP session persistence. Here Application and Grid are co-located in the same JVM.
WebSphere eXtreme Scale provides non-invasive integration for HTTP session management, so that the application does not have to be changed. It does this in 2 ways:
a. HTTP servlet filter, a standard part of the servlet specification.
As shown in Figure , the HTTP servlet filter intercepts every request, prior to forwarding the request to servlet or JSP. The servlet filter wraps the HTTPServletRequest and HTTPServletResponse objects that the application developer uses to access the request's session state. The eXtreme Scale HTTPSession object overrides the object normally provided by the default session manager. There is therefore no data duplication between the two session managers, and eXtreme scale provided session manager overrides the WebSphere session manager. The filter ensures that the session data is synchronized with the grid. On each request, if HTTP session attributes have changed, they will be written back into the grid. The WXS enabled HTTP filter presents a choice of storing the sessions in the same JVMs as the servlet containers (collocated) or in a separate grid tier of remote JVMs. Each of these options have their merits and demerits, and should one of the infrastructure design considerations.
The synchronous interaction of the filter and the grid, is also an important design consideration. The synchronous interaction between filter and grid ensures that any change to the http session is immediately replicated to the grid. While this may be a desirable option in some cases, it does have a performance impact. WXS allows a configuration (in splicer.properties file) for this interaction to be asynchronous, where the changes are buffered and flushed to the grid, at defined intervals. It is to be noted that this Syncronous/Asynchronos replication between the filter and the grid, while similar in concept, is entirely different from the replication mechanism configured between the grid servers.
The following steps need to be performed in order to use HTTP servlet filer with WXS:
1. Create the following files and Package it with WAR (Web) Module in the META-INF directory.
- objectGrid.xml :This contains the definition of the grid itself; the maps, locking behavior, plug-ins, etc.
- objectGridDeployment.xml : This contains a description of the grid's deployment; how many partitions, zones, replication strategy etc.
- splicer.properties: This file provides the values used by the addObjectGridFilter script to splice the web module. This is one of the required input parameters for the script that splices the web module with filter declarations. This file contains servlet context initialization parameters such as catalog server host and port, affinity, persistence mechanism, replication type & interval etc. It is to be noted that while this file is not required artifact in the WAR (Web) Module, and only the above mentioned xml files are required, including this file is more for information only.
2. Run the addObjectGridFilter script on the WAR to add the filter to the web.xml file. The addObjectGridFilter script is usually located :
Usage : addSessionObjectGridFilter <location of war/ear file> <location of properties file>
Example: addSessionObjectGridFilter MyWebModule.war splicer.properties
3. When using WXS in a WebSphere ND managed environment, the managed nodes would need to be augmented with WXS (a.k.a XD-DG), and perform step 1 and 2, and deploy the Web Module or WAR to WXS augmented cluster.
b. Use of ObjectGrid client server Topology for embedded applications
This is a variation of the above techniques, in which the application is the client to the WXS grid.
I. Collocating the application with the grid (i.e. same ‘runtime' JVM): 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.
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.
II. Isolating the application from the grid (i.e. application and grid in separate JVMs): 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.
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.
- Zone support
With WXS Zone based replication, WXS allows for rules-based data placement, enabling high availability of the grid due to redundant placement of data across physical locations. This notion is particularly appealing to enterprise environments that need data replication and availability across geographically dispersed data centers.
WebSphere eXtreme Scale introduced zone-based support introduced in V184.108.40.206. Zone support provides much needed control of shard placement in the grid. Zone support allows for rules-based shard placement, enabling high availability of the grid due to redundant placement of shards across physical locations. This notion is particularly appealing to enterprise environments that need data replication and availability across geographically dispersed data centers. In the past these enterprise computing environments were limited due to the performance constraints imposed by networks and real time data replication requirements. With the inclusion of Zone support, WebSphere eXtreme Scale offers better scalability by decoupling the grid environment. With Zone support, only the metadata shared by the catalog servers is synchronously replicated,
While the data objects are copied asynchronously across networks. This not only enables better location awareness and access of objects, but also imposes fewer burdens on enterprise networks, by eliminating the requirement of real time replication.
As long as catalog servers see zones being registered (as the zoned grid server come alive), the primary and replica shards are striped across zones. Further, the zone rules described in the objectGridDeployment.xml file, will dictate placement of sync or async replica shards in respective zones.
As a general practice, it is recommended that you place only sync replicas in same zone and async replicas in a different zone for optimal replication performance. This placement also would be optimal for scaling across geographies or data centers.
Since core groups do not span zones, the catalog server(s) are placed one or two per data center or zones, and the catalog servers synchronize their object/shard routing information. A catalog service must be clustered for high availability in every zone. The catalog servers retain topology information of all of the containers in the ObjectGrid and controls balancing and routing for all clients. Since catalog servers play a vital role in maintaining the catalog service and client routing, it is important to understand the concept of a catalog service quorum. A catalog service quorum is the minimum number of active catalog server members required for the grid system to operate correctly (i.e to accept membership registrations and changes to membership to ensure proper routing and shard placement).
<shardMapping shard="P" zoneRuleRef="stripeZone"/>
<shardMapping shard="S" zoneRuleRef="stripeZone"/>
<zoneRule name ="stripeZone" exclusivePlacement="true" >
<zone name="ZoneA" />
<zone name="ZoneB" />
<zone name="ZoneC" />
Figure 4: Zone meta data from ObjectGridDeployment.xml file, showing single ZoneRule ‘StripeZone' i.e if primary is placed in Zone A, the secondary will be placed in either ZoneB or ZoneC, but not both.
This approach of ensuring the registration and consistency of grid servers is achieved only when a quorum is established between catalog servers. Writes to
the catalog service state are committed only when the majority of the catalog
servers participate in the transaction. Containers that are changing states cannot
receive any commands, unless the catalog service transaction commits first. If
the catalog service is hosted in a minority partition, i.e no quorum established, it
then accepts liveness messages. The catalog servers cannot, however, accept
server registrations or membership changes, because the state is essentially frozen, until the catalog service quorum is re-established.
Figure 5: Two geographically disperse Zones to store HTTP sessions across 2 data centers. Please note that the Catalog Servers are hosted in separate JVMs from Grid containers, and ONLY the Catalog severs are grouped in separate core group. This is done as Zones do not span core groups.
One of the main design concerns of an application and application infrastructure is the session persistence and handling of session state beyond the life of application servers/JVMs. The traditional persistence mechanisms have imposed performance and scalability concerns with growth in business and subsequent requirements. Growth in business usually results in increase traffic, user session and proportional storage requirements. Historically IT organizations have attempted to battle this problem with innovative and complex solutions such as employing various caching layers at the edge for static content, and a separate cache for dynamic content, or by selectively preserving some HTTP Session data and recreating the others. Such strategies while effective in some application environment, have reached maturity level of its growth spectrum. Increasingly complex and de-fragmented application frameworks have compelled the introduction on ‘in-memory data grid' to provide a scalable solution to address the growth of session storage - both in terms of size and volume. The introduction of an in memory grid relieves the constant battle with scalability and provides an isolated layer, whose sole purpose is to store HTTP Session (or any java) objects.
WXS technology enables ‘in-memory data grid' which is essentially a grid of interconnect JVMs, acting as a single cohesive unit, much like a database, without the management and performance overheads. Using WXS for HTTP session persistence is a very non-invasive change to application architecture, as seen in Figure 3, a servlet filer is introduced in the application intercepting requests and connecting to the grid, without any significant change to the application architecture. The WXS enabled grid is policy driven; self managed and can easily absorb growth by inclusion of additional JVMs to the existing grid. WXS thus makes a compelling consideration for HTTP session persistence in the environments that is plagued with performance and scalability woes due to growth in business application traffic. WXS not only addresses the fundamental session storage concerns, but add to the capability of storing session across geographically disperse data centers, independent of WebSphere infrastructure's cell based management boundaries. This capability alone, arms organization with the ability to persist and handle session state across data centers. Such a capability was neither recommended nor technically feasible with existing technologies and solutions. WXS' Zone support thus becomes a distinguishing feature, which sets WXS apart from many competing caching technologies.
1. User's Guide to WebSphere eXtreme Scale - http://www.redbooks.ibm.com/abstracts/sg247683.html
2. Brown et al - Improving HTTP session performance with smart serialization http://www.ibm.com/developerworks/websphere/library/bestpractices/httpsession_performance_serialization.html
3. WebSphere Extreme Scale WiKi - http://www.ibm.com/developerworks/wikis/display/objectgrid/Getting+started
4. Billy Newport's Blog -
I want to thank Joshua T Dettinger and Billy Newport for his help in technical content and editing of this paper.
WebRTC: together these advances have created a perfect storm of technologies that are disrupting and transforming classic communications models and ecosystems. In his session at WebRTC Summit, Cary Bran, VP of Innovation and New Ventures at Plantronics and PLT Labs, will provide an overview of this technological shift, including associated business and consumer communications impacts, and opportunities it may enable, complement or entirely transform.
Oct. 10, 2015 02:15 AM EDT Reads: 759
SYS-CON Events announced today that Dyn, the worldwide leader in Internet Performance, will exhibit at SYS-CON's 17th International Cloud Expo®, which will take place on November 3-5, 2015, at the Santa Clara Convention Center in Santa Clara, CA. Dyn is a cloud-based Internet Performance company. Dyn helps companies monitor, control, and optimize online infrastructure for an exceptional end-user experience. Through a world-class network and unrivaled, objective intelligence into Internet conditions, Dyn ensures traffic gets delivered faster, safer, and more reliably than ever.
Oct. 10, 2015 02:00 AM EDT Reads: 652
WebRTC services have already permeated corporate communications in the form of videoconferencing solutions. However, WebRTC has the potential of going beyond and catalyzing a new class of services providing more than calls with capabilities such as mass-scale real-time media broadcasting, enriched and augmented video, person-to-machine and machine-to-machine communications. In his session at @ThingsExpo, Luis Lopez, CEO of Kurento, will introduce the technologies required for implementing these ideas and some early experiments performed in the Kurento open source software community in areas ...
Oct. 10, 2015 01:00 AM EDT Reads: 757
Too often with compelling new technologies market participants become overly enamored with that attractiveness of the technology and neglect underlying business drivers. This tendency, what some call the “newest shiny object syndrome,” is understandable given that virtually all of us are heavily engaged in technology. But it is also mistaken. Without concrete business cases driving its deployment, IoT, like many other technologies before it, will fade into obscurity.
Oct. 10, 2015 12:00 AM EDT Reads: 176
Today air travel is a minefield of delays, hassles and customer disappointment. Airlines struggle to revitalize the experience. GE and M2Mi will demonstrate practical examples of how IoT solutions are helping airlines bring back personalization, reduce trip time and improve reliability. In their session at @ThingsExpo, Shyam Varan Nath, Principal Architect with GE, and Dr. Sarah Cooper, M2Mi's VP Business Development and Engineering, will explore the IoT cloud-based platform technologies driving this change including privacy controls, data transparency and integration of real time context w...
Oct. 9, 2015 10:15 PM EDT Reads: 146
The IoT market is on track to hit $7.1 trillion in 2020. The reality is that only a handful of companies are ready for this massive demand. There are a lot of barriers, paint points, traps, and hidden roadblocks. How can we deal with these issues and challenges? The paradigm has changed. Old-style ad-hoc trial-and-error ways will certainly lead you to the dead end. What is mandatory is an overarching and adaptive approach to effectively handle the rapid changes and exponential growth.
Oct. 9, 2015 10:00 PM EDT Reads: 249
Who are you? How do you introduce yourself? Do you use a name, or do you greet a friend by the last four digits of his social security number? Assuming you don’t, why are we content to associate our identity with 10 random digits assigned by our phone company? Identity is an issue that affects everyone, but as individuals we don’t spend a lot of time thinking about it. In his session at @ThingsExpo, Ben Klang, Founder & President of Mojo Lingo, will discuss the impact of technology on identity. Should we federate, or not? How should identity be secured? Who owns the identity? How is identity ...
Oct. 9, 2015 10:00 PM EDT Reads: 453
The buzz continues for cloud, data analytics and the Internet of Things (IoT) and their collective impact across all industries. But a new conversation is emerging - how do companies use industry disruption and technology enablers to lead in markets undergoing change, uncertainty and ambiguity? Organizations of all sizes need to evolve and transform, often under massive pressure, as industry lines blur and merge and traditional business models are assaulted and turned upside down. In this new data-driven world, marketplaces reign supreme while interoperability, APIs and applications deliver un...
Oct. 9, 2015 08:00 PM EDT Reads: 320
Electric power utilities face relentless pressure on their financial performance, and reducing distribution grid losses is one of the last untapped opportunities to meet their business goals. Combining IoT-enabled sensors and cloud-based data analytics, utilities now are able to find, quantify and reduce losses faster – and with a smaller IT footprint. Solutions exist using Internet-enabled sensors deployed temporarily at strategic locations within the distribution grid to measure actual line loads.
Oct. 9, 2015 06:30 PM EDT Reads: 143
The Internet of Everything is re-shaping technology trends–moving away from “request/response” architecture to an “always-on” Streaming Web where data is in constant motion and secure, reliable communication is an absolute necessity. As more and more THINGS go online, the challenges that developers will need to address will only increase exponentially. In his session at @ThingsExpo, Todd Greene, Founder & CEO of PubNub, will explore the current state of IoT connectivity and review key trends and technology requirements that will drive the Internet of Things from hype to reality.
Oct. 9, 2015 05:30 PM EDT Reads: 124
The Internet of Things (IoT) is growing rapidly by extending current technologies, products and networks. By 2020, Cisco estimates there will be 50 billion connected devices. Gartner has forecast revenues of over $300 billion, just to IoT suppliers. Now is the time to figure out how you’ll make money – not just create innovative products. With hundreds of new products and companies jumping into the IoT fray every month, there’s no shortage of innovation. Despite this, McKinsey/VisionMobile data shows "less than 10 percent of IoT developers are making enough to support a reasonably sized team....
Oct. 9, 2015 04:00 PM EDT Reads: 252
You have your devices and your data, but what about the rest of your Internet of Things story? Two popular classes of technologies that nicely handle the Big Data analytics for Internet of Things are Apache Hadoop and NoSQL. Hadoop is designed for parallelizing analytical work across many servers and is ideal for the massive data volumes you create with IoT devices. NoSQL databases such as Apache HBase are ideal for storing and retrieving IoT data as “time series data.”
Oct. 9, 2015 03:45 PM EDT Reads: 510
Today’s connected world is moving from devices towards things, what this means is that by using increasingly low cost sensors embedded in devices we can create many new use cases. These span across use cases in cities, vehicles, home, offices, factories, retail environments, worksites, health, logistics, and health. These use cases rely on ubiquitous connectivity and generate massive amounts of data at scale. These technologies enable new business opportunities, ways to optimize and automate, along with new ways to engage with users.
Oct. 9, 2015 02:00 PM EDT Reads: 191
The IoT is upon us, but today’s databases, built on 30-year-old math, require multiple platforms to create a single solution. Data demands of the IoT require Big Data systems that can handle ingest, transactions and analytics concurrently adapting to varied situations as they occur, with speed at scale. In his session at @ThingsExpo, Chad Jones, chief strategy officer at Deep Information Sciences, will look differently at IoT data so enterprises can fully leverage their IoT potential. He’ll share tips on how to speed up business initiatives, harness Big Data and remain one step ahead by apply...
Oct. 9, 2015 01:45 PM EDT Reads: 566
There will be 20 billion IoT devices connected to the Internet soon. What if we could control these devices with our voice, mind, or gestures? What if we could teach these devices how to talk to each other? What if these devices could learn how to interact with us (and each other) to make our lives better? What if Jarvis was real? How can I gain these super powers? In his session at 17th Cloud Expo, Chris Matthieu, co-founder and CTO of Octoblu, will show you!
Oct. 9, 2015 01:15 PM EDT
SYS-CON Events announced today that ProfitBricks, the provider of painless cloud infrastructure, will exhibit at SYS-CON's 17th International Cloud Expo®, which will take place on November 3–5, 2015, at the Santa Clara Convention Center in Santa Clara, CA. ProfitBricks is the IaaS provider that offers a painless cloud experience for all IT users, with no learning curve. ProfitBricks boasts flexible cloud servers and networking, an integrated Data Center Designer tool for visual control over the cloud and the best price/performance value available. ProfitBricks was named one of the coolest Clo...
Oct. 9, 2015 01:00 PM EDT Reads: 805
As a company adopts a DevOps approach to software development, what are key things that both the Dev and Ops side of the business must keep in mind to ensure effective continuous delivery? In his session at DevOps Summit, Mark Hydar, Head of DevOps, Ericsson TV Platforms, will share best practices and provide helpful tips for Ops teams to adopt an open line of communication with the development side of the house to ensure success between the two sides.
Oct. 9, 2015 01:00 PM EDT Reads: 620
SYS-CON Events announced today that IBM Cloud Data Services has been named “Bronze Sponsor” of SYS-CON's 17th Cloud Expo, which will take place on November 3–5, 2015, at the Santa Clara Convention Center in Santa Clara, CA. IBM Cloud Data Services offers a portfolio of integrated, best-of-breed cloud data services for developers focused on mobile computing and analytics use cases.
Oct. 9, 2015 12:00 PM EDT Reads: 744
SYS-CON Events announced today that Sandy Carter, IBM General Manager Cloud Ecosystem and Developers, and a Social Business Evangelist, will keynote at the 17th International Cloud Expo®, which will take place on November 3–5, 2015, at the Santa Clara Convention Center in Santa Clara, CA.
Oct. 9, 2015 11:15 AM EDT
Developing software for the Internet of Things (IoT) comes with its own set of challenges. Security, privacy, and unified standards are a few key issues. In addition, each IoT product is comprised of at least three separate application components: the software embedded in the device, the backend big-data service, and the mobile application for the end user's controls. Each component is developed by a different team, using different technologies and practices, and deployed to a different stack/target - this makes the integration of these separate pipelines and the coordination of software upd...
Oct. 9, 2015 09:00 AM EDT Reads: 300