SDO service administration class.
class This class is the administration class for SDO Services. The SDO Service, which is defined in the OMG SDO Specification, is a kind of service for certain functionalities which is provided and/or consumed by SDO. The specification does not define details. However, in this implementation, the following behaviors of SDO services are assumed and this class manages these SDO services.
In this context, the SDO Services that are owned by SDO/RTC is called SDO Service Provider, and the SDO Services that receive references to provided services by other SDOs/RTCs or applications is called SDO Serivce Consumer.
SDO Service Provider is called from other applications, and it is used to access to internal functionality of an SDO/RTC. Other SDO/RTC or applications would get a ServiceProfiles or a reference to the SDO serivce through the following operations, and then they call operations of the service.
Since references of services in other SDOs/RTCs or applications could be released anytime, service providers cannot know where and how many consumers refer them. On the other hand, since SDO/RTC which provides services can stop and delete them anytime, consumers have to call operations by assuming that the reference cannot be accessed always.
SDO Service Consumer, which is a reference to the service entity in the other SDOs/RTCs or other applications, is given with ServiceProfile, and SDO/RTC would call operation to access some functionality to the service object. And giving certain observer object, it will work as callback from SDO/RTC. SDO service consumer, which is defferent from SDO service provider, is added and deleted through SDO Configuration interface shown as follows.
To set a SDO service to the target SDO/RTC, other SDOs/RTCs and applications have to give their service references with ServiceProfile including ID, interface type and properties to the add_service_profile() operation. The ID has to be unique such as UUID. Since ID is used when the service is removed from the target SDO/RTC, SDOs/RTCs and applications of service provider side have to keep the ID until removing the service.