SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
Dynamic  deployment  
             with  Apache  Felix

                           Marcel  Offermans




Friday, November 6, 2009
Friday, November 6, 2009
Marcel  Offermans


        • commi0er  and  PMC  member  at  Apache  Felix
        • commi0er  at  Apache  ACE
        • so<ware  architect  at  luminis  technologies


        • marcel.offermans@luminis.nl


Friday, November 6, 2009
Agenda



        • The  case  for  OSGi
        • Dynamic  Deployment  with  Apache  ACE
        • Demo,  ACE  in  AcIon
        • Wrapup



Friday, November 6, 2009
The  case  for  OSGi



        • Paint  ApplicaIon
        • wri0en  in  Java
        • sold  to  customers




Friday, November 6, 2009
“Specials”  that  fork  your  code




Friday, November 6, 2009
ConCnuous  builds  taking  a  long  Cme




Friday, November 6, 2009
Code  reflects  the  architecture?




Friday, November 6, 2009
How  hard  is  it  to  change  something?




Friday, November 6, 2009
Re-­‐use:  copy/paste




Friday, November 6, 2009
Re-­‐use:  Object  Oriented




Friday, November 6, 2009
Re-­‐use:  Component  Based




Friday, November 6, 2009
ParCConing  your  applicaCon


        • minimize  dependencies
        • consider  rate  of  change
        • minimize  complexity
        • maximize  architected  flexibility
        • promote  reuse
        • improve  testability


Friday, November 6, 2009
Designing  with  services

                      >)=9)%)%                                                      A(..0=9




                       28"=4?
                                                                 C-       (,)=                203)                =)8
                       #0=302




        @07(;'                               &<0,)                       -.,(%')%                                *+,(%')%




         4%0,<             2:;0%)   #"%#6)           '%"0=46)              234                        /0#)1(($              !"#$%




     A(=54;%0B(=                                                 @(4                          &'(%)                         *3)='




         #(=54                                                  6(44)%           56)272').            8)1903                )3)='




Friday, November 6, 2009
Designing  with  services

                      >)=9)%)%                                                                  A(..0=9
                      %)=9)%)%                                                                  #(..0=9



                       28"=4?
                                                                       C-              (,)=             203)                 =)8
                       #0=302
                    28"=4D#0=302                                  28"=4D;"      28"=4D#.9D(,)=     28"=4D#.9D203)         28"=4D#.9D=)8
                                                               28"=4D#(='%(62


         @07(;'                                    &<0,)                             -.,(%')%                                  *+,(%')%
         607(;'                                    2<0,)                             ".,(%')%                                  )+,(%')%



         4%0,<            2:;0%)       #"%#6)               '%"0=46)                   234                          /0#)1(($               !"#$%
    607(;'D4%0,<     2<0,)D2:;0%)   2<0,)D#"%#6)           2<0,)D'%"0=46)            ".,D234                      )+,DE(($                ".,D!"#$%



      A(=54;%0B(=                                                     @(4                                 &'(%)                         *3)='
         (24"D#0                                                    (24"D6(4                              2'(%)                       (24"D)3)='



         #(=54                                                       6(44)%                 56)272').           8)1903                    )3)='
        /)6"+D#0                                                    /)6"+D6(4              2'(%)D/2           2'(%)D8)1903                /)6"+D)3)='




Friday, November 6, 2009
Designing  with  services

                      %)=9)%)%                                                                    #(..0=9
                      >)=9)%)%                                                                    A(..0=9
                      %)=9)%)%                                                                    #(..0=9

                                            ;"                                                            #(..0=92
                       28"=4?
                                                                         C-              (,)=              203)                  =)8
                       #0=302
                    28"=4D#0=302                                    28"=4D;"      28"=4D#.9D(,)=      28"=4D#.9D203)          28"=4D#.9D=)8
                                                                 28"=4D#(='%(62

                            9%08"=4                  &<0,)                                                   0,"D"(
         @07(;'                                                                        -.,(%')%                                    *+,(%')%
         607(;'                                      2<0,)                             ".,(%')%                                    )+,(%')%

       4%0,<                            2<0,)2                                           234                                     )+,(%')%2
         4%0,<            2:;0%)         #"%#6)               '%"0=46)                   234                            /0#)1(($               !"#$%
    607(;'D4%0,<     2<0,)D2:;0%)     2<0,)D#"%#6)           2<0,)D'%"0=46)            ".,D234                        )+,DE(($                ".,D!"#$%


                                                                      0,"D(24"
     A(=54;%0B(=                                                        @(4                                  &'(%)                          *3)='
        (24"D#0                                                       (24"D6(4                               2'(%)                        (24"D)3)='


      #(=5409."=                                                         6(4                   56)2'(%)                 8)1903                  )3)='
         #(=54                                                         6(44)%                    56)272').          8)1903                    )3)='
        /)6"+D#0                                                      /)6"+D6(4                 2'(%)D/2          2'(%)D8)1903                /)6"+D)3)='




Friday, November 6, 2009
The  Case  for  ACE

        • Started  in  incubator  on  april  24th  2009
        • So<ware  distribuIon  framework  
          based  on  OSGi
        • 7  commi0ers
        • working  codebase
        • no  release  yet
        • h0p://incubator.apache.org/ace/

Friday, November 6, 2009
Deployment



                      !"#$"%&%'()                 !"#$%&'(


                      !"#$"%&%'(*    !"#$%&'"()   !"#$%&')


                       !"#$"%&%'(!                !"#$%&'*




Friday, November 6, 2009
Keeping  the  history
                                                  last year
                                 !"#$"%&%'()   +,-.&'()
                                                     last month
                              !"#$"%&%'()
                                 !"#$"%&%'(*      +,-.&'()
                                                             last week
                           !"#$"%&%'()
                              !"#$"%&%'(*
                                                     !"#$%&'(
                                               +,-.&'(!
                                                  +,-.&'(*               now
                      !"#$"%&%'()                         !"#$%&'(
                           !"#$"%&%'(*              !"#$%&')
                                                  +,-.&'(!


                       !"#$"%&%'(*
                           !"#$"%&%'(!
                                                          !"#$%&')
                                                     !"#$%&'*


                       !"#$"%&%'(!                        !"#$%&'*




Friday, November 6, 2009
Why?


        • Automate  deployment
        • Insight  into  who  uses  what
        • History  of  each  system
        • Consistent  development,  tesIng,  producIon
        • Basis  for  several  possible  extensions


Friday, November 6, 2009
Topology

                                                         !"#$%!
                                                     0"&"$%0%&!.
                                                        "$%&!


                                                         !"#$%!
           /2,%&!
                           *#(+,-,(&,&$.             0"&"$%0%&!.
                                           &%!'(#)
                              -%#+%#                    "$%&!


                                                         !"#$%!
                                                     0"&"$%0%&!.
                                                        "$%&!
                           /(0*(&%&!.
                            #%*(-,!(#1




Friday, November 6, 2009
High  level  overview



                           !"#"$!"$%&'
                                            !"#,-&("$+
                           ()$)*"("$+



                                     .""!/)%0




Friday, November 6, 2009
Dependency  Management




        • Organizing  components
        • Mapping  them  to  targets




Friday, November 6, 2009
Organizing  components

        • group  components:  makes  them  manageable
        • two  levels:  group  and  license
        • Analogy:  IKEA  catalog
        • data  is  kept  in  “store  repository”

                                               !"#$%&'%(#)*"#$+

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




Friday, November 6, 2009
Mapping  them  onto  targets


        • mapping  licenses  to  targets
        • someImes  done  by  an  external  system
        • data  kept  in  “license  repository”

                                               !"#$%&$'($)*&"+*,-

                                           !"#$%&$            '()*$+




Friday, November 6, 2009
User  Interface

        • user  retrieves,  
        • modifies  locally  and  
        • stores  data  on  server




Friday, November 6, 2009
Deployment

        • list  of  targets
            • list  of  versions  per  target
                 • list  of  components  per  version

        • management  agent

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

                                                        !"#$%&         '()*(+%+&




Friday, November 6, 2009
Deployment  Repository


          ',*-&'(          )&*(+"%(                 !"#$"%&%'(
                              2       1"#$"%&%'/0   !"#$"%&%'()
                              3       1"#$"%&%'/0   !"#$"%&%'()   !"#$"%&%'(!
        .,*-&'/0
                              4       1"#$"%&%'/0   !"#$"%&%'(!   !"#$"%&%'(*
                              5       1"#$"%&%'/1   !"#$"%&%'(*

                              2       1"#$"%&%'/6   !"#$"%&%'(*
         .,*-&'/6
                              3       1"#$"%&%'/0   !"#$"%&%'()   !"#$"%&%'(*




Friday, November 6, 2009
Management  Agent

        • manages  life  cycle  of  bundles
          BundleContext
        • controls  package  sharing  policies
          PackageAdmin
        • controls  starIng/stopping  order
          StartLevel                             !"#$%"&'($)&%*+,-./'0
                                                 1/'&%"2&)$.$),-$/3
                                                 45&%!"#$%6++$,3)&



        • implements  a  security  policy        7&+&,8&%9:%;&'8$/3%9<=
                                                 >?3&%=@@A




          Condi7onalPermissionAdmin

Friday, November 6, 2009
Management  Agent


                                !"#"$%!%#&'"$%#&

                            *'.#"/0#,        '('.#


                           "#10)-2#$34
                                           (/"!340)6
                              3(*5


                           !"#$%&'(%)$     "!*')+#,-




Friday, November 6, 2009
Deployment  Admin

        • deployment  packages
        • versioned  set  of  arIfacts
        • transacIonal  install/update
        • fix  packages  provide  deltas
        • signing  makes  them  secure
        • extensible  through  resource  processors
        • AutoConfig  defines  configuraIon  admin  data

Friday, November 6, 2009
From  dependency  to  deployment




               !"#$%&'%(#)*"#$+                     ,*-%.)%&'%(#)*"#$+           /%(0#+1%."&'%(#)*"#$+

 !"#$"%&%'          ,-".$         ()*&%+&
                                            +   ()*&%+&            /0-1&'
                                                                            =   /0-1&'         !"#$"%&%'




Friday, November 6, 2009
Feedback


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

                           012,!.                                             012,!.
                            3($                                                3($

   !=#".%@A*?B*-%45(%23-'+*,C%151*%4521-
     $"#$E%;21-<*%$"%,+533*-
   !:#".
   !D#".!"#$"%&'()*+%,+'(+*-
     $"#$9                                                   !"#$"%&'()*+%,+'(+*-
   $E#".!"#$.%/+'(01)%23-'+*%4(56%7*(,851%9%+5%:
     $"#.9                                                   !"#$.%/+'(01)%23-'+*%4(56%7*(,851%9%+5%:
   $!#".!"#$.%;21-<*%"=%23-'+*-
     E$#$$                                                   !"#$.%;21-<*%"=%23-'+*-
        !"#$9%>3-'+*%+5%7*(,851%:%,2??**-*-
     E9#$$                                                   !"#$9%>3-'+*%+5%7*(,851%:%,2??**-*-
        !.#$9%&'()*+%,+533*-                                 !.#$9%&'()*+%,+533*-




Friday, November 6, 2009
Demo




Friday, November 6, 2009
Demo




Friday, November 6, 2009
Demo




Friday, November 6, 2009
Demo




Friday, November 6, 2009
Wrapup


        • Apache  ACE  is  incubaIng
        • Take  it  for  a  test-­‐drive!
        • Looking  for  contribuIons:
            • Apache  Felix  Karaf
            • Maven  /  Nexus  repository
            • Kalumet,  JEE  auto  deployment


Friday, November 6, 2009
QuesCons?

                               ?
        ?                              ? ?      ?
                           ?
                                   ?           ? ?
        ?
                                           ?    ?

                     ?         ?       ?
                                                    ?
Friday, November 6, 2009

Weitere ähnliche Inhalte

Was ist angesagt?

Kompendium DTP. Adobe Photoshop, Illustrator, InDesign i Acrobat w praktyce
Kompendium DTP. Adobe Photoshop, Illustrator, InDesign i Acrobat w praktyceKompendium DTP. Adobe Photoshop, Illustrator, InDesign i Acrobat w praktyce
Kompendium DTP. Adobe Photoshop, Illustrator, InDesign i Acrobat w praktyce
Wydawnictwo Helion
 

Was ist angesagt? (20)

Kompendium DTP. Adobe Photoshop, Illustrator, InDesign i Acrobat w praktyce
Kompendium DTP. Adobe Photoshop, Illustrator, InDesign i Acrobat w praktyceKompendium DTP. Adobe Photoshop, Illustrator, InDesign i Acrobat w praktyce
Kompendium DTP. Adobe Photoshop, Illustrator, InDesign i Acrobat w praktyce
 
The 3Ps of Managed Network Services
The 3Ps of Managed Network ServicesThe 3Ps of Managed Network Services
The 3Ps of Managed Network Services
 
Indian Wine Market Report - 2011
Indian Wine Market Report - 2011Indian Wine Market Report - 2011
Indian Wine Market Report - 2011
 
Ludo mini project in c++
Ludo mini project in c++Ludo mini project in c++
Ludo mini project in c++
 
Dec10 tuesday conversation_idelarcor
Dec10 tuesday conversation_idelarcorDec10 tuesday conversation_idelarcor
Dec10 tuesday conversation_idelarcor
 
Central Stats
Central Stats Central Stats
Central Stats
 
The Ring programming language version 1.5.2 book - Part 66 of 181
The Ring programming language version 1.5.2 book - Part 66 of 181The Ring programming language version 1.5.2 book - Part 66 of 181
The Ring programming language version 1.5.2 book - Part 66 of 181
 
The application for spanish on line gaming licenses - main legal, economic, t...
The application for spanish on line gaming licenses - main legal, economic, t...The application for spanish on line gaming licenses - main legal, economic, t...
The application for spanish on line gaming licenses - main legal, economic, t...
 
Al Fazl International Weekly 14 August 2015
Al Fazl International Weekly 14 August 2015Al Fazl International Weekly 14 August 2015
Al Fazl International Weekly 14 August 2015
 
Wrangle 2016: (Lightning Talk) FizzBuzz in TensorFlow
Wrangle 2016: (Lightning Talk) FizzBuzz in TensorFlowWrangle 2016: (Lightning Talk) FizzBuzz in TensorFlow
Wrangle 2016: (Lightning Talk) FizzBuzz in TensorFlow
 
PHP cart
PHP cartPHP cart
PHP cart
 
PHP webboard
PHP webboardPHP webboard
PHP webboard
 
Graphical representation of Stack
Graphical representation of StackGraphical representation of Stack
Graphical representation of Stack
 
밑바닥부터 시작하는 의료 AI
밑바닥부터 시작하는 의료 AI밑바닥부터 시작하는 의료 AI
밑바닥부터 시작하는 의료 AI
 
Groovy kind of test
Groovy kind of testGroovy kind of test
Groovy kind of test
 
PHP and MySQL Tips and tricks, DC 2007
PHP and MySQL Tips and tricks, DC 2007PHP and MySQL Tips and tricks, DC 2007
PHP and MySQL Tips and tricks, DC 2007
 
Al Fazl International May 30 2014
Al Fazl International May 30 2014Al Fazl International May 30 2014
Al Fazl International May 30 2014
 
The Ring programming language version 1.7 book - Part 63 of 196
The Ring programming language version 1.7 book - Part 63 of 196The Ring programming language version 1.7 book - Part 63 of 196
The Ring programming language version 1.7 book - Part 63 of 196
 
Functional Gradient Boosting based on Residual Network Perception
Functional Gradient Boosting based on Residual Network PerceptionFunctional Gradient Boosting based on Residual Network Perception
Functional Gradient Boosting based on Residual Network Perception
 
Creative Visions Foundation Overview
Creative Visions Foundation OverviewCreative Visions Foundation Overview
Creative Visions Foundation Overview
 

Andere mochten auch

Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A GrzesikApache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
mfrancis
 

Andere mochten auch (8)

Microservices OSGi-running-with-apache-karaf
Microservices OSGi-running-with-apache-karafMicroservices OSGi-running-with-apache-karaf
Microservices OSGi-running-with-apache-karaf
 
Apache Felix Web Console
Apache Felix Web ConsoleApache Felix Web Console
Apache Felix Web Console
 
ApacheCon EU 2014: Enterprise Development with Apache Karaf
ApacheCon EU 2014: Enterprise Development with Apache KarafApacheCon EU 2014: Enterprise Development with Apache Karaf
ApacheCon EU 2014: Enterprise Development with Apache Karaf
 
Beyond OSGi Software Architecture
Beyond OSGi Software ArchitectureBeyond OSGi Software Architecture
Beyond OSGi Software Architecture
 
De leukste Bug
De leukste BugDe leukste Bug
De leukste Bug
 
Modular Architectures using Micro Services
Modular Architectures using Micro ServicesModular Architectures using Micro Services
Modular Architectures using Micro Services
 
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A GrzesikApache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
 
OSGi ecosystems compared on Apache Karaf - Christian Schneider
OSGi ecosystems compared on Apache Karaf - Christian SchneiderOSGi ecosystems compared on Apache Karaf - Christian Schneider
OSGi ecosystems compared on Apache Karaf - Christian Schneider
 

Ähnlich wie Dynamic Deployment With Apache Felix

JQuery In Rails
JQuery In RailsJQuery In Rails
JQuery In Rails
Louie Zhao
 
Baby steps and pervasive feedback agile2012
Baby steps and pervasive feedback agile2012Baby steps and pervasive feedback agile2012
Baby steps and pervasive feedback agile2012
drewz lin
 
Brand & UX: Toward a New Interpretation (Version 2)
Brand & UX: Toward a New Interpretation (Version 2)Brand & UX: Toward a New Interpretation (Version 2)
Brand & UX: Toward a New Interpretation (Version 2)
Mark Badger
 
Наибольшая общая мера: 2500 лет
Наибольшая общая мера: 2500 летНаибольшая общая мера: 2500 лет
Наибольшая общая мера: 2500 лет
sixtyone
 
Юрий Буянов «Squeryl — ORM с человеческим лицом»
Юрий Буянов «Squeryl — ORM с человеческим лицом»Юрий Буянов «Squeryl — ORM с человеческим лицом»
Юрий Буянов «Squeryl — ORM с человеческим лицом»
e-Legion
 
Bayane moujazine umt cdt- untm
Bayane moujazine umt  cdt- untmBayane moujazine umt  cdt- untm
Bayane moujazine umt cdt- untm
sharqedu
 
Connectix webserver
Connectix webserverConnectix webserver
Connectix webserver
steveheer
 
Connectix webserver
Connectix webserverConnectix webserver
Connectix webserver
steveheer
 

Ähnlich wie Dynamic Deployment With Apache Felix (20)

Wells Fargo Outline
Wells Fargo Outline Wells Fargo Outline
Wells Fargo Outline
 
DiplomadoIABMex_Equipo6
DiplomadoIABMex_Equipo6DiplomadoIABMex_Equipo6
DiplomadoIABMex_Equipo6
 
Chinese
ChineseChinese
Chinese
 
JQuery In Rails
JQuery In RailsJQuery In Rails
JQuery In Rails
 
Baby steps and pervasive feedback agile2012
Baby steps and pervasive feedback agile2012Baby steps and pervasive feedback agile2012
Baby steps and pervasive feedback agile2012
 
The Lean Startup - simplified
The Lean Startup - simplifiedThe Lean Startup - simplified
The Lean Startup - simplified
 
Mv10 all oneslides-100408
Mv10 all oneslides-100408Mv10 all oneslides-100408
Mv10 all oneslides-100408
 
Brand & UX: Toward a New Interpretation (Version 2)
Brand & UX: Toward a New Interpretation (Version 2)Brand & UX: Toward a New Interpretation (Version 2)
Brand & UX: Toward a New Interpretation (Version 2)
 
Targeted investment in livestock research helps achieve the Sustainable Devel...
Targeted investment in livestock research helps achieve the Sustainable Devel...Targeted investment in livestock research helps achieve the Sustainable Devel...
Targeted investment in livestock research helps achieve the Sustainable Devel...
 
Interaction design
Interaction designInteraction design
Interaction design
 
Gkm referral program
Gkm referral programGkm referral program
Gkm referral program
 
20110611 expanded intro-to_puppet_for_self
20110611 expanded intro-to_puppet_for_self20110611 expanded intro-to_puppet_for_self
20110611 expanded intro-to_puppet_for_self
 
Наибольшая общая мера: 2500 лет
Наибольшая общая мера: 2500 летНаибольшая общая мера: 2500 лет
Наибольшая общая мера: 2500 лет
 
Юрий Буянов «Squeryl — ORM с человеческим лицом»
Юрий Буянов «Squeryl — ORM с человеческим лицом»Юрий Буянов «Squeryl — ORM с человеческим лицом»
Юрий Буянов «Squeryl — ORM с человеческим лицом»
 
14 ноября 2 мобильный
14 ноября 2 мобильный14 ноября 2 мобильный
14 ноября 2 мобильный
 
Representing the curriculum symposium
Representing the curriculum symposiumRepresenting the curriculum symposium
Representing the curriculum symposium
 
Bayane moujazine umt cdt- untm
Bayane moujazine umt  cdt- untmBayane moujazine umt  cdt- untm
Bayane moujazine umt cdt- untm
 
Overview of APEC Region Wine Trade 2011
Overview of APEC Region Wine Trade 2011Overview of APEC Region Wine Trade 2011
Overview of APEC Region Wine Trade 2011
 
Connectix webserver
Connectix webserverConnectix webserver
Connectix webserver
 
Connectix webserver
Connectix webserverConnectix webserver
Connectix webserver
 

Kürzlich hochgeladen

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
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?
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Dynamic Deployment With Apache Felix

  • 1. Dynamic  deployment   with  Apache  Felix Marcel  Offermans Friday, November 6, 2009
  • 3. Marcel  Offermans • commi0er  and  PMC  member  at  Apache  Felix • commi0er  at  Apache  ACE • so<ware  architect  at  luminis  technologies • marcel.offermans@luminis.nl Friday, November 6, 2009
  • 4. Agenda • The  case  for  OSGi • Dynamic  Deployment  with  Apache  ACE • Demo,  ACE  in  AcIon • Wrapup Friday, November 6, 2009
  • 5. The  case  for  OSGi • Paint  ApplicaIon • wri0en  in  Java • sold  to  customers Friday, November 6, 2009
  • 6. “Specials”  that  fork  your  code Friday, November 6, 2009
  • 7. ConCnuous  builds  taking  a  long  Cme Friday, November 6, 2009
  • 8. Code  reflects  the  architecture? Friday, November 6, 2009
  • 9. How  hard  is  it  to  change  something? Friday, November 6, 2009
  • 13. ParCConing  your  applicaCon • minimize  dependencies • consider  rate  of  change • minimize  complexity • maximize  architected  flexibility • promote  reuse • improve  testability Friday, November 6, 2009
  • 14. Designing  with  services >)=9)%)% A(..0=9 28"=4? C- (,)= 203) =)8 #0=302 @07(;' &<0,) -.,(%')% *+,(%')% 4%0,< 2:;0%) #"%#6) '%"0=46) 234 /0#)1(($ !"#$% A(=54;%0B(= @(4 &'(%) *3)=' #(=54 6(44)% 56)272'). 8)1903 )3)=' Friday, November 6, 2009
  • 15. Designing  with  services >)=9)%)% A(..0=9 %)=9)%)% #(..0=9 28"=4? C- (,)= 203) =)8 #0=302 28"=4D#0=302 28"=4D;" 28"=4D#.9D(,)= 28"=4D#.9D203) 28"=4D#.9D=)8 28"=4D#(='%(62 @07(;' &<0,) -.,(%')% *+,(%')% 607(;' 2<0,) ".,(%')% )+,(%')% 4%0,< 2:;0%) #"%#6) '%"0=46) 234 /0#)1(($ !"#$% 607(;'D4%0,< 2<0,)D2:;0%) 2<0,)D#"%#6) 2<0,)D'%"0=46) ".,D234 )+,DE(($ ".,D!"#$% A(=54;%0B(= @(4 &'(%) *3)=' (24"D#0 (24"D6(4 2'(%) (24"D)3)=' #(=54 6(44)% 56)272'). 8)1903 )3)=' /)6"+D#0 /)6"+D6(4 2'(%)D/2 2'(%)D8)1903 /)6"+D)3)=' Friday, November 6, 2009
  • 16. Designing  with  services %)=9)%)% #(..0=9 >)=9)%)% A(..0=9 %)=9)%)% #(..0=9 ;" #(..0=92 28"=4? C- (,)= 203) =)8 #0=302 28"=4D#0=302 28"=4D;" 28"=4D#.9D(,)= 28"=4D#.9D203) 28"=4D#.9D=)8 28"=4D#(='%(62 9%08"=4 &<0,) 0,"D"( @07(;' -.,(%')% *+,(%')% 607(;' 2<0,) ".,(%')% )+,(%')% 4%0,< 2<0,)2 234 )+,(%')%2 4%0,< 2:;0%) #"%#6) '%"0=46) 234 /0#)1(($ !"#$% 607(;'D4%0,< 2<0,)D2:;0%) 2<0,)D#"%#6) 2<0,)D'%"0=46) ".,D234 )+,DE(($ ".,D!"#$% 0,"D(24" A(=54;%0B(= @(4 &'(%) *3)=' (24"D#0 (24"D6(4 2'(%) (24"D)3)=' #(=5409."= 6(4 56)2'(%) 8)1903 )3)=' #(=54 6(44)% 56)272'). 8)1903 )3)=' /)6"+D#0 /)6"+D6(4 2'(%)D/2 2'(%)D8)1903 /)6"+D)3)=' Friday, November 6, 2009
  • 17. The  Case  for  ACE • Started  in  incubator  on  april  24th  2009 • So<ware  distribuIon  framework   based  on  OSGi • 7  commi0ers • working  codebase • no  release  yet • h0p://incubator.apache.org/ace/ Friday, November 6, 2009
  • 18. Deployment !"#$"%&%'() !"#$%&'( !"#$"%&%'(* !"#$%&'"() !"#$%&') !"#$"%&%'(! !"#$%&'* Friday, November 6, 2009
  • 19. Keeping  the  history last year !"#$"%&%'() +,-.&'() last month !"#$"%&%'() !"#$"%&%'(* +,-.&'() last week !"#$"%&%'() !"#$"%&%'(* !"#$%&'( +,-.&'(! +,-.&'(* now !"#$"%&%'() !"#$%&'( !"#$"%&%'(* !"#$%&') +,-.&'(! !"#$"%&%'(* !"#$"%&%'(! !"#$%&') !"#$%&'* !"#$"%&%'(! !"#$%&'* Friday, November 6, 2009
  • 20. Why? • Automate  deployment • Insight  into  who  uses  what • History  of  each  system • Consistent  development,  tesIng,  producIon • Basis  for  several  possible  extensions Friday, November 6, 2009
  • 21. Topology !"#$%! 0"&"$%0%&!. "$%&! !"#$%! /2,%&! *#(+,-,(&,&$. 0"&"$%0%&!. &%!'(#) -%#+%# "$%&! !"#$%! 0"&"$%0%&!. "$%&! /(0*(&%&!. #%*(-,!(#1 Friday, November 6, 2009
  • 22. High  level  overview !"#"$!"$%&' !"#,-&("$+ ()$)*"("$+ .""!/)%0 Friday, November 6, 2009
  • 23. Dependency  Management • Organizing  components • Mapping  them  to  targets Friday, November 6, 2009
  • 24. Organizing  components • group  components:  makes  them  manageable • two  levels:  group  and  license • Analogy:  IKEA  catalog • data  is  kept  in  “store  repository” !"#$%&'%(#)*"#$+ !"#$"%&%' ,-".$ ()*&%+& Friday, November 6, 2009
  • 25. Mapping  them  onto  targets • mapping  licenses  to  targets • someImes  done  by  an  external  system • data  kept  in  “license  repository” !"#$%&$'($)*&"+*,- !"#$%&$ '()*$+ Friday, November 6, 2009
  • 26. User  Interface • user  retrieves,   • modifies  locally  and   • stores  data  on  server Friday, November 6, 2009
  • 27. Deployment • list  of  targets • list  of  versions  per  target • list  of  components  per  version • management  agent !"#$%&'"()*+"#%,-)%.& !"#$%& '()*(+%+& Friday, November 6, 2009
  • 28. Deployment  Repository ',*-&'( )&*(+"%( !"#$"%&%'( 2 1"#$"%&%'/0 !"#$"%&%'() 3 1"#$"%&%'/0 !"#$"%&%'() !"#$"%&%'(! .,*-&'/0 4 1"#$"%&%'/0 !"#$"%&%'(! !"#$"%&%'(* 5 1"#$"%&%'/1 !"#$"%&%'(* 2 1"#$"%&%'/6 !"#$"%&%'(* .,*-&'/6 3 1"#$"%&%'/0 !"#$"%&%'() !"#$"%&%'(* Friday, November 6, 2009
  • 29. Management  Agent • manages  life  cycle  of  bundles BundleContext • controls  package  sharing  policies PackageAdmin • controls  starIng/stopping  order StartLevel !"#$%"&'($)&%*+,-./'0 1/'&%"2&)$.$),-$/3 45&%!"#$%6++$,3)& • implements  a  security  policy 7&+&,8&%9:%;&'8$/3%9<= >?3&%=@@A Condi7onalPermissionAdmin Friday, November 6, 2009
  • 30. Management  Agent !"#"$%!%#&'"$%#& *'.#"/0#, '('.# "#10)-2#$34 (/"!340)6 3(*5 !"#$%&'(%)$ "!*')+#,- Friday, November 6, 2009
  • 31. Deployment  Admin • deployment  packages • versioned  set  of  arIfacts • transacIonal  install/update • fix  packages  provide  deltas • signing  makes  them  secure • extensible  through  resource  processors • AutoConfig  defines  configuraIon  admin  data Friday, November 6, 2009
  • 32. From  dependency  to  deployment !"#$%&'%(#)*"#$+ ,*-%.)%&'%(#)*"#$+ /%(0#+1%."&'%(#)*"#$+ !"#$"%&%' ,-".$ ()*&%+& + ()*&%+& /0-1&' = /0-1&' !"#$"%&%' Friday, November 6, 2009
  • 33. Feedback !"#$%! *#(+,-,(&,&$. /"&"$%/%&!. &%!'(#) -%#+%# "$%&! 012,!. 012,!. 3($ 3($ !=#".%@A*?B*-%45(%23-'+*,C%151*%4521- $"#$E%;21-<*%$"%,+533*- !:#". !D#".!"#$"%&'()*+%,+'(+*- $"#$9 !"#$"%&'()*+%,+'(+*- $E#".!"#$.%/+'(01)%23-'+*%4(56%7*(,851%9%+5%: $"#.9 !"#$.%/+'(01)%23-'+*%4(56%7*(,851%9%+5%: $!#".!"#$.%;21-<*%"=%23-'+*- E$#$$ !"#$.%;21-<*%"=%23-'+*- !"#$9%>3-'+*%+5%7*(,851%:%,2??**-*- E9#$$ !"#$9%>3-'+*%+5%7*(,851%:%,2??**-*- !.#$9%&'()*+%,+533*- !.#$9%&'()*+%,+533*- Friday, November 6, 2009
  • 38. Wrapup • Apache  ACE  is  incubaIng • Take  it  for  a  test-­‐drive! • Looking  for  contribuIons: • Apache  Felix  Karaf • Maven  /  Nexus  repository • Kalumet,  JEE  auto  deployment Friday, November 6, 2009
  • 39. QuesCons? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Friday, November 6, 2009