IBM Cloud Authors: Zakia Bouachraoui, Elizabeth White, Yeshim Deniz, Pat Romanski, Liz McMillan

Related Topics: IBM Cloud

IBM Cloud: Article

HATS Off to Legacy

Make a great impact in a short amount of time using available resources

Get ready for another acronym - HATS (Host Access Transformation Server). Let's begin with a notional conversation - an "elevator pitch" of sorts - between two IT managers, Jim and Dennis.

JIM: Hey Dennis, I hear that we can now create journal entries from our intranet. How is that possible? Did we contract that same outfit to build us another application?

DENNIS: Not really; we're using WebSphere HATS.

JIM: Never heard of it. What exactly is that?

DENNIS: Oh, it's very slick. It's an extendable framework that can transform legacy application screens into Web browser content - in real time. You can now click your way through journal forms in a browser instead of special-keying your way around the 3270 emulator.

Over 60% of the world's software systems are considered legacy: so-called "green-screen" applications - with line-oriented user interfaces, generally hosted on mainframe-size computers, and implemented in languages like COBOL and RPG. They're likely accessed through special terminals or terminal emulator types such as 3270, 5250, and VT.

Legacy applications typically represent significant investment and tend to support critical business operations. IT organizations are experiencing unprecedented budget cuts, and it would be reasonable to surmise that legacy applications won't be going away any time soon. This is much to the chagrin of many end users and business-unit managers.

While legacy applications are typically "well-oiled machines" that perform their functions efficiently and with predictable response times, their overall presentation and usability often leave a lot to be desired. A line terminal interface can be nonintuitive and difficult to navigate. Furthermore, each legacy application can be limited to a narrow band of functionality - as they were often designed with functional compartmentalization in mind.

This can present a situation in which no single legacy application supports the job function of any given staff member. At best, this leaves users bouncing from one legacy application to another. In the worst case, related information is simply not accessible by the users who would benefit the most, and crude workarounds are sought.

Fortunately, what most organizations actually have is a hybrid environment - one in which legacy systems coexist with a modern enterprise platform (i.e., desktops, browsers, J2EE, .NET, etc.). These organizations can now be offered an opportunity to leverage their legacy systems with their investment in a 21st century enterprise by creating composite applications.

Composite applications draw upon an architectural pattern from which applications are built by combining some new logic with existing applications. WebSphere HATS applications are an example of a specialized composite pattern, one that transforms and combines legacy applications by negotiating with the same interface used by terminal emulators.

HATS is difficult to describe simply and completely, but here's an attempt: HATS provides a set of components to rapidly build, deploy, and launch customized applications that dynamically transform line-oriented interfaces into content that can be presented by a Web browser. Casting aside the details for the moment, this has some very interesting implications. An organization's legacy applications might be made accessible through:

  • An internal intranet and/or portal
  • A public Web site, extranet, or VPN
  • A PDA device such as a wireless Palm Pilot or a Pocket PC
Providing access to legacy content in this manner could not have been seriously considered a short time ago without a major redevelopment effort.


HATS is included in IBM's Host Integration Solution (HIS) offering. It is one of a set of WebSphere Application Server (WAS)-centric components that extend 3270, 5250, and VT interfaces to a standard Web browser (or to custom component). HATS applications perform this transformation according to a predefined rule set and programmed logic. In a grand three-tier context, HATS applications are the user interface, although they can (and often do) extend a business-rule tier or introduce logic of their own.

The term HATS is used in both a development and a deployment context. During development, "HATS" refers to a plug-in within the WebSphere Application Development Studio. Here, "HATS" typically refers to a project that is being developed within the studio. At some point, a completed project is deployed as a HATS application within a WAS instance.

The following HATS terms are used throughout this column.

  • HATS: The complete set of development and runtime components that make up the HATS framework - essentially, the product at large.
  • HATS Studio: The WebSphere Studio plug-in that allows a developer to view a HATS-specific perspective and create HATS projects.
  • HATS project: The complete set of HATS resources and other code that gives definition and form to a HATS application.
  • HATS application: An application (an EAR) generated from a HATS project that is then deployed and used - not unlike any other WebSphere-deployed application.
  • Hosted application: An existing legacy application - as one relates to HATS, a 3270, 5250, or VT emulated application. A HATS application is associated with at least one hosted application. As of HATS Release 5 (the latest), a HATS application can be configured to "connect" to multiple hosted applications, a feature that previously could be leveraged only through the HIS Host Publisher product.
At first look, there is much to appreciate about the HATS framework. During development, the HATS Studio (just another WebSphere Studio perspective) provides a set of wizards to rapidly specify a rule set for native-screen-to-browser-content transformation. At runtime the benefits of any WAS deployed application apply to HATS applications, including:
  • A zero client-side footprint - it's HTML/DHTML within a browser
  • Standard underpinnings (servlets, JSPs, tag library extensions, etc.)
  • Extendibility through J2EE-compliant application services
  • Scalability, including support for load balancing and failover
This article is not a substitute for a technical tutorial; there are plenty of online resources to get you started and provide you with reference material (see the Resources section). The main goal here is to provide a basic awareness of the product: what it does and how it does it, the HATS value proposition, and pointers to more detailed information. Also reference the IBM Web site and/or a representative for more transient information such as pricing, the license model, and product/platform compatibility issues.

A surface knowledge of the following areas would be useful, as they are not explained in detail here:

  • Basic J2EE components
  • The core WebSphere product suite
  • The common incarnation of legacy systems
Beyond a thorough understanding the HATS product, the broader skill set required to execute or lead a HATS engagement through completion is dependent on the level of required customization and the sophistication of the deployment scenario. Extending the list above, some of the skill set areas that might be needed in a more complex HATS engagement include:
  • GUI design and advanced graphics
  • 3-tier Web application design
  • OOD/OOP and advanced J2EE features
  • Advanced WAS deployment
  • Pervasive content delivery
Regardless of the complexity, a successful engagement is most contingent on building the right application - covering the required use cases. With that in mind, someone on the team must have a solid grounding in a unified approach/process to application development.

The Developer Experience - Building a HATS Application

A developer starts the HATS application development process by creating a new project under the HATS perspective. The following information needs to be gathered and provided to the HATS Studio before it can create a complete and working project.
  • Hosted application hostname or IP address
  • Hosted application TCP/IP service port (it's typically 23 - the Telnet service port)
  • The selection of a default page template for all transformation. The HATS Studio provides several examples that can be used and/or customized. (Templates are further described later in this article.)
  • Type of terminal emulation (3270, 3270E, 5250, or VT)
  • If SSL is to be employed for security, know the location of the certificate file.
The HATS Studio will take a few moments to generate the HATS project.

If no screen customization is to be applied, you're done. Assuming that an authentication sign-on sequence is known for the hosted application, testing can commence within WebSphere Studio (or through a deployed application URL, once you've deployed). Let me state clearly that this is never how real-world engagements begin or end. There is rather limited value for a default, screen-by-screen emulator-to-HTML transformation. Also, the standard page templates are quite generic and are not very meaningful to a given Web application (see Figures 1 and 2). Now let's dig deeper.

Once a HATS project is created, the underlying application can be systematically customized through HATS resources and custom Java code. HATS resources are identified and described below. Note: As is typical with WebSphere Studio perspectives, HATS resources can be managed either through easy-to-use designer views or by modifying their native persistent format. Most HATS resources are maintained as XML, JSP, or other markup language.

A HATS project is created and configured with many global settings such as those identified above and those that apply to the runtime transformation on the whole. Examples of such settings include:

  • Existing application details - where it is hosted, what terminal emulation type is used, etc.
  • The default page template.
  • Global text replacement rules
  • Priority ordering of screen customization
  • Basic presentation attributes of HTML "widgets"
A project's configuration is stored as an XML document.

A page template defines the window dressing that is presented with each transformed screen, including:

  • The basic header and footer, which might include the company name, logo, and copyright notices, etc.
  • Standard navigation to other points of interest
  • Style sheets that affect global presentation and behavior: colors, text fonts, mouseovers, etc.
A HATS project is always associated with a default template, but each transformation can be associated with a unique template. A template is typically stored as a JSP file, but tends to contain mainly HTML.

A HATS resource defines two things: the recognition criteria to be used to identify a given screen (or screen type), and a collection of actions to be taken when the recognition criteria is met. Examples of actions performed by a given customization include

  • Applying a transformation
  • Extracting or manipulating the value of a global variable
  • Executing business logic in a Java class
  • "Playing" a macro
  • Presenting a specified Web address (URL)
The lion's share of a HATS application's runtime processing revolves around applying actions assigned to screen customizations. Each screen customization can be applied to all or to only specific screens. Screen customizations are maintained as XML documents.

The action most commonly applied to a screen customization is the application of a transformation to a hosted screen. Simply put, a customization associates screen-recognition criteria with a set of actions to be taken, while a transformation defines how a screen is to be converted to Web content. Transformations are maintained as JSP content.

A close examination of a given transformation will uncover the use of a HATS-specific tag library - mainly to specify how selected areas on hosted screens are to be translated into HTML. The following code snippet is an example of a call to one such tag library, which is used to transform the user password text box in Figure 3.

<HATS:Component type="com.ibm.hats.component.InputFieldExtract"
widget="com.ibm.hats.widget.TextInputWidget" row="7" col="50" erow="7" ecol="69"
label="" componentSettings="" widgetSettings="" />

There is always at least one transformation in a given HATS application, a default transformation that is applied when no screen customization has been triggered. This transformation performs a basic "copy" of screen content and its relative screen positioning. Text is carried over as is, and user input structures are transformed into HTML form elements.

A global variable can be defined and used throughout a HATS application. It can be assigned a value that appears at a specific location on a hosted screen, or it can be set with a literal or programmatic value. The value of a global variable can be set and accessed from virtually every other HATS resource. Global variables are primarily used as a parking spot for values that are truly static and global, and for passing information obtained from a given transformation to another.

A macro is used to automate some interaction between the user and the hosted application. For example, a macro can be used to automatically respond to an application prompt, thereby making that interaction transparent to the HATS application user (since that screen won't be transformed to HTML). In practice, macros are mainly used to skip through and avoid redundant screens or interactions that add no value to the use case being implemented. Macros represent one of the more powerful HATS resources.

A macro is made active by assigning it as one of the actions to be taken during a screen customization. A macro is maintained in an XML document, which defines the prompts and responses to be automated.

A screen capture is an ASCII text (XML) representation of a screen from a hosted application. Developers can create HATS application resources (such as screen customizations and transformations) for captured screens without being connected to the hosted application's network, allowing some implementation to be conducted offline.

HATS at Runtime

Here's what a HATS application does: the HATS runtime engine (class library code) executing on behalf of each deployed HATS application performs the following processing each time a user invokes the URL that requests a given hosted application screen.

First, it iterates through a list of screen customizations looking for a match in the specified screen recognition criteria.

If a match is found, the application performs custom processing as defined in an associated rule set and returns the transformed screen to the requesting user, i.e., it applies all of the actions that were assigned to the matched screen customization in the order specified, such as:

  1. Play a macro
  2. Extract the value of a global variable and pass it to some business logic
  3. Apply a transformation
Otherwise, the application goes on to the next screen customization. If the screen customization list is exhausted without a matching criteria, default processing (the default transformation) is applied, and the screen is returned to the requesting user.

The Figures 1-3 present a visual example of a HATS application at work. This HATS application was created using a sample (for testing purposes, a 5250 emulated hosted application that IBM maintains was used). Figure 1 shows how this application's sign-on screen looks through a typical emulator. Figure 2 shows a default transformation, i.e., without defining a screen customization for this sign-on screen. Finally, Figure 3 shows the sign-on screen presented after a customized Transformation was applied as part of a screen customization (which was triggered when this screen's recognition criteria was met). Notice that only the critical portions of the sign-on screen have been carried over - the text boxes for the user's login and password value. All text has been added as custom HTML content. Notice the rather generic heading and navigation areas that have been defined as part of the selected template for our project.

In the interest of saving space, this demonstration was intentionally terse. We've merely scratched the surface, but by now you should have a good idea of how HATS can be applied to accomplish the basic goal of "Webifying" a legacy application. See the Resources section for pointers to more detailed information.

The good news for prospective customers is that a HATS application can be deployed relatively quickly. A working, demonstrable application can be deployed on day one - and much customization can be accomplished in a matter of days/weeks, but how can the true scope of a HATS effort be estimated? The following factors have been shown to be significant for estimating the effort and time required to design, build, and deploy a HATS application:

1.  Total number of screens composing the target hosted application and the general level of complexity (e.g., depth and breadth of screen hierarchy, screen flow, form content, etc.) of the application

2.  Number of required screen customizations

3.  Amount of custom business or data validation logic that needs to be implemented

4.  Number of varying templates needed to be designed and built

5.  Degree of transformation required across the application - the number of HTML views that:

  • Use a standard transformation
  • Require simple transformation
  • Require complex transformation
6.  Level of the staff's experience with HATS and related WebSphere foundation

7.  Availability of hosted application subject matter experts

8.  Availability of hosted application's test plan

9.  Complexity of deployment scenario:

  • Portal or nonportal?
  • Single or multiple releases of WAS deployed?
  • Single or multiple instances of WAS deployed (redundancy and failover needed)?
  • User access requires VPN/firewall configuration?


HATS provides a very effective workbench for rapidly creating WebSphere-deployed J2EE applications that transform a line-terminal interface into an HTML interface in real time. That says quite a lot, and this column has covered only selected capabilities. As a technologist, I am very impressed with the simplicity and power of the HATS approach. From my perspective, its technical high points are as follows:
  • The HATS Studio allows for very rapid development. In its simplest form, a HATS application (for demonstration purposes) can be deployed in a single day.
  • HATS applications generate thin-client browser content (HTML/DHTML) portable to a range of end-user devices.
  • HATS applications are built on J2EE underpinnings - making them as extendable and interoperable as they need to be.
  • HATS applications are deployed under WAS - making them as scalable and redundant as they need to be.
  • The HATS architecture maintains a solid separation of concerns; existing legacy remains as is, and is "unaware" of the new presentation layer provided by HATS applications.
For organizations currently relying on legacy systems to support their business, HATS offers a clear value proposition. By virtue of a browser or similar device, specific legacy application features can be provided to users who would truly benefit. An organization will realize benefits unique to itself, but here are some general benefits that can cut across all businesses:
  • Short-term ROI
  • Real reductions in operating costs
  • Increased productivity and employee satisfaction
  • Boosted and/or newly realized revenue streams
  • Ability to create differentiation from competition by offering valuable business content to partners, suppliers, and customers.
For technologists, it should be fairly easy to demonstrate HATS as the proverbial "low hanging fruit" that it is - making a great impact in a short amount of time with available resources. In today's environment, that's a tough proposition for decision makers to ignore without some examination. HATS presents a very compelling story to line-of-business and IT managers alike.


  • WebSphere Host Integration Solution: www.ibm.com/software/webservers/hostintegration/features.html
  • WebSphere Host Access Transformation Services: www-3.ibm.com/software/webservers/hats
  • IBM WebSphere Host Access Transformation Server InfoCenter: www.ibm.com/software/webservers/hats/library/infocenter
  • WebSphere Host Publisher: www.ibm.com/software/webservers/hostpublisher
  • HATS-related Redbooks and Redpapers: www.redbooks.ibm.com
  • IBM Global Services Training Course Catalog (SW912 - IBM WebSphere Host Access Transformation Server Introduction): www.ibm.com/services/learning/us/catalog
  • More Stories By Louis Iacona

    Louis J Iacona has been designing and developing software professionally since 1982. He has been employed by organizations such as Bell Laboratories and Bellcore (Telcordia), and has helped start multiple new venture companies. He currently leads the design and implementation of applications deployed under the Websphere HIS and Portal Products.

    Comments (0)

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

    IoT & Smart Cities Stories
    Moroccanoil®, the global leader in oil-infused beauty, is thrilled to announce the NEW Moroccanoil Color Depositing Masks, a collection of dual-benefit hair masks that deposit pure pigments while providing the treatment benefits of a deep conditioning mask. The collection consists of seven curated shades for commitment-free, beautifully-colored hair that looks and feels healthy.
    The textured-hair category is inarguably the hottest in the haircare space today. This has been driven by the proliferation of founder brands started by curly and coily consumers and savvy consumers who increasingly want products specifically for their texture type. This trend is underscored by the latest insights from NaturallyCurly's 2018 TextureTrends report, released today. According to the 2018 TextureTrends Report, more than 80 percent of women with curly and coily hair say they purcha...
    The textured-hair category is inarguably the hottest in the haircare space today. This has been driven by the proliferation of founder brands started by curly and coily consumers and savvy consumers who increasingly want products specifically for their texture type. This trend is underscored by the latest insights from NaturallyCurly's 2018 TextureTrends report, released today. According to the 2018 TextureTrends Report, more than 80 percent of women with curly and coily hair say they purcha...
    We all love the many benefits of natural plant oils, used as a deap treatment before shampooing, at home or at the beach, but is there an all-in-one solution for everyday intensive nutrition and modern styling?I am passionate about the benefits of natural extracts with tried-and-tested results, which I have used to develop my own brand (lemon for its acid ph, wheat germ for its fortifying action…). I wanted a product which combined caring and styling effects, and which could be used after shampo...
    The platform combines the strengths of Singtel's extensive, intelligent network capabilities with Microsoft's cloud expertise to create a unique solution that sets new standards for IoT applications," said Mr Diomedes Kastanis, Head of IoT at Singtel. "Our solution provides speed, transparency and flexibility, paving the way for a more pervasive use of IoT to accelerate enterprises' digitalisation efforts. AI-powered intelligent connectivity over Microsoft Azure will be the fastest connected pat...
    There are many examples of disruption in consumer space – Uber disrupting the cab industry, Airbnb disrupting the hospitality industry and so on; but have you wondered who is disrupting support and operations? AISERA helps make businesses and customers successful by offering consumer-like user experience for support and operations. We have built the world’s first AI-driven IT / HR / Cloud / Customer Support and Operations solution.
    Codete accelerates their clients growth through technological expertise and experience. Codite team works with organizations to meet the challenges that digitalization presents. Their clients include digital start-ups as well as established enterprises in the IT industry. To stay competitive in a highly innovative IT industry, strong R&D departments and bold spin-off initiatives is a must. Codete Data Science and Software Architects teams help corporate clients to stay up to date with the mod...
    At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throug...
    Druva is the global leader in Cloud Data Protection and Management, delivering the industry's first data management-as-a-service solution that aggregates data from endpoints, servers and cloud applications and leverages the public cloud to offer a single pane of glass to enable data protection, governance and intelligence-dramatically increasing the availability and visibility of business critical information, while reducing the risk, cost and complexity of managing and protecting it. Druva's...
    BMC has unmatched experience in IT management, supporting 92 of the Forbes Global 100, and earning recognition as an ITSM Gartner Magic Quadrant Leader for five years running. Our solutions offer speed, agility, and efficiency to tackle business challenges in the areas of service management, automation, operations, and the mainframe.