Your SlideShare is downloading. ×
0
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Dynamic Deployment With Apache Felix

1,923

Published on

A talk about Apache ACE and how it can be used to dynamically deploy components to targets.

A talk about Apache ACE and how it can be used to dynamically deploy components to targets.

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,923
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
55
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Dynamic  deployment   with  Apache  Felix Marcel  Offermans Friday, November 6, 2009
  • 2. 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
  • 10. Re-­‐use:  copy/paste Friday, November 6, 2009
  • 11. Re-­‐use:  Object  Oriented Friday, November 6, 2009
  • 12. Re-­‐use:  Component  Based 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
  • 34. Demo Friday, November 6, 2009
  • 35. Demo Friday, November 6, 2009
  • 36. Demo Friday, November 6, 2009
  • 37. Demo 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

×