• No results found

The Builder Communication Model

In document dtj v02 01 1990 pdf (Page 58-60)

The Builder communication model is basically a classic client-server model . The server is the Builder process, and the client is the client applica­ tion. In Figure 7, the Server is labeled as Builder executive and the client as Builder client executive. Builder Executive The Builder executive acts as a central dispatcher for sessions, handles all session­ level operations, and communicates session infor­ mation (updates) to client applications. Some examples of this include:

• Identifying which application starts next • Invoking applications (and processing startup

and termination information)

• Synchronizing cross-application events (e.g. ,

which command executes next?) • Handling errors during playback

The Builder executive can also start, stop, and pause a session, and reuse applications. However, it has absolutely no user interface. Instead, Builder uses the Builder executive as a session manager to derive the information needed to maintain the blueprint diagram. This is done by means of a call interface and callbacks, which are triggered when

56

the Builder executive processes certain session events. These are separate and distinct layers, as depicted in Figure 7 .

The Builder executive communicates with all client applications through a communication layer

in the Builder client executive. (See Figure 8.)

Builder Client Executive The Builder client execu­ tive maintains the Builder context for applications, and does the actual communication between the client application and Builder. Client applications use Builder's runtime services as the interface to join a session, record commands, and indirectly communicate with Builder.

During record mode, the client application translates user operations into a command which it then passes to the client executive through the runtime services. The client executive assigns a unique, ordered sequence identifier, and records the result. These sequence identifiers represent the order in which the blueprint was recorded.

During playback, the client executive either determines or is notified when the next command in its command cache may be executed. When this occurs, the command callback registered by the client code is invoked and given the cached com­ mand . The application then parses and executes the command.

Blueprint File Blueprints are recorded on disk as a DDIF-encoded file. The blueprint file has a table of contents section and an application command table section. Figure 9 shows the file's logical layout.

APPLICATION PROGRAM AND USER INTERFACE r - - - , BUILDER RUN-TIME SERVICES COM MAND I CALLBACKS

I

CLI ENT TO B U I LDER COM M U N ICATION I NTERFACE CONTROL AND DISPATCH COMMAND CAC H E

I

I

I

I

I

I

I

I

I

L - - - � CLI ENT EXECUTIVE

Figure 8 Builder Client Executive

Jnterapplication Access and Integration

APPLICATIONS

APPLICATION INVOCATION NATURAL

NAME STRING LANGUAGE SUBTITLE

EVENTS COMMAND TABLE OF CONTENTS EVENT TYPE A PPLICATION SEQUENCE IDENTIFIER IDENTIFIER COMMAND TABLE A GLOBAL SEQU ENCE

I DENTIFIER COMMAND CODE

COM MAND STRI NG(S) APPLICATION COM MAND TABLES COMMAND TABLE Z GLOBAL SEQU ENCE IDENTIFIER COMMAND CODE COM MAND STR I N G(S)

Figure 9 Blueprint File Layout

The table of contents section describes the appli­ cations that comprise the blueprint and their inter­ relationship. Included are application name invocation strings, and native language identifiers, among other application instance attributes . This information provides a framework description from which the user interface constructs a dia­ gram. The table of contents also describes the cross-application events w ithin the blueprint. The Builder executive uses these events when calculat­ ing application ordering.

One command table for each application is listed in the table of contents. All commands associated with a given application instance are grouped together. This grouping makes it easy to select and process all commands for a given application instance.

Digital Technical journal Vol. 2 No. I, Winter 1990

Translatability Applications may record one or two variants of command syntaxes:

• A n a ti v e l a nguage-oriented and translatable

syntax

• A common and nontranslatable syntax (which

may or may not be culturally biased)

The advantage of supporting a native language interface is that the command language always addresses the end user in the local language. The disadvantage is that a series of commands recorded by an application in one country may not be under­ stood by the same application in another country (assuming the product and command language have been translated).

The advantage of supporting a common com­ mand language syntax is that the same syntax is

understood across all application variants. The dis­ advantage is that common command languages tend to be heavily, culturally biased and, as a result, are only understood by a subset of users.

If an application supports a common and a native language interface, then the disadvantages of either in isolation are eliminated. This support also avoids the necessity of u nderstanding all language variants of a command syntax. In essence, commands wi11 execute regardless of application variant and with­ out sacrificing the native language interface.

When an application supports both language syntaxes, Builder displays the native language com­ mands but gives client applications the common language to execute. In addition, a degree of auto­ matic translation may be achieved.

In document dtj v02 01 1990 pdf (Page 58-60)