SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
How OSGi drives cross
sector energy management
SMA Solar Technology AG
WHO IS SMA?
> SMA is an energy equipment supplier founded in 1981 and headquartered
near Kassel in the middle of Germany
> Main products are solar inverters for photovoltaics systems
> These products are complemented by components for energy management,
system monitoring and data analysis and the world’s largest PV monitoring
portal
> More than 3,000 employees, thereof 500 in technology
> Since 2018 SMA is a contributing associate of the OSGi alliance
16.11.2018 2How OSGi drives cross sector energy management, Jörn Tümmler
STP 6.0 with integrated MLPE-communication CORE1, 50 kW Sunny Boy Storage 6.0 ennexOS energy management platform
AGENDA
1
2
3
4
What is cross sector energy management?
Searching for a solution
Getting started with OSGi
Getting lost
5 Starting over
16.11.2018 3How OSGi drives cross sector energy management, Jörn Tümmler
WHY ENERGY MANAGEMENT?
4
WHAT DOES CROSS SECTOR ENERGY MANAGEMENT MEAN?
5
The connectivity of all energy
sectors is crucial for the new energy
world. All different systems need to
be continually optimized to make the
most efficient use of energy.
The Internet of Things (IoT)
is the technical basis for
connecting and managing
different devices. In the energy
market, IoT is a driving force to
create the future of energy.
SYSTEM CONTEXT
6
MAIN GOALS AND REQUIREMENTS
> Provide a platform for advanced energy management:
> Extendable by new protocols for easy integration
> Extendable data-processing facilities to combine different control and energy management strategies
> High throughput of data for monitoring and control commands
> Portable solution to run on different ARM- and X86 based systems
> Consolidate the portfolio of existing data-loggers and management devices:
> Improve our software-architecture and bring it to next level of modularity:
> Although we had already a software library with modules we had dependency issues and inadequate life-cycle
mechanisms
16.11.2018 7How OSGi drives cross sector energy management, Jörn Tümmler
Multigate Webconnect Home Manager WebBox RS485 WebBox BT Cluster Controller SC30COMPower Plant Controller
AGENDA
1
2
3
4
What is cross sector energy management?
Searching for a solution
Getting started with OSGi
Getting lost
5 Starting over
16.11.2018 8How OSGi drives cross sector energy management, Jörn Tümmler
EXAMPLE ARCHITECTURE
Investigations showed a typical blueprint for IoT
gateways:
> Component-based development
> Central data-cache or data-bus
> Pluggable extensions
> Several OSGi based solutions available
> We’ve evaluated four OSGi based solutions:
> Two commercial solutions
> Two open source solutions
> The open source solutions allowed us to test the new
technology regarding performance and usability
> … and also to got in touch with OSGi
16.11.2018 10How OSGi drives cross sector energy management, Jörn Tümmler
OSGI LOOKS PROMISING, BUT HOW TO START?
> The first plan was to use one of the open source solutions as basis
> This was discarded because of technical limitations and high efforts to adapt it to our needs
> To benefit from the advantages of a component based development, it was decided to develop an own framework based on
OSGi, but tailored to the needs of SMA
> It was clear that there would be a “learning curve” to establish this new technology:
11
Source: http://enroute.osgi.org/book/100-introduction.html
How to lower the entry barrier and benefit from OSGi?
AGENDA
1
2
3
4
What is cross sector energy management?
Searching for a solution
Getting started with OSGi
Getting lost
5 Starting over
16.11.2018 12How OSGi drives cross sector energy management, Jörn Tümmler
INITIAL SITUATION
> We had a team of experienced developers with some knowledge of Java, but no OSGi experience
> We knew how to develop communication gateways and energy managers …
> … but chances were high that the new system would not taking real advantage of OSGi
> Because of this, we had the following “master-plan”:
> Train the team in Java and OSGi
> Get support from external OSGi experts –
at least one expert should be on-site
> Develop an initial design together with the OSGi experts
> OSGi experts should also accompany the team when developing the system
16.11.2018 15How OSGi drives cross sector energy management, Jörn Tümmler
INITIAL DESIGN
> In several workshops we developed the initial design
> The input of the OSGi experts resulted in a more fine grained service-architecture
> Finally we combined the best of both worlds:
16.11.2018 16How OSGi drives cross sector energy management, Jörn Tümmler
OSGi concepts
> Eclipse with BndTools as development environment
> OSGi R6 with Java 8:
> enRoute (classic) as Basis
> Apache Felix runtime
> Declarative Services
> Configuration Admin
> Use WhiteBoard pattern for notifications, aggregations
> Felix WebConsole and Gogo Shell for debugging
SMA concepts
> Central data-cache to store runtime information
> Convert all incoming data into a “normalized” meta-data-
model
> Use “duck-typing” to identify data which needs to be
processed
> Matlab for control algorithms
> Swagger/OpenAPI to define REST APIs for ui and portal
communication
USE A META DATA MODEL TO UNIFY DATA
16.11.2018
17
How OSGi drives cross sector energy management, Jörn Tümmler
Name Type Unit
Metering.GridMs.TotWIn Scalar W
Metering.GridMs.TotWOut Scalar W
… … …
Protocol Identifier Scaling Destination
Reg500088 0,1 Metering.GridMs.TotWIn
Reg500089 0,1 Metering.GridMs.TotWOut
Protocol Identifier Scaling Destination
Id-6100-423AD 0,01 Metering.GridMs.TotWIn
Id-6100-423AF 0,01 Metering.GridMs.TotWOut
Protocol Identifier Scalin
g
Destination
0x346330 0,001 Metering.GridMs.TotWIn
0x346331 0,001 Metering.GridMs.TotWOut
Protocol A
Protocol B
Protocol C
> The SMA Meta Model defines about 2000 data-points
> Each data-point has a fixed meaning, type, unit, etc.
> It therefore defines the ‘semantics’ of data
> A communication driver needs to map its information into
the meta-model and vice versa
> Using the meta-model has the following advantages:
> The data-processing applications can rely on the
protocol independent definition of data-points
> Information can be mapped between protocols
SMA Meta Model
COMMUNICATION LAYER
16.11.2018 18How OSGi drives cross sector energy management, Jörn Tümmler
> Integrating different devices is crucial for an energy management system
> Different aspects of a communication driver are modeled by dedicated services:
Detects devices, creates and removes them
One service for each device
Enumerates all drivers and visible devices
Provided, if a device needs to be polled
Provided, if a device can process parameters
DATA PROCESSING LAYER
16.11.2018 19How OSGi drives cross sector energy management, Jörn Tümmler
> Data processing is offered at different layers of abstraction:
Get notified about any change
Get notified about some changes
Get notified if schemas change
Perform automatic data transformations
on update:
• Direct mapping
• Aggregation
• Mapping
• Merging
• Filtering
• Fallback
DATA PROCESSING – VIEW EXAMPLE
20
@Component
public class PowerViewExample {
interface MyView extends DeviceSchema {
@DataMember(id = DataMembers.Measurement.METERING_GRIDMS_TOTWIN_STRING)
Double getTotWIn();
@DataMember(id = DataMembers.Measurement.METERING_GRIDMS_TOTWOUT_STRING)
Optional<Double> getTotWOut();
}
@Reference DataViewAdmin dataViewAdmin;
DataView<MyView> dataView;
@Activate void activate() {
dataView = dataViewAdmin.createView(MyView.class);
dataView.onUpdate(this::handleUpdate);
}
@Deactivate void deactivate() {
dataView.close();
}
void handleUpdate(DataViewEvent<MyView> event) {
System.out.println("TotWin :" + event.instance.getTotWIn());
event.instance.getTotWOut().ifPresent(d -> System.out.println("TotWOut:" + d));
}
}
AGENDA
1
2
3
4
What is cross sector energy management?
Searching for a solution
Getting started with OSGi
Getting lost
5 Starting over
16.11.2018 21How OSGi drives cross sector energy management, Jörn Tümmler
FIRST DEVELOPMENT STARTED PROMISING …
16.11.2018 24How OSGi drives cross sector energy management, Jörn Tümmler
FIRST DEVELOPMENT STARTED PROMISING …
16.11.2018 25How OSGi drives cross sector energy management, Jörn Tümmler
FIRST DEVELOPMENT STARTED PROMISING …
16.11.2018 26How OSGi drives cross sector energy management, Jörn Tümmler
… but then we got more and more problems …
TOP 5 OSGI PROBLEMS – AND HOW WE DEAL WITH THEM
> API design
> Dynamics
> Whiteboard pattern and lifecycle of listeners which can
come and go at any time
> Dealing with concurrency issues
> Cyclic dependencies
> Start order / groups of loosely coupled services
( diagnosis subsystem)
> “Service jojos” with optional configurations
> Strange resolving errors
> Cohesion (“glue bundles”)
> Complex configurations
16.11.2018 27How OSGi drives cross sector energy management, Jörn Tümmler
> Make APIs as small as possible
> Avoid cyclic dependencies; consider WhiteBoard pattern
> Avoid own life-cycle methods
> Provide a library as dispatcher that handles life-cycle issues
> Use immutable data, concurrent data-structures with queues
> Combine mandatory w. optional references; register manually
> Use the “aggregate state” to configure groups
> Only use mandatory configurations
> Revise im- and exports
> Check the contents of bundles and split them
> Split configurations; use JSON as “last resort”
DEALING WITH DYNAMICS - EVENT-DISPATCHER UTILITY CLASS
16.11.2018 28How OSGi drives cross sector energy management, Jörn Tümmler
@Component
public class WhiteBoardDispatcherImpl {
final EventDispatcher<Listener> eventDispatcher =
new BackgroundEventDispatcher<>();
@Reference(cardinality =
ReferenceCardinality.MULTIPLE, //
policy = ReferencePolicy.DYNAMIC)
void addPublisher(Publisher publisher) {
eventDispatcher.addListener(publisher);
}
void removePublisher(Publisher publisher) {
eventDispatcher.removeListener(publisher);
}
public void notifyListeners(Event event) {
eventDispatcher.dispatch(l -> l.notify(event));
}
}
@Component
public class SimpleWhiteBoardDispatcherImpl {
@Reference
volatile List<Listener> listeners;
public void notifyListeners(Event event) {
listeners.foreach(l -> l.notify(event));
}
}
Problematic Whiteboard Dispatcher Whiteboard Dispatcher with helper class
DEALING WITH DYNAMICS – AGGREGATE STATE
16.11.2018 29How OSGi drives cross sector energy management, Jörn Tümmler
More details on http://aqute.biz/2017/04/24/aggregate-state.html
@Component(property={"aggregate.state=diagGroup", "diagGroup=conditions" })
@Component(property={"aggregate.state=diagGroup", "diagGroup=logger" })
@Reference(target = "(&(diagGroup=logger)(diagGroup=slf4j)(diagGroup=conditions))“)
AGENDA
1
2
3
4
What is cross sector energy management?
Searching for a solution
Getting started with OSGi
Getting lost
5 Starting over
16.11.2018 30How OSGi drives cross sector energy management, Jörn Tümmler
WHERE ARE WE NOW?
> We now have prepared the ground for an extendible system
> The first product based on OSGi technology was released in December 2017
> We are currently derive the next products from our framework
> Thanks to OSGi deriving new products is now only a matter of configuration
16.11.2018 32How OSGi drives cross sector energy management, Jörn Tümmler
HAS OSGI KEPT ITS PROMISE?
After working with technology for three years now the key benefits of OSGi are:
> It defines a clean deployment model and versioning scheme for modules
> It also defines a life-cycle for modules and components
> It enforces API first design
> It relies on Java and is therefore hardware independent
> It is fast enough to be used on embedded devices
> It supports dynamic updates and reconfiguration (although this is a sharp knife)
OSGi does not lead automatically better maintainable software – but OSGi helps you to make these issues visible.
It requires you to change some of your approaches when designing software. If you are willing to accept this,
OSGi is definitely a good choice and can keep its promise!
16.11.2018 33How OSGi drives cross sector energy management, Jörn Tümmler
16.11.2018 34How OSGi drives cross sector energy management, Jörn Tümmler
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Technology)

Mais conteúdo relacionado

Semelhante a How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Technology)

IBM BC2015 - Double down on Mobility: Innovating car sharing with Car2go
IBM BC2015 - Double down on Mobility: Innovating car sharing with Car2goIBM BC2015 - Double down on Mobility: Innovating car sharing with Car2go
IBM BC2015 - Double down on Mobility: Innovating car sharing with Car2goIBM Sverige
 
TRAINING REPORT ON INDUSTRIAL AUTOMATION- PLC SCADA, VARIABLE FREQUENCY DRIVE
TRAINING REPORT ON INDUSTRIAL AUTOMATION- PLC SCADA, VARIABLE FREQUENCY DRIVETRAINING REPORT ON INDUSTRIAL AUTOMATION- PLC SCADA, VARIABLE FREQUENCY DRIVE
TRAINING REPORT ON INDUSTRIAL AUTOMATION- PLC SCADA, VARIABLE FREQUENCY DRIVEAKSHAY SACHAN
 
training report. automation,plc , scada
training report. automation,plc , scada training report. automation,plc , scada
training report. automation,plc , scada MdQutubuddin1
 
Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...
Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...
Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...IRJET Journal
 
Microservices: The Future-Proof Framework for IoT
Microservices: The Future-Proof Framework for IoTMicroservices: The Future-Proof Framework for IoT
Microservices: The Future-Proof Framework for IoTCapgemini
 
Running the Grid on Linux
Running the Grid on LinuxRunning the Grid on Linux
Running the Grid on LinuxDan Tervo
 
Sumologic <3 Open Source
Sumologic <3 Open SourceSumologic <3 Open Source
Sumologic <3 Open SourceNGINX, Inc.
 
OFMP The Road To OSGi Eclipse Democamp Luxembour 2008
OFMP The Road To OSGi Eclipse Democamp Luxembour 2008OFMP The Road To OSGi Eclipse Democamp Luxembour 2008
OFMP The Road To OSGi Eclipse Democamp Luxembour 2008Frederic Conrotte
 
How Industry 4.0 Drives the Requirement for a Hybrid Cloud and Edge Architecture
How Industry 4.0 Drives the Requirement for a Hybrid Cloud and Edge ArchitectureHow Industry 4.0 Drives the Requirement for a Hybrid Cloud and Edge Architecture
How Industry 4.0 Drives the Requirement for a Hybrid Cloud and Edge ArchitectureM2M Alliance e.V.
 
How a Time Series Database Contributes to a Decentralized Cloud Object Storag...
How a Time Series Database Contributes to a Decentralized Cloud Object Storag...How a Time Series Database Contributes to a Decentralized Cloud Object Storag...
How a Time Series Database Contributes to a Decentralized Cloud Object Storag...InfluxData
 
Final_year_presentation_1.pptx
Final_year_presentation_1.pptxFinal_year_presentation_1.pptx
Final_year_presentation_1.pptxBuddyGeneral
 
Introducing elastic.io iPaaS: Best-of-Breed Integrations - New in 2017
Introducing elastic.io iPaaS: Best-of-Breed Integrations - New in 2017Introducing elastic.io iPaaS: Best-of-Breed Integrations - New in 2017
Introducing elastic.io iPaaS: Best-of-Breed Integrations - New in 2017elastic.io
 
The Cloud Adoption Challenge
The Cloud Adoption ChallengeThe Cloud Adoption Challenge
The Cloud Adoption ChallengeSumo Logic
 
CeBIT 2016 - The Data Centre in the age of Microservices
CeBIT 2016 - The Data Centre in the age of MicroservicesCeBIT 2016 - The Data Centre in the age of Microservices
CeBIT 2016 - The Data Centre in the age of MicroservicesGunnar Menzel
 
intelligent-management-of-electrical-systems-in-industries.docx
intelligent-management-of-electrical-systems-in-industries.docxintelligent-management-of-electrical-systems-in-industries.docx
intelligent-management-of-electrical-systems-in-industries.docxKondiVinay
 
Dr Sohaira-CACIO-V2a_EngineeringTech.pptx
Dr Sohaira-CACIO-V2a_EngineeringTech.pptxDr Sohaira-CACIO-V2a_EngineeringTech.pptx
Dr Sohaira-CACIO-V2a_EngineeringTech.pptxHarisMasood20
 
Project ADAS Designreview
Project ADAS DesignreviewProject ADAS Designreview
Project ADAS DesignreviewAli Sohi
 
My thesis work on Cognitive automation of Electric appliances
My thesis work on Cognitive automation of Electric appliancesMy thesis work on Cognitive automation of Electric appliances
My thesis work on Cognitive automation of Electric appliancesAkhil Reddy Rondla
 
Training report on Embedded Systems and MATLAB
Training report on Embedded Systems and MATLABTraining report on Embedded Systems and MATLAB
Training report on Embedded Systems and MATLABAswin Sreeraj
 
20130917 the future of supply chain management - a strategic viewpoint - sa...
20130917   the future of supply chain management - a strategic viewpoint - sa...20130917   the future of supply chain management - a strategic viewpoint - sa...
20130917 the future of supply chain management - a strategic viewpoint - sa...Thorsten Schroeer
 

Semelhante a How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Technology) (20)

IBM BC2015 - Double down on Mobility: Innovating car sharing with Car2go
IBM BC2015 - Double down on Mobility: Innovating car sharing with Car2goIBM BC2015 - Double down on Mobility: Innovating car sharing with Car2go
IBM BC2015 - Double down on Mobility: Innovating car sharing with Car2go
 
TRAINING REPORT ON INDUSTRIAL AUTOMATION- PLC SCADA, VARIABLE FREQUENCY DRIVE
TRAINING REPORT ON INDUSTRIAL AUTOMATION- PLC SCADA, VARIABLE FREQUENCY DRIVETRAINING REPORT ON INDUSTRIAL AUTOMATION- PLC SCADA, VARIABLE FREQUENCY DRIVE
TRAINING REPORT ON INDUSTRIAL AUTOMATION- PLC SCADA, VARIABLE FREQUENCY DRIVE
 
training report. automation,plc , scada
training report. automation,plc , scada training report. automation,plc , scada
training report. automation,plc , scada
 
Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...
Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...
Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...
 
Microservices: The Future-Proof Framework for IoT
Microservices: The Future-Proof Framework for IoTMicroservices: The Future-Proof Framework for IoT
Microservices: The Future-Proof Framework for IoT
 
Running the Grid on Linux
Running the Grid on LinuxRunning the Grid on Linux
Running the Grid on Linux
 
Sumologic <3 Open Source
Sumologic <3 Open SourceSumologic <3 Open Source
Sumologic <3 Open Source
 
OFMP The Road To OSGi Eclipse Democamp Luxembour 2008
OFMP The Road To OSGi Eclipse Democamp Luxembour 2008OFMP The Road To OSGi Eclipse Democamp Luxembour 2008
OFMP The Road To OSGi Eclipse Democamp Luxembour 2008
 
How Industry 4.0 Drives the Requirement for a Hybrid Cloud and Edge Architecture
How Industry 4.0 Drives the Requirement for a Hybrid Cloud and Edge ArchitectureHow Industry 4.0 Drives the Requirement for a Hybrid Cloud and Edge Architecture
How Industry 4.0 Drives the Requirement for a Hybrid Cloud and Edge Architecture
 
How a Time Series Database Contributes to a Decentralized Cloud Object Storag...
How a Time Series Database Contributes to a Decentralized Cloud Object Storag...How a Time Series Database Contributes to a Decentralized Cloud Object Storag...
How a Time Series Database Contributes to a Decentralized Cloud Object Storag...
 
Final_year_presentation_1.pptx
Final_year_presentation_1.pptxFinal_year_presentation_1.pptx
Final_year_presentation_1.pptx
 
Introducing elastic.io iPaaS: Best-of-Breed Integrations - New in 2017
Introducing elastic.io iPaaS: Best-of-Breed Integrations - New in 2017Introducing elastic.io iPaaS: Best-of-Breed Integrations - New in 2017
Introducing elastic.io iPaaS: Best-of-Breed Integrations - New in 2017
 
The Cloud Adoption Challenge
The Cloud Adoption ChallengeThe Cloud Adoption Challenge
The Cloud Adoption Challenge
 
CeBIT 2016 - The Data Centre in the age of Microservices
CeBIT 2016 - The Data Centre in the age of MicroservicesCeBIT 2016 - The Data Centre in the age of Microservices
CeBIT 2016 - The Data Centre in the age of Microservices
 
intelligent-management-of-electrical-systems-in-industries.docx
intelligent-management-of-electrical-systems-in-industries.docxintelligent-management-of-electrical-systems-in-industries.docx
intelligent-management-of-electrical-systems-in-industries.docx
 
Dr Sohaira-CACIO-V2a_EngineeringTech.pptx
Dr Sohaira-CACIO-V2a_EngineeringTech.pptxDr Sohaira-CACIO-V2a_EngineeringTech.pptx
Dr Sohaira-CACIO-V2a_EngineeringTech.pptx
 
Project ADAS Designreview
Project ADAS DesignreviewProject ADAS Designreview
Project ADAS Designreview
 
My thesis work on Cognitive automation of Electric appliances
My thesis work on Cognitive automation of Electric appliancesMy thesis work on Cognitive automation of Electric appliances
My thesis work on Cognitive automation of Electric appliances
 
Training report on Embedded Systems and MATLAB
Training report on Embedded Systems and MATLABTraining report on Embedded Systems and MATLAB
Training report on Embedded Systems and MATLAB
 
20130917 the future of supply chain management - a strategic viewpoint - sa...
20130917   the future of supply chain management - a strategic viewpoint - sa...20130917   the future of supply chain management - a strategic viewpoint - sa...
20130917 the future of supply chain management - a strategic viewpoint - sa...
 

Mais de mfrancis

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...mfrancis
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)mfrancis
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)mfrancis
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruumfrancis
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...mfrancis
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...mfrancis
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...mfrancis
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)mfrancis
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...mfrancis
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)mfrancis
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...mfrancis
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...mfrancis
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)mfrancis
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)mfrancis
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)mfrancis
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...mfrancis
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)mfrancis
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...mfrancis
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)mfrancis
 
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...mfrancis
 

Mais de mfrancis (20)

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)
 
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
Visualization of OSGi based Software Architectures in Virtual Reality - Lisa ...
 

Último

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 

Último (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Technology)

  • 1. How OSGi drives cross sector energy management SMA Solar Technology AG
  • 2. WHO IS SMA? > SMA is an energy equipment supplier founded in 1981 and headquartered near Kassel in the middle of Germany > Main products are solar inverters for photovoltaics systems > These products are complemented by components for energy management, system monitoring and data analysis and the world’s largest PV monitoring portal > More than 3,000 employees, thereof 500 in technology > Since 2018 SMA is a contributing associate of the OSGi alliance 16.11.2018 2How OSGi drives cross sector energy management, Jörn Tümmler STP 6.0 with integrated MLPE-communication CORE1, 50 kW Sunny Boy Storage 6.0 ennexOS energy management platform
  • 3. AGENDA 1 2 3 4 What is cross sector energy management? Searching for a solution Getting started with OSGi Getting lost 5 Starting over 16.11.2018 3How OSGi drives cross sector energy management, Jörn Tümmler
  • 5. WHAT DOES CROSS SECTOR ENERGY MANAGEMENT MEAN? 5 The connectivity of all energy sectors is crucial for the new energy world. All different systems need to be continually optimized to make the most efficient use of energy. The Internet of Things (IoT) is the technical basis for connecting and managing different devices. In the energy market, IoT is a driving force to create the future of energy.
  • 7. MAIN GOALS AND REQUIREMENTS > Provide a platform for advanced energy management: > Extendable by new protocols for easy integration > Extendable data-processing facilities to combine different control and energy management strategies > High throughput of data for monitoring and control commands > Portable solution to run on different ARM- and X86 based systems > Consolidate the portfolio of existing data-loggers and management devices: > Improve our software-architecture and bring it to next level of modularity: > Although we had already a software library with modules we had dependency issues and inadequate life-cycle mechanisms 16.11.2018 7How OSGi drives cross sector energy management, Jörn Tümmler Multigate Webconnect Home Manager WebBox RS485 WebBox BT Cluster Controller SC30COMPower Plant Controller
  • 8. AGENDA 1 2 3 4 What is cross sector energy management? Searching for a solution Getting started with OSGi Getting lost 5 Starting over 16.11.2018 8How OSGi drives cross sector energy management, Jörn Tümmler
  • 9. EXAMPLE ARCHITECTURE Investigations showed a typical blueprint for IoT gateways: > Component-based development > Central data-cache or data-bus > Pluggable extensions > Several OSGi based solutions available > We’ve evaluated four OSGi based solutions: > Two commercial solutions > Two open source solutions > The open source solutions allowed us to test the new technology regarding performance and usability > … and also to got in touch with OSGi 16.11.2018 10How OSGi drives cross sector energy management, Jörn Tümmler
  • 10. OSGI LOOKS PROMISING, BUT HOW TO START? > The first plan was to use one of the open source solutions as basis > This was discarded because of technical limitations and high efforts to adapt it to our needs > To benefit from the advantages of a component based development, it was decided to develop an own framework based on OSGi, but tailored to the needs of SMA > It was clear that there would be a “learning curve” to establish this new technology: 11 Source: http://enroute.osgi.org/book/100-introduction.html How to lower the entry barrier and benefit from OSGi?
  • 11. AGENDA 1 2 3 4 What is cross sector energy management? Searching for a solution Getting started with OSGi Getting lost 5 Starting over 16.11.2018 12How OSGi drives cross sector energy management, Jörn Tümmler
  • 12. INITIAL SITUATION > We had a team of experienced developers with some knowledge of Java, but no OSGi experience > We knew how to develop communication gateways and energy managers … > … but chances were high that the new system would not taking real advantage of OSGi > Because of this, we had the following “master-plan”: > Train the team in Java and OSGi > Get support from external OSGi experts – at least one expert should be on-site > Develop an initial design together with the OSGi experts > OSGi experts should also accompany the team when developing the system 16.11.2018 15How OSGi drives cross sector energy management, Jörn Tümmler
  • 13. INITIAL DESIGN > In several workshops we developed the initial design > The input of the OSGi experts resulted in a more fine grained service-architecture > Finally we combined the best of both worlds: 16.11.2018 16How OSGi drives cross sector energy management, Jörn Tümmler OSGi concepts > Eclipse with BndTools as development environment > OSGi R6 with Java 8: > enRoute (classic) as Basis > Apache Felix runtime > Declarative Services > Configuration Admin > Use WhiteBoard pattern for notifications, aggregations > Felix WebConsole and Gogo Shell for debugging SMA concepts > Central data-cache to store runtime information > Convert all incoming data into a “normalized” meta-data- model > Use “duck-typing” to identify data which needs to be processed > Matlab for control algorithms > Swagger/OpenAPI to define REST APIs for ui and portal communication
  • 14. USE A META DATA MODEL TO UNIFY DATA 16.11.2018 17 How OSGi drives cross sector energy management, Jörn Tümmler Name Type Unit Metering.GridMs.TotWIn Scalar W Metering.GridMs.TotWOut Scalar W … … … Protocol Identifier Scaling Destination Reg500088 0,1 Metering.GridMs.TotWIn Reg500089 0,1 Metering.GridMs.TotWOut Protocol Identifier Scaling Destination Id-6100-423AD 0,01 Metering.GridMs.TotWIn Id-6100-423AF 0,01 Metering.GridMs.TotWOut Protocol Identifier Scalin g Destination 0x346330 0,001 Metering.GridMs.TotWIn 0x346331 0,001 Metering.GridMs.TotWOut Protocol A Protocol B Protocol C > The SMA Meta Model defines about 2000 data-points > Each data-point has a fixed meaning, type, unit, etc. > It therefore defines the ‘semantics’ of data > A communication driver needs to map its information into the meta-model and vice versa > Using the meta-model has the following advantages: > The data-processing applications can rely on the protocol independent definition of data-points > Information can be mapped between protocols SMA Meta Model
  • 15. COMMUNICATION LAYER 16.11.2018 18How OSGi drives cross sector energy management, Jörn Tümmler > Integrating different devices is crucial for an energy management system > Different aspects of a communication driver are modeled by dedicated services: Detects devices, creates and removes them One service for each device Enumerates all drivers and visible devices Provided, if a device needs to be polled Provided, if a device can process parameters
  • 16. DATA PROCESSING LAYER 16.11.2018 19How OSGi drives cross sector energy management, Jörn Tümmler > Data processing is offered at different layers of abstraction: Get notified about any change Get notified about some changes Get notified if schemas change Perform automatic data transformations on update: • Direct mapping • Aggregation • Mapping • Merging • Filtering • Fallback
  • 17. DATA PROCESSING – VIEW EXAMPLE 20 @Component public class PowerViewExample { interface MyView extends DeviceSchema { @DataMember(id = DataMembers.Measurement.METERING_GRIDMS_TOTWIN_STRING) Double getTotWIn(); @DataMember(id = DataMembers.Measurement.METERING_GRIDMS_TOTWOUT_STRING) Optional<Double> getTotWOut(); } @Reference DataViewAdmin dataViewAdmin; DataView<MyView> dataView; @Activate void activate() { dataView = dataViewAdmin.createView(MyView.class); dataView.onUpdate(this::handleUpdate); } @Deactivate void deactivate() { dataView.close(); } void handleUpdate(DataViewEvent<MyView> event) { System.out.println("TotWin :" + event.instance.getTotWIn()); event.instance.getTotWOut().ifPresent(d -> System.out.println("TotWOut:" + d)); } }
  • 18. AGENDA 1 2 3 4 What is cross sector energy management? Searching for a solution Getting started with OSGi Getting lost 5 Starting over 16.11.2018 21How OSGi drives cross sector energy management, Jörn Tümmler
  • 19. FIRST DEVELOPMENT STARTED PROMISING … 16.11.2018 24How OSGi drives cross sector energy management, Jörn Tümmler
  • 20. FIRST DEVELOPMENT STARTED PROMISING … 16.11.2018 25How OSGi drives cross sector energy management, Jörn Tümmler
  • 21. FIRST DEVELOPMENT STARTED PROMISING … 16.11.2018 26How OSGi drives cross sector energy management, Jörn Tümmler … but then we got more and more problems …
  • 22. TOP 5 OSGI PROBLEMS – AND HOW WE DEAL WITH THEM > API design > Dynamics > Whiteboard pattern and lifecycle of listeners which can come and go at any time > Dealing with concurrency issues > Cyclic dependencies > Start order / groups of loosely coupled services ( diagnosis subsystem) > “Service jojos” with optional configurations > Strange resolving errors > Cohesion (“glue bundles”) > Complex configurations 16.11.2018 27How OSGi drives cross sector energy management, Jörn Tümmler > Make APIs as small as possible > Avoid cyclic dependencies; consider WhiteBoard pattern > Avoid own life-cycle methods > Provide a library as dispatcher that handles life-cycle issues > Use immutable data, concurrent data-structures with queues > Combine mandatory w. optional references; register manually > Use the “aggregate state” to configure groups > Only use mandatory configurations > Revise im- and exports > Check the contents of bundles and split them > Split configurations; use JSON as “last resort”
  • 23. DEALING WITH DYNAMICS - EVENT-DISPATCHER UTILITY CLASS 16.11.2018 28How OSGi drives cross sector energy management, Jörn Tümmler @Component public class WhiteBoardDispatcherImpl { final EventDispatcher<Listener> eventDispatcher = new BackgroundEventDispatcher<>(); @Reference(cardinality = ReferenceCardinality.MULTIPLE, // policy = ReferencePolicy.DYNAMIC) void addPublisher(Publisher publisher) { eventDispatcher.addListener(publisher); } void removePublisher(Publisher publisher) { eventDispatcher.removeListener(publisher); } public void notifyListeners(Event event) { eventDispatcher.dispatch(l -> l.notify(event)); } } @Component public class SimpleWhiteBoardDispatcherImpl { @Reference volatile List<Listener> listeners; public void notifyListeners(Event event) { listeners.foreach(l -> l.notify(event)); } } Problematic Whiteboard Dispatcher Whiteboard Dispatcher with helper class
  • 24. DEALING WITH DYNAMICS – AGGREGATE STATE 16.11.2018 29How OSGi drives cross sector energy management, Jörn Tümmler More details on http://aqute.biz/2017/04/24/aggregate-state.html @Component(property={"aggregate.state=diagGroup", "diagGroup=conditions" }) @Component(property={"aggregate.state=diagGroup", "diagGroup=logger" }) @Reference(target = "(&(diagGroup=logger)(diagGroup=slf4j)(diagGroup=conditions))“)
  • 25. AGENDA 1 2 3 4 What is cross sector energy management? Searching for a solution Getting started with OSGi Getting lost 5 Starting over 16.11.2018 30How OSGi drives cross sector energy management, Jörn Tümmler
  • 26. WHERE ARE WE NOW? > We now have prepared the ground for an extendible system > The first product based on OSGi technology was released in December 2017 > We are currently derive the next products from our framework > Thanks to OSGi deriving new products is now only a matter of configuration 16.11.2018 32How OSGi drives cross sector energy management, Jörn Tümmler
  • 27. HAS OSGI KEPT ITS PROMISE? After working with technology for three years now the key benefits of OSGi are: > It defines a clean deployment model and versioning scheme for modules > It also defines a life-cycle for modules and components > It enforces API first design > It relies on Java and is therefore hardware independent > It is fast enough to be used on embedded devices > It supports dynamic updates and reconfiguration (although this is a sharp knife) OSGi does not lead automatically better maintainable software – but OSGi helps you to make these issues visible. It requires you to change some of your approaches when designing software. If you are willing to accept this, OSGi is definitely a good choice and can keep its promise! 16.11.2018 33How OSGi drives cross sector energy management, Jörn Tümmler
  • 28. 16.11.2018 34How OSGi drives cross sector energy management, Jörn Tümmler