Business object properties
Define data models to support context-aware business applications, tightly integrated with location data
Summary
Business object properties provides the following capabilities:
- User-extensible definition of functional and relational properties of types
- Creation and deletion of properties
- Query, creation, update and deletion of property assertions
- Query, creation, editing and deletion of 3D spatial properties of objects and spatial relationships between objects
SmartSpace allows the definition of relationships between objects by using either Simple Properties or Complex Properties.
Simple Properties
SmartSpace enables developers to flexibly create the types necessary to define a new application data model. User-defined types are created with appropriate properties, which can be any of the basic numeric or string types as well as user-defined types already defined in the data model. In SmartSpace, these are called Simple Properties.
Types which represent real-world objects can include one or more Space Properties, which are the geometric extents (zones) defined around the object that move and interact with the spaces of other object types in the data model when objects are given a location.
Additionally, multiple inheritance is fully supported, so that new types can be created from a combination of parent types which own the properties required.
Complex Properties
By using Simple Properties, one-to-one and many-to-one relations between objects can be specified. Complex Properties allow the inclusion of joins between types so that one-to-many or even many-to-many relations can be defined. This is really valuable when it becomes necessary to store or operate on sets of data, or some conditional fact must be asserted based on the state of multiple objects in the data model.
Where a relation between types is a fact, whether it is either true or false, the relation must be qualified by some underlying logic. This relation must be asserted either by an integrated third-party business system or through the SmartSpace Business rules engine (whose logic is implemented using the Rules engine developer).
User Interfaces
The feature includes a full development and object explorer thick-client GUI, which provides a drag-and-drop interface for creating new types, instantiating new objects, and interrogating and editing object properties and states.
Simple types and attributes
When the Business object properties feature is included in your SmartSpace license (if you have one or more of: Visibility, Business rules, Reporting), you can extend basic types with a greater selection of properties, called simple properties.
This makes it possible to add many different property attributes to types so that they can hold the important characteristics, state and even relations for a type which allow it to become a true class of object for new user-defined applications. You can define custom properties to satisfy SmartSpace-specific application functionality, or to match entities already defined in other business systems, or both.
In addition to the space property available to all basic types, Business object properties extends the set of basic types that can be used as object properties to any of the basic string, logical, time and numeric types, including string, bool, time, int and double respectively.
Additionally, custom types can be added as properties to types, making it possible for simple types to reference or address instances of other types in the data model.
Key Facts about Simple Types
There are three kinds of property types |
|
Users can create new Object types |
|
Object types obey ‘is a’ relations |
|
Object types can have name properties |
|
Example of Custom Types used as Properties
In the example below, three custom types–Colour, Model and Customer–are added as properties to the Product type.
Adding a simple property to a custom type
When any of the Visibility, Business rules, Reporting or Applications integration components have been licensed, it is possible to add any number of additional, simple properties to an Object Type using the Business object properties feature. Types and objects and their properties are created using the SmartSpace Config application. You can find a description of the workspace for creating types and objects in . The instructions below take you through adding a simple property to a custom type.
An example would be to create a new custom Type called Quality Note with a property called severity with an integer type.
Start by creating a custom Type called Quality Note:
You can now add a property to the type:
- Select Quality Note from the list of types.
-
Double-click <Create new property>.
- Give the property a name.
- the site-level object property data service (the default)
- the site-level assertion store
- with the licensing of the Real-time rules engine, the cell-level object property data service
- Ensure you have selected the Int type from the type dropdown.
- Save the change.
When adding properties to types, you specify which service manages the property and hence where its values are stored. There are three choices:
In general, you can accept the default. For further information on SmartSpace data services and their use in real-time systems, see .
If you now select Quality Note in the Types and objects workspace, an additional row of details is displayed with the severity property followed by Int.
Adding a custom type as a property
When any of the Visibility, Business rules, Reporting or Applications integration components have been licensed, it is possible to add any number of additional, custom properties to an Object Type using the Business object properties feature. Types and objects and their properties are created using the SmartSpace Config application. You can find a description of the workspace for creating types and objects in . The instructions below take you through creating one custom type for use as a property of another.
An example would be to create a new custom Type called Quality Note and add it as a property to a Wing object Type.
Start by creating a custom Type called Quality Note:
Add a selection of Properties to this new Type:
You can now add the Quality Note type as a custom property of the Wing Type:
Adding a complex property
When any of the Visibility, Business rules, Reporting or Applications integration components have been licensed, it is possible to add any number of properties to define complex relations between types using the Business object properties feature. These complex properties are created using the SmartSpace Config application. You can find a description of the workspace for creating complex properties in .
Complex properties allow you to link different types together in such a way that the link defines some new or useful state in the system. They also allow you to define one-to-many or even many-to-many relations.
In the example below, a complex property is created such that when one type's extent is contained by another type's extent a new row is added to the property.
-
Start by creating a new complex property to define a relationship between the disassociation zone of the Tag Disassociation Point and the extent of the Object type. In the Types and objects workspace, double-click <Create new complex property> and add the following details.
-
Next you define a containment relation for the two objects. In the Spatial properties workspace, double-click <Add new request> and add the following details.
-
If you move an object into the disassociation zone you can see the condition being met and the resulting property row being created.
In the Place objects workspace, choose Tag Disassociation Point disassociation zone contains Object extent from Show spatial relationships so you can see the relevant spatial extents and see when the relationship is met. Next ensure there is an instance of the Tag Disassociation Point type placed on the map. Here there is an object, shipping gate, based on this type. Then place an instance of an Object type, here xx12345, and ensure it is contained by the shipping gate (the shipping gate's extent is highlighted in blue).
When an object moves fully into the disassociation zone, a row of data is added to the complex property. In the Types and objects workspace, drag 'Tag Disassociation Point' disassociation zone contains 'Object' extent into the Object browser to see it.
Object Assertions and Properties
There are a number of object assertions and properties that are supplied with SmartSpace which can be used in Business Rules. These assertions and properties are defaults that appear with particular features, such as Web forms, ACS, Location removal, Location simulation, Stale location detection and Shifts. Depending on the features you have installed, you might not see all of the assertions and properties listed. These assertions and properties are designed to help reduce inaccurate location tagging and define behaviors of an object in simulation.
delete pending flag
One built-in Boolean property of objects that can be set using a button is the “delete pending flag”. Creating a button based on this property is the recommended way to allow certain web site users to manually delete objects from the system. The “delete pending flag” follows the correct sequence of actions by first disassociating any tag from the object, then deleting the object from the data model, so it avoids any race condition where the object could receive a location after it has been removed. If additional clean up actions are required before deleting the object, then another Boolean property should be used along with business rules/integration code to do the clean-up and then set the delete pending flag to finally remove the object.
Setting the "delete pending flag" avoids a potential problem when an object has its location removed but then gets a location update before deletion is complete.
Note: the "delete pending flag" property is only configured after installing the Web forms feature.
See also: Manually deleting objects
ignore tag locations flag
If this flag is set on a tagged object, that object will not get locations from its tag until the flag is cleared. For example, if a cart enters a corridor where there is no tracking, sensors in the surrounding area can see the tag and potentially generate poor locations. To prevent these poor locations placing the cart in the wrong place we can set an assertion point at the corridor entrance exit. When the cart is associated with an assertion point, a Business Rule can be triggered to set the flag on (at then entrance) and off (at the exit). The assertions can also place the cart in the corridor. The location will be set for the object, but it will not be precise due to absence of tracking.
Note: the "ignore tag locations flag" property is available if ACS is installed.
See also: Support for Managing Product Tag Ownership from both ACS and SmartSpace
remove location pending flag
When this flag is asserted for an object, the object’s location will be removed, and then assertion will be retracted. Any process action that must be executed after the object has been removed can be safely executed when the assertion has been retracted. If the object is still getting located by some other means, such as via driven objects, or an associated tag, then the object might be located again (possibly immediately).
The "remove location pending flag" is reset to false when the object's location is removed. By watching for the transition from true to false, a Business Rule can be triggered that executes some appropriate process action. Note: the object could be located again if the object is driven by a tag or other driving object.
Note: the "remove location pending flag" assertion is available in SmartSpaceCore via the Location removalfeature.
See also: Assertions for Location removal
remove tag pending flag
Setting this flag on a tagged object causes the tag to be disassociated from the object. Once the disassociation is completed, the flag is reset.
simulation behaviour
A named simulation behavior has a set of service parameters that define how objects behave in simulation. Behaviors are applied to objects using a simple property.
Note: the "simulation behaviour" property is only configured after installing the Location Simulation feature.
See also: Location simulation
simulation target
When there is a simulation target, the object moves to it. If the target doesn’t have a location, the simulator won’t move the object. There are two kinds of target: path points, and any other type of object.
Note: the "simulation target" property is only configured after installing the Location Simulation feature.
See also: Location simulation
stale flag
The stale flag will be set to true for any object currently detected as stale, and will be removed when the object tag is sighted again.
The object becomes stale when, after a specified timeout, an object stops getting location updates from it associated tag and its location is no longer being refreshed. The flag can be used by Business Rules to implement further behavior. For example, a rule might change the representation of the object or remove its location altogether.
The timeout value can be set per type, or even per object, by setting the Stale location timeout parameter in SERVICE PARAMETERS. Automatic removal of the object after stale timeout can also be configured in SERVICE PARAMETERS.
Note: the "stale flag" assertion is available after the Stale location detection feature has been installed.
See also: Stale location detection
the shift of <Object> is active
If “report shift activity” is set to true for some object with a shift assigned to it, then when that shift is active the assertion “the shift of <Object> is active” will be made (and when the shift is inactive the assertion will be retracted). You can set or unset the ‘shift is active’ assertion for all objects of a particular type by using the global mechanism in SERVICE PARAMETERS to set default values for all members of the chosen type.
Note: "the shift of <Object> is active" is available after installing the Shifts feature.
See also: Assertions for Shifts