SlideShare a Scribd company logo
1 of 39
Download to read offline
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

More Related Content

What's hot

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 praktyceWydawnictwo Helion
 
The 3Ps of Managed Network Services
The 3Ps of Managed Network ServicesThe 3Ps of Managed Network Services
The 3Ps of Managed Network ServicesReadWrite
 
Indian Wine Market Report - 2011
Indian Wine Market Report - 2011Indian Wine Market Report - 2011
Indian Wine Market Report - 2011david_singer
 
Ludo mini project in c++
Ludo mini project in c++Ludo mini project in c++
Ludo mini project in c++Mauryasuraj98
 
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 181Mahmoud Samir Fayed
 
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...Market Engel SAS
 
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 2015muzaffertahir9
 
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 TensorFlowWrangleConf
 
PHP cart
PHP cartPHP cart
PHP carttumetr1
 
PHP webboard
PHP webboardPHP webboard
PHP webboardtumetr1
 
밑바닥부터 시작하는 의료 AI
밑바닥부터 시작하는 의료 AI밑바닥부터 시작하는 의료 AI
밑바닥부터 시작하는 의료 AINAVER Engineering
 
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 2007Damien Seguy
 
Al Fazl International May 30 2014
Al Fazl International May 30 2014Al Fazl International May 30 2014
Al Fazl International May 30 2014muzaffertahir9
 
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 196Mahmoud Samir Fayed
 
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 PerceptionAtsushi Nitanda
 

What's hot (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
 

Viewers also liked

Microservices OSGi-running-with-apache-karaf
Microservices OSGi-running-with-apache-karafMicroservices OSGi-running-with-apache-karaf
Microservices OSGi-running-with-apache-karafAchim Nierbeck
 
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 KarafAchim Nierbeck
 
Modular Architectures using Micro Services
Modular Architectures using Micro ServicesModular Architectures using Micro Services
Modular Architectures using Micro ServicesMarcel Offermans
 
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 Grzesikmfrancis
 
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 Schneidermfrancis
 

Viewers also liked (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
 

Similar to Dynamic Deployment With Apache Felix

DiplomadoIABMex_Equipo6
DiplomadoIABMex_Equipo6DiplomadoIABMex_Equipo6
DiplomadoIABMex_Equipo6jorgemacias23
 
JQuery In Rails
JQuery In RailsJQuery In Rails
JQuery In RailsLouie Zhao
 
Baby steps and pervasive feedback agile2012
Baby steps and pervasive feedback agile2012Baby steps and pervasive feedback agile2012
Baby steps and pervasive feedback agile2012drewz lin
 
The Lean Startup - simplified
The Lean Startup - simplifiedThe Lean Startup - simplified
The Lean Startup - simplifiedStefano Bernardi
 
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
 
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...ILRI
 
Interaction design
Interaction designInteraction design
Interaction designfeifei2011
 
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_selfgarrett honeycutt
 
Наибольшая общая мера: 2500 лет
Наибольшая общая мера: 2500 летНаибольшая общая мера: 2500 лет
Наибольшая общая мера: 2500 летsixtyone
 
Юрий Буянов «Squeryl — ORM с человеческим лицом»
Юрий Буянов «Squeryl — ORM с человеческим лицом»Юрий Буянов «Squeryl — ORM с человеческим лицом»
Юрий Буянов «Squeryl — ORM с человеческим лицом»e-Legion
 
Representing the curriculum symposium
Representing the curriculum symposiumRepresenting the curriculum symposium
Representing the curriculum symposiumHelen Beetham
 
Bayane moujazine umt cdt- untm
Bayane moujazine umt  cdt- untmBayane moujazine umt  cdt- untm
Bayane moujazine umt cdt- untmsharqedu
 
Connectix webserver
Connectix webserverConnectix webserver
Connectix webserversteveheer
 
Connectix webserver
Connectix webserverConnectix webserver
Connectix webserversteveheer
 

Similar to 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
 

Recently uploaded

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
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)wesley chun
 
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
 
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.pdfUK Journal
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
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?Antenna Manufacturer Coco
 
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
 
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...Neo4j
 
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
 
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 textsMaria Levchenko
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
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
 

Recently uploaded (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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)
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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?
 
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...
 
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...
 
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
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 

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