Account Links: Cart | Your Account

Skip to content

Subscribe & Search

  • [ RSS feed ]
  • Search

TAGS/CATEGORIES

MORE INFO

Rate this page del.icio.us  Digg slashdot StumbleUpon

ADP - 2006 JBOSS INNOVATION AWARD WINNER - PERSISTENCE

logo_adp


Category: Persistence
Winner: ADP
Submitted by: Patrick Urban & Nicholas Whitehead
Industry: Financial Services
Geography: Roseland, New Jersey

Overview

Selected for building an AJAX Adaptor for Hibernate that supplies AJAX clients with a rich and high performance data access API and for their use of Hibernate and other JEMS products to improve uptime and reduce cost of their EasyPayNet 5 and TeleNet 1.X Web-based payroll systems.



Download JBoss Innovation Award Submission
Download Presentation from JBoss World Las Vegas 20061. Please describe your company. (Number of employees, private/public, industry, etc.)

  • ADP
  • Business Software & Services
  • 44,000 employees
  • Market Cap: $27.09 Billion

2. Please describe the business and/or technical challenges you faced in this project.

  • EasyPayNet 5 and TeleNet 1.X Application Suites: Web Based Payroll Entry Systems for External (Web) and Internal (Extranet) User Bases.
  • Replacement of existing solution.
  • Migration to new J2EE platform and adoption/deployment of new technology.
  • Replacement had to run in parallel with existing system for extensive parallel run. (Like changing the tires on a moving car)
  • Business Uptime Requirements (99.99%)
  • Very competitive marketplace.

3. What was the desired solution?

  • Adoption of JBoss Application Server starting with 3.2.3 in 2003 provided a higher quality server, more transparency, better support and excellent performance.
  • Implementation of JBoss Clustering for EasyPayNet 4 and EasyPayNet 5 provided seamless HTTP Session failover and dynamic load balancing.
  • Administrative applications that support the EasyPayNet and TeleNet platforms have been migrated to JBoss Portal for ease of development, consistency of interface and support for portlet standards.
  • Developers started migrating to JBoss IDE in 2005.
  • TeleNet persistence architecture enhanced with Hibernate/JBoss Cache for high performance queries and data caching.

4. Please describe your vendor selection process and why you chose JBoss Solutions in the end.

The vendor selection was a straightforward process. A group was formed comprised of management, architects and senior developers. We listed a group of vendors for which there was at least one supporter. (E.g. Pramati was not on the list since no one supported them, BEA was unanimously agreed to be too expensive.) The short list came down to Macromedia (JRun), Oracle, JBoss and IBM. Then we proceeded to list any and all features that could be evaluated or that any member of the group considered important or a factor in evaluation. This list was condensed and categorized.

Each member of the team then ranked the feature from 1-5, 1 being of low importance, 5 being of critical importance. All the scores were averaged out. Then each of the four vendors was ranked by each person on how well they supplied each of the features ranking between 1 and 10 on each. These scores were averaged out and a score for each vendor was calculated by multiplying the feature importance factor by the vendor’s score on that feature and summing up those totals.

Based on this methodology, JBoss won the evaluation. A sample spreadsheet attached illustrates this process. We found it worked well by awarding higher scores to features people though were more important (at the time, J2EE certification was not considered important so it had a lower weight). By the same token, it did force us to consider a wide breadth of features. For example, some research we did indicated that Persistence Power Tier was by far the fastest J2EE server as the time, but we certainly did not want to adopt that server, so it forced us to consider a variety of factors instead of the knee-jerk reaction of “buy the best (most expensive)” or “buy the fastest”.

The process was also backed up by numerous white papers and presentations.

5. What role did Red Hat and/or JBoss products play in the final solution?
With the exception of JBoss Rules and JBoss jBPM, we have implemented and benefited from every piece of the JEMS stack. We have evaluated and prototyped with jBPM, but it has not been implemented in production.

JBoss Application Server:
Currently runs every client facing application in SBS and half of the internal ones.

JBoss Portal: We have eliminated three proprietary web based support applications and centralized all support functions under a JBoss Portal based application. This actually works really well because different teams and different applications have vastly different needs and JBoss Portal allows us to seamlessly integrate portlets developed by various different groups and that administer completely different applications and we are able to deploy them in a way that makes the user think that they are working with one seamless and integrated support application.

Hibernate: Hibernate is a crucial component of the TeleNet system where it manages the persistence of EasyPay’s CRM data. We have benefited from the ease of development, the flexibility and sophistication of Hibernate’s mapping capabilities, the performance of the data caching and we have also developed what we call an AJAX Adaptor for Hibernate which is a custom service designed to supply Ajax clients with a rich and high performance data access API. See Appendix D.

JBoss Eclipse IDE: Now the majority of EasyPayNet and TeleNet developers are using the JBoss IDE and the Hibernate tools have saved us substantial development time through the use of the reverse engineering and HSQL tools provided.

JBoss Cache: JBoss Cache is enhancing the performance and uptime of EasyPayNet and TeleNet in the following ways:

  • HTTP Session Clustering implemented with JBoss Cache provides our users excellent uptime by allowing uninterrupted service even when we have infrastructure or system issues forcing hardware maintenance or downed systems.
  • Hibernate Caching using JBoss Cache is giving us excellent query performance making the TeleNet front end web applications respond perceptively as fast as the green screens they are replacing.
  • JBoss Cache allows us to cache arbitrary content such as serializable JDBC result sets and static reference data saving thousands of trips to the database per minute.

JBoss Transactions: We rarely interact directly with the transaction manager, but we make extensive use of Container Managed Transactions which gives us a simpler architecture, ease of development and excellent data integrity capabilities.

JBossMQ: JBossMQ is used to support the use of J2EE Message Driven Beans implemented to provide asynchronous operations in the application server.

Apache Tomcat:
All of our JBoss based applications but one are web based applications and Tomcat’s support for JSP, Servlets and Struts is used extensively in each web application.

JGroups: We do not make use of JGroups directly but it is the underpinning of the clustering and distributed caching services that have been critical to our success.

6. What was the overall impact of the project on your business? (e.g. improved ROI, increased competitive advantage, better time to market, etc.)

  • Significantly improved application uptime.
  • Expected cost savings to the business from improved data quality, reduced errors, reduced phone calls from clients and an overall reduction in operational costs.
  • See Appendix A and Appendix B.

7. With the savings gained from implementing JEMS, how did you reallocate your cost savings within your company?
Undefined.

8. Please provide a technical description of implementation, including the size of deployment. (i.e. Hardware specs, applications, O/S, databases, etc.)

See Appendix C.

9. Did you leverage Red Hat support services, training, or consulting? If so, please describe your experience?
1.) Since initiating our first support agreement in March 2004, we have opened 39 cases with JBoss support on the JBoss Customer Support Portal. Each case was responded to within the same day and 97% of the issues were addressed in short order. We have been impressed with the effortless ability to have our issues addressed by competent and knowledgeable support staff, including referrals to the actual developers of the components we were having issues with. Resolutions have come several forms including:

  • Correction of our approach or implementation.
  • Defect detection in our own code ranging from core Java code issues to more esoteric uses of JBoss components.
  • JBoss defect identification and subsequent patch releases.
  • Telephone conference calls with JBoss developers at 9:00 PM accompanied by immediate emailed diagnostic utilities and debugging sessions of live code. (Thanks Adrian).

2.) In the early days of JBoss adoption, a number of our developers attended JBoss Advanced training off site. Our experiences in this training were uniformly positive and significantly propelled our expertise and accelerated our productivity as well as making us extremely comfortable with not just the application server itself, but also the core architecture, design approach and philosophy of JBoss and our understanding and use of the JBoss source code itself.

3.) A number of developers have attended additional training courses in Hibernate and jBPM and we have additional training attendance scheduled.

  • Subsequent to the individual JBoss Advanced training we attended, we were collectively so impressed with the value of the training and the pragmatic approach to knowledge transfer, we contracted with JBoss to deliver the same JBoss Advanced training on site and all of our Java Developers attended the training. Feedback to the training was extremely positive and productivity and comfort with the product was measurably enhanced.

10. Do you have advice for other companies facing a similar business challenge?

I recommend our evaluation methodology or something similar:

  • Form a group of stake holders including technical, financial and business representatives.
  • Compile a list of features that are important. These do not need to be limited to technical features. Licensing, pricing, business partnerships, support models, perceived presence in the market and other considerations should be included on the list.
  • Attach weights to each of the items on the feature list.
  • Compile a short list of vendors.
  • Through a process of research and/or short trials, measure each vendor on the feature list you have compiled and measure how well each performs.
  • Factoring and summing the feature weights and vendor measurements will give you an objective scale of each of your evaluated products.
  • Be sure to consider the integration factor. We have found that integration between the different JEMS components provides value above and beyond the sum of the value of the components themselves. For example, we benefited significantly from JBoss Portal’s adoption of the JAAS (Java Authentication and Authorization Service) model in the application server, which we were already familiar with. Another good example is the pervasiveness of supporting services up and down the stack, like Hibernate/JBoss Cache. If your application server, portal and business processing engine are all using Hibernate and reading data from the same cache, you can significantly improve your performance without having to write any of the “connective tissue” yourself.
  • We really believed this was an important way to approach the evaluation. It forces you to really evaluate products based on what is really important to you. There is a certain amount of FUD being broadcast out there, and it can subliminally influence people. As an example, for some time, JBoss was being trashed by the competition for not being J2EE certified. In the long run, they were certified, so the competition had to start looking for other criticisms, but at the time, we encountered some reflexive concerns about the J2EE compatibility. However, upon drilling into what we really though was important, it emerged that we really did not think it had any negative impact on the evaluation at all.
  • Establish some clear expectations amongst the stake holders regarding Open Source. There is still some lingering discomfort amongst a variety of people about Open Source that generates an impediment to evaluating the product clearly. You need to get these concerns on the table as early as possible and discuss them frankly. Typically these concerns will be unfounded (Open Source is not supported) or have been addressed by the vendor (Indemnification). It may also be helpful to research your own organization, looking for instances of other Open Source software. The reality is that it is everywhere, both stand alone and embedded in commercial software. This is not intended as a “gotcha” but rather as an acclimatization effort.
  • The JBoss staff loves giving demos. They have great products, they know it, and they love showing them off. Take advantage of this and really get to know the products you’re evaluating.
  • The software is free to download and there are a wide variety of resources on the web, including jboss.org where sample applications can be downloaded. The more time you can spend test driving the software, the more comfortable you will be making a decision.

  • Appendix A: ROI Estimates for TeleNet Platform

    Actual dollar savings for these items is considerable but confidential.

    TeleNet Phase I
    1.) Improved Quality of Data Entry

    • Reduction in Payroll Reruns by 40%.
    • Significant Reduction in Service Calls
    • Significant Reduction in Operational Costs

    2.) Improved Client Retention
    3.) Accelerated Learning Curve for Users
    4.) Improved Associate Retention

    TeleNet Phase II (Pending)
    1.) Continued Efficiency & Quality Improvements
    2.) TeleNet Front End engineering to predictively prevent known reasons for client service calls.
    3.) Reduction in Operational Costs of Client Service By 25%.

    Appendix B: Application Availability & Uptime Improvements in EasyPayNet

    EasyPayNet 4 was the first version of EasyPayNet to be implemented using JBoss Application Server and the first to be fully clustered for high availability and seamless failover. The graph below presents EasyPayNet application availability trends before and after EasyPayNet Version 4.

    However, the application availability is impacted by a number of factors of which JBoss availability is only one. Less than 50% of the down time of the application is due to actual application server outages. Factoring this in, the uptime for JBoss application server in EasyPayNet 4+ has been consistently over 99.9%.

    Appendix C: Generalized EasyPayNet / TeleNet Application Architecture

    The following is a generalization of the architecture of EasyPayNet and TeleNet. The two applications share a common code base and are used to server external users and internal users respectively. Download the JBoss Innovation Award Submission for diagram


    Appendix D: TeleNet AJAX Adaptor for Hibernate

    The TeleNet application provides some CRM functionality that allows users to quickly track and administer upcoming scheduled events for our customers. During the design process, we analyzed a requirement that involved providing a near free-form query interface to allow the user to list customer events by a wide variety of possible parameters from a web interface. We decided to implement a basic XML based query API that is invoked by JavaScript in the client browser and returns data in XML format which in turn is parsed and bound the UI widgets on the browser screen.

    This allows the browser full flexibility in issuing custom queries for customer events and was easily implemented on the server side using a SAX based XML parser and the Hibernate Criteria Query API. The following is a picture of the TeleNet Event Query Screen.
    The performance and maintenance of data retrieval for this critical part of the application is improved as follows:

    • Relationships between entities and mapping optimizations are managed by the Hibernate mapping files so the front end developers can focus on search parameters.
    • The state of the filter list in the UI can easily be synchronized with the pending request which resides in a DOM. The simple XML structure of the query language is intuitive and flexible with respect to typing, format and scalar vs. array conditions.
    • The use of the background XML-Http requester reduces the amount of network traffic back and forth by not requiring a refresh of the browser screen for each new query. What is observed is more of a client-server style data only request.

    See the JBoss Innovation Award Submission for a picture of the test utility we use to debug XML queries generated by the AJAX adaptor which helps to visualize how the adapter works:

    Comments are closed.


    Copyright © 2007 Red Hat, Inc. All rights reserved.
    Valid XHTML : Privacy Policy : Terms of Use : Patent promise : Company : Contact