After initialization, the CTS2DF will use Service Plugin Implementations (or OSGi bundles) to implement the CTS2 functionality. These Service Plugins conform to a standard CTS2 interface, and are intended to be implemented according to the requirements of the implementer or organization. Furthermore, additional (non-CTS2) plugins can be registered to the service to provided extra functionality, such as security or caching. An added benefit of these plugins is that they can be shared across CTS2 implementations. Ultimately, the CTS2DF process the results of calls to these Service Plugins and transforms the responses into CTS2 compliant XML, JSON, or HTML.
4 Software Architecture
NOTE: Service Plugins are not required to implement all of the CTS2 Profile Interfaces. They may implement one, or all, or (most likely) some subset that matches the desired CTS2 functionality.
4.2 Basic Request Sequence
Represented graphically, an incoming request will follow the general sequence as outlined below. It is important to note the Condition case, as this allow Service Plugins to leave CTS2 Profile Interfaces unimplemented if the functionality is not needed. In this case, a "No-Op" Service is defaulted. The responsibility of this No-Op Service is to inform the requester, via the appropriate message, that the requested CTS2 Functionality is not available in this service implementation.
4.3 Independent Module Structure
The MapReadService CTS2 Profile Interface will be implemented using a combination of the the MappingExtension interface and the LexBIGService. Specifically, the resolveCodingScheme method of the LexBIGService will be used, and the MappingExtension can be used to verify the CodingScheme is a Mapping or non-Mapping CodingScheme.
The MapQueryService CTS2 Profile Interface will be implemented using a combination of the the MappingExtension interface and the LexBIGService. Specifically, the getSupportedCodingSchemes method of the LexBIGService will be used, and the MappingExtension can be used to verify the CodingScheme is a Mapping or non-Mapping CodingScheme.
Service Plugin: An OSGi bundle capable of being loaded into the CTS2 Development Framework. In order to be recognized as a Service Plugin, the bundle must export one (and only one) Service of type ServiceProvider. Note, however, that the bundle is no excluded from exporting other services – but it must at least export one and only one ServiceProvider Service.
Platform Specific Model (PSM): An implementation model targeted towards a specific technical platform.