GlassFish v3, OSGi Equinox Felix
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

GlassFish v3, OSGi Equinox Felix

on

  • 9,305 views

GlassFish v3: Java EE 6 OSGi and Eclipse Tooling

GlassFish v3: Java EE 6 OSGi and Eclipse Tooling

Statistics

Views

Total Views
9,305
Views on SlideShare
9,077
Embed Views
228

Actions

Likes
4
Downloads
162
Comments
0

11 Embeds 228

http://weblogs.java.net 84
http://osgilook.com 63
http://www.slideshare.net 51
http://osgilook.wordpress.com 14
http://www.nofluffjuststuff.com 4
http://therichwebexperience.com 3
http://localhost 3
http://www.java.net 2
http://www.therichwebexperience.com 2
http://cache.baidu.com 1
http://www.linkedin.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

GlassFish v3, OSGi Equinox Felix Presentation Transcript

  • 1. GlassFish V3 & OSGi Jerome Dochez and Ludovic Champenois ● GlassFish team ●Sun Microsystems, Inc. 1
  • 2. Introduction • GlassFish, an Open Source application server built on and with Open Source components : > Maven 2 – build system – module description > Felix – OSGi module management > Eclipse Link – Java Persistence Architecture implementation • V3 is the third open source release of GlassFish 2
  • 3. What's new in V3 • Modularity > platform growth > choice of technologies rapidly evolving > based on industry standard OSGi runtime • Extensible and Embeddable > not limited to traditional Java EE containers > can run in any java or native host process • Service based architecture > services are defined by contracts and can be easily substituted > lazy loading based on usage patterns 3
  • 4. Modularity in V3 • Modules are great but let's face it, they do nothing just being modules ! > A good service based architecture is what you need. • V3 innovation : > One of the few OSGi enabled application that is completely portable to any OSGi R4 compliant runtime > allow any type of container to be plugged in. > start all containers and services on demand yielding an unmatched startup time for a Java EE server. > focus on developer (keeping the already numerous deployer's features). 4
  • 5. Modularity • Kernel > startup/shutdown sequences > basic services (deployment) > configuration reading • Services > Cross containers functionalities – Security, Naming Manager... – Admin Console • Containers > handle user's applications > independent of each others 5
  • 6. OSGi R4 Runtime S Services e c Applications Life Cycle u (Bundles) r i Module t y JDK OS + Hardware 6
  • 7. HK2 Module Management Runtime Services Applications Life Cycle (Bundles) Module Bundles Repository JDK OS + Hardware 7
  • 8. HK2 and OSGi • Use OSGi as the underlying module management > capable of consuming any OSGi modules > all GlassFish V3 modules are OSGi modules • HK2 Provides runtime services on top of OSGi : Repository management > Isolation from OSGi APIs or implementation > Services definition and lookup > MBeans support > Configuration facilities > • HK2 is a separate Open Source project 8
  • 9. Module Management 4. return class loader 1. loadModule HK2 Services OSGi 2.Get 3.Install Runtime Repository Repository Repository 9
  • 10. Services • GlassFish V3 use extensively Services to identify extension points like : > Application Containers (like Web-App, Jruby, Spring) > Administrative Commands • Services are : > implementing an interface – Java SE style with a META-INF/services file – OSGi style – HK2 • Can be stateless or statefull 10
  • 11. GlassFish V3 Runtime with OSGi GlassFish V3 modules Random OSGi Bundle (OSGi + extra metadata) Service OSGi HK2 Service layer Mapper Service Layer OSGi Bundle management 11
  • 12. HK2 Service • Interfaces are declared with @Contract • Implementations are declared with @Service • Build system will generate Metadata automatically @Contract public interface Startup {...} @Service public class ConfigService implements Startup { ... } 12
  • 13. Runtime • Kernel > startup/shutdown sequences > basic services (deployment) > configuration reading • Services > Cross containers functionalities – Security, Naming Manager... – Admin Console • Containers > handle user's applications > independent of each others 13
  • 14. Runtime Security Config JRuby/Rails Web Naming Injection dispatch GlassFish Kernel browser requests Grizzly HK2 Services OSGi Runtime Bundles repositories services 14
  • 15. OnDemand and Extensible • Pay As you Go > containers are started when applications are deployed to them > startup time is under 2 seconds • Extensible > Containers (scripting containers) > Administration – Admin Commands – Configuration – Admin GUI through plugin 15
  • 16. GlassFish containers • Basic Functionalities > handles certain application types > started and stopped on demand • Optional features > Configuration services (so all containers configuration can be centrally managed) > administration commands > administration console plugins 16
  • 17. Container Pluggability Console user domain.xml Central Config Admin Console C Container o GUI Parts Runtime n f Grizzly Adapter i Admin commands g Kernel client/browser admin invocation 17
  • 18. OSGi integration • Module management > Add, remove, update installed modules • OSGi as a container ! > Treat OSGi just like the web container, bundles are deployed to it. • Converged Applications > Started investigating Java EE 6 + OSGi converged applications : – Dependencies in OSGi – Lifecycle still governed by Java EE. 18