IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
Infusion of OSGi Technology into a J2EE Application Server - Mikaël Desertot & Didier Donsez, University of Grenoble
2. Infusion of OSGi
Technology into a J2EE
Application Server
Mikael Desertot, Didier DonsezMikael Desertot, Didier Donsez
Contact :Contact : mikael.desertot@imag.frmikael.desertot@imag.fr
3. OutlineOutline
•• ContextContext
•• J2EE application server overviewJ2EE application server overview
•• Dynamism in J2EE application serversDynamism in J2EE application servers
•• The ObjectWeb JOnAS caseThe ObjectWeb JOnAS case
•• Motivation for introducing dynamism into J2EEMotivation for introducing dynamism into J2EE
•• New JOnAS OSGiNew JOnAS OSGi--based architecturebased architecture
•• ImprovementsImprovements
•• ConclusionConclusion
4. ContextContext
•• IMAG LSR Laboratory, Adele team,IMAG LSR Laboratory, Adele team, GrenobleGrenoble
–– JOnAS and Oscar contributorJOnAS and Oscar contributor
•• Bull, an international French companyBull, an international French company
–– JOnAS contributor and leaderJOnAS contributor and leader
•• Members of ObjectMembers of ObjectWebWeb
–– 1rst International consortium for1rst International consortium for
Open Source MiddlewareOpen Source Middleware
–– CoCo--foundedfounded 2002 by Bull,2002 by Bull,
FranceFrance TelecomTelecom R&DR&D andand INRIA;INRIA;
–– NonNon--profit, open, businessprofit, open, business neutralneutral
–– IndustryIndustry--grade projectsgrade projects
–– 6060 corporatecorporate membersmembers inclincl. 10. 10 researchresearch labslabs
–– 17001700 individualindividual membersmembers fromfrom 80 countries80 countries
–– 130,000130,000 visitorsvisitors//monthsmonths, 40% EU, 40% N.A, 40% EU, 40% N.A
–– 100100 projectsprojects, 470, 470 committerscommitters,,
5,7005,700 contributorscontributors
5. J2EE Application ServerJ2EE Application Server
•• A JavaA Java--based set of specifications targeting businessbased set of specifications targeting business
applicationsapplications
–– A standard for developing componentA standard for developing component--based multibased multi--tier enterprise applicationstier enterprise applications
–– Facilitate and standardize the development, deployment, and asseFacilitate and standardize the development, deployment, and assembling ofmbling of
application componentsapplication components
Presentation
Layer
Business
Logic
DB
Message
Driven Bean
Entity
Bean
Session
Bean
Servlets
JSPs
Enterprise
Information
System
Clients
6. What Is And Is Not AddressedWhat Is And Is Not Addressed
•• Two levels inside the serverTwo levels inside the server
–– Application levelApplication level
–– Technical (nonTechnical (non--functional) services levelfunctional) services level
•• Security, Transaction, Persistence, Messaging,Security, Transaction, Persistence, Messaging, ……
•• Application level is dynamicApplication level is dynamic
–– Hot deployment (install, update and uninstall)Hot deployment (install, update and uninstall)
of J2EE applications at runtimeof J2EE applications at runtime
–– JSR 88 : J2EE Application DeploymentJSR 88 : J2EE Application Deployment
•• Nothing is specified for technical servicesNothing is specified for technical services
7. Different Ways Of Introducing DynamismDifferent Ways Of Introducing Dynamism
•• The way dynamism is treated for technical servicesThe way dynamism is treated for technical services
is implementation dependentis implementation dependent
•• How is it treated in open sources implementationsHow is it treated in open sources implementations
–– JBossJBoss casecase
•• Based on JMXBased on JMX
•• Dynamic classloading with JMXDynamic classloading with JMX classloaderclassloader
–– Geronimo caseGeronimo case
•• Applications and services are components calledApplications and services are components called GBeansGBeans
•• Uses Inversion of Control (Uses Inversion of Control (IoCIoC) design pattern) design pattern
8. JOnAS Current ArchitectureJOnAS Current Architecture
JOnAS J2EE Server
Services
Security
EJB
EAR
Appli1.ear
EJB Container
JSPs
Servlets
WEB Container
EJBs
RMI Clients
JavaMail
Management
JDBC Calls
DB
HooXJCA
WebContainer
Tomcat
/Jetty
Communication
CAROL/Jonathan
Messaging
JORAM
Transaction
JOTM
Database
JORM
/ MEDOR
WebServices
AXIS
HTTP
Apache
Appli2.ear
EJB Container
JSPs
Servlets
WEB Container
EJBs
9. Current Class Loader ArchitectureCurrent Class Loader Architecture
System
Tool
Common
Tomcat
Application
EJB
WAR
Class Loader
EAR
EJB
WAR
WAR
Application level
Appli1
EAR
EJB
WAR
WAR
Appli2
Logging
v 1.0.2
Logging
v 1.0.4
10. Motivation : JOnAS OnMotivation : JOnAS On--DemandDemand
•• Dynamic server configuration and reconfigurationDynamic server configuration and reconfiguration
–– Start only needed servicesStart only needed services
–– Start, stop, reconfigure and restart services duringStart, stop, reconfigure and restart services during
runtimeruntime
•• Incremental and onIncremental and on--demand services deliverydemand services delivery
(service installation and start up)(service installation and start up)
–– Deploy new services during runtimeDeploy new services during runtime
–– Activate themActivate them
•• Ease services deployment and updateEase services deployment and update
11. How ToHow To
•• Idea :Idea :
–– Use OSGi, a standard dynamic platformUse OSGi, a standard dynamic platform
•• Package servicesPackage services
•• Deploy servicesDeploy services
•• Manage service lifecycleManage service lifecycle
•• Bind servicesBind services
–– Main interests for OSGiMain interests for OSGi
•• Dynamic Service Oriented Architecture (DSOA)Dynamic Service Oriented Architecture (DSOA)
•• Dynamic class loadingDynamic class loading
12. Towards A New JOnAS ArchitectureTowards A New JOnAS Architecture
JOnAS
+ Technical
J2EE
Services
•• Current stateCurrent state
Dynamic
Deployment
JSR88
JSR88
Applications
Application 2
Application 1
13. Dynamic
Deployment
Towards A New JOnAS Architecture V1Towards A New JOnAS Architecture V1
OSGi framework / Oscar
Applications
Application 2
+Metadata
Flat class loaderFlat class loader
architecturearchitecture
MetadataMetadata generationgeneration
atat deploymentdeployment
JSR88 JSR88
Application 1
+Metadata
JOnAS Technical J2EE Services
14. Towards A New JOnAS Architecture V2Towards A New JOnAS Architecture V2
…
Appli.
Service
Database
Transact.
etc
Web
Service
Tomcat
EJB
Service
Mail.
OSGi framework / Oscar
JOnAS Core
JOnAS On-Demand
JSR88
Applications
Application 2
+ Metadata
Application 1
+ Metadata
15. ExperimentationExperimentation
•• Architecture implemented with JOnAS and OscarArchitecture implemented with JOnAS and Oscar
•• Most of the services already packaged in bundlesMost of the services already packaged in bundles
•• Two visionsTwo visions
–– Deploying JOnAS on an independent OSGi gateway,Deploying JOnAS on an independent OSGi gateway,
collocated with other servicescollocated with other services
–– Embedding OSGi in the JOnAS coreEmbedding OSGi in the JOnAS core
•• Works for a single instance of JOnAS OnWorks for a single instance of JOnAS On--DemandDemand
•• Cluster of multiple instances in progressCluster of multiple instances in progress
–– Open issues : RMI,Open issues : RMI, ……
16. Particular Improvements Brought By OSGiParticular Improvements Brought By OSGi
•• A dynamic service oriented architecture for JOnASA dynamic service oriented architecture for JOnAS
•• Class loading issuesClass loading issues
–– Class sharing policy allows an application to use a differentClass sharing policy allows an application to use a different
class version than the one provided in JOnASclass version than the one provided in JOnAS
•• DeploymentDeployment
–– A way of packaging the server and its servicesA way of packaging the server and its services
–– Downloading of services delegated to the OSGi frameworkDownloading of services delegated to the OSGi framework
–– OSGi deployment tools : OBR,OSGi deployment tools : OBR, ““Service on DemandService on Demand””
•• Specific needs covered by OSGi R4Specific needs covered by OSGi R4
–– Multiple class version loaded at the same timeMultiple class version loaded at the same time
–– Package constraintsPackage constraints
–– ……
17. ConclusionConclusion
•• OSGi can be very interesting on the server side :OSGi can be very interesting on the server side :
–– For server configuration/reconfigurationFor server configuration/reconfiguration
–– For loading service modules and managing themFor loading service modules and managing them
(lifecycle)(lifecycle)
•• It can also :It can also :
–– Ease contributions to an open source serverEase contributions to an open source server
•• Services can be developed apart from the server coreServices can be developed apart from the server core
–– Provides online incremental server updateProvides online incremental server update