Computational Viewpoint
A research Infrastructure (RI) such as DARIAH provides services which facilitate scholars to create, interact, process and store, or deposit, data. Other services maybe provided by the DARIAH community. Here we consider a general form of a service.
The computational viewpoint (CV) describes the functionality of a system. It decomposes the system into objects encapsulating specific functionality that are implemented by a service or activity. Specific interfaces bind the computational objects together, thus allowing the functionality to be distributed.
This viewpoint is expressed using an object model in which computational object (CV Object) are abstractions, in this instance, of a research infrastructure’s systems & functions, and the interfaces (CV Interfaces) the computational objects can have, are defined.
Computational objects can relate to other computational objects in the following ways:
- Interaction: Two objects exchange information as either an operation (request/response), as a (continuous) flow, or as a signal.
- Instantiation: An object creates a new object via instantiation.
- Inheritance: An inherited object has the same interface(s) as its parent object and extends it with additional interface(s).
Specific types of computational objects are used here:
- Binding object: An object to support more complex interactions between two or more interfaces. These binding objects coordinates this interaction by providing bindings to all required interfaces.
- Proxy object: An object that provides all external interactions of a subsystem and takes care of managing the internal objects of that subsystem.
- Controller object: An abstract object to represent the external interaction with custom objects. It is used to represent specific instruments and processing.
Research infrastructures, including DARIAH, tend to have a service-orientated architecture (SOA) with core functionality encapsulated and accessed via externally facing services and user interfaces which act as brokers.
The CV for a generalised DARIAH service contribution describes set of computational objects that could be expected to constitute a service within the infrastructure. For each of the specific contributing service types a subset of computational objects would normally be expected to be present in the SOA for the functionality of the contribution.
Four groups of computational objects are described below which correspond to architectural layers in a SOA-like structure :
- Presentation Objects: computational objects that provide access to the service by human users (user interfaces)
- Service Objects: computational objects that are service intermediaries that broker and orchestrate the use of the component objects (which may be distributed).
- Component Objects: computational objects that manage and provide access to data
- Backend Objects: computational objects that manage and maintain the data of the service
DARIAH Generalised Service Provision CV objects