<Insert Picture Here>




OSGi & Java EE in GlassFish
Arun Gupta, Java EE & GlassFish Guy
blogs.sun.com/arungupta, @arungu...
The following/preceding is intended to outline our
general product direction. It is intended for
information purposes only...
Are you tweeting ?



#glassfish
#techdays


                     3
The OSGi Alliance is a worldwide
consortium of technology
innovators that advances a proven
and mature process to assure
i...
OSGi Alliance provides ...

• Specifications
• Reference Implementation
• Test Suites
• Certifications




               ...
What is OSGi ?

• Specification delivered by OSGi Alliance
  • Originally for embedded devices and networks
• Architecture...
What is OSGi ?

• OSGi “container” breaks application into “modules”
 or “bundles”
  • Felix, Equinox, Knopflerfish
• Depe...
GlassFish v3 & OSGi
• No OSGi APIs are used in GlassFish
  • HK2 provides abstraction layer
• All GlassFish modules are OS...
Benefits of OSGi for GlassFish
• Demands and enforces stronger modularity
• Enables custom tailored App server
• Lazy load...
GlassFish: The next generation platform

   REST                                OpenMQ          WebSpace Server
          ...
GlassFish v3 Runtime with OSGi


  GlassFish V3 modules
   GlassFish V3 modules           Random OSGi Bundle
             ...
Create an OSGi Bundle – Using Maven

 • Create a Maven project
 • Implement “BundleActivtor”
 • Update “pom.xml”
    • Cha...
OSGi Bundle Management in GlassFish
• asadmin deploy –type osgi
• “cp” / “rm” glassfish/modules/autostart directory
• teln...
14
Hybrid Applications

“A hybrid application is an OSGi
bundle as well as a Java EE
archive and hence has both an
OSGi bundl...
Why OSGi in Enterprise Apps ?

• Improved modularity
   • Reusable bundles
   • Dependencies are more visible
   • Better ...
Why Java EE in Enterprise Apps ?

• Better API (JPA, JTA, JAXB, JNDI)
• Better component model (Servlet, EJB, JAX-RS)
• Be...
Why Hybrid Apps ?




       Best of both worlds!!!
Why do you want to learn new APIs ?




                              ...
Role of GlassFish

• Provides a runtime for Hybrid Applications
• Implements Java EE related OSGi services and
  standards...
Enterprise OSGi API in GlassFish

• OSGi/HTTP Service
• OSGi/Web Application (rfc #66)
• OSGi/EJB
• OSGi/JDBC (rfc #122)
•...
OSGi/Web Application (rfc #66)

• Web Application Bundle (WAB)
  • WAR + OSGi + Web-ContextPath Header
  • Can use all ent...
Hybrid Applications - Demo

 • OSGi services in Java EE
      @Resource(mappedName=”osgiName”)
      SomeOSGiService osgiS...
Extending GlassFish v3
    Using Spring dm Container


                                           • Simple Spring bean
   ...
Create an OSGi bundle - NetBeans




                                   24
Looking Forward

• GlassFish v3
 •   Support OSGi-Enabled Java EE applications
 •   Implement Java EE-related OSGi service...
References

• glassfish.org
• blogs.sun.com/theaquarium
• twitter.com/glassfish
• glassfish@sun.com




                  ...
<Insert Picture Here>




OSGi & Java EE in GlassFish
Arun Gupta, Java EE & GlassFish Guy
blogs.sun.com/arungupta, @arungu...
Upcoming SlideShare
Loading in...5
×

OSGi and Java EE in GlassFish - Tech Days 2010 India

3,133

Published on

OSGi and Java EE in GlassFish - Tech Days 2010 India

Published in: Technology
1 Comment
1 Like
Statistics
Notes

  • Great Work ... I m Begineer and fresher need guidence hoe to apply , where ?

    <b>[Comment posted from</b> http://blogs.sun.com/arungupta/entry/day_1_tech_days_20101]
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
3,133
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
117
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

OSGi and Java EE in GlassFish - Tech Days 2010 India

  1. 1. <Insert Picture Here> OSGi & Java EE in GlassFish Arun Gupta, Java EE & GlassFish Guy blogs.sun.com/arungupta, @arungupta
  2. 2. The following/preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 2
  3. 3. Are you tweeting ? #glassfish #techdays 3
  4. 4. The OSGi Alliance is a worldwide consortium of technology innovators that advances a proven and mature process to assure interoperability of applications and services based on its component integration platform. 4
  5. 5. OSGi Alliance provides ... • Specifications • Reference Implementation • Test Suites • Certifications 5
  6. 6. What is OSGi ? • Specification delivered by OSGi Alliance • Originally for embedded devices and networks • Architecture for modular application development in Java • Reduces the cost of building, maintaining, and deploying applications 6
  7. 7. What is OSGi ? • OSGi “container” breaks application into “modules” or “bundles” • Felix, Equinox, Knopflerfish • Dependencies between each bundle are managed • Can install, uninstall, start, and stop each bundle dynamically without restarting container • Multiple versions of a bundle are supported 7
  8. 8. GlassFish v3 & OSGi • No OSGi APIs are used in GlassFish • HK2 provides abstraction layer • All GlassFish modules are OSGi bundles • Felix is default, also runs on Knopflerfish & Equinox • Can run in an existing shell • 216 modules in v3 http://blogs.sun.com/arungupta/entry/totd_103_glassfish_v3_with 8
  9. 9. Benefits of OSGi for GlassFish • Demands and enforces stronger modularity • Enables custom tailored App server • Lazy loading based on usage patterns • Open for all JVM based technologies • Native deployment of JRuby-on-Rails application • Successfully maintained quick startup • Available to GlassFish developers and users 9
  10. 10. GlassFish: The next generation platform REST OpenMQ WebSpace Server Scripting OpenESB OpenSSO Web Services JMS Portal Web Connection Java Web Services JSF EJB Container Application Container Container Pooling (JCA) Persistence Interop Management Console Update Center Management CLI Naming Grizzly Framework Monitoring/ Injection Service Config Deploy Manager Security Monitor Configuration Cluster Serviceability/ Logging GlassFish V3 Core Transaction Security (Module Subsystem) Service Service Deployment Clustering OSGi Java SE 10
  11. 11. GlassFish v3 Runtime with OSGi GlassFish V3 modules GlassFish V3 modules Random OSGi Bundle Random OSGi Bundle (OSGi + extra metadata) (OSGi + extra metadata) Service OSGi OSGi HK2 Service layer HK2 Service layer Mapper Service Layer Service Layer OSGi Bundle management OSGi Bundle management 11
  12. 12. Create an OSGi Bundle – Using Maven • Create a Maven project • Implement “BundleActivtor” • Update “pom.xml” • Change packaging to “bundle” • Add dependencies on OSGI APIs • Use “maven-bundle-plugin” to package • Build the bundle http://blogs.sun.com/arungupta/entry/totd_36_deploy_osgi_bundles 12
  13. 13. OSGi Bundle Management in GlassFish • asadmin deploy –type osgi • “cp” / “rm” glassfish/modules/autostart directory • telnet localhost 6666 • Apache Felix Web Console • REST Console bundle • Perl-based shell (Osgish) http://blogs.sun.com/arungupta/entry/totd_118_managing_osgi_bundles 13
  14. 14. 14
  15. 15. Hybrid Applications “A hybrid application is an OSGi bundle as well as a Java EE archive and hence has both an OSGi bundle context and Java EE c ontext at runtime and can leverage capabilities of both the platforms.” 15
  16. 16. Why OSGi in Enterprise Apps ? • Improved modularity • Reusable bundles • Dependencies are more visible • Better isolation / Cleaner class loading model • Better version control • Faster deployment cycle • Better tools for deployment • Observable bundle life cycle • Service Tracking • Criteria-based service selection 16
  17. 17. Why Java EE in Enterprise Apps ? • Better API (JPA, JTA, JAXB, JNDI) • Better component model (Servlet, EJB, JAX-RS) • Better frameworks (JSF, CDI) • Ease-of-use (Annotations, Convention-over-configuration) • Platform provided integrated infrastructure services • Transaction, Security, Persistence, Remoting, ... • Many more reasons ... 17
  18. 18. Why Hybrid Apps ? Best of both worlds!!! Why do you want to learn new APIs ? 18
  19. 19. Role of GlassFish • Provides a runtime for Hybrid Applications • Implements Java EE related OSGi services and standards • Don't have to assemble the bits • OSGi is no longer under the cover • Raises visibility from GlassFish developers to users 19
  20. 20. Enterprise OSGi API in GlassFish • OSGi/HTTP Service • OSGi/Web Application (rfc #66) • OSGi/EJB • OSGi/JDBC (rfc #122) • OSGi/JPA • OSGi/JTA (rfc #98) Work in Progress (in trunk), some of it already in v3. 20
  21. 21. OSGi/Web Application (rfc #66) • Web Application Bundle (WAB) • WAR + OSGi + Web-ContextPath Header • Can use all enterprise APIs include JPA with lazy loading • Sample manifest: Manifest-Version: 1.0 Import-Package: javax.servlet.http; javax.persistence Bundle-ClassPath: WEB-INF/classes/,WEB-INF/lib/entities.jar Bundle-Version: 1.0 Bundle-ManifestVersion: 2 Web-ContextPath: /hello Bundle-SymbolicName: test.hellowab • Wrapped WAR Support • webbundle: URL scheme 21
  22. 22. Hybrid Applications - Demo • OSGi services in Java EE @Resource(mappedName=”osgiName”) SomeOSGiService osgiService; • JNDI Lookup • Portable, no OSGi dependencies in application • Exported APIs visible to Java EE apps http://blogs.sun.com/arungupta/entry/totd_124_osgi_declarative_services 22
  23. 23. Extending GlassFish v3 Using Spring dm Container • Simple Spring bean implementing the service • Invoke the service from a servlet using standard @Resource injection • Single runtime for both Spring and full Java EE http://blogs.sun.com/dochez/entry/glassfish_v3_extensions_part_4 23
  24. 24. Create an OSGi bundle - NetBeans 24
  25. 25. Looking Forward • GlassFish v3 • Support OSGi-Enabled Java EE applications • Implement Java EE-related OSGi services • Expose Java EE services as OSGi services • Improve underlying OSGi framework administration 25
  26. 26. References • glassfish.org • blogs.sun.com/theaquarium • twitter.com/glassfish • glassfish@sun.com 26
  27. 27. <Insert Picture Here> OSGi & Java EE in GlassFish Arun Gupta, Java EE & GlassFish Guy blogs.sun.com/arungupta, @arungupta
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×