-
Notifications
You must be signed in to change notification settings - Fork 54
Implementation
The core-java-spring
project is the first implementation of Eclipse Arrowhead.
Programming Language: Java 11
Why java? Because it is platform-independent as much as possible. When a computer has the Java Runtime Environment (JRE) installed, a Java program can run on it. Most types of computers are compatible with a JRE including PCs running on Windows, Macintosh computers, Unix or Linux computers, and large mainframe computers.
Programming Framework: Spring-Boot 2.1.5
Why Spring? Because it brings together years of wisdom in the form of design patterns. Spring has a long history of innovation, adoption, and standardization. Over the years, it's become mature enough to become a default solution for most common problems faced in the development of large scale enterprise applications.
Building Tool: Maven 3.5+
Why Maven? Because it is one of the most popular build tools in Java, designed to take much of the hard work out of the build process. Maven uses a declarative approach, where the project structure and contents are described, rather than the task-based approach used in Ant or in traditional make files, for example.
Database Management System: MySQL 5.7+
Why MySQL? Beacuse it was developed for speed, and maintains a reputation for being fast, even if this may come at the expense of some additional features. It is also known for its reliability, backed by a large community of programmers that have put the code through tough testing over the years.
The hardware requirements really depend on the expected workload. Faster CPU / more cores / more RAM is likely to lead to improved performance.
Minimum: 1 CPU Core, 600 MB RAM, 1 GB Disk space
Recommended: 2 CPU Cores, 4 GB RAM, 2+ GB Disk space (depending on the expected amount of data to be stored)
Disk space: ~150 MB
Minimum (per system): 1 CPU Core, 128 MB RAM + ~100 MB RAM for the JVM, 100 MB Disk space
Recommended (per system): 4 CPU Cores, 2 GB RAM, 100 MB Disk space
Note: Please take into consideration, that the above mentioned requirements are reflecting the native deployment. If you use any additional containerization (like Docker, Kubernetes, etc..) or any virtualization, then more resources will be needed for the same performance.
Mandatory Core Systems
- Service Registry
- Orchestrator
- Authorization
Supporting Core Systems
- Certificate Authority
- Choreographer
- Configuration
- Data Manager
- Device Registry
- Event Handler
- Gatekeeper
- Gateway
- Onboarding
- Plant Description Engine
- Quality Of Service Monitor
- System Registry
- Time Manager
Swagger is an Interface Description Language for describing RESTful APIs expressed using JSON. Core Systems are implementing Swagger UI in order to generate interactive API documentation that lets you try out the API calls directly in the browser. When a Core System is up and running, than Swagger UI is available at {address}:{port}/swagger-ui.html
. In case of secure mode the System Operator Certificate will be required to load by the browser.
APIs are grouped as following:
Client
APIs are available for anyone within the local cloud.
Private
APIs are available only for specified Core Systems.
Management
APIs are available only for System Operators.
Certificates
Quick start
How to contribute?
- Inter-Cloud setup
- Java Memory Usage
- MySQL Connections
- Change Database Engine
- Compile Only One Module
Service Registry
- Service Registry - Overview
- Service Registry - Services
- Service Registry - Management
- Service Registry - Configuration
Orchestrator
- Orchestrator - Overview
- Orchestrator - Services
- Orchestrator - Management
- Orchestrator - Configuration
Authorization
- Authorization - Overview
- Authorization - Services
- Authorization - Management
- Authorization - Configuration
Gatekeeper
Gateway
Event Handler
- Event Handler - Overview
- Event Handler - Services
- Event Handler - Management
- Event Handler - Configuration
Choreographer
- Choreographer - Overview
- Choreographer - Services
- Choreographer - Management
- Choreographer - Configuration
Quality of Service Monitor
Certificate Authority
- Certificate Authority - Overview
- Certificate Authority - Services
- Certificate Authority - Management
- Certificate Authority - Configuration
System Registry
- System Registry - Overview
- System Registry - Services
- System Registry - Management
- System Registry - Configuration
Device Registry
- Device Registry - Overview
- Device Registry - Services
- Device Registry - Management
- Device Registry - Configuration
Onboarding
Data Manager
Time Manager
Plant Description Engine
- Plant Description Engine - Overview
- Plant Description Engine - Services
- Plant Description Engine - Management
- Plant Description Engine - Configuration
HawkBit Configuration Manager
Device Hub