The following diagram provides an overview on the eSciDoc service layers:
- Core services provide create, retrieve, update and delete (CRUD) operations on data resources such as Items, Containers, Contexts, Organizational units etc. Some services in addition provide logic-centric operations that implement part of the core system logic (e.g. changing the status of the resource within the repository). Basic services are stateless and can be used further by other (eSciDoc and non-eSciDoc) service requestors i.e. clients (services, applications).
- Intermediate services represent both a service requestor and a service provider within the eSciDoc SOA. They act as adapters and façades to the basic services or add additional functionality. Intermediate services are stateless and can manipulate their own data in addition. Examples are Validating, Baskets Handling and Duplicate detecting service.
- Application services compose other services from basic, intermediate and application layer and implement business logic from solution-specific domain. They are candidates for future process-centric services to enable the service orchestration. Examples are Depositing service, Publishing service, Citation style manager service, User Management service.
Another class of services are Technical services that enable authentication and authorization. They span vertically all layers of the eSciDoc SOA architecture. Each service operation will invoke the authentication and authorization services.
In addition to services which come with “machine-friendly” interfaces, eSciDoc provides a set of GUI Tools that offer user-friendly interfaces to business processes. Such a tool can be reused within several application solutions and can be further extended to meet domain-specific requirements. GUI Tools thus represent additional building blocks for composite applications development.