XAL stands for XML Abstraction Layer. XAL is a toolkit for converting TIBCO Object Service Broker text-based applications to web-based or GUI-based applications, with little or no modification of the text-based application code.
The primary difficulty faced by customers when first adopting OIG is that TIBCO Object Service Broker applications frequently have a great deal of display logic embedded in the business portion of their code. To use the business logic from such an application, much of the code must be restructured to separate the business logic from the display logic.
What XAL provides is an ability to run a web site or a dedicated GUI application, using only the data and metadata that exists in the TIBCO Object Service Broker screens of a text-based application. This provides a way for users to benefit from OIG immediately, while beginning to modify their applications.
XAL works by starting the text-based application in an OIG session. The XAL framework is invoked just prior to the application relinquishing control at the DISPLAY statement, and again just prior to its regaining control. In the intervening period the screen data is encoded in XML and sent to the client along with any SCREEN or SCREENTABLE metadata required. During this period the XAL framework is available to service a wide variety of requests from its client, including, but not limited to, requests for metadata relating to the currently displayed screen.
The XAL client, which is constructed on top of the OIG client, is able to modify the screen's XML-based data in any way supported by a TIBCO Object Service Broker screen before returning it to the XAL framework for consumption. Things like field display attributes are all taken care of by XAL and are available, on request, in the client tier. The client supports data tables to which GUI controls can be bound in the normal way. See the source code for the XAL sample application for data binding examples.
Because a web browser is similar to a text terminal in its mode of operation, it is expected that most XAL applications are web applications. To that end, XAL is designed to work with web application servers and a sample web application is provided with XAL.