Resources



next up previous contents
Next: Operations Up: Supporting Object Model Previous: Demands

Resources

Resources are objects representing machines, transportation resources (planes, ships), ports etc. Resources are aggregates, so they can be organized into hierarchies. Resource objects encode resource allocation constraints and policies at different levels of abstraction. Resources manage their time-varying available capacity, and allow capacity to be queried and allocated (typically by operations). Capacities and Positions are used for representing time-varying parameters of resources (e.g. available capacity, current position). Management of capacities and positions is hidden behind resources.

The default DITOPS implementation of resources represents the (time-varying) available capacity of a resource as a list of time intervals, each having a constant amount of capacity available. For example, given an overall time window from 0 to 10, an empty resource of capacity 5 would have one interval, from 0 to 10, with available capacity of 5. An allocation of 1 unit of capacity for an operating starting at 2 and ending at 4 would result in a change in this interval: the resource would now have three available capacity intervals, 0 to 2 with capacity 5, 2 to 4 with capacity 4, and 4 to 10 with capacity 5.

A resource can be queried to find out the feasible time intervals for allocation of a specified amount of capacity. This is true of all resources, and aggregate or other special resources are guaranteed to adhere to this convention. Querying a resource is handled by a functional interface defined for operations; in most cases an applications programmer need not query resources directly.

Resources in the transportation domain need to be able to store, track and interpret their physical location. The classes added implement these requirements: the class movable-resource-mixin can be mixed into resource classes to make them ``movable'', the class position is equivalent to capacity, it keeps track of time-variable location, and the class location serves as the base class for objects that denote different physical locations (such as airports, for example).



next up previous contents
Next: Operations Up: Supporting Object Model Previous: Demands



Ora Lassila
Fri Nov 17 09:52:15 EST 1995