Information Model Design
The information model is an important part of a Distrix system and can greatly enhance the overall design and architecture while also reduce the amount of coding required. It is useful to design the information model properly from the start to allow for future expandability and refactoring.
At the most basic level, the information model is a means of organizing distributed objects in a Distrix system. Because information model paths are used when subscribing to distributed objects, they effectively act as a simple query filter system. When designing an information model, you should try to think about how subscribers may want to query it in the future. Also important is whether to use fixed or wildcard object paths.
For example, suppose you have a set of distributed objects, each of which represents status information for a camera in a security system. There are a variety of ways to structure the information model for this system. In the simplest case, each object could be published to a path:
/Cameras/<camera identifier>/CameraStatus
When you want to retrieve these objects, you could subscribe to
/Cameras/5/CameraStatus
to get the status of a particular camera (in this case camera "5"), or
/Cameras/*/CameraStatus
to get the status of all cameras in the system. If these are the only two types of queries that will be necessary, then this information model would be suitable.
However, imagine a larger system spread throughout several buildings in a campus. Retrieving the status objects for all cameras in the system may be inefficient, as well as unnecessary in many cases if the user only cares about the cameras in a particular building. In this case, a more appropriate information model design may locate the camera status objects
/Cameras/<building identifier>/<camera identifier>/CameraStatus
This would still allow for subscribing to a single camera object
/Cameras/building3/5/CameraStatus
and all cameras
/Cameras/**/CameraStatus
but would also allow for subscriptions to all of the cameras in a particular building
/Cameras/building3/*/CameraStatus
As you can see, a well thought out information model design can greatly enhance the implementation and performance of your Distrix system. First, think about how the information will be consumed, and then design a model that matches the expected consumption patterns.
- Support's blog
- Login or register to post comments
Blog Archive
- February 2012 (1)
- December 2011 (5)
- November 2011 (1)
- July 2011 (2)
- June 2011 (1)
- May 2011 (3)
- January 2011 (1)
- December 2010 (2)
- November 2010 (1)
- October 2010 (3)
- 1 of 2
- ››
Resources
Customer Stories
Coalition Warrior Interoperability Demonstration (CWID) 2011
Radical new approach to unmanned systems interoperability
Integrating New Satellite Communications in Legacy Environments
Rapid Prototyping Using Distrix
Industry White Papers
Emerging Technologies for Software-Reliant Systems of Systems - Software Engineering Institute 2010





