Resource Model
Resources in D-NET are of two kinds, services and data structures. Services are active resources, in the sense that perform operations on demand. Data structures are passive resources, as they do not perform actions, but instead represent entities created by the services and to be shared with other services. The Information Service keeps an updated map of the resources available to the infrastructure. Such map can vary in time, according to additions and removals of services and the run-time behaviour of the system, which automatically manages the life-cycle of data structures to match application needs.
Service resources Services are web service running instances deployed on a host. A service must conform to a service type, that is: it implements the functionalities specified by the contract (API) associated to such type and registers to the Information Service the profile associated to such type. For example, one of the service types of the Data Management Area is Index Service Type. All services conforming to this type share the same API, although their implementation could be different in principles, e.g., encapsulate different indexing technologies, and register and update to the IS profiles of the same structure.
Data structure resources Data structures are resources managed (created, deleted, updated) by services to support their operation. They represent entities created by the services to be shared with other services. A data structure must conform to a data structure type and the services responsible for the data structure must manage the profile of the resource, whose structure is determined by the type. For example, a collection is a data structure, created and managed by Collection Services and shared by User Interface Services offering end user functionalities to display and query collections.
The Information Service keeps track of the set of Resource Types available to an infrastructure (i.e. their names and XML schemas), and validates incoming profiles accordingly. Most importantly, Resource Types can be removed and new resource types can be added anytime, so as to include in the infrastructure new kinds of functionality (openness of the infrastructure). In this case a new profile schema will have to be added and, in the case of service resources, a new service contract defined (WSDL and relative stub must be provided)