The Arrowhead project targets five business domains; Production (process and manufacturing), Smart Buildings and infrastructures, Electro mobility, Energy production and Virtual Markets of Energy.
In these domains there is a number of technological architectures used for implementing SOA solutions. One of the grand challenges of Arrowhead is to enable interoperability between systems that are natively based on different technologies. One main objective is to achieve that, thus keeping the advantages of SOA, e.g., the flexibility obtained by the loose coupling. The strategy to meet that objective is to identify what are the least common denominators needed and select the most suitable common solutions. In the process, four central SOA questions for guiding the work have been identified:
- How does a system that is a service provider make its services known to service consumer?
- How does a system that is a service consumer discovers services it wants to consume?
- How does a system that is a service provider decides if a system that wants to consume its services, is authorized to do that?
- How to orchestrate system of systems, i.e. enabling an orchestration body to control which of the provided service instances a system shall consume?
The answers to these questions are collected under the generic label of the Arrowhead Framework, which is briefly described in Section III.
The Arrowhead Framework contains common solutions for the core functionality in the area of Information Infrastructure, Systems Management and Information Assurance as well as the specification for the application services carrying information vital for the process being automated.
A developer needs to know how to develop, deploy, maintain and manage Arrowhead compliant systems. Therefore, it is crucial that there are common understandings of how Services, Systems and System-of-Systems are defined and described. To address these issues, the framework also includes design patterns, documentation templates and guidelines that aim at helping systems, newly developed or legacy, to conform to Arrowhead Framework specifications.
The Arrowhead Framework consists of what is needed for anyone to design, implement and deploy an Arrowhead compliant system. The Arrowhead Framework aims at enabling all of its users to work in a common and unified approach – leading towards high levels of interoperability.
Overview of Arrowhead Framework
The Arrowhead Framework includes principles on how to design SOA-based systems, guidelines for its documentation and a software framework capable of supporting its implementations.
The design guidelines provide generic “black box” design patterns on how to implement application systems to be Arrowhead Framework compliant. Furthermore, these guidelines allow making legacy systems Arrowhead Framework compliant.
The documentation guidelines include templates for service, system and, system-of-systems descriptions (to be detailed in the following sections of this paper). Due to its complexity there is also a “Cookbook” for hands-on instructions on how to use the framework.
The software framework (Fig. 2) includes a set of Core Services which are capable of supporting the interaction between Application Services. The Core Services handle the support functionality within the Arrowhead framework to enable Application Services to exchange information. Examples are services for Discovery, Authorization, Orchestration, and System Status. An Application Service handles the data exchange between specialized devices (those that the system is special at). Examples are services for sensor reading, billing, energy consumption, weather forecasts, etc.
The Core Services (Fig. 2) are further divided in three different groups: i) Information Infrastructure (II); ii) Systems Management (SM); and iii) Information Assurance (IA).
The Information Infrastructure (II) services are the set of core services and systems in charge of providing information about the services and how to connect to them. This includes services like Service Discovery, Application Installation and Setup, Service Metadata, etc. The System Management (SM) services are the set of core services and systems providing support for late binding and solving system-of-systems composition. The SM provides logging, monitoring and status functionality. It also addresses orchestration, software distribution, QoS, configuration and policy.
Finally, such a software framework can only operate if the system is able provide adequate security and safety levels. Those functions are assured by the Information Assurance (IA) services, supporting secure information exchange. Example services include those for authorization, authentication, certificate distribution, security logging and service intrusion.
The software framework also addresses the design and prototype implementations of gateways/mediators for making legacy systems Arrowhead compliant.
Finally, the Arrowhead Framework provides a set of rules and principles to:
- Address technical property requirements
- Arrowhead conformity requirements
- A set of tool(s) for conformity test and verification.