OSGi declarative services exist for a long time and are used to implement a modular service-oriented architecture. Because of the supported dynamics, the easy way to define, register and consume services, declarative services can be found in various scenarios. Using several of the long time existing specifications like Declarative Service, ConfigurationAdmin and Remote Service Admin, it is also easy to setup the currently hyped micro services by using OSGi declarative services.
Physical IoT devices are more exciting than any software user interface and should be central to any demo. Initially attracted by the IoT device, visitors’ are naturally receptive to learn more about the software platform and/or products controlling the solution.
In February 2015 the Bosch Group acquired ProSyst Software as part of its IoT strategy. For Bosch Software Innovations, the Bosch Group's software and systems house, OSGi offers the right balance between flexibility and hardware cost for IoT gateways. There is currently no other technology for IoT gateways that is both more future-proof and more mature than OSGi. In this presentation we want to give an overview of what has been achieved since then, looking at how the ProSyst's OSGi technology has been integrated into the comprehensive Bosch IoT Suite as well as the Bosch IoT Cloud.
This talk will explain to java developers not yet using OSGi, how they can produce output with little knowledge of the underlying technology.
A helicopter view of the OSGi enRoute methodology will be explained with a demonstration of the simplicity of bringing non OSGi code into the brilliant enRoute environment.
The src from ImageJ, a non OSGi image processing codebase, will be brought into an enRoute setup consisting of an API bundle, a provider bundle and a command bundle.
OSGi learning curve is steep but its benefits widely surpass difficulties: OSGi gives you sensible dependencies management, pluggable extensions mechanisms, strong modularity, out-of-the-box semantic versioning support and strong contract-based software development.
If you had to name a single great thing about OSGi, it would probably be its dynamics. Services come and go; other services react to those events, configuration can change and so on. Even the startup is dynamic: start levels are increased synchronously; however, configuration, Declarative Services, and Blueprint are started asynchronously after bundles turn active. Sometimes you want to exercise control over when your application is actually fully started or more importantly when it is not.
We will show you a way to monitor startup of your application and demonstrate failure scenarios for common subsystems like configuration and Blueprint. We will also demonstrate the concept of start phases. A phased start enables a higher level of security in the face of failures during startup.
As many of you know, OSGi has a powerful and dynamic service discovery mechanism, but it is limited to services inside JVMs. With Docker nowadays it is trivially easy to deploy all kind of (micro) services, so we'd like to discover those too. We will have a look at how we can use the Docker API to discover services in other containers, and how we can use Consul to expand service discovery to other hosts.
REST microservices are a powerful tool for composing large-scale systems, and the standalone nature of a microservice helps to avoid it becoming part of a “big ball of mud” application. Given the power and success of microservices as inter-process modules, why stop there? OSGi has offered in-process microservices for nearly two decades, and uses them to great effect in modular applications.
The new OSGi JAX-RS whiteboard service allows dynamic OSGi services to be automatically exported as JAX-RS Resources, Filters or Applications. These “Microservice modules” can be easily shared or moved between frameworks, allowing you to benefit from a microservice structure that goes all the way down.
With the current explosion of IoT devices connected to the Internet, the biggest challenge in the near future is how to process and analyze all this generated data, making use of the highly distributed compute infrastructure at hand. A promising approach for data analysis is deep learning, using brain-inspired neural networks for feature extraction and detection. In our research lab, we have developed DIANNE, an OSGi-based framework for creating, deploying and training artificial neural networks in a modular way.
Eclipse Concierge provides a clean, small and lightweight implementation of the OSGi core framework specification, specifically tailored to embedded systems and IoT. In this talk, we will cover how to use and deploy the Concierge OSGi framework (e.g. using OSGi enRoute), and discuss many of the new and upcoming features in the Concierge project such as the OSGi REST interface and Cloud Ecosystems reference implementations.