SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
PojoSR
                             or
(OSGi)
µServices
for
the
rest
of
us



                                           Karl
Pauls




                                                            !"#$%&'&()"*
Dienstag, 25. Oktober 2011
Karl

         • Member
Apache
So?ware
FoundaDon
              • PMC:
Felix,
Sling,
Incubator
              • PPMC:
Ace,
Clerezza,
Celix
         • Fellow
at
Luminis
                                                         Hall
                                                        et al.
                                                                 C re at in g M od ul ar
                                                                                           A pp lic at io ns in J
                                                                                                                    av a




         • Project
Owner
PojoSR



                                               O SGi IN ACTION
         • Co‐Author
of
„OSGi
in
AcDon“                                                 Richard S. Hall
                                                                                            Karl Pauls
                                                                                     Stuart McCulloch
                                                                                        David Savage


         • karl.pauls@luminis.eu                                               FORE WORD BY PETE
                                                                                                 R KRIENS




                (a.k.a.
karlpauls@gmail.com)                                          MANNING




Dienstag, 25. Oktober 2011
Service
OrientaDon


Dienstag, 25. Oktober 2011
PromoDng
a
service‐oriented
interacDon
paSern



                                         !"#$%&"'
                                         +"0%./#1


                              2-34%.5               86*


                              !"#$%&"'   %6/"#7&/    !"#$%&"'
                             (#)$%*"#               +",-"./"#




Dienstag, 25. Oktober 2011
µServices


Dienstag, 25. Oktober 2011
µServices

         • Interface‐based
programming,
but
more
         • Service
Registry
              • Centrally
accessible
              • Browsable
              • NoDficaDons

         • Service
Registry
Benefits
              • Consuming
code
is
in
control
of
provider
selecDon
                   •     But
not
provider
instanDaDon
and
configuraDon

              • Provider
code
is
in
control
of
when
to
provide
              • Promotes
very
loose
coupling
and
late
binding

Dienstag, 25. Oktober 2011
OSGi
(µ)Services



Dienstag, 25. Oktober 2011
OSGi
services


         • OSGi
framework
provides
the
concepts
we

           need
              • Centralized
service
registry
              • Consumer
has
control
over
selecDon
              • Provider
has
control
over
when
to
provide
              • Plus
full‐blown
deployment
and
packaging
modularity

                with
run‐Dme
dynamism


Dienstag, 25. Oktober 2011
OSGi


Dienstag, 25. Oktober 2011
OSGi


         • The
downside
to
OSGi
is
that
it
requires
a

           boSom‐up
commitment
         • You
need
to
convert
all
of
your
code
into

           proper
modules
to
take
advantage
of
services
         • A
top‐down
approach
of
adopDng
services

           can
help
ease
migraDon
to
more
modular

           code


Dienstag, 25. Oktober 2011
OSGi
framework




Dienstag, 25. Oktober 2011
PojoSR



Dienstag, 25. Oktober 2011
What
is
PojoSR?

         • It
largely
removes
the
modularity
layer
from
the

           OSGi
framework


         • Provides
              • A
centralized
service
registry
based
on
OSGi

                API
              • Lifecycle
hooks
for
JAR
files
              • A
“light”
OSGi
framework
for
the
class
path

Dienstag, 25. Oktober 2011
Why
this
approach?


         • OSGi
API
is
a
standard
with
years
of
experience

           behind
it
         • Can
re‐use
OSGi
modules
(a.k.a.
bundles)
and/or

           technology
         • Can
leverage
services
without
having
to

           completely
modularize
first
(i.e.,
top‐down)
         • Provides
a
path
to
full‐blown
modularity


Dienstag, 25. Oktober 2011
Use
Cases


Dienstag, 25. Oktober 2011
MigraDon




Dienstag, 25. Oktober 2011
MigraDon

         • Without
PojoSR
              • Turn
applicaDon
into
one
big
bundle
(jar)
              • Split
into
several
bundles

                   • Fix
problems
                   • Split
into
even
more
bundles
(etc.)
              • Eventually,
start
using
services

                   • Allows
you
to
remove
ugly
hacks
needed
to
fix
problems

         • With
PojoSR
              • Start
using
services
              • Split
into
bundles

Dienstag, 25. Oktober 2011
Use
OSGi
where
you
can‘t

         • OSGi
(lite)
on
Google
App
Engine
using
PojoSR




Dienstag, 25. Oktober 2011
Use
OSGi
where
you
can‘t




         • hSp://vimeo.com/22571224




Dienstag, 25. Oktober 2011
Android




Dienstag, 25. Oktober 2011
Common
discovery
(SPI)




Dienstag, 25. Oktober 2011
Common
discovery
(SPI)




Dienstag, 25. Oktober 2011
Services
and
dependency
injecDon


         • Advantages
when
combined
with
service

           orientaDon
              • Dependency
injecDon
no
longer
needs
global
view
                   • InformaDon
localized
to
just
the
provider/consumer
              • No
longer
restricted
to
a
single
DI
framework
              • Different
DI
frameworks
can
play
together
via
the
service

                registry



Dienstag, 25. Oktober 2011
Usage


Dienstag, 25. Oktober 2011
As
a
Service
Registry




Dienstag, 25. Oktober 2011
As
an
OSGi
„light“
framework




Dienstag, 25. Oktober 2011
Standalone




Dienstag, 25. Oktober 2011
Demo


Dienstag, 25. Oktober 2011
Closing
Remarks


Dienstag, 25. Oktober 2011
Benefits
and
Drawbacks

         • PojoSR
provides
part
of
the
power
of
OSGi

              • in
a
non‐intrusive
way.
              • allows
to
increase
modularity
and
use
µServices
                   • without
first
ridding
an
exisDng
code
base
of
class
loader
hacks
              • Can
run
OSGi
bundles
where
you
can‘t

         • The
drawbacks
are
              • does
not
enforces
module
boundaries
              • does
not
allow
mulDple
versions
of
the
same
package;
does
not

                support
the
Bundle‐ClassPath.

              • But
you
can
use
the
µService
model
to
get
rid
of
the
class
loading

                hacks
over
Dme,
a?er
which
it
will
be
easier
to
move
to
OSGi
and
get

                side
by
side
versioning
and
real
module
boundaries.
Dienstag, 25. Oktober 2011
QuesDons?




                             http://pojosr.googlecode.com




Dienstag, 25. Oktober 2011

Mais conteúdo relacionado

Destaque

OSGi als App-Plattform - Ein Ausflug durch den Security-Layer
OSGi als App-Plattform - Ein Ausflug durch den Security-Layer	OSGi als App-Plattform - Ein Ausflug durch den Security-Layer
OSGi als App-Plattform - Ein Ausflug durch den Security-Layer OSGiUsers
 
OSGi IoT Demo & Contest 2015
OSGi IoT Demo & Contest 2015OSGi IoT Demo & Contest 2015
OSGi IoT Demo & Contest 2015mfrancis
 
Gfk Smart Home Studie
Gfk Smart Home StudieGfk Smart Home Studie
Gfk Smart Home StudiemyDLS
 
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)Stephen Chin
 
Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...
Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...
Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...OSGiUsers
 
Deutsche Telekom Smarthome - Eine Einführung
Deutsche Telekom Smarthome - Eine EinführungDeutsche Telekom Smarthome - Eine Einführung
Deutsche Telekom Smarthome - Eine EinführungOSGiUsers
 
n-pat: Modulare Anwendungsplattform mit Smartcards
n-pat: Modulare Anwendungsplattform mit Smartcardsn-pat: Modulare Anwendungsplattform mit Smartcards
n-pat: Modulare Anwendungsplattform mit SmartcardsOSGiUsers
 
SXSW 2016 takeaways
SXSW 2016 takeawaysSXSW 2016 takeaways
SXSW 2016 takeawaysHavas
 

Destaque (8)

OSGi als App-Plattform - Ein Ausflug durch den Security-Layer
OSGi als App-Plattform - Ein Ausflug durch den Security-Layer	OSGi als App-Plattform - Ein Ausflug durch den Security-Layer
OSGi als App-Plattform - Ein Ausflug durch den Security-Layer
 
OSGi IoT Demo & Contest 2015
OSGi IoT Demo & Contest 2015OSGi IoT Demo & Contest 2015
OSGi IoT Demo & Contest 2015
 
Gfk Smart Home Studie
Gfk Smart Home StudieGfk Smart Home Studie
Gfk Smart Home Studie
 
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
 
Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...
Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...
Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...
 
Deutsche Telekom Smarthome - Eine Einführung
Deutsche Telekom Smarthome - Eine EinführungDeutsche Telekom Smarthome - Eine Einführung
Deutsche Telekom Smarthome - Eine Einführung
 
n-pat: Modulare Anwendungsplattform mit Smartcards
n-pat: Modulare Anwendungsplattform mit Smartcardsn-pat: Modulare Anwendungsplattform mit Smartcards
n-pat: Modulare Anwendungsplattform mit Smartcards
 
SXSW 2016 takeaways
SXSW 2016 takeawaysSXSW 2016 takeaways
SXSW 2016 takeaways
 

Semelhante a PojoSR or OSGi (µ)Services For the Rest of Us

Quick Overview for Partners
Quick Overview for PartnersQuick Overview for Partners
Quick Overview for PartnersO-box
 
MySQL Breakfast in London - 24 June 2010
MySQL Breakfast in London - 24 June 2010MySQL Breakfast in London - 24 June 2010
MySQL Breakfast in London - 24 June 2010Ivan Zoratti
 
UI5 Tooling - Open and Extensible
UI5 Tooling - Open and ExtensibleUI5 Tooling - Open and Extensible
UI5 Tooling - Open and ExtensiblePeter Muessig
 
Into the Land of lambda, One Programmer's Journey Into Functional Programming
Into the Land of lambda, One Programmer's Journey Into Functional ProgrammingInto the Land of lambda, One Programmer's Journey Into Functional Programming
Into the Land of lambda, One Programmer's Journey Into Functional ProgrammingMike Pence
 
Protect Your Drupal Site Against Common Security Attacks
Protect Your Drupal Site Against Common Security AttacksProtect Your Drupal Site Against Common Security Attacks
Protect Your Drupal Site Against Common Security AttacksAcquia
 
OpenStack in the Enterprise - NJ VMUG June 9, 2015 - Melissa Palmer
OpenStack in the Enterprise - NJ VMUG June 9, 2015 - Melissa PalmerOpenStack in the Enterprise - NJ VMUG June 9, 2015 - Melissa Palmer
OpenStack in the Enterprise - NJ VMUG June 9, 2015 - Melissa Palmervmiss33
 
Transforming Enterprise Release Management in Elastic Beanstalk using Jenkins...
Transforming Enterprise Release Management in Elastic Beanstalk using Jenkins...Transforming Enterprise Release Management in Elastic Beanstalk using Jenkins...
Transforming Enterprise Release Management in Elastic Beanstalk using Jenkins...Yves Hwang
 
DevOps by examples @ devopsheroes 2016
DevOps by examples @ devopsheroes 2016DevOps by examples @ devopsheroes 2016
DevOps by examples @ devopsheroes 2016Giulio Vian
 
Oscon2011 tutorial
Oscon2011 tutorialOscon2011 tutorial
Oscon2011 tutorialjtimberman
 
Cloud native
Cloud nativeCloud native
Cloud nativeKen Owens
 
Kuali OLE: Enabling Choices for Libraries
Kuali OLE: Enabling Choices for LibrariesKuali OLE: Enabling Choices for Libraries
Kuali OLE: Enabling Choices for LibrariesRobert H. McDonald
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...Lucas Jellema
 
ScrumDay 2014 - Développer des produits avec des équipes distribuées - Alexis...
ScrumDay 2014 - Développer des produits avec des équipes distribuées - Alexis...ScrumDay 2014 - Développer des produits avec des équipes distribuées - Alexis...
ScrumDay 2014 - Développer des produits avec des équipes distribuées - Alexis...Alexis Monville
 
Enabling access to Linked Media with SPARQL-MM
Enabling access to Linked Media with SPARQL-MMEnabling access to Linked Media with SPARQL-MM
Enabling access to Linked Media with SPARQL-MMThomas Kurz
 
µServices for the rest of us - karl pauls
µServices for the rest of us - karl paulsµServices for the rest of us - karl pauls
µServices for the rest of us - karl paulsmfrancis
 

Semelhante a PojoSR or OSGi (µ)Services For the Rest of Us (20)

Quick Overview for Partners
Quick Overview for PartnersQuick Overview for Partners
Quick Overview for Partners
 
Stackato
StackatoStackato
Stackato
 
MySQL Breakfast in London - 24 June 2010
MySQL Breakfast in London - 24 June 2010MySQL Breakfast in London - 24 June 2010
MySQL Breakfast in London - 24 June 2010
 
Stackato v4
Stackato v4Stackato v4
Stackato v4
 
Stackato v6
Stackato v6Stackato v6
Stackato v6
 
UI5 Tooling - Open and Extensible
UI5 Tooling - Open and ExtensibleUI5 Tooling - Open and Extensible
UI5 Tooling - Open and Extensible
 
Into the Land of lambda, One Programmer's Journey Into Functional Programming
Into the Land of lambda, One Programmer's Journey Into Functional ProgrammingInto the Land of lambda, One Programmer's Journey Into Functional Programming
Into the Land of lambda, One Programmer's Journey Into Functional Programming
 
Stackato v5
Stackato v5Stackato v5
Stackato v5
 
Protect Your Drupal Site Against Common Security Attacks
Protect Your Drupal Site Against Common Security AttacksProtect Your Drupal Site Against Common Security Attacks
Protect Your Drupal Site Against Common Security Attacks
 
OpenStack in the Enterprise - NJ VMUG June 9, 2015 - Melissa Palmer
OpenStack in the Enterprise - NJ VMUG June 9, 2015 - Melissa PalmerOpenStack in the Enterprise - NJ VMUG June 9, 2015 - Melissa Palmer
OpenStack in the Enterprise - NJ VMUG June 9, 2015 - Melissa Palmer
 
Transforming Enterprise Release Management in Elastic Beanstalk using Jenkins...
Transforming Enterprise Release Management in Elastic Beanstalk using Jenkins...Transforming Enterprise Release Management in Elastic Beanstalk using Jenkins...
Transforming Enterprise Release Management in Elastic Beanstalk using Jenkins...
 
Stackato v3
Stackato v3Stackato v3
Stackato v3
 
DevOps by examples @ devopsheroes 2016
DevOps by examples @ devopsheroes 2016DevOps by examples @ devopsheroes 2016
DevOps by examples @ devopsheroes 2016
 
Oscon2011 tutorial
Oscon2011 tutorialOscon2011 tutorial
Oscon2011 tutorial
 
Cloud native
Cloud nativeCloud native
Cloud native
 
Kuali OLE: Enabling Choices for Libraries
Kuali OLE: Enabling Choices for LibrariesKuali OLE: Enabling Choices for Libraries
Kuali OLE: Enabling Choices for Libraries
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
ScrumDay 2014 - Développer des produits avec des équipes distribuées - Alexis...
ScrumDay 2014 - Développer des produits avec des équipes distribuées - Alexis...ScrumDay 2014 - Développer des produits avec des équipes distribuées - Alexis...
ScrumDay 2014 - Développer des produits avec des équipes distribuées - Alexis...
 
Enabling access to Linked Media with SPARQL-MM
Enabling access to Linked Media with SPARQL-MMEnabling access to Linked Media with SPARQL-MM
Enabling access to Linked Media with SPARQL-MM
 
µServices for the rest of us - karl pauls
µServices for the rest of us - karl paulsµServices for the rest of us - karl pauls
µServices for the rest of us - karl pauls
 

Último

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Último (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

PojoSR or OSGi (µ)Services For the Rest of Us

  • 1. PojoSR or
(OSGi)
µServices
for
the
rest
of
us Karl
Pauls !"#$%&'&()"* Dienstag, 25. Oktober 2011
  • 2. Karl • Member
Apache
So?ware
FoundaDon • PMC:
Felix,
Sling,
Incubator • PPMC:
Ace,
Clerezza,
Celix • Fellow
at
Luminis Hall et al. C re at in g M od ul ar A pp lic at io ns in J av a • Project
Owner
PojoSR O SGi IN ACTION • Co‐Author
of
„OSGi
in
AcDon“ Richard S. Hall Karl Pauls Stuart McCulloch David Savage • karl.pauls@luminis.eu FORE WORD BY PETE R KRIENS (a.k.a.
karlpauls@gmail.com) MANNING Dienstag, 25. Oktober 2011
  • 4. PromoDng
a
service‐oriented
interacDon
paSern !"#$%&"' +"0%./#1 2-34%.5 86* !"#$%&"' %6/"#7&/ !"#$%&"' (#)$%*"# +",-"./"# Dienstag, 25. Oktober 2011
  • 6. µServices • Interface‐based
programming,
but
more • Service
Registry • Centrally
accessible • Browsable • NoDficaDons • Service
Registry
Benefits • Consuming
code
is
in
control
of
provider
selecDon • But
not
provider
instanDaDon
and
configuraDon • Provider
code
is
in
control
of
when
to
provide • Promotes
very
loose
coupling
and
late
binding Dienstag, 25. Oktober 2011
  • 8. OSGi
services • OSGi
framework
provides
the
concepts
we
 need • Centralized
service
registry • Consumer
has
control
over
selecDon • Provider
has
control
over
when
to
provide • Plus
full‐blown
deployment
and
packaging
modularity
 with
run‐Dme
dynamism Dienstag, 25. Oktober 2011
  • 10. OSGi • The
downside
to
OSGi
is
that
it
requires
a
 boSom‐up
commitment • You
need
to
convert
all
of
your
code
into
 proper
modules
to
take
advantage
of
services • A
top‐down
approach
of
adopDng
services
 can
help
ease
migraDon
to
more
modular
 code Dienstag, 25. Oktober 2011
  • 13. What
is
PojoSR? • It
largely
removes
the
modularity
layer
from
the
 OSGi
framework • Provides • A
centralized
service
registry
based
on
OSGi
 API • Lifecycle
hooks
for
JAR
files • A
“light”
OSGi
framework
for
the
class
path Dienstag, 25. Oktober 2011
  • 14. Why
this
approach? • OSGi
API
is
a
standard
with
years
of
experience
 behind
it • Can
re‐use
OSGi
modules
(a.k.a.
bundles)
and/or
 technology • Can
leverage
services
without
having
to
 completely
modularize
first
(i.e.,
top‐down) • Provides
a
path
to
full‐blown
modularity Dienstag, 25. Oktober 2011
  • 17. MigraDon • Without
PojoSR • Turn
applicaDon
into
one
big
bundle
(jar) • Split
into
several
bundles
 • Fix
problems • Split
into
even
more
bundles
(etc.) • Eventually,
start
using
services
 • Allows
you
to
remove
ugly
hacks
needed
to
fix
problems • With
PojoSR • Start
using
services • Split
into
bundles
 Dienstag, 25. Oktober 2011
  • 18. Use
OSGi
where
you
can‘t • OSGi
(lite)
on
Google
App
Engine
using
PojoSR Dienstag, 25. Oktober 2011
  • 19. Use
OSGi
where
you
can‘t • hSp://vimeo.com/22571224 Dienstag, 25. Oktober 2011
  • 23. Services
and
dependency
injecDon • Advantages
when
combined
with
service
 orientaDon • Dependency
injecDon
no
longer
needs
global
view • InformaDon
localized
to
just
the
provider/consumer • No
longer
restricted
to
a
single
DI
framework • Different
DI
frameworks
can
play
together
via
the
service
 registry Dienstag, 25. Oktober 2011
  • 30. Benefits
and
Drawbacks • PojoSR
provides
part
of
the
power
of
OSGi
 • in
a
non‐intrusive
way. • allows
to
increase
modularity
and
use
µServices • without
first
ridding
an
exisDng
code
base
of
class
loader
hacks • Can
run
OSGi
bundles
where
you
can‘t • The
drawbacks
are • does
not
enforces
module
boundaries • does
not
allow
mulDple
versions
of
the
same
package;
does
not
 support
the
Bundle‐ClassPath.
 • But
you
can
use
the
µService
model
to
get
rid
of
the
class
loading
 hacks
over
Dme,
a?er
which
it
will
be
easier
to
move
to
OSGi
and
get
 side
by
side
versioning
and
real
module
boundaries. Dienstag, 25. Oktober 2011
  • 31. QuesDons? http://pojosr.googlecode.com Dienstag, 25. Oktober 2011