Application Management for Component-Based Applications
JamaicaAMS
aicas’ application management system for deploying and managing modular applications, their lifecycle, security, and resources across embedded and edge systems.
The Challenge
Manage the Complexity of Modular Software
A modular architecture makes it easy to add, replace, and maintain individual software components. But in embedded and edge systems, modularity alone is not enough. Teams also need control over how components behave at runtime, which resources they consume, and how the complete application is deployed.
Control Individual Components
Application frameworks may provide component lifecycle management without the ability to forcefully stop individual components. For systems with stronger operational requirements, teams need a way to regain control when a component does not stop as expected.
Limit Resource Consumption
Components compete for finite system resources. Without enforceable limits, an individual component can consume CPU time, memory, and filesystem resources needed elsewhere in the system.
Manage Complexity
With the advantages of modular applications usually comes an overhead in complexity. While encapsulation eases debugging and bug fixing, it makes dependency management harder.
Control System Access
Components need access to the system for providing their specified functionality. They should not have more permissions than are required for their individual task. The system needs to be protected against malicious or erroneous API usage.
The Solution
Bring Operational Control to Components, Resources, and System Access
JamaicaAMS is a modular application management system and service platform for Java that implements a complete, dynamic component model based on the OSGi standard.
JamaicaAMS extends the underlying application framework with capabilities for stronger component and resource control. It provides a pre-composed and pre-compiled runtime and supports multiple deployment formats for different target environments.
Control the Lifecycle Component
Manage modular application components and keep the control to also safely stop individual components when required.
Service Registry and Dependency Management
Advanced dependency management automates away the complexity of modular service architectures. A central service registry, automatic dependency resolution and the ability to run multiple versions of the same component support the weaving of a long-lasting and robust application.
Enforce Resource Budgets
Define and enforce budgets for individual components across system resources including CPU time, memory, filesystem resources, and API access.
Protect the System
By running all components in a virtualized environment, JamaicaAMS protects the system against malicious and erroneous access preserving the – potentially remote – device always in a running and controllable state.
Business Outcome
Reduce Embedded Software Constraints. Save engineering time and costs.
Reduce Lifecycle Costs
Develop, test, update, and replace software components independently. Keep systems operational during maintenance, debugging, and bug fixing instead of redeploying or stopping the complete application. This reduces effort across updates, system variants, maintenance, and field service.
Accelerate Time-to-Market
Develop and release components independently instead of integrating every change into a monolithic system release. Reuse components across supported hardware, processor architectures, and operating systems to reduce system-specific development and testing. Simplify deployment across heterogeneous fleets, shorten release cycles, and bring new features to market faster.
Extend Product Lifetime
Add, update, or replace functionality throughout the system lifecycle without redeploying the complete system. Adapt deployed systems to new requirements over time and extend the economically viable lifetime of existing hardware.
Capabilities
Application Management for Modular Java Systems
Dynamic Component Model
JamaicaAMS implements a complete and dynamic component model based on the OSGi standard.
Forceful Component Stop
JamaicaAMS provides the capability to forcefully stop individual components, extending the component control available in many application frameworks.
Per-Component Resource Limitations
Enforce budgets for individual components across relevant system resources, including CPU time, memory, filesystem resources, and API access.
Pre-Composed and Pre-Compiled Runtime
Ahead-of-Time compilation can be used to fine-tune application execution speed and memory footprint for the requirements of embedded targets.
AOT-Compiled JAR Extensibility
Extend JamaicaAMS with precompiled JARs for improved performance.
Multiple Deployment Formats
JamaicaAMS is available as:
◼
Copy-in Binary Package
◼
Container Image
◼
Amazon Machine Image (AWS AMI)
◼
Red Hat Universal Base Image (UBI)
◼
Yocto Layer
Capabilities
Application Management for Modular Java Systems
Dynamic Component Model
JamaicaAMS implements a complete and dynamic component model based on the OSGi standard.
Per-Component Resource Limitations
Enforce budgets for individual components across relevant system resources, including CPU time, memory, filesystem resources, and API access.
AOT-Compiled JAR Extensibility
Extend JamaicaAMS with precompiled JARs for improved performance.
Forceful Component Stop
JamaicaAMS provides the capability to forcefully stop individual components, extending the component control available in many application frameworks.
Pre-Composed and Pre-Compiled Runtime
Ahead-of-Time compilation can be used to fine-tune application execution speed and memory footprint for the requirements of embedded targets.
Multiple Deployment Formats
JamaicaAMS is available as:
◼
Copy-in Binary Package
◼
Container Image
◼
Amazon Machine Image (AWS AMI)
◼
Red Hat Universal Base Image (UBI)
◼
Yocto Layer
Why JamaicaAMS
Why JamaicaAMS for Modular Application Management?
JamaicaAMS combines the standardized OSGi component model and Apache Felix ecosystem with additional capabilities for controlling components, limiting resource consumption, and deploying a pre-composed runtime.
True Bundle Stop
Forcefully stop individual components when waiting for them to complete is not acceptable due to timing issues and error cases.
Per-Bundle Resource Limitations
Apply resource limits to individual bundles as well as the overall framework level.
Pre-Composed Runtime
Deploy a pre-composed and tested runtime instead of downloading, assembling, and qualifying the required runtime components independently.
Compiled Extensions
Extend the runtime with pre-compiled JARs where improved performance is required.
Capability
Regular OSGi
e.g. Apache Felix
JamaicaAMS
Component Model
Yes
Yes
Community Extensions & Updates
Yes
Yes
Specific Patches and Fixes
No
Yes
Full Bundle Control (“stop”)
No
Yes
Per-Bundle Resource Limitations
No
Yes
Pre-Composed Runtime
No
Yes
Just-in-Time Compilation
Yes
Yes
*
Extensibility with Pre-Compiled JARs
No
Yes
OSGi on QNX and VxWorks
Yes, when running on JamaicaVM
Yes, Built-in
* ??????????????????????????
Why JamaicaAMS
Why JamaicaAMS for Modular Application Management?
JamaicaAMS combines the standardized OSGi component model and Apache Felix ecosystem with additional capabilities for controlling components, limiting resource consumption, and deploying a pre-composed runtime.
True Bundle Stop
Forcefully stop individual components when waiting for them to complete is not acceptable due to timing issues and error cases.
Per-Bundle Resource Limitations
Apply resource limits to individual bundles as well as the overall framework level.
Pre-Composed Runtime
Deploy a pre-composed and tested runtime instead of downloading, assembling, and qualifying the required runtime components independently.
Compiled Extensions
Extend the runtime with pre-compiled JARs where improved performance is required.
Multiple Deployment Formats
JamaicaAMS is available as:
◼
Copy-in Binary Package
◼
Container Image
◼
Amazon Machine Image (AWS AMI)
◼
Red Hat Universal Base Image (UBI)
◼
Yocto Layer
Capability
Regular OSGi
e.g. Apache Felix
JamaicaAMS
Component Model
Yes
Yes
Community Extensions & Updates
Yes
Yes
Specific Patches and Fixes
No
Yes
Full Bundle Control (“stop”)
No
Yes
Per-Bundle Resource Limitations
No
Yes
Pre-Composed Runtime
No
Yes
Just-in-Time Compilation
Yes
No
*
Extensibility with Pre-Compiled JARs
No
Yes
OSGi on QNX and VxWorks
Yes
**
Yes, Built-in
*
For Windows and macOS, aicas provides a serviced build based on OpenJDK and Apache Felix without JamaicaAMS-specific functionality.
**
When running on JamaicaVM
Use Case Examples
Where is JamaicaAMS used?
Application Management
WHAT: Helping car owners and the police to return your car after theft.
Over-the-Air Updates
WHAT: An Automotive Over-The-Air (AOTA) Updates Testbed that demonstrates how software can be remotely managed on a fleet of vehicles.
???
Lorem Ipseum
WHAT: Use artificial intelligence to monitor the functions of the machines.
Use Case Examples
Where is JamaicaAMS used?
Application Management
WHAT: Helping car owners and the police to return your car after theft.
HOW: aicas enables the upload of software to vehicles. In case of theft, the application can – if properly authorized – provide vehicle data to the authorities. The vehicle’s location can be traced at any time, certain vehicle functions can be turned on and off. Even interaction with the driver is possible. If the vehicle stops, e.g., at a red light, the onward journey can be prevented.
VALUE: The solution allows for a quick and easy upgrade to the desired software version for all processes and functions. Lifecycle management can be expanded to the functions of underlying, connected microprocessors. Completely remote and just with a few buttons, single devices, any selection of devices – even according to specific requirements, such as location, language, etc. – up to millions of devices can be managed – quick and simple.
Over-the-Air Updates
WHAT: An Automotive Over-The-Air (AOTA) Updates Testbed that demonstrates how software can be remotely managed on a fleet of vehicles.
HOW: The base architecture is built around a Telematics Unit (TU) managing the connection to the external network. The TU has connections to the internal busses: ethernet and CAN. On the TU, a realtime OSGi framework with resource enforcement is used to manage the software lifecycle. By running an instance on each domain controller, customers can track the software on each instance. An additional level of segregation is achieved by running system and external software in a container, running as a separate process, in an FPGA, on a GPU, or on a microcontroller.
VALUE: Connecting a vehicle to the internet is just the beginning of digital transformation. This testbed demonstrates how connectivity can be used for effective data collection and remote software maintenance. Keeping the cloud-to-vehicle connection secure is essential for this transformation.
???
Lorem Ipseum
WHAT: Use artificial intelligence to monitor the functions of the machines.
HOW: Patients’ lives depend on ventilators. Therefore, the software running the basic operations of the system needs to be shielded from the artificial intelligence used to monitor the ventilator’s functions. The customer, a large German manufacturer of medical technology, uses the virtualization capabilities of aicas’ Jamaica VM to seperate core functionalities from the AI.
VALUE: It ensures the ventilator’s basic software remains operable, even if the AI wants to use more system resources than it should. The Jamaica product family prevents memory or CPU usage beyond defined limits, thus protecting key application functions.
Platform Support
JamaicaAMS Platform Support
Target OS
x64
AArch64
RISC-V
Other
Linux
Yes
Yes
Yes
On Request
QNX
Yes
Yes
On Request
On Request
VxWorks
Yes
Yes
On Request
On Request
Other OS
On Request
On Request
On Request
On Request
Windows
Yes
*
Yes
*
On Request
On Request
macOS
Yes
*
Yes
*
On Request
On Request
Linux
◼
Debian/Ubuntu-based
◼
RPM/RHEL-based
◼
Android-based
◼
Yocto-built
*
For Windows and macOS, aicas provides a serviced build based on OpenJDK and Apache Felix without JamaicaAMS-specific functionality.
Reviewed and Approved by AWS
aicas JamaicaAMS has been evaluated and approved by AWS and is now qualified software to run on AWS cloud services.
JamaicaAMS on AWS MarketplaceDeployment
Easiest Integration
JamaicaAMS is available through multiple pre-packaged formats and channels.
Copy-in Binary Package
Get JamaicaAMS as a binary package.
Container Image
Get JamaicaAMS as a container image.
Amazon Machine Image
Use JamaicaAMS as an Amazon Machine Image (AWS AMI).
Red Hat Universal Base Image
Get JamaicaAMS as a Red Hat Universal Base Image (UBI).
aicas EdgeSuite
JamaicaAMS within aicas EdgeSuite
JamaicaAMS is built on JamaicaVM, combining modular application management with a realtime Java runtime and development environment designed for embedded and IoT systems.
Combined with aicas’ Edge Device Portal (EDP), JamaicaAMS bundles can dynamically be deployed from remote for development, testing, and production workflows. aicas’ Edge Data Gateway (EDG) profits from JamaicaAMS running on a device for collecting and preprocessing data and connecting data sources and cloud endpoints with pre-build components from JamaicaCAR and JamaicaIOT.
Explore aicas EdgeSuiteNext Step
Evaluate JamaicaAMS for your Application Architecture
Discuss your component architecture, resource-control requirements, target environment, and deployment model with aicas.
FAQ