[{"nid":"19894","project_id":"iot.arrowhead","short_project_id":"arrowhead","name":"Eclipse Arrowhead","summary":"The Eclipse Arrowhead project consists of systems and services that are needed for anyone to design, implement and deploy Arrowhead-compliant System of Systems. The generic concept of the Arrowhead...","description":"\u003Cp\u003EThe Eclipse Arrowhead project consists of systems and services that are needed for anyone to design, implement and deploy Arrowhead-compliant System of Systems. The generic concept of the Arrowhead Framework is based on the concept of Service Oriented Architectures, and aims at enabling all of its users to work in a common and unified approach \u2013 leading towards high levels of interoperability.\u003C\/p\u003E\n\u003Cp\u003EThe Arrowhead Framework is addressing IoT based automation and digitalisation. The approach taken is that the information exchange of elements in the Internet of Things is abstracted to services. This is to enable IoT interoperability in-between almost any IoT elements . The creation of automation is based on the idea of self-contained Local Clouds. Compared to the well-known concept of global clouds, in Arrowhead a local cloud can provide improvements and guarantees regarding:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EReal time data handling\u003C\/li\u003E\n\u003Cli\u003EData and system security\u003C\/li\u003E\n\u003Cli\u003EAutomation system engineering\u003C\/li\u003E\n\u003Cli\u003EScalability of automation systems\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EThe Arrowhead Framework provides support for building system of systems (SoS) based on service-oriented architecture patterns. Each SoS consists of various Application systems already existing or under development. These Application systems then utilize the Core Systems developed as part of the\u0026nbsp;Arrowhead project and their Services that provide support in addressing fundamental issues related to governance, operational management and security, for example:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EHow does a service provider system make its possible consumers aware of its available service instance(s)?\u003C\/li\u003E\n\u003Cli\u003EHow can a service consumer find (discover) what service instance(s) it might be interested in and allowed to consume?\u003C\/li\u003E\n\u003Cli\u003EHow do we remotely control (i.e. orchestrate) which service instances a consumer shall consume?\u003C\/li\u003E\n\u003Cli\u003EHow does a service provider determine what consumer(s) to accept?\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EThe smallest unit of governance within the Arrowhead Framework is hence related to a Local Cloud (LC), which in general is a closed, local industrial network. Each Local Cloud must at least host the mandatory core systems within its network: creating the minimal supported functionality needed to enable collaboration and information exchange between the various systems within the local cloud. The three mandatory systems for each Local Cloud are:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EService Registry,\u003C\/li\u003E\n\u003Cli\u003EOrchestrator,\u003C\/li\u003E\n\u003Cli\u003EAuthorization.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\n\u003Cp\u003EIn addition to the mandatory core systems, a number of additional, supporting core systems and services are provided to enable the design, engineering, operation and maintenance of IoT-based automation system of systems. Such supporting core systems are:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EGatekeeper and Gateway systems\u003C\/li\u003E\n\u003Cli\u003EEvent Handler system\u003C\/li\u003E\n\u003Cli\u003ESystemRegistry system\u003C\/li\u003E\n\u003Cli\u003EDeviceRegistry system\u003C\/li\u003E\n\u003Cli\u003EData Manager system\u003C\/li\u003E\n\u003Cli\u003EQuality of Service (QoS) Manager and Monitor systems\u003C\/li\u003E\n\u003Cli\u003ETranslation system\u003C\/li\u003E\n\u003Cli\u003EPlant Description system\u003C\/li\u003E\n\u003Cli\u003ESystem Configuration system,\u003C\/li\u003E\n\u003Cli\u003E...and many more.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EInter-cloud information exchange is supported by Gatekeeper (control plane) and Gateway Systems (data plane) together with Arrowhead Relays, whereas security issues are covered through various measures, including AAA functions (Authentication, Authorization, Accounting), certificate handling or data encryption.\u003C\/p\u003E\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\n\u003Cp\u003EThis section, briefly describes the capabilities and functions of each core system.\u003C\/p\u003E\n\u003Cp\u003EService Registry: Enables Service Discovery, application systems who offer services, can publish thier services, and service consumer application systems can register themself, to discover services. The system manages the removal of stale services, or services of which \u0022time-to-live\u0022 has expired. It\u0027s vast management functionality, enables the cloud administrators, to easily manage the tiniest details of every system, service, interface, or instances of above.\u003C\/p\u003E\n\u003Cp\u003EAuthorization: Stores the authorization rules, whether they be intracloud or intercloud. An intracloud rule descibes an access policy between a consumer system and a provider system in a local cloud, for a given service, interface pair. Without a rule in place, communication is impossible. An intercloud rule describes an access policy between a consumer system and a provider system in different local clouds. Security is based on X509 client certificates and JSON Web Tokens.\u003C\/p\u003E\n\u003Cp\u003EOrchestrator: Enables Orchestration, consumer application systems thus have the ability consume services via orchestration. Of course, the proper authorization rules must be in place, for the consumer to be able to access the provider. The orchestrator supports three types of orchestration. Firstly, the store orchestration allows, pre-determined orchestration rules to be set-up, for specific consumer-provider pairs. Secondly, the dynamic orchestration enables on the fly service matching, based on the currently available provider systems. Lastly, the flexible store orchestration, enables orchestration rules, based on partial data, metadata.\u003C\/p\u003E\n\u003Cp\u003EEvent Handler:\u0026nbsp;The purpose of Event Handler supporting core system is providing authorized publish-subscribe messaging system to the Arrowhead Framework. Application systems are allowed to publish and subscribe to events. When the necessary authorization rules are in place, then the subscriber will recieve the published event with all its data.\u003C\/p\u003E\n\u003Cp\u003EGatekeeper: It\u0026nbsp;has the purpose of providing Inter-Cloud servicing capabilities in the Arrowhead Framework by Global Service Discovery (GSD), Inter-Cloud Negotiation (ICN).\u0026nbsp;These Services are part of the Inter-Cloud orchestration process, but the Gatekeeper is only available for the other core systems. Gatekeeper is the only one core system which has the functionality of discovering other Clouds via Relay systems. Neighbor Clouds and Relay systems are stored in the database of this core system.\u003Cbr\u003E\u003Cbr\u003E\nDuring the Inter-Cloud orchestration, the Global Service Discovery is the first process which aims to collect the known clouds with providers serving the specified service. After GSD, the Inter-Cloud Negotiation process steps in place with the purpose of establishing the way of collaboration. Working together with the Orchestrators of both Clouds, at the end a servicing instace can be created.\u003C\/p\u003E\n\u003Cp\u003EGateway: The\u0026nbsp;core system has the purpose of establishing a secured datapath between a consumer and a provider located in two different clouds by its\u0026nbsp;Connect to Consumer, Connect to Provider services.\u003C\/p\u003E\n\u003Cp\u003EThese Services are part of the Inter-Cloud Negotiation (ICN) process initiated by the requester cloud\u0027s Gatekeeper. During the ICN process, when a Gateway is required by one of the cloud, then the Gatekeepers in both cloud establish a new datapath to their application systems and ensure the data exchange via a Relay system.\u003C\/p\u003E\n\u003Cp\u003EData Manager:\u0026nbsp;The purpose of Data Manager supporting core system is to provide storage of sensor data. It provides features for providers and consumers to, store SenML sensor and actuator data, fetch cached data and perform database queries.\u003C\/p\u003E\n\u003Cp\u003ETime Manager:\u0026nbsp;The purpose of Time Manager supporting core system is to provide time and location based services. It provides features for a local cloud systems to Fetch accurate and trusted time and location information.\u003C\/p\u003E\n\u003Cp\u003ECertificate Authority:\u0026nbsp;The main purpose of the Certificate Authority supporting core system is issuing signed certificates to be used in the local cloud. The issued certificates may be revoked from the Management Interface. Systems may check whether a certificate has been revoked, and refuse their acceptance.\u003C\/p\u003E\n\u003Cp\u003EOnboarding Controller:\u0026nbsp;The purpose of this system is to be the entry board for the onboarding procedure. The onboarding controller sits at the edge of the Arrowhead local cloud. It is not only reachable from within the cloud by authorized systems, but also from the public through its \u0022accept all\u0022 interfaces. Any client may authenticate itself through an Arrowhead certificate, through an authorized manufacturer certificate, or simply through a shared secret.\u003C\/p\u003E\n\u003Cp\u003EDevice Registry:\u0026nbsp;This system provides a database, which stores information related to the Devices within the Local Cloud. The purpose of this system is therefore to allow:\u0026nbsp;Devices to register themselves, making this announcement available to other Application Systems on the network. They are also allowed to remove or update their entries when it is necessary. Generate a client certificate which can be used by the Device to register its systems.\u003C\/p\u003E\n\u003Cp\u003EChoreographer:\u0026nbsp;This supporting core system makes it possible to execute pre-defined workflows through orchestration and service consumption. Each workflow can be divided into three segments: Plans, Actions, and Steps. Plans\u0026nbsp;define the whole workflow by name and they contain\u0026nbsp;Actions\u0026nbsp;which group coherent\u0026nbsp;Steps\u0026nbsp;together for greater transparency and enabling sequentialization of these\u0026nbsp;Step\u0026nbsp;groups. Workflow execution in this generation can only be accomplished if the requested providers in each\u0026nbsp;Step\u0026nbsp;are all available (they are registered with the same name in the service registry as in the plan description) and the requested services call back (notify) to the Choreographer through the Choreography service that the execution on their end is done. Only this way can the Choreographer continue the execution of the\u0026nbsp;Plan.\u003C\/p\u003E\n\u003Cp\u003EPlant Description Engine:\u0026nbsp;\u003C\/p\u003E\n\u003Cp\u003EThis supporting core system has the purpose of choreographing the consumers and producers in the plant (System of Systems \/ Local cloud). An abstract view, on which systems the plant contains and how they are connected as consumers and producers, is used to populate the\u0026nbsp;Orchestrator\u0026nbsp;with store rules for each of the consumers. The abstract view does not contain any instance specific information, instead meta-data about each system is used to identify the service producers.\u003C\/p\u003E\n\u003Cp\u003EThe plant description engine (PDE) can be configured with several variants of the plant description of which at most one can be active. The active plant description is used to populate the orchestrator and if no plant description is active the orchestrator does not contain any store rules populated by the PDE. This can be used to establish alternativ plants (plan A, plan B, etc).\u003C\/p\u003E\n\u003Cp\u003EThe PDE gathers information about the presence of all specified systems in the active plant description. If a system is not present it raises an alarm. If it detects that an unknown system has registered a service in the service registry it also raises an alarm. For a consumer system to be monitored the system must produce the\u0026nbsp;Monitorable\u0026nbsp;service and hence also register in the service registry.\u003C\/p\u003E\n","url":"https:\/\/projects.eclipse.org\/projects\/iot.arrowhead","website_url":"https:\/\/arrowhead.eu\/eclipse-arrowhead-2\/","website_repo":[],"logo":"https:\/\/projects.eclipse.org\/sites\/default\/files\/styles\/project_logo\/public\/Arrowhead%20blue.png?itok=tYODJMHR","tags":[],"licenses":[{"name":"Eclipse Public License 2.0","short_name":"EPL-2.0","url":"http:\/\/www.eclipse.org\/legal\/epl-2.0"}],"github_repos":[],"github":{"org":"eclipse-arrowhead","ignored_repos":[]},"gitlab_repos":[],"gitlab":{"project_group":"","ignored_sub_groups":[]},"gerrit_repos":[],"contributors":[],"committers":[{"username":"emanuelpalm","full_name":"Emanuel Palm","url":"https:\/\/api.eclipse.org\/account\/profile\/emanuelpalm"},{"username":"btams","full_name":"Bordi Tam\u00e1s","url":"https:\/\/api.eclipse.org\/account\/profile\/btams"},{"username":"jeliasson","full_name":"Jens Eliasson","url":"https:\/\/api.eclipse.org\/account\/profile\/jeliasson"},{"username":"pvargaikl","full_name":"Pal Varga","url":"https:\/\/api.eclipse.org\/account\/profile\/pvargaikl"},{"username":"gmajoros","full_name":"Gabor Majoros","url":"https:\/\/api.eclipse.org\/account\/profile\/gmajoros"},{"username":"jdelsing","full_name":"Jerker Delsing","url":"https:\/\/api.eclipse.org\/account\/profile\/jdelsing"},{"username":"stanyi","full_name":"Szvetlin Tanyi","url":"https:\/\/api.eclipse.org\/account\/profile\/stanyi"}],"project_leads":[{"username":"pvargaikl","full_name":"Pal Varga","url":"https:\/\/api.eclipse.org\/account\/profile\/pvargaikl"},{"username":"jdelsing","full_name":"Jerker Delsing","url":"https:\/\/api.eclipse.org\/account\/profile\/jdelsing"}],"working_groups":[{"name":"Internet of Things (IoT)","id":"internet-things-iot"}],"industry_collaborations":[{"name":"Internet of Things (IoT)","id":"internet-things-iot"}],"technology_types":["IoT and Edge","Runtime","Tools"],"spec_project_working_group":[],"state":"Incubating","provisioned":true,"latest_release_name":"5.2.0","releases":"https:\/\/projects.eclipse.org\/api\/projects\/iot.arrowhead\/releases","top_level_project":"iot","slsa":{"build_level":""},"dev_list":{"name":"arrowhead-dev","email":"arrowhead-dev@eclipse.org","url":"https:\/\/accounts.eclipse.org\/mailing-list\/arrowhead-dev"},"mailing_lists":[],"reviews":"https:\/\/projects.eclipse.org\/api\/projects\/iot.arrowhead\/reviews","documentation_url":"","gettingstarted_url":"https:\/\/github.com\/eclipse-arrowhead\/core-java-spring#quickstart","download_url":"https:\/\/github.com\/eclipse-arrowhead\/core-java-spring\/releases","scope":"\u003Cp\u003EThe Eclipse Arrowhead provides a Service Oriented Architecture-based interoperability and integrability framework for the design and operation of complex systems of systems in the industrial automation domain. Through a service oriented architecture enabling the loose coupling of relevant services, Eclipse Arrowhead\u0026nbsp;provide the concepts and tooling for such a framework. The actual implementation of services relevant for a specific production ready use cases is beyond the scope this project.\u003C\/p\u003E\n\u003Cp\u003EThe project covers architecture, software systems, and services originated from multiple European and national projects e.g., Arrowhead and Arrowhead Tools [1], EMC2 [2], Productive4.0 [3], FAR-EDGE [4]. The architecture is summarised in multiple papers [5, 6] and a book [7]. The architecture is built on a concept called local clouds [8, 9]. Local clouds are self contained and are populated with at least 3 mandatory core system and a selection of support core systems. Currently available core systems and are:\u0026nbsp;\u0026nbsp;\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EMandatory core systems: Service Registry, Orchestrator, Authorization.\u003C\/li\u003E\n\u003Cli\u003ESupporting core systems: Event Handler, Gateway, Gatekeeper, Translator, QoS Manager, QoS Monitor, DataManager, etc.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EReferences:\u003C\/p\u003E\n\u003Cp\u003E[1] Arrowhead and Arrowhead Tools Projects - https:\/\/www.arrowhead.eu\/\u003C\/p\u003E\n\u003Cp\u003E[2] EMC2 project - http:\/\/www.emc2-project.eu\/\u003C\/p\u003E\n\u003Cp\u003E[3] Productive4.0 project - https:\/\/productive40.eu\/\u003C\/p\u003E\n\u003Cp\u003E[4] FAR-EDGE project - http:\/\/www.faredge.eu\u003C\/p\u003E\n\u003Cp\u003E[5] . P. Varga, F.\u0026nbsp; Blomstedt, L. L. Ferreira, J. Eliasson, M. Johansson, J. Delsing, and I. M. de Soria, \u201cMaking System of Systems Interoperable - the Core Components of the Arrowhead Framework,\u201d Journal of Network and Computer Applications, Special Issue on Engineering Future Interoperable and Open IoT Systems, 2016.\u003C\/p\u003E\n\u003Cp\u003E[6] Cs. Hegedus, D. Kozma, G. Soos, and\u0026nbsp; P. Varga, \u201cEnhancements of the Arrowhead Framework to Refine Intcloud Service Interactions,\u201d in 42nd Annual Conference of IEEE Industrial Electronics Society (IECON), Florence, Italy, 2016\u003C\/p\u003E\n\u003Cp\u003E[7] J. Delsing (ed.), \u201cIoT Automation: Arrowhead Framework,\u201d CRC Press, 2017\u003C\/p\u003E\n\u003Cp\u003E[8] J. Delsing, J. Eliasson, J. van\u0026nbsp; Deventer, H. Derhamy, and\u0026nbsp; P. Varga, \u201cEnabling IoT Automation using Local Clouds,\u201d 2016 IEEE 3rd World Forum on Internet of Things (WF-IoT), pp. 502\u2013507, 2016.\u003C\/p\u003E\n\u003Cp\u003E[9] J. Delsing, \u201cLocal Cloud Internet of Things Automation: Technology and Business Model Features of Distributed Internet of Things Automation Solutions,\u201d IEEE Industrial Electronics Magazine, vol.11, pp. 8\u201321, 2017.\u003C\/p\u003E\n","security_team":{"individual_members":[],"groups":{"include_committers":true,"include_project_leads":false}}}]