JOnAS 5.1 Application Server Profiles Guillaume Sauthier / François Fornaciari
Summary <ul><li>Introduction
Profiles
Using µJOnAS for profiles
What about dynamic profiles ?
Updating profiles
Conclusion </li></ul>
Introduction
Introduction <ul>Time of big & fat application servers is now over ! </ul>
Introduction / JOnAS <ul><li>OW2 JOnAS application server based on OSGi TM </li><ul><li>Highly dynamic and adaptable platf...
Bridge toward OSGi world (M2M, home automation, RFID based applications, ...) </li></ul><li>Version 5.1 Java EE 5 certifie...
Easy to use administration console
Global management tool: JASMINe </li><ul><li>Cluster design, deployment and monitoring </li></ul></ul>
Introduction / M2M [1/2] <ul><li>Machine to Machine communications
From edge computing ... </li><ul><li>Close to caption probes, RFID, ambient computing </li></ul><li>… going through premis...
Monitoring, dashboards, ... </li></ul></ul><ul><li>Application servers in the M2M World </li></ul>
Introduction / M2M [2/2] <ul><li>All of them powered by JOnAS/OSGi ! </li><ul><li>Profiled depending on resources/applicat...
Profiles
Profiles / Java EE 6 <ul><li>Profiles as a way to introduce agility inside application servers for the benefits of users <...
Old school :) </li></ul><li>Web Profile </li><ul><li>Smaller profile including only a subset of all the specifications (Se...
Targets web application's “most required” features (presentation layer, local business, simple persistence, transaction an...
Profiles / JOnAS <ul><li>What means a JOnAS profile ? </li><ul><li>An “implementation” of a Java EE profile (first step) <...
This set of resources defines the feature level of the server
Represents a set of JOnAS technical services </li></ul><li>Based on a micro JOnAS profile </li><ul><li>Aka platform, kerne...
Running an OSGi platform with a minimal set of services </li><ul><li>Providing extensibility </li></ul><li>Allowing techni...
Using µJOnAS for Profiles
µJOnAS <ul><li>Ultra light JOnAS (< 9 Mo but going lighter)
Upcoming SlideShare
Loading in …5
×

JOnAS 5.1 Application Server Profiles

7,921 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
7,921
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
45
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

JOnAS 5.1 Application Server Profiles

  1. 1. JOnAS 5.1 Application Server Profiles Guillaume Sauthier / François Fornaciari
  2. 2. Summary <ul><li>Introduction
  3. 3. Profiles
  4. 4. Using µJOnAS for profiles
  5. 5. What about dynamic profiles ?
  6. 6. Updating profiles
  7. 7. Conclusion </li></ul>
  8. 8. Introduction
  9. 9. Introduction <ul>Time of big & fat application servers is now over ! </ul>
  10. 10. Introduction / JOnAS <ul><li>OW2 JOnAS application server based on OSGi TM </li><ul><li>Highly dynamic and adaptable platform
  11. 11. Bridge toward OSGi world (M2M, home automation, RFID based applications, ...) </li></ul><li>Version 5.1 Java EE 5 certified </li><ul><li>EasyBeans, EclipseLink, Tomcat, CXF </li></ul><li>Clustering support (using CMI)
  12. 12. Easy to use administration console
  13. 13. Global management tool: JASMINe </li><ul><li>Cluster design, deployment and monitoring </li></ul></ul>
  14. 14. Introduction / M2M [1/2] <ul><li>Machine to Machine communications
  15. 15. From edge computing ... </li><ul><li>Close to caption probes, RFID, ambient computing </li></ul><li>… going through premises ... </li><ul><li>Relaying informations </li></ul><li>… to big central servers </li><ul><li>Centralized Information processing
  16. 16. Monitoring, dashboards, ... </li></ul></ul><ul><li>Application servers in the M2M World </li></ul>
  17. 17. Introduction / M2M [2/2] <ul><li>All of them powered by JOnAS/OSGi ! </li><ul><li>Profiled depending on resources/applications </li></ul><li>Normalize technologies in use and infrastructure management </li></ul>
  18. 18. Profiles
  19. 19. Profiles / Java EE 6 <ul><li>Profiles as a way to introduce agility inside application servers for the benefits of users </li><ul><li>Break the monolithic image of application servers </li></ul><li>Full Profile </li><ul><li>All Java EE related specifications (Servlet 3.0, EJB 3.1, JCA, …)
  20. 20. Old school :) </li></ul><li>Web Profile </li><ul><li>Smaller profile including only a subset of all the specifications (Servlet 3.0, EJB 3.1 lite, …)
  21. 21. Targets web application's “most required” features (presentation layer, local business, simple persistence, transaction and web services) </li></ul></ul>
  22. 22. Profiles / JOnAS <ul><li>What means a JOnAS profile ? </li><ul><li>An “implementation” of a Java EE profile (first step) </li><ul><li>Towards custom made profiles </li></ul><li>An assembly of bundles and resources composing a runnable application server (a zip)
  23. 23. This set of resources defines the feature level of the server
  24. 24. Represents a set of JOnAS technical services </li></ul><li>Based on a micro JOnAS profile </li><ul><li>Aka platform, kernel, nucleus, …
  25. 25. Running an OSGi platform with a minimal set of services </li><ul><li>Providing extensibility </li></ul><li>Allowing technical services composition (server linkage) </li></ul></ul>
  26. 26. Using µJOnAS for Profiles
  27. 27. µJOnAS <ul><li>Ultra light JOnAS (< 9 Mo but going lighter)
  28. 28. Quick to start (~3 seconds)
  29. 29. Manageable (JMX, RMI Connector)
  30. 30. Adaptable to constrained environments (set top box, PDA, …)
  31. 31. Includes an automated bundle builder </li><ul><li>Convert a jar file to a bundle automatically </li><ul><li>Just drop a jar in lib/ext/ </li></ul><li>Helps for faster OSGi adoption from Java EE users </li></ul><li>Provides an extensible deployment system </li></ul>
  32. 32. µJOnAS / In practice <ul><li>A kernel </li><ul><li>Including Apache Felix </li><ul><li>Providing the OSGi platform </li></ul><li>and Apache Felix iPOJO </li><ul><li>Providing the service component model (ease service development) </li></ul></ul><li>A minimal set of JOnAS components </li><ul><li>Management through JMX RMI entry point </li><ul><li>Start / Stop easily the underlying OSGi platform </li></ul><li>Deployment system </li><ul><li>Fundamental block for profile and management (deploy / undeploy) </li></ul></ul></ul>
  33. 33. µJOnAS / Build a profile <ul><li>At first you need the micro JOnAS
  34. 34. Then augment it using the deployment plans you want
  35. 35. The profile's assembly is completely open and flexible </li><ul><li>Additional profiles can be foreseen
  36. 36. User's can define their own profiles </li></ul><li>Examples of web profiles </li><ul><li>Micro + Tomcat + CXF + EasyBeans + EclipseLink
  37. 37. Micro + Jetty + Axis2 + EasyBeans + Hibernate
  38. 38. ... </li></ul></ul>Currently only full and micro profiles are ready for JOnAS 5.1 Web profile is on the way !
  39. 39. µJOnAS / Deployment <ul><li>Extensible Deployer System (Java EE archives, bundles, XML files, …)
  40. 40. Based on URLs (local and remote archives are deployables)
  41. 41. Extensible repository support (file, maven2, obr, ...)
  42. 42. Hot deploy </li><ul><li>Fast development cycle
  43. 43. Ease cluster deployment </li></ul><li>Exploded archive support </li></ul><ul><li>Deployment System </li></ul>Deployment Repository
  44. 44. µJOnAS / Deployment / Plan <ul><li>A description of a set of resources to be deployed on a server </li><ul><li>XML file containing a list of resources with their location </li><ul><li>Resources being Java EE archive, OSGi bundles, ...
  45. 45. A deployment plan can itself be considered as a resource </li></ul><li>Ordered
  46. 46. Atomic (as an option) </li></ul></ul><ul><li>Deployment Plan </li></ul>< deployment-plan xmlns = &quot;http://jonas.ow2.org/ns/deployment-plan/1.0&quot; xmlns:m2 = &quot;http://jonas.ow2.org/ns/deployment-plan/maven2/1.0&quot; atomic = &quot;false&quot; > < deployment id = &quot;org.ow2.easybeans.osgi:easybeans-core-for-jonas-eclipselink:jar&quot; xsi:type = &quot;m2:maven2-deploymentType&quot; start = &quot;true&quot; reference = &quot;true&quot; startlevel = &quot;1&quot; > < m2:gr oupId > org.ow2.easybeans.osgi </ m2:groupId > < m2:artifactId > easybeans-core-for-jonas-eclipselink </ m2:artifac tId > < m2:version > 1.1.0-RC2_JONAS </ m2:version > </ deployment > </ deployment-plan >
  47. 47. µJOnAS / Deployment / Plan <ul><li>Describe where the resources can be found
  48. 48. The resources can be obtained from local directories </li><ul><li>Local Maven2 repository
  49. 49. Any file system location where archives can be found </li></ul><li>Or from remote locations </li><ul><li>Maven2 repositories
  50. 50. OBR (OSGi Bundle Repository)
  51. 51. HTTP server </li></ul></ul><ul><li>Repositories </li></ul>< repositories xmlns = &quot;http://jonas.ow2.org/ns/deployment-plan/repositories/1.0&quot; > < repository id = &quot;maven2-bull&quot; > < type > maven2 </ type > < url > http://repository.bull.net/maven2 </ url > </ repository > < repository id = &quot;url-local-repository&quot; > < type > url </ type > < url > file:///home/sauthieg/repository </ url > </ repository > </ repositories >
  52. 52. What about dynamic profiles ?
  53. 53. Dynamic profiles <ul><li>This is the platform ability to change the current profile dynamically </li><ul><li>From the needs of deployed applications
  54. 54. From an administrative operation </li><ul><li>Add / start / stop JOnAS services on demand </li></ul></ul><li>No JVM reboot operation
  55. 55. Augment profile's perimeter (more featured) </li><ul><li>Only add required services </li></ul><li>Optimize memory
  56. 56. Even disk space if bundles are deleted (not ready) </li></ul>
  57. 57. Dynamic profiles / Application Reqs <ul><li>Special MANIFEST entry </li><ul><li>JOnAS-Require-Service <values> </li></ul><li>Reference to deployment plan's name
  58. 58. Profile will be update at application deployment </li><ul><li>Current profile composition compared to required services
  59. 59. Installation of extra services </li></ul><li>“Construct” a new profile adapted to the need of an application </li><ul><li>Only required services are part of the profile at execution </li></ul></ul>
  60. 60. Updating profiles
  61. 61. Updating profiles (on going work) <ul><li>Update center </li><ul><li>Help tool for service update operations
  62. 62. Visualize service's available versions and ability to switch from one to another
  63. 63. Update is performed through OSGi modularity layer </li><ul><li>Hot update
  64. 64. At next reboot
  65. 65. Plan update given the deployed applications or active sessions </li></ul></ul></ul>
  66. 66. Updating profiles (still on going work) <ul><li>Process </li></ul><ul><ul><li>Cluster topology initialisation
  67. 67. Target server selection
  68. 68. Target services to update
  69. 69. Monitor operations progress </li></ul></ul><ul><li>Features </li></ul><ul><ul><li>Rollback/Resume mechanism
  70. 70. Log operations
  71. 71. Planification </li></ul></ul>update
  72. 72. Conclusion
  73. 73. Conclusion <ul><li>Profiles are now a reality in application servers </li><ul><li>Monolithic application server EoL </li></ul><li>“A la carte” application servers </li><ul><li>Resource optimization
  74. 74. Quick, lightweight and extensible </li></ul></ul>
  75. 75. Resources http://java.sun.com/javaee/technologies/javaee6.jsp http://felix.apache.org/site/apache-felix-ipojo.html http://www.osami-commons.org http://felix.apache.org http://jonas.ow2.org

×