After a short introduction about the origins of OSGi and the principles behind it, this presentation will focus on the current developments around component-based development. Although OSGi was created as a service-based platform for home gateways, it has grown into a universally applicable framework.
The talk will review JSR-277 and JSR-291, both of which are very close to OSGi and are targetted to standardize certain aspects of this technology as part of the JVM. Furthermore, several applications will be reviewed to illustrate that this architecture can be used in a broad range of environments, from mobile phones to enterprise applications.
Examples include: Eclipse, based on OSGi since 3.0, Apache Felix, an open source implementation that is the basis for several other projects such as the Apache Directory Server.
Bndtools 101 provides an introduction to using Bndtools for OSGi development. It demonstrates how to create a simple blog application with a provider and consumer module in under an hour. The document outlines the steps to define an API, create a provider module that implements it, run the application, create a consumer module that uses the API, and evolve the API. It promotes Bndtools as a one-stop tool for OSGi development that handles tasks like building, resolving, running, and packaging modules.
Puppet building block for Puppet From puppet forge by Edwin Biemond. Building blocks for WebLogic, Oracle database on Linux and Solaris. For provisioning of OSB, SOA , ADF etc infrastructure
A quickstart guide to your first Glassfish process which:
* Accepts input as webservice
* Writes data to a file on local harddisk
* Return a value to the calling webservice.
Bndtools 101 provides an introduction to using Bndtools for OSGi development. It demonstrates how to create a simple blog application with a provider and consumer module in under an hour. The document outlines the steps to define an API, create a provider module that implements it, run the application, create a consumer module that uses the API, and evolve the API. It promotes Bndtools as a one-stop tool for OSGi development that handles tasks like building, resolving, running, and packaging modules.
Puppet building block for Puppet From puppet forge by Edwin Biemond. Building blocks for WebLogic, Oracle database on Linux and Solaris. For provisioning of OSB, SOA , ADF etc infrastructure
A quickstart guide to your first Glassfish process which:
* Accepts input as webservice
* Writes data to a file on local harddisk
* Return a value to the calling webservice.
Online zie je veel tips om je WordPress site te beveiligen. Vaak raden ze hiervoor een WordPress plugin aan. Dit is vaak niet de juiste oplossing en tijdens deze presentatie laat ik zien hoe ik het zelf doe. Dit gaat van hoe je site optimaal beveiligd tot hoe je jouw site in de gaten kan houden.
Digipinguins: containers en virtualisatie (Ghlen Nagels - youngsource.be)Avansa Mid- en Zuidwest
"Everybody believes in something and everybody, by virtue of the fact that they believe in something, uses that something to support their own existence." (Frank Zappa)
Virtualisatie is overal. De meeste mensen kennen het begrip van de realiteit, en misschien heb je ook van termen als virtuele machines en virtueel geheugen gehoord. Maar het concept bestaat al verrassend lang, ook buiten de IT.
In deze bijeenkomst zullen we daarom eerst een breed overzicht vergaren over virtualisatie en de toepassing ervan binnen het universum van bits & bytes.
In het tweede deel zoomen we in op de wondere wereld van virtuele machines. We lichten toe hoe virtuele machines op conceptueel niveau werken en je zal zelf kunnen ervaren hoe virtualisatie de moderne technologie verrijkt.
auteur: Ghlen Nagels (youngsource.be | laudis.tech)
DSD-NL 2021 Delft-FEWS in de cloud - Schotmeijer en EkkelenkampDeltares
Presentatie door Gert-Jan Schotmeijer, Rudie Ekkelenkamp (Deltares), op de Delft-FEWS NL Gebruikersdag 2021 - deel 2, tijdens de Deltares Software Dagen - Editie 2021. Dinsdag, 22 juni 2021, Delft.
De complexiteit van licenties, stijgende kosten en het risico op een audit motiveren Oracle-klanten om hun migratie inspanningen snel op te starten en de liefde voor Postgres te omarmen.
EDB's Postgres migratie tools
Migreren van Oracle naar Postgres lijkt voor veel organisaties een complexe uitdaging. Daarom is onze Sales Engineer Gaby Schilders er om te helpen! Bekijk de slides van het door Gaby gepresenteerde webinar ‘DIY Oracle migratie naar Postgres’. Hij legt daarin uit waarom hij denkt dat onze tools de eenvoudigste en snelste manier zijn om zelf een migratie uit te voeren.
Tijdens dit webinar bespreekt hij onze verschillende tools en wanneer en waarom ze te gebruiken:
- EDB Postgres Advanced Server
- EDB Postgres Migration Portal
- EDB Postgres Migration Toolkit
- xDB Replication Server
Toegang tot digitale objecten - viewers en ResolverLIBIS
Presentatie gegeven door DIrk Kinnaes tijdens de LIBIS gebruikersdag van 7 juni 2022. Als je in Limo, scopeQuery, een Omeka website of elders een verwijzing vindt naar een digitaal document in Teneo dan kom je automatisch terecht in een of andere "viewer" die het gevraagde object weergeeft. In deze sessie tonen we welke viewers beschikbaar zijn in Teneo, en welke factoren bepalen welke viewer je standaard te zien krijgt. Bij het invoeren van dergelijke verwijzingen is het belangrijk om een persistente systeemonafhankelijke URL te gebruiken: de "resolver" URL. Tijdens deze sessie werd getoond hoe de LIBIS resolver gebruikt kan worden om te verwijzen naar gerelateerde services die toelaten de digitale objecten op allerlei manieren te gebruiken, zoals een andere viewer gebruiken, een thumbnail opvragen of een opname in een bepaalde kwaliteit downloaden.
Techdays 2013 NL - Serious Request met Windows AzureMichaël Hompus
Bijna iedereen in Nederland kent de Serious Request actie van 3FM en het Nederlands Rode Kruis. Wat weinig mensen weten is dat de afgelopen 2 edities voor een belangrijk deel op Windows Azure draaide. In deze presentatie wordt de architectuur achter de oplossing toegelicht, welke Azure componenten er gebruikt zijn. Wat we geleerd hebben van de eerste editie, wat we daarom aanpast hebben voor de tweede editie, en wat er nog meer mogelijk was omdat het Windows Azure platform zich in de tussentijd ook verder ontwikkeld heeft. Ook worden er veel ervaringen gedeeld waar je als ontwikkelaar tegen aan kan lopen bij het opzetten van een Windows Azure oplossing.
Cloud foundry as driver of hana’s evolutionJan Penninkhof
Deze presentatie heb ik gegevens op de VNSG developer dag van 4 Februari 2016 over de impact van SAP's adoptie van Cloud Foundry op HANA en HANA Cloud Platform.
http://www.vnsg.nl/evenementen/overzicht-evenementen/vnsg-developersdag.2546.lynkx
The Bug is a device with which you can build your own mobile system by combining certain modules. Each module delivers a specific piece of functionality, such as camera, video output, GPS location, etc.
The fun part of this device is that both the hardware and the software are completely modular and dynamic. That means that you can easily, with Eclipse and an SDK, write your own software for it.
This session will introduce the Bug and the OSGi based software stack and will build and deploy a whole application.
Modern applications and software solutions increasingly center around loosely coupled and extensible architectures. Component or Service orientation is applied in almost all areas of application development including distributed systems, ubiquitous computing, embedded systems, and client-side applications.
The Java based OSGi framework specification lends itself well as a platform for loosely coupled and extensible applications and is rapidly gaining ground as the de-facto plugin solution for Java based applications. It allows for lightweight implementations that limit themselves to the CDC profile and are ideally suited as embedded plugin frameworks.
One of the main drawbacks of dynamically extensible applications, however, are the potential security issues that arise due to executing untrusted code without appropriated safety-measures in place. Secure sandboxes and their restrictions are difficult to get right and often hard to deal with in the development of applications. The OSGi specifications have an extensive and very powerful security model that eases this difficult task.
This presentation focuses on embedding various OSGi framework implementations namely, Eclipse Equinox and Apache Felix, into applications as a means of plugin mechanism while taking advantage of the often overlooked benefits of this solution: security.
More Related Content
Similar to Component-based ontwikkelen met OSGi: van embedded tot enterprise
Online zie je veel tips om je WordPress site te beveiligen. Vaak raden ze hiervoor een WordPress plugin aan. Dit is vaak niet de juiste oplossing en tijdens deze presentatie laat ik zien hoe ik het zelf doe. Dit gaat van hoe je site optimaal beveiligd tot hoe je jouw site in de gaten kan houden.
Digipinguins: containers en virtualisatie (Ghlen Nagels - youngsource.be)Avansa Mid- en Zuidwest
"Everybody believes in something and everybody, by virtue of the fact that they believe in something, uses that something to support their own existence." (Frank Zappa)
Virtualisatie is overal. De meeste mensen kennen het begrip van de realiteit, en misschien heb je ook van termen als virtuele machines en virtueel geheugen gehoord. Maar het concept bestaat al verrassend lang, ook buiten de IT.
In deze bijeenkomst zullen we daarom eerst een breed overzicht vergaren over virtualisatie en de toepassing ervan binnen het universum van bits & bytes.
In het tweede deel zoomen we in op de wondere wereld van virtuele machines. We lichten toe hoe virtuele machines op conceptueel niveau werken en je zal zelf kunnen ervaren hoe virtualisatie de moderne technologie verrijkt.
auteur: Ghlen Nagels (youngsource.be | laudis.tech)
DSD-NL 2021 Delft-FEWS in de cloud - Schotmeijer en EkkelenkampDeltares
Presentatie door Gert-Jan Schotmeijer, Rudie Ekkelenkamp (Deltares), op de Delft-FEWS NL Gebruikersdag 2021 - deel 2, tijdens de Deltares Software Dagen - Editie 2021. Dinsdag, 22 juni 2021, Delft.
De complexiteit van licenties, stijgende kosten en het risico op een audit motiveren Oracle-klanten om hun migratie inspanningen snel op te starten en de liefde voor Postgres te omarmen.
EDB's Postgres migratie tools
Migreren van Oracle naar Postgres lijkt voor veel organisaties een complexe uitdaging. Daarom is onze Sales Engineer Gaby Schilders er om te helpen! Bekijk de slides van het door Gaby gepresenteerde webinar ‘DIY Oracle migratie naar Postgres’. Hij legt daarin uit waarom hij denkt dat onze tools de eenvoudigste en snelste manier zijn om zelf een migratie uit te voeren.
Tijdens dit webinar bespreekt hij onze verschillende tools en wanneer en waarom ze te gebruiken:
- EDB Postgres Advanced Server
- EDB Postgres Migration Portal
- EDB Postgres Migration Toolkit
- xDB Replication Server
Toegang tot digitale objecten - viewers en ResolverLIBIS
Presentatie gegeven door DIrk Kinnaes tijdens de LIBIS gebruikersdag van 7 juni 2022. Als je in Limo, scopeQuery, een Omeka website of elders een verwijzing vindt naar een digitaal document in Teneo dan kom je automatisch terecht in een of andere "viewer" die het gevraagde object weergeeft. In deze sessie tonen we welke viewers beschikbaar zijn in Teneo, en welke factoren bepalen welke viewer je standaard te zien krijgt. Bij het invoeren van dergelijke verwijzingen is het belangrijk om een persistente systeemonafhankelijke URL te gebruiken: de "resolver" URL. Tijdens deze sessie werd getoond hoe de LIBIS resolver gebruikt kan worden om te verwijzen naar gerelateerde services die toelaten de digitale objecten op allerlei manieren te gebruiken, zoals een andere viewer gebruiken, een thumbnail opvragen of een opname in een bepaalde kwaliteit downloaden.
Techdays 2013 NL - Serious Request met Windows AzureMichaël Hompus
Bijna iedereen in Nederland kent de Serious Request actie van 3FM en het Nederlands Rode Kruis. Wat weinig mensen weten is dat de afgelopen 2 edities voor een belangrijk deel op Windows Azure draaide. In deze presentatie wordt de architectuur achter de oplossing toegelicht, welke Azure componenten er gebruikt zijn. Wat we geleerd hebben van de eerste editie, wat we daarom aanpast hebben voor de tweede editie, en wat er nog meer mogelijk was omdat het Windows Azure platform zich in de tussentijd ook verder ontwikkeld heeft. Ook worden er veel ervaringen gedeeld waar je als ontwikkelaar tegen aan kan lopen bij het opzetten van een Windows Azure oplossing.
Cloud foundry as driver of hana’s evolutionJan Penninkhof
Deze presentatie heb ik gegevens op de VNSG developer dag van 4 Februari 2016 over de impact van SAP's adoptie van Cloud Foundry op HANA en HANA Cloud Platform.
http://www.vnsg.nl/evenementen/overzicht-evenementen/vnsg-developersdag.2546.lynkx
Similar to Component-based ontwikkelen met OSGi: van embedded tot enterprise (20)
The Bug is a device with which you can build your own mobile system by combining certain modules. Each module delivers a specific piece of functionality, such as camera, video output, GPS location, etc.
The fun part of this device is that both the hardware and the software are completely modular and dynamic. That means that you can easily, with Eclipse and an SDK, write your own software for it.
This session will introduce the Bug and the OSGi based software stack and will build and deploy a whole application.
Modern applications and software solutions increasingly center around loosely coupled and extensible architectures. Component or Service orientation is applied in almost all areas of application development including distributed systems, ubiquitous computing, embedded systems, and client-side applications.
The Java based OSGi framework specification lends itself well as a platform for loosely coupled and extensible applications and is rapidly gaining ground as the de-facto plugin solution for Java based applications. It allows for lightweight implementations that limit themselves to the CDC profile and are ideally suited as embedded plugin frameworks.
One of the main drawbacks of dynamically extensible applications, however, are the potential security issues that arise due to executing untrusted code without appropriated safety-measures in place. Secure sandboxes and their restrictions are difficult to get right and often hard to deal with in the development of applications. The OSGi specifications have an extensive and very powerful security model that eases this difficult task.
This presentation focuses on embedding various OSGi framework implementations namely, Eclipse Equinox and Apache Felix, into applications as a means of plugin mechanism while taking advantage of the often overlooked benefits of this solution: security.
When Google released the first SDK for Android, which was way before the first mobile phones running it were released, Karl and Marcel decided to try and see what it would take to get Apache Felix running OSGi on Android.
This presentation introduces the Android platform, OSGi, and demonstrates how to run Apache Felix on Android. It builds on an earlier blog article that was published on this subject, an article that inspired many other OSGi implementations to try the same.
Managing dependencies in OSGi using the Apache Felix Dependency Manager gives you some powerful tools for expressing and managing all kinds of dependencies between components. This presentation shows you how to use them, and explains what design patterns are available for building applications. It also shows how to extend this system with custom types of dependencies.
When building and maintaining large applications in a world that is rapidly evolving, keeping up with changing requirements and non-functionals over time is a huge challenge. Architecting your application in a modular way and loosely coupling modules using micro services provides you with a nicely decoupled system that still works very efficiently. Designing, evolving and versioning a micro service architecture is not easy, and over time, several design patterns and best practices have evolved that help you. Code examples can be found here: https://bitbucket.org/marrs/javaone-2014-microservices
This document discusses Felix HTTP, a modular web application framework. It provides an overview of the current state, available extensions, and a new specification. The new specification standardizes the whiteboard pattern and adds support for asynchronous servlets, filters, listeners, custom error pages, WebSockets, SPDY, and the Servlet 3.0 API. Future work includes finalizing the new specification and improving support for technologies like SPDY and WebSockets.
The document discusses dynamic deployment with Apache Felix. It begins by outlining the agenda which includes discussing the case for OSGi, dynamic deployment with Apache ACE, a demo of ACE in action, and wrapping up. The rest of the document then goes into more detail on each of these topics, such as the benefits of OSGi, an overview of how ACE handles dependency management and deployment, and a demo of the user interface.
2. 2
Even voorstellen
Marcel Offermans
– Software architect bij
luminis®
– Committer bij
Apache Felix
e-mail: marcel.offermans@luminis.nl
3. 3
Agenda
• OSGi
– Geschiedenis
– Het framework in vogelvlucht
• Standaardisatie efforts rond OSGi
– JSR 277 en JSR 294
– JSR 291
• Van embedded naar enterprise
– Apache Harmony
– Apache Directory Server
– Cocoon, Spring, Eclipse, James
4. 4
Agenda
• OSGi
– Geschiedenis
– Het framework in vogelvlucht
• Standaardisatie efforts rond OSGi
– JSR 277 en JSR 294
– JSR 291
• Van embedded naar enterprise
– Apache Harmony
– Apache Directory Server
– Cocoon, Spring, Eclipse, James
5. 5
OSGi geschiedenis
• Ontstaan als standaard embedded platform voor
de “home gateway”
• Aanvankelijk onder JCP als JSR-8 (1999)
• OSGi alliance, bestaande uit een groot aantal
vooraanstaande bedrijven, met als missie:
– Beheren en publiceren de OSGi specificatie.
– Certificeren van implementaties.
– Organiseren van events.
• Huidige versie: OSGi Release 4 (augustus 2005)
7. 7
OSGi Security layer
• Gebaseerd op Java 2 security model
• Mogelijkheid om bundles te signen
• Permission Admin service verzorgt dynamische
configuratie
Service
Life-cycle
Module
Security
Bundle Bundle Bundle
8. 8
OSGi Module layer
• Eenheid van modularisatie is de bundle (JAR)
• Bundle bevat Java packages (en resources)
• Bundle bepaalt welke packages publiek
toegankelijk zijn (geexporteerd
worden) en welke niet:
Service
naam + versienummer
• Bundle geeft ook aan
Life-cycle
welke externe packages
Module
nodig zijn (imports):
naam + versie range Security
Bundle Bundle Bundle
9. 9
OSGi Life-cycle layer
• Beheert de life-cycle van bundles
• BundleActivator start() en stop() hooks
Service
Life-cycle
Module
Security
Bundle Bundle Bundle
10. 10
OSGi Service registry
• Bundles kunnen services registreren:
• op naam: net.luminis.DataStore
• aangevuld met properties: { type=file, atomic=no }
• Bundles kunnen services
gebruiken:
• via registratie van listener
• met dependency injection
• via declarative services
Service
Life-cycle
Module
Security
Bundle Bundle Bundle
11. 11
OSGi frameworks & tools
• Verschillende open source implementaties:
– Apache Felix
– Eclipse Equinox
– Gatespace Telematics' Knopflerfish
• Eclipse IDE project support
– IDE/RCP is gebaseerd op OSGi
– Bundles heten “plug-ins”
• Maven 2 support
– Nog volop in ontwikkeling, maar bruikbaar
12. 12
Agenda
• OSGi
– Geschiedenis
– Het framework in vogelvlucht
• Standaardisatie efforts rond OSGi
– JSR 277 en JSR 294
– JSR 291
• Van embedded naar enterprise
– Apache Harmony
– Apache Directory Server
– Cocoon, Spring, Eclipse, James
13. 13
JSR-277 Java Module System
• Versioning
– Hoe nummer je versies?
– Hoe draai je meerdere versies parallel?
• Distributie en packaging
– JAR files?
• Dynamische connectiviteit
– Hoe resolve je modules?
• Repositories
– Lokale opslag
– Beheer en security
14. 14
JSR-277 Java Module System (2)
• Pluspunten
– Goed om dit in standaard Java te regelen
• Minpunten
– Richt zich aanvankelijk alleen op J2SE
– Onderdeel van Java 7 (pas in 2008)
15. 15
JSR-294 Improved Modularity Support
• Richt zich op development (JSR-277 op
deployment)
• Information Hiding
– Introductie van “superpackages” die beschrijven wat
publiek is en wat private.
• Module files
– Meerdere versies kunnen tegelijk aanwezig zijn
• Afzonderlijk compileren
– Simpel gezegd, compileren met alleen de publieke
interfaces beschikbaar
16. JSR-294 Improved Modularity Support (2)
super package com.sun.myModule {
export com.sun.myModule.myStuff.*;
export com.sun.myModule.yourStuff.Interface;
com.sun.myModule.myStuff;
com.sun.myModule.yourStuff;
com.sun.SomeOtherModule.theirStuff;
org.someOpenSource.someCoolStuff;
}
16
17. 17
JSR-294 Improved Modularity Support (3)
• Pluspunten
– Wederom, dit is goed om te standaardiseren
• Minpunten
– Ten tijde van de JavaOne 2006 nog veel
onbeantwoorde vragen
18. 18
JSR-291 Dynamic Component Support
• Richt zich op alle Java SE versies (oud en nieuw)
• Complementair met JSR-232, die 't zelfde doet
voor Java ME (CDC profiel)
• Dynamic Component Model
• Life-cycle Management
• Bouwt op de ervaringen van Apache, Eclipse en
OSGi
• Subset van OSGi R4 (geen service registry)
19. 19
JSR-291 Dynamic Component Support (2)
• Pluspunten
– Bouwt voort op ervaring
– Voor alle Java versies
• Minpunten
– Risico op politieke weerstand van Sun
20. 20
Agenda
• OSGi
– Geschiedenis
– Het framework in vogelvlucht
• Standaardisatie efforts rond OSGi
– JSR 277 en JSR 294
– JSR 291
• Van embedded naar enterprise
– Apache Harmony
– Apache Directory Server
– Cocoon, Spring, Eclipse, James
21. 21
Apache Harmony
• Doelstellingen:
– Implementatie van Java 5 SE
– Modulaire architectuur (VM en class libraries)
– Beschermen van “intellectual property”
• Project is een jaar oud
• Donaties van onder andere Intel en IBM
23. 23
Apache Harmony (3)
Modulaire Java API implementatie:
Donatie van Intel
bekendgemaakt op JavaOne
24. 24
Apache Directory Server
• Server software met OSGi als basis, omdat:
– Het tijdens ontwikkeling zorgt voor:
• scheiding van verantwoordelijkheden.
– Het run-time ervoor zorgt dat:
• de server niet gestopt hoeft te worden voor updates;
• third-party vendors eenvoudig nieuwe functionaliteit
kunnen toevoegen;
25. 25
Spring Framework
• Support voor OSGi in de roadmap voor 2.1 RC1
(issue SPR-1802):
– Spring zelf deployen als een set bundles.
– Spring application context in een bundle.
– Integratie van OSGi services en Spring's
dependency injection, met proxy support.
• Natuurlijke aanvulling op Spring, het brengt meer
dynamica.
26. 26
Cocoon
• Een jaar geleden
begonnen met
experimenteren met
OSGi
27. 27
Eclipse
• Plug-in = bundle
• Basis van Eclipse en
RCP is Equinox, een
OSGi R4 implementatie
• Uitgebreide support voor:
– ontwikkelen van bundles
– uitvoeren en debuggen
– hot code replace
29. Apache James Enterprise Mail Server
!From: apache@bago.org
!Subject: Re: ApacheCon EU OSGi panel
!Date: June 14, 2006 18:53:14 GMT+02:00
!To: !felix-dev@incubator.apache.org
!Cc: server-dev@james.apache.org
!
I just want to add that also we, at Apache James project, discussed about
removing our Avalon Phoenix dependency in favor of OSGi/Felix.
I crosspost this to james server-dev list, to let James developers know of
this message and eventually raise questions, and felix may be interested
to know that also James like Directory, Harmony and Cocoon is
monitoring Felix.
29
30. Conclusies
• Waar OSGi jaren geleden primair voor de
embedded “home gateway” ontworpen is, zie je
dat de problemen die het oplost ook voor desktop
en server applicaties relevant zijn.
• Er zijn een aantal standaarden in ontwikkeling om
delen van de door OSGi geboden functionaliteit
vast te leggen in het Java Community Proces, met
momenteel nog redelijk wat overlap tussen
verschillende standaards.
30
32. Meer weten? Links...
• OSGi sites
– http://osgi.org/ en http://bundles.osgi.org/
– http://incubator.apache.org/felix/
– http://www.knopflerfish.org/
– http://www.eclipse.org/osgi/
• Boeken
Er zijn niet veel boeken over OSGi, dus ik raad een ieder aan om in elk geval op internet te
zoeken naar informatie en de OSGi specificatie te lezen.
– Eclipse Rich Client Platform : Designing, Coding, and Packaging Java(TM) Applications
Goed boek waar ook een hoop instaat over OSGi ontwikkeling in het algemeen.
– Programming Open Service Gateways with Java Embedded Server™ Technology
Een oud boek, dus qua specificatie wel gedateerd, maar wel geschikt om de basisprincipes te leren.
32