Previous sections have presented the conceptual benefits of TDL contracts, as well as the technical ones brought by generation and execution of related proxies. In the meantime, the TORBA environment offers a dynamic approach to use trading contracts as depicted in Figure 11. This approach permits one to build applications without static knowledge, at design time, about used trading contracts. This knowledge will be learnt at runtime.
The dynamic approach in TORBA relies on a trading contract repository. This repository, currently written in OMG IDLscript, stores TDL contracts as a graph of CORBA objects. Each object of the graph represents at runtime a semantic construction of the TDL language. Thus, offer, property, and query constructions are mapped to OfferDef, PropertyDef, and QueryDef interfaces defined in the TORBA module. These interfaces provide operations to create and browse objects of the graph, providing TDL information at runtime. Creation operations are used by a specific version of the TDL compiler in order to feed the repository. Other operations are used by any TORBA application requiring dynamic discovering of available trading contracts. In order to validate this approach, we have realized in JavaIDLscript3 a first dynamic application: the TORBA explorer, illustrated in Figure 12.
Through a GUI written using Java Swing, the TORBA explorer allows users to browse available trading contracts, to select a contract, to consult associated offers, and to perform predefined or specific query operations. The explorer implementation does not rely on any trading contract: Graphical interfaces are dynamically built at runtime according to trading contracts discovered into the TORBA repository. Thus, the TORBA explorer provides a trading GUI dedicated to the contracts used by applications, unlike GUI included with CosTrading implementations. Finally, this explorer is a generic and graphical proof of the relevance and strength of the trading contract concept presented in this paper.