All about Apache ACE

1,757 views

Published on

OSGi technology is becoming the preferred approach for creating highly modular and dynamically extensible applications. With open source framework implementations like Eclipse Equinox and Apache Felix readily available, there is no better time to move to OSGi technology. However, doing so requires to master the assembly, provisioning, and discovery of the components that make-up your system. Apache ACE, an Apache Incubator project, is a software distribution framework that allows to centrally manage and distribute software components, configuration data, and other artifacts to target systems. We will focus on building and managing OSGi deployments, showing you how to use Apache ACE to bootstrap a framework and deploy to remotely managed systems. Also, we will show how ACE can be used to deploy bundles to an Android based phone.

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,757
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
27
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

All about Apache ACE

  1. 1. All  AboutApache  ACE Marcel  Offermans !"#$%&&()"*
  2. 2. Marcel• Member  Apache  So4ware  Founda9on • PMC:  Felix,  Incubator • PPMC:  ACE,  Celix• Fellow  at  Luminis• marcel.offermans@luminis.eu
  3. 3. Agenda• Provisioning  in  OSGi• Apache  ACE• ACE  in  the  Cloud• EZdroid• Amdatu
  4. 4. Provisioning  in  OSGi
  5. 5. OSGi:  core  +  compendium !"#$%"&($)&%*+,-./0 !"#$%"&($)&%*+,-./0 1/&%"2&)$.$),-$/3 "&($)&%1/02&34$50 45&%!"#$%6++$,3)& 67&%!"#$%8++$,3)& 7&+&,8&%9:%;&8$/3%9<= 9&+&,:&%;<%=&:$/3%;>? >?3&%=@@A 85@5:-%?AAB
  6. 6. Topology !"#$%! /"&"$%/%&!. "$%&! !"#$%! *#(+,-,(&,&$. /"&"$%/%&!. &%!(#) -%#+%# "$%&! !"#$%! /"&"$%/%&!. "$%&!
  7. 7. Management  Agent• manages  life  cycle  of  bundles BundleContext• controls  package  sharing  policies PackageAdmin• controls  star9ng/stopping  order StartLevel !"#$%"&($)&%*+,-./0 1/&%"2&)$.$),-$/3 45&%!"#$%6++$,3)&• implements  a  security  policy 7&+&,8&%9:%;&8$/3%9<= >?3&%=@@A Condi7onalPermissionAdmin
  8. 8. Tip:  Seman9c  Versioning  whitepaper Semantic Versioning Technical Whitepaper Revision 1.0 May 6, 2010 © 2010 OSGi Alliance All Rights Reserved.Source:  h*p://www.osgi.org/wiki/uploads/Links/Seman9cVersioning.pdf
  9. 9. Downsides  and  PiRalls!!"#$%&(")) !"#" *++ !!"#$%&(")) !"#" *++ ,&(-./01 ,&(-./01 5&(-./01 !&*+)# $%&#%#()" $%&#%#()" *++234$ *++234$
  10. 10. Best  Prac9ce !!"#$%&(")) !"#" *++ *+,-./0,-1 *+,-./+,+1 $%&#%#()" *++,-.$
  11. 11. Provisioning  Solu9ons• Apache  Felix  File  Install• Apache  Karaf• Equinox  p2• OSGi  Bundle  Repository  Client• Pax  Runner• Apache  ACE
  12. 12. Apache  ACE• Started  in  incubator  on  April  24th  2009• So4ware  distribu9on  framework   based  on  OSGi• 12  commiers• working  codebase• first  official  release  imminent!• hp://incubator.apache.org/ace/
  13. 13. Deployment !"#$%&(! +%",-(! !"#$%&() !"#$%&"() +%",-() !"#$%&(* +%",-(*
  14. 14. Keeping  the  history last year !"#$%&(! *%"+,(! last month !"#$%&(! !"#$%&() *%"+,(! last week !"#$%&(! !"#$%&() +%",-(! *%"+,(- *%"+,() now !"#$%&(! +%",-(! !"#$%&() +%",-() *%"+,(- !"#$%&() !"#$%&(* +%",-() +%",-(* !"#$%&(* +%",-(*
  15. 15. Why?• Automate  deployment• Insight  into  who  uses  what• History  of  each  system• Consistent  development,  tes9ng,  produc9on• Basis  for  several  possible  extensions
  16. 16. Topology !"#$%! 0"&"$%0%&!. "$%&! !"#$%! /2,%&! *#(+,-,(&,&$. 0"&"$%0%&!. &%!(#) -%#+%# "$%&! !"#$%! 0"&"$%0%&!. "$%&! /(0*(&%&!. #%*(-,!(#1
  17. 17. High  level  overview !"#"$!"$%& !"#$%&"() ()$)*"("$+ !""#$%&
  18. 18. High  level  overview !"#"$!"$%& ()$)*"("$+
  19. 19. Dependency  Management• Organizing  ar9facts• Mapping  them  to  targets
  20. 20. Mapping  them  onto  targets• mapping  distribu9ons  to  targets• some9mes  done  by  an  external  system• data  kept  in  “license  repository” !"#$%&$($)*&"+*,- ."&+,"/01*% 23,4$+
  21. 21. User  Interface• retrieve,  modify  and  store• interact  with  OBR
  22. 22. High  level  overview !"#"$!"$%& !"#$%&"() ()$)*"("$+ !""#$%&
  23. 23. High  level  overview !"#$%&"()
  24. 24. Deployment• deployment  repository• management  agent !"#$%&"()*+"#%,-)%.& /0.1") 2.3405)
  25. 25. Deployment  Repository&!"-)& ()"*+, !"#$!%& 1 0/12323 7/12323 4 0/12423 7/12323 8/42323.!"-)&/0 5 0/12423 8/42323 9/1232: 6 8/42323 9/52323 1 7/12323 9/52323.!"-)&/7 4 0/12123 7/12321 9/1232:
  26. 26. Management  Agent !"#"$%!%#&"$%#& *.#"/0#, (.# "#10)-2#$34 (/"!340)6 3(*5 !"#$%&(%)$ "!*)+#,-
  27. 27. Deployment  Admin• deployment  packages• versioned  set  of  ar9facts• transac9onal  install/update• fix  packages  provide  deltas• signing  makes  them  secure• extensible  through  resource  processors• AutoConfig  defines  configura9on  admin  data
  28. 28. From  dependency  to  deployment !"#$%&%(#)*"#$+ 6*0%4)%&%(#)*"#$+ 1%(9#+:%4"&%(#)*"#$+,$-./0" 5%/"3$% 1*)"$*23-#4 + 1*)"$*23-#4 7/$8%" = 7/$8%" ,$-./0"
  29. 29. High  level  overview !"#"$!"$%& !"#$%&"() ()$)*"("$+ !""#$%&
  30. 30. High  level  overview !""#$%&
  31. 31. 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*-
  32. 32. Demo:Apache  ACE
  33. 33. ACE  in  the  Cloud
  34. 34. ACE  in  the  Cloud !"#$%&#%( #%(& 04*.(0 !"#$%&#%( /44.(* /44.(/(0& 4.(02(3&!",(0 )*#+,-,#,.& -(*+(* !"#$%&#%( !#/)#(0& *()#-,0#*1 04*.(0 /44.(/(0& #%(& 4.(0 !"#$%&#%( /44.(*
  35. 35. Node  Manager !"#$%&#%( 04*.(0 /44.(/(0& #%(& 4.(0/44.(* • Node  Manager • bootstraps  the  node • launches  targets • measures  performance  data
  36. 36. ACE  UI  Extensions/** * Creates components for named extension points in the Vaadin UI. Extension factories * are used throughout the UI to allow other bundles to contribute features. */public interface UIExtensionFactory { public static final String EXTENSION_POINT_KEY = "extension_point"; public static final Object EXTENSION_POINT_VALUE_ARTIFACT = "artifact"; public static final Object EXTENSION_POINT_VALUE_FEATURE = "feature"; public static final Object EXTENSION_POINT_VALUE_DISTRIBUTION = "distribution"; public static final Object EXTENSION_POINT_VALUE_TARGET = "target"; /** * Creates a UI component for use in the extension point. The contents of the * context are extension-point dependent. */ Component create(Map<String, Object> context);}
  37. 37. Cloud  Extension• Currently  supports  one   target  per  node• Uses  jclouds.org• Implementa9on  for   Amazon  EC-­‐2
  38. 38. Node  Monitoring
  39. 39. Dynamic  Scaling /0+)$*"&!"$1)(+ !"#$%&#%( )*+,() #%(& -**,(-()& -**,(+ *,() !"#$%&#%( )*+,() -**,(-()& *,() 3(4&!"0() .+#/010#0,& !"#$%&#%( !"#$%&#%( )*+,() 1(+/(+ #%(& -**,(-()& -**,(+ *,() !"$1)(+& -**,(+ !"#$%&#%( )*+,() -**,(-()& !#-.#()& *,() +(.#10)#+2 !"#$%&#%( )*+,() #%(& -**,(-()& -**,(+ *,() )*+,() -**,(-()& *,()
  40. 40. Demo:ACE  in  the  Cloud
  41. 41. EZdroid• Apache  Felix  on  Android• Apache  ACE  for  provisioning• OSGi  integra9on  for  phones• Luminis  was  the  first  to  have  OSGi  running  on   Android
  42. 42. Models  are  different !"#"$%& "(#)*$ "(#)*$ %& %& !** !** !** !** "(#)*$ !** %& !** ()& !"#$%&#
  43. 43. Benefits  of  each  model !"#"$%& &"+%,- !** !** "(#)*$ "(#)*$ %& %& cr as !** !** h !"#"$%& !** !** "(#)*$ %& !** .&/ .&/ .&/ ()& !"#$%&#
  44. 44. The  Demo• Apache  Felix  running  on  Android• Apache  ACE  integrated  management  agent• Centrally  deploying  applica9ons  to  a  device• Context  based  deployment• Introduc9ng  the  bazaar:  a  marketplace
  45. 45. EZdroid  Components &6/7%63!27&. -./*./ 01(2.38."%9 01(2.345 :.;7300"%(1)7& ()*%+,-./*%(. 01(2.3453-./*./ -./*".+ 01(2.3453-./*./ ()*%+,-./*%(. -./*".+ -./*".+ @6%<+/%>#)7& @>1A11/B;1&1$./ :.<=+70 !"#$%& C1A11/3?1&1$.;.&+3D<./3 :%<+/%>#)7&3-./*".+ E&+./F1(. !"#$%& !"#$%& !"#$%& !"#$%& G7;.3 ?.6%13-./*./3 C1A11/ :.;73!"#$%& #+7;1)7&3 !"#$%& !"#$%&:%<+/%>#)7&3 47&+.9+3 ?1&1$./ ?1&1$./ 453?1&1$.;.&+3 $.&+
  46. 46. Demo:EZdroid
  47. 47. Vision• Open  Source  and  Standards-­‐based• Infrastructure  Agnos9c• Dynamic  Elas9city• End-­‐to-­‐end  Monitoring• Public,  private  or  cloud  burst Cloud Software as a Service (SAAS) Enablement utilities, Platform as a Service (PAAS) services and software infrastructure Infrastructure as a Service (IAAS)
  48. 48. PlaRorm• Enabling  Services: • OSGi  based  infrastructure • Mul9-­‐tenant  aware Application Layer Services • REST  based• Applica9on  Layer  Services: • Cloud  Provisioning Enabling Services • Seman9c  Indexing  and  Search • Authen9ca9on • Open  Social • Scalable  Storage
  49. 49. Links• hp://incubator.apache.org/ace/• hp://felix.apache.org/• hp://ezdroid.com/• hp://amdatu.org/• hp://www.luminis.eu/?lang=en• hp://luminis-­‐technologies.com/

×