Identity of objects and their representations

76 Copyright © 2011 Open Geospatial Consortium.

16.3.2 Identity of objects and their representations

Objects – whether they exist in the real world or are part of a computer program – have identity. In distributed computing, the identity of an object in general and the identity of a representation created of that object at a certain time should be different. This is particularly important if the representation itself needs to be traceable. An example shall help to state this fact: A sensor performs an in-situ measurement of air temperature. It provides this measurement – with according phenomenon time and result value – as an instance of an OM Observation. The observation is a representation of the observation event. The observation is stored in a Sensor Observation Service. The SOS implements publishsubscribe functionality and sends a notification message including the observation to interested consumers. Two cases need to be differentiated: 1. The serialization of the observation contains an explicit identifier 2. The serialization of the observation does not contain such an identifier The subscribers of the SOS receive the observation. At a later stage, a validation process recognizes that the result of the observation is incorrect and therefore sends out another notification to inform interested consumers. If the observation can no longer be identified because the serialization of the observation did not contain an explicit identifier then the consumer cannot update its internal data store or computations that may already have been performed on the original observation. NOTE: At this point, one could say that the combination of some object properties already uniquely identifies this object. However, this may not necessarily be true in all cases. Furthermore, comparing identity of two objects by comparing their property values can be quite time-consuming for complex properties. Therefore, it is better to provide explicit identity to all object representations that might need to be referenced in the system. Such a computation can for example include the distribution of the observation to other services. With explicit identifiers included in the serialization of object representations, these representations can be traced in a network of distributed services. An object in the real world can also be represented in different ways. It is important to understand the difference between identifiers of these representations and a label for the real-world object. Suppose that a tree is represented through two objects that belong to different classes defined in a GML application schema. The classes can have different properties and the amount of information can vary considerably. An authority can assign a label for the tree. Would that label be the identifier used for the two objects? No, each object has its own object identifier, its own identity. However, because the objects both represent the same tree, they can carry the same label. In GML features, such labels can be encoded using the gml:name property. Likewise, SWES objects can also be labeled using the swes:name property see Figure 29. If that mechanism is not applicable for any reason, then a dedicated property for identifying the real-world object needs to be added to the types used for representing the object. Copyright © 2011 Open Geospatial Consortium. 77 Note: Providing explicit revision tags to SWES objects is not defined in this standard. A future revision or extension can define this functionality.

16.3.3 Identifiers in GML Application Schema and SWE Service Model