Bidirectional layout transformation (or bidirectional conversion)

Different systems and applications assume different bidirectional text layouts.

Earlier zSeries applications, for example, usually assume that bidirectional text is stored in visual order (with various other bidirectional attributes). Most zSeries software infrastructure was developed before common use of the logical ordering scheme and therefore ignores its existence. Newer development platforms, such as Windows or Java™/Swing, assume that bidirectional text is stored in a logical order and reorders the text for presentation according to a bidirectional algorithm generally following the one specified by Unicode. Most of the base software that is written on these platforms is not designed to support data that is stored in visual order. Because of these platform differences, exchanging bidirectional data between zSeries and Windows or Java/Swing platforms requires bidirectional text layout to be transformed to display, edit, or use the data on the target system. This process of transforming bidirectional text layout between incompatible systems is called bidirectional conversion.

Many existing client/server applications assume that bidirectional conversion is the responsibility of bidirectional developers. This assumption causes problems of incompatibility and limitations because of the different algorithms that different developers use to make the conversion.

The Developer for z/OS® bidirectional language support tools free bidirectional developers from this task to save development effort and make bidirectional software more portable. These tools consist of a user interface for specifying host (zSeries) and client bidirectional layouts. The Developer for z/OS product does bidirectional conversions automatically according to information you provide by using this interface. It is the bidirectional developer's responsibility to understand the bidirectional layouts that are used in your environment and to provide correct information about bidirectional layouts and encoding by using the Developer for z/OS user interface. Visual LTR layout is assumed as the default layout for remote systems, and Smart Logical LTR is assumed as the default layout for the client by most Developer for z/OS components and tools.