|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 V220.127.116.11. 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.
SYS-CON Events announced today that BroadSoft, the leading global provider of Unified Communications and Collaboration (UCC) services to operators worldwide, has been named “Gold Sponsor” of SYS-CON's WebRTC Summit, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. BroadSoft is the leading provider of software and services that enable mobile, fixed-line and cable service providers to offer Unified Communications over their Internet Protocol networks. The Company’s core communications platform enables the delivery of a range of enterprise and consumer calling...
Apr. 17, 2015 09:45 PM EDT Reads: 2,065
VoxImplant has announced full WebRTC support in the newest versions of its Android SDK and iOS SDK. The updated SDKs, which enable audio and video calls on mobile devices, are now compatible with the WebRTC standard to allow any mobile app to communicate with WebRTC-enabled browsers, including Google Chrome, Mozilla Firefox, Opera, and, when available, Microsoft Spartan. The WebRTC-updated SDKs represent VoxImplant's continued leadership in simplifying the development of real-time communications (RTC) services for app developers. VoxImplant (built by Zingaya, the real-time communication servi...
Apr. 17, 2015 09:30 PM EDT Reads: 1,737
SYS-CON Events announced today that GENBAND, a leading developer of real time communications software solutions, has been named “Silver Sponsor” of SYS-CON's WebRTC Summit, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. The GENBAND team will be on hand to demonstrate their newest product, Kandy. Kandy is a communications Platform-as-a-Service (PaaS) that enables companies to seamlessly integrate more human communications into their Web and mobile applications - creating more engaging experiences for their customers and boosting collaboration and productiv...
Apr. 17, 2015 08:45 PM EDT Reads: 2,130
The IoT Bootcamp is coming to Cloud Expo | @ThingsExpo on June 9-10 at the Javits Center in New York. Instructor. Registration is now available at http://iotbootcamp.sys-con.com/ Instructor Janakiram MSV previously taught the famously successful Multi-Cloud Bootcamp at Cloud Expo | @ThingsExpo in November in Santa Clara. Now he is expanding the focus to Janakiram is the founder and CTO of Get Cloud Ready Consulting, a niche Cloud Migration and Cloud Operations firm that recently got acquired by Aditi Technologies. He is a Microsoft Regional Director for Hyderabad, India, and one of the f...
Apr. 17, 2015 07:15 PM EDT Reads: 750
SYS-CON Events announced today that Optimal Design, an Internet of Things solution provider, will exhibit at SYS-CON's Internet of @ThingsExpo, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. Optimal Design is an award winning product development firm offering industrial design and engineering services to the consumer, medical, and defense markets.
Apr. 17, 2015 05:30 PM EDT Reads: 1,551
SYS-CON Events announced today that Vicom Computer Services, Inc., a provider of technology and service solutions, will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. They are located at booth #427. Vicom Computer Services, Inc. is a progressive leader in the technology industry for over 30 years. Headquartered in the NY Metropolitan area. Vicom provides products and services based on today’s requirements around Unified Networks, Cloud Computing strategies, Virtualization around Software defined Data Ce...
Apr. 17, 2015 02:00 PM EDT Reads: 1,287
SYS-CON Events announced today that Ciqada will exhibit at SYS-CON's @ThingsExpo, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. Ciqada™ makes it easy to connect your products to the Internet. By integrating key components - hardware, servers, dashboards, and mobile apps - into an easy-to-use, configurable system, your products can quickly and securely join the internet of things. With remote monitoring, control, and alert messaging capability, you will meet your customers' needs of tomorrow - today! Ciqada. Let your products take flight. For more inform...
Apr. 17, 2015 01:00 PM EDT Reads: 1,440
The 17th International Cloud Expo has announced that its Call for Papers is open. 17th International Cloud Expo, to be held November 3-5, 2015, at the Santa Clara Convention Center in Santa Clara, CA, brings together Cloud Computing, APM, APIs, Microservices, Security, Big Data, Internet of Things, DevOps and WebRTC to one location. With cloud computing driving a higher percentage of enterprise IT budgets every year, it becomes increasingly important to plant your flag in this fast-expanding business opportunity. Submit your speaking proposal today!
Apr. 17, 2015 12:00 PM EDT Reads: 2,036
What exactly is a cognitive application? In her session at 16th Cloud Expo, Ashley Hathaway, Product Manager at IBM Watson, will look at the services being offered by the IBM Watson Developer Cloud and what that means for developers and Big Data. She'll explore how IBM Watson and its partnerships will continue to grow and help define what it means to be a cognitive service, as well as take a look at the offerings on Bluemix. She will also check out how Watson and the Alchemy API team up to offer disruptive APIs to developers.
Apr. 17, 2015 12:00 PM EDT Reads: 1,362
With IoT exploding, massive data will transform businesses with opportunities to monetize almost anything that can be measured. In this C-Level Roundtable Discussion at @ThingsExpo, Brendan O’Brien, Aria Systems Co-founder and Chief Evangelist, will lead an expert panel of consultants, thought leaders and practitioners who will look at these new monetization trends, discuss the implications, and detail lessons learned from their collective experience. Finally, the panel will point the way forward for enterprises who wish to leverage the resulting complex recurring revenue models, adding valu...
Apr. 17, 2015 11:15 AM EDT Reads: 1,337
How is unified communications transforming the way businesses operate? In his session at WebRTC Summit, Arvind Rangarajan, Director of Product Marketing at BroadSoft, will discuss how to extend unified communications experience outside the enterprise through WebRTC. He will also review use cases across different industry verticals. Arvind Rangarajan is Director, Product Marketing at BroadSoft. He has over 19 years of experience in the telecommunications industry in various roles such as Software Development, Product Management and Product Marketing, applied across Wireless, Unified Communic...
Apr. 17, 2015 09:45 AM EDT Reads: 1,514
Buzzword alert: Microservices and IoT at a DevOps conference? What could possibly go wrong? Join this panel of experts as they peel away the buzz and discuss the important architectural principles behind implementing IoT solutions for the enterprise. As remote IoT devices and sensors become increasingly intelligent, they become part of our distributed cloud environment, and we must architect and code accordingly. At the very least, you’ll have no problem filling in your buzzword bingo cards.
Apr. 16, 2015 05:30 PM EDT Reads: 2,091
Internet of Things (IoT) will be a hybrid ecosystem of diverse devices and sensors collaborating with operational and enterprise systems to create the next big application. In their session at @ThingsExpo, Bramh Gupta, founder and CEO of robomq.io, and Fred Yatzeck, principal architect leading product development at robomq.io, will discuss how choosing the right middleware and integration strategy from the get-go will enable IoT solution developers to adapt and grow with the industry, while at the same time reduce Time to Market (TTM) by using plug and play capabilities offered by a robust I...
Apr. 13, 2015 12:15 PM EDT Reads: 1,863
@ThingsExpo has been named the Top 5 Most Influential Internet of Things Brand by Onalytica in the ‘The Internet of Things Landscape 2015: Top 100 Individuals and Brands.' Onalytica analyzed Twitter conversations around the #IoT debate to uncover the most influential brands and individuals driving the conversation. Onalytica captured data from 56,224 users. The PageRank based methodology they use to extract influencers on a particular topic (tweets mentioning #InternetofThings or #IoT in this case) takes into account the number and quality of contextual references that a user receives.
Apr. 12, 2015 04:00 PM EDT Reads: 1,885
SYS-CON Events announced today that Dyn, the worldwide leader in Internet Performance, will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. 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.
Apr. 11, 2015 09:15 AM EDT Reads: 2,209
IoT is still a vague buzzword for many people. In his session at @ThingsExpo, Mike Kavis, Vice President & Principal Cloud Architect at Cloud Technology Partners, discussed the business value of IoT that goes far beyond the general public's perception that IoT is all about wearables and home consumer services. He also discussed how IoT is perceived by investors and how venture capitalist access this space. Other topics discussed were barriers to success, what is new, what is old, and what the future may hold. Mike Kavis is Vice President & Principal Cloud Architect at Cloud Technology Pa...
Apr. 11, 2015 09:00 AM EDT Reads: 6,003
The only place to be June 9-11 is Cloud Expo & @ThingsExpo 2015 East at the Javits Center in New York City. Join us there as delegates from all over the world come to listen to and engage with speakers & sponsors from the leading Cloud Computing, IoT & Big Data companies. Cloud Expo & @ThingsExpo are the leading events covering the booming market of Cloud Computing, IoT & Big Data for the enterprise. Speakers from all over the world will be hand-picked for their ability to explore the economic strategies that utility/cloud computing provides. Whether public, private, or in a hybrid form, clo...
Apr. 8, 2015 02:30 PM EDT Reads: 3,976
The WebRTC Summit 2015 New York, to be held June 9-11, 2015, at the Javits Center in New York, NY, announces that its Call for Papers is open. Topics include all aspects of improving IT delivery by eliminating waste through automated business models leveraging cloud technologies. WebRTC Summit is co-located with 16th International Cloud Expo, @ThingsExpo, Big Data Expo, and DevOps Summit.
Apr. 8, 2015 09:00 AM EDT Reads: 2,268
As Marc Andreessen says software is eating the world. Everything is rapidly moving toward being software-defined – from our phones and cars through our washing machines to the datacenter. However, there are larger challenges when implementing software defined on a larger scale - when building software defined infrastructure. In his session at 16th Cloud Expo, Boyan Ivanov, CEO of StorPool, will provide some practical insights on what, how and why when implementing "software-defined" in the datacenter.
Apr. 7, 2015 12:00 PM EDT Reads: 1,483
While not quite mainstream yet, WebRTC is starting to gain ground with Carriers, Enterprises and Independent Software Vendors (ISV’s) alike. WebRTC makes it easy for developers to add audio and video communications into their applications by using Web browsers as their platform. But like any market, every customer engagement has unique requirements, as well as constraints. And of course, one size does not fit all. In her session at WebRTC Summit, Dr. Natasha Tamaskar, Vice President, Head of Cloud and Mobile Strategy at GENBAND, will explore what is needed to take a real time communications ...
Apr. 6, 2015 10:00 AM EDT Reads: 1,629