Capítulo III Metodología de la Investigación
3.3 Análisis de los Resultados
3.3.1 Resultado de las entrevistas
to create a new outbound adapter class is to use the Ensemble Studio, as follows:
1. Start Studio and choose an Ensemble-enabled user namespace.
Important: InterSystems recommends that you do not place custom code or data in the system- provided namespaces ENSLIB or ENSDEMO where it will be deleted the next time you upgrade Ensemble. The ENSEMBLE namespace and any new namespace that you create to hold your work is preserved across Ensemble upgrades.
2. From the File menu select New.
3. The New dialog displays. Select the Production tab. 4. Select the Adapter icon and click OK.
5. Enter a package and class name for the outbound adapter. Click Next.
Important: InterSystems recommends that you do not use the package names Demo, Ens,
EnsLib, EnsPortal, or CSPX. This causes your work to be deleted the next time you upgrade Ensemble.
6. For Adapter Type, choose Outbound.
7. Enter and edit Properties using the table. To add, reorder or delete properties, click the icons to the right of the table. Each time you click the Add icon, a dialog prompts you as follows: • Enter the property Name.
• If you want this property to be editable from the configuration display on the Ensemble Management Portal [Ensemble] > [Productions] page, select the Configurable check box to the right of the Name field.
• Enter a data Type or choose one by clicking the Browse icon to the right of this field. • Enter a text Description of the property.
• Click OK to save the property definition or Cancel to ignore it.
8. Click Finish to save your new outbound adapter definition or Cancel to discard it.
Class MyProduction.OutboundAdapter
Extends Ens.OutboundAdapter [ ProcedureBlock ] {
Parameter SETTINGS = "IPAddress,TimeOut"; Property IPAddress As %String(MAXLEN=100);
Property TimeOut As %Integer(MINVAL=0, MAXVAL=10); Property Counter As %Integer;
}
An outbound adapter class can define both configurable properties (like IPAddress and TimeOut in the previous example) and non-configurable properties (like Counter in the previous example). To make a property configurable, simply add its name to the comma-delimited list of properties in the value of the class’s SETTINGS parameter. The configuration display on the [Ensemble] > [Productions] page automatically provides the user interface needed to view and edit the configurable properties. For details, see the “Configuration Settings” section in the chapter “Production Concepts.”
To fully implement an outbound adapter, you must implement one or more methods for the correspond- ing business operation to invoke. Every outbound adapter is free to define its own API (set of methods) that its associated business operation classes use.
9
Production Data
The moment any piece of data comes into Ensemble, it is recast as an Ensemble object, and remains an Ensemble object for its entire lifespan inside Ensemble. This convention enables systems to exchange incompatible data across a format-free zone (that is, Ensemble) without adversely affecting other res- idents of that zone. All data is seen in a universal, abstract format. This is the principle called data
abstraction.
The motivation behind Ensemble abstraction is somewhat similar to the motivation behind the XML standard, which is the establishment of a format-free zone. However, there is a key difference in approach: Ensemble is designed, not simply to enable format-free data exchange, but to do so in a consistently compact, efficient, and streamlined manner. XML offers no facility for ensuring speed. Speed is possible for Ensemble data abstraction because Ensemble incorporates InterSystems core technologies such as a multidimensional data engine, high-performance persistent engine, object engine, data transformation engine, and others, to ensure the highest possible efficiency of transforming the otherwise incompatible data from many “lands.”
Data abstraction can be understood to have two tiers. The first tier of data abstraction is mandatory when the data first enters the system. At this first tier, data is transformed from any external formats (for example Health Level 7 (HL7) or Electronic Data Interchange (EDI) formats) into an Ensemble object. This transformation is handled on the incoming side by inbound adapters; on the outgoing side by outbound adapters. If built-in adapters are used, a production developer does not need to know a great deal about the transformation that is achieved, only that it is necessary for the adapter to work. There is also a second tier of data abstraction. In this tier, an Ensemble object of any type may be transformed into an Ensemble object of any other type. Such a transformation may occur at any time during the lifespan of an Ensemble object. It may occur multiple times, a few times, once, or never. To enable this type of data transformation the production developer must provide an appropriate data transformation object to tell Ensemble what to do. That is, you must provide a class definition that maps properties from one type of object to another. This object stores the information required to achieve the transformation. It is called a data transformation object. Ensemble includes a specialized language called Data Transformation Language (DTL), an extension of XML. DTL permits a developer
to explicitly specify data transformation classes without needing to supply exhaustive programming details. The DTL compiler generates the infrastructure for you when you save the class.
It is possible to bypass all forms of data abstraction and pass raw, untransformed external data through Ensemble as a “payload.” Entire data streams can be handled in this manner. However, these strategies are not common. The general case is to use data abstraction and data transformation as described in this chapter. Topics include:
• Data Transformations
• Using the DTL Visual Editor
• Federated Databases
• Data Persistence and Data Recovery