SlideShare a Scribd company logo
Liferay Module Framework
Why modularity matters

Miguel Ángel Pastor Olivar
A little bit about me
Working at the "infrastructure" side

Cloud computing and distributed systems

Interests in concurrent and distributed programming.
Functional programming advocate!

Scala, OSGI and AspectJ enthusiast. Erlang aficionado

Email: miguel.pastor at liferay dot com

Twitter handler: miguelinlas3
The need for modularity
What does modularity mean?
Systems composed of relatively small self-contained units

Clear interfaces defined between them
The need for modularity
Large systems are extremely complex to develop and
maintain

Highly coupled systems

Cloud computing
   Multiple deployments are co-located

Footprint and performance

Distributed development
Complexity vs cost
Cost


                        unmanageable




                                       Small focused
                                       pieces




                                          Complexity
What are you looking for?
Modules

Deployment mechanism

Dependency management

Dynamism

Encapsulation

Versioning
Liferay & Modularity
“Inside” benefits
Decoupled and highly focused components

Easier development process

Simplify current implementations/patterns

Easier to implement new features

Highly focused teams

Easier distributed development
“Outside” benefits
More frequent delivery of new features or improvements

Less bugs due to higher degree of focus

Quicker and simpler delivery of patches for bugs and security
issues

Robustness

Footprint
Becoming real!
OSGI (Open Service Gateway Initiatives) as foundation


Currently in development. Available in 6.2


Let's see some insights!
A quick intro to OSGI
OSGI features/benefits
 Reduce complexity
   Developing bundles

 Dynamism
    Real world is dynamic; deal with it!

 Deployment mechanism
   Determine how components are installed and managed

 Dynamic updates
    Do not bring down the whole system
OSGI features/benefits
 Versioning
    Multiple versions of the same component

 Small and fast
   About 300K jar file

 Non intrusive. Runs everywhere.

 Widely used
    Eclipse, Glassfish, JBoss, Virgo RT, . . .
OSGI architecture

                                  Services

                                               S
                                               e
                                Lifecycle      c
         Bundles                               u
                                               r
                                               i
                                  Modules
                                               t
                                               y


                    Executing environment



                               Java Virtual Machine



                                  Operating system
OSGI architecture
 Bundles
    OSGI components

 Services
    Connecting in a dynamic way. POJOs.

 Life-cycle
     How to install, start, stop, update and uninstall bundles
OSGI architecture
 Modules
   About encapsulating and importing/exporting code

 Security
    All aspects related to security

 Execution environment
    What methods and classes are available
OSGI lifecycle
                                        REFRESH,
                                        UPDATE

            INSTALL


                         INSTALLED
                                                           STARTING
               RESOLVE
                                                   START
                                     REFRESH,
                                     UPDATE


UNINSTALL
                         RESOLVED                           ACTIVE


                                                                 STOP
                              UNINSTALL




                                                           STOPPING

                      UNINSTALLED
Liferay Module Framework
         internals
Main points
 Embedded OSGI framework
   Ideally should be “agnostic”

 HTTP Service implementation

 Backwards compatible

 Enabled by a configuration property
100000 feet architecture
   Webapp Server
                                                   Plugin A            Plugin B

           Traditional deployment mechanism




   Liferay Portal
                        OSGI container
                                                              OSGI based plugins


                          Plugin X      Plugin Y
How it works?
                                      AutoDeploy
                                       listeners

       Deployment
         Folder
                                                                  Web Bundle
                                                                   Processor
 Monitored by
   the OSGI
  framework
                                     Blocked
                                                                               Valid WAB
                                                                                 bundle


                    Web Bundle
                     Processor                     Container
                                                   notifies the
                                                    deployer
                                                                   OSGI
                                                                  Container




                                 Web Bundle
                                  Deployer
Leveraging all the power!
 The module admin portlet
Leveraging all the power!
    New kind of plugins
Q&A

More Related Content

What's hot

What's hot (18)

Mavenizing your Liferay project
Mavenizing your Liferay projectMavenizing your Liferay project
Mavenizing your Liferay project
 
Benefits of OSGi in Practise
Benefits of OSGi in PractiseBenefits of OSGi in Practise
Benefits of OSGi in Practise
 
Java Modularity with OSGi
Java Modularity with OSGiJava Modularity with OSGi
Java Modularity with OSGi
 
Java modularization
Java modularizationJava modularization
Java modularization
 
Developing modular Java applications
Developing modular Java applicationsDeveloping modular Java applications
Developing modular Java applications
 
Modular Java
Modular JavaModular Java
Modular Java
 
Introduction to Portlets Using Liferay Portal
Introduction to Portlets Using Liferay PortalIntroduction to Portlets Using Liferay Portal
Introduction to Portlets Using Liferay Portal
 
Step by step guide to create theme for liferay dxp 7
Step by step guide to create theme for liferay dxp 7Step by step guide to create theme for liferay dxp 7
Step by step guide to create theme for liferay dxp 7
 
OSGi & Java EE in GlassFish - Best of both worlds
OSGi & Java EE in GlassFish - Best of both worldsOSGi & Java EE in GlassFish - Best of both worlds
OSGi & Java EE in GlassFish - Best of both worlds
 
Osgi platform
Osgi platformOsgi platform
Osgi platform
 
Liferay
LiferayLiferay
Liferay
 
Part 8 - Enforcing modularity of JasForge using OSGI and Futures Evolutions
Part 8 - Enforcing modularity of JasForge using OSGI and Futures EvolutionsPart 8 - Enforcing modularity of JasForge using OSGI and Futures Evolutions
Part 8 - Enforcing modularity of JasForge using OSGI and Futures Evolutions
 
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloakDevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
 
MicroProfile for MicroServices
MicroProfile for MicroServicesMicroProfile for MicroServices
MicroProfile for MicroServices
 
JasForge : the collaborative agile project
JasForge : the collaborative agile projectJasForge : the collaborative agile project
JasForge : the collaborative agile project
 
Jakarta EE and MicroProfile - EclipseCon 2020
Jakarta EE and MicroProfile - EclipseCon 2020Jakarta EE and MicroProfile - EclipseCon 2020
Jakarta EE and MicroProfile - EclipseCon 2020
 
MuleSoft CloudHub API Versioning
MuleSoft CloudHub API VersioningMuleSoft CloudHub API Versioning
MuleSoft CloudHub API Versioning
 
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
 

Viewers also liked

Implementing AutoComplete for Freemarker and Velocity languages in ACE Editor
Implementing AutoComplete for Freemarker and Velocity languages in ACE EditorImplementing AutoComplete for Freemarker and Velocity languages in ACE Editor
Implementing AutoComplete for Freemarker and Velocity languages in ACE Editor
peychevi
 

Viewers also liked (15)

Dimensions CM 14.2 Webcast: Running the Gauntlet
Dimensions CM 14.2 Webcast: Running the GauntletDimensions CM 14.2 Webcast: Running the Gauntlet
Dimensions CM 14.2 Webcast: Running the Gauntlet
 
Social Networking Presentation For Chamber Of Commerce
Social Networking Presentation For Chamber Of CommerceSocial Networking Presentation For Chamber Of Commerce
Social Networking Presentation For Chamber Of Commerce
 
Liferay 6.2 theme premium
Liferay 6.2 theme premiumLiferay 6.2 theme premium
Liferay 6.2 theme premium
 
Building an Enterprise Content Management solution on top of liferay
Building an Enterprise Content Management solution on top of liferayBuilding an Enterprise Content Management solution on top of liferay
Building an Enterprise Content Management solution on top of liferay
 
6.2 presentation
6.2 presentation6.2 presentation
6.2 presentation
 
CTO School Networking Presentation
CTO School Networking PresentationCTO School Networking Presentation
CTO School Networking Presentation
 
Introducing the new calendar app in liferay 6.2
Introducing the new calendar app in liferay 6.2Introducing the new calendar app in liferay 6.2
Introducing the new calendar app in liferay 6.2
 
Implementing AutoComplete for Freemarker and Velocity languages in ACE Editor
Implementing AutoComplete for Freemarker and Velocity languages in ACE EditorImplementing AutoComplete for Freemarker and Velocity languages in ACE Editor
Implementing AutoComplete for Freemarker and Velocity languages in ACE Editor
 
Social Media Marketing
Social Media MarketingSocial Media Marketing
Social Media Marketing
 
Liferay portals in real projects
Liferay portals  in real projectsLiferay portals  in real projects
Liferay portals in real projects
 
Liferay architecture By Navin Agarwal
Liferay architecture By Navin AgarwalLiferay architecture By Navin Agarwal
Liferay architecture By Navin Agarwal
 
Overview of Liferay 7 Technology
Overview of Liferay 7 TechnologyOverview of Liferay 7 Technology
Overview of Liferay 7 Technology
 
Social networking presentation
Social networking presentationSocial networking presentation
Social networking presentation
 
iProfs-Liferay Roadshow-03-10-13 - LPSF Highlights
iProfs-Liferay Roadshow-03-10-13 - LPSF HighlightsiProfs-Liferay Roadshow-03-10-13 - LPSF Highlights
iProfs-Liferay Roadshow-03-10-13 - LPSF Highlights
 
Offre Search
Offre SearchOffre Search
Offre Search
 

Similar to Liferay Module Framework

OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
IndicThreads
 
Enabling modularization through OSGi and SpringDM
Enabling modularization through OSGi and SpringDMEnabling modularization through OSGi and SpringDM
Enabling modularization through OSGi and SpringDM
mukulobject
 
Osgi Webinar
Osgi WebinarOsgi Webinar
Osgi Webinar
WSO2
 
OSGi User Forum US DC Metro
OSGi User Forum US DC MetroOSGi User Forum US DC Metro
OSGi User Forum US DC Metro
pjhInovex
 
OSGi user forum dc metro v1
OSGi user forum dc metro v1OSGi user forum dc metro v1
OSGi user forum dc metro v1
pjhInovex
 
Operating the Hyperscale Cloud
Operating the Hyperscale CloudOperating the Hyperscale Cloud
Operating the Hyperscale Cloud
Open Stack
 

Similar to Liferay Module Framework (20)

OSGi tech session
OSGi tech sessionOSGi tech session
OSGi tech session
 
OSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFishOSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFish
 
OSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFishOSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFish
 
OSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaOSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 India
 
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
 
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
 
Enabling modularization through OSGi and SpringDM
Enabling modularization through OSGi and SpringDMEnabling modularization through OSGi and SpringDM
Enabling modularization through OSGi and SpringDM
 
What is os gi and what does osgi
What is os gi and what does osgiWhat is os gi and what does osgi
What is os gi and what does osgi
 
Introduction to OSGi
Introduction to OSGiIntroduction to OSGi
Introduction to OSGi
 
Introduction To OSGi
Introduction To OSGiIntroduction To OSGi
Introduction To OSGi
 
TDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE ApplicationTDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE Application
 
Osgi Webinar
Osgi WebinarOsgi Webinar
Osgi Webinar
 
OSGi User Forum US DC Metro
OSGi User Forum US DC MetroOSGi User Forum US DC Metro
OSGi User Forum US DC Metro
 
OSGi user forum dc metro v1
OSGi user forum dc metro v1OSGi user forum dc metro v1
OSGi user forum dc metro v1
 
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
 
Process Matters (Cloud2Days / Java2Days conference))
Process Matters (Cloud2Days / Java2Days conference))Process Matters (Cloud2Days / Java2Days conference))
Process Matters (Cloud2Days / Java2Days conference))
 
Operating the Hyperscale Cloud
Operating the Hyperscale CloudOperating the Hyperscale Cloud
Operating the Hyperscale Cloud
 
OSGi
OSGiOSGi
OSGi
 
p2, modular provisioning for OSGi
p2, modular provisioning for OSGip2, modular provisioning for OSGi
p2, modular provisioning for OSGi
 
GlassFish OSGi Server
GlassFish OSGi ServerGlassFish OSGi Server
GlassFish OSGi Server
 

More from Miguel Pastor

Microservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservicesMicroservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservices
Miguel Pastor
 
Reactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala MeetupReactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala Meetup
Miguel Pastor
 
Liferay Devcon 2013: Our way towards modularity
Liferay Devcon 2013: Our way towards modularityLiferay Devcon 2013: Our way towards modularity
Liferay Devcon 2013: Our way towards modularity
Miguel Pastor
 

More from Miguel Pastor (18)

Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014
 
Microservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservicesMicroservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservices
 
Liferay and Big Data
Liferay and Big DataLiferay and Big Data
Liferay and Big Data
 
Reactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala MeetupReactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala Meetup
 
Reactive applications using Akka
Reactive applications using AkkaReactive applications using Akka
Reactive applications using Akka
 
Liferay Devcon 2013: Our way towards modularity
Liferay Devcon 2013: Our way towards modularityLiferay Devcon 2013: Our way towards modularity
Liferay Devcon 2013: Our way towards modularity
 
Liferay and Cloud
Liferay and CloudLiferay and Cloud
Liferay and Cloud
 
Jvm fundamentals
Jvm fundamentalsJvm fundamentals
Jvm fundamentals
 
Scala Overview
Scala OverviewScala Overview
Scala Overview
 
Hadoop, Cloud y Spring
Hadoop, Cloud y Spring Hadoop, Cloud y Spring
Hadoop, Cloud y Spring
 
Scala: un vistazo general
Scala: un vistazo generalScala: un vistazo general
Scala: un vistazo general
 
Platform as a Service overview
Platform as a Service overviewPlatform as a Service overview
Platform as a Service overview
 
HadoopDB
HadoopDBHadoopDB
HadoopDB
 
Aspect Oriented Programming introduction
Aspect Oriented Programming introductionAspect Oriented Programming introduction
Aspect Oriented Programming introduction
 
Software measure-slides
Software measure-slidesSoftware measure-slides
Software measure-slides
 
Arquitecturas MMOG
Arquitecturas MMOGArquitecturas MMOG
Arquitecturas MMOG
 
Software Failures
Software FailuresSoftware Failures
Software Failures
 
Groovy and Grails intro
Groovy and Grails introGroovy and Grails intro
Groovy and Grails intro
 

Recently uploaded

Recently uploaded (20)

ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 

Liferay Module Framework

  • 1. Liferay Module Framework Why modularity matters Miguel Ángel Pastor Olivar
  • 2. A little bit about me Working at the "infrastructure" side Cloud computing and distributed systems Interests in concurrent and distributed programming. Functional programming advocate! Scala, OSGI and AspectJ enthusiast. Erlang aficionado Email: miguel.pastor at liferay dot com Twitter handler: miguelinlas3
  • 3. The need for modularity
  • 4. What does modularity mean? Systems composed of relatively small self-contained units Clear interfaces defined between them
  • 5. The need for modularity Large systems are extremely complex to develop and maintain Highly coupled systems Cloud computing Multiple deployments are co-located Footprint and performance Distributed development
  • 6. Complexity vs cost Cost unmanageable Small focused pieces Complexity
  • 7. What are you looking for? Modules Deployment mechanism Dependency management Dynamism Encapsulation Versioning
  • 9. “Inside” benefits Decoupled and highly focused components Easier development process Simplify current implementations/patterns Easier to implement new features Highly focused teams Easier distributed development
  • 10. “Outside” benefits More frequent delivery of new features or improvements Less bugs due to higher degree of focus Quicker and simpler delivery of patches for bugs and security issues Robustness Footprint
  • 11. Becoming real! OSGI (Open Service Gateway Initiatives) as foundation Currently in development. Available in 6.2 Let's see some insights!
  • 12. A quick intro to OSGI
  • 13. OSGI features/benefits Reduce complexity Developing bundles Dynamism Real world is dynamic; deal with it! Deployment mechanism Determine how components are installed and managed Dynamic updates Do not bring down the whole system
  • 14. OSGI features/benefits Versioning Multiple versions of the same component Small and fast About 300K jar file Non intrusive. Runs everywhere. Widely used Eclipse, Glassfish, JBoss, Virgo RT, . . .
  • 15. OSGI architecture Services S e Lifecycle c Bundles u r i Modules t y Executing environment Java Virtual Machine Operating system
  • 16. OSGI architecture Bundles OSGI components Services Connecting in a dynamic way. POJOs. Life-cycle How to install, start, stop, update and uninstall bundles
  • 17. OSGI architecture Modules About encapsulating and importing/exporting code Security All aspects related to security Execution environment What methods and classes are available
  • 18. OSGI lifecycle REFRESH, UPDATE INSTALL INSTALLED STARTING RESOLVE START REFRESH, UPDATE UNINSTALL RESOLVED ACTIVE STOP UNINSTALL STOPPING UNINSTALLED
  • 20. Main points Embedded OSGI framework Ideally should be “agnostic” HTTP Service implementation Backwards compatible Enabled by a configuration property
  • 21. 100000 feet architecture Webapp Server Plugin A Plugin B Traditional deployment mechanism Liferay Portal OSGI container OSGI based plugins Plugin X Plugin Y
  • 22. How it works? AutoDeploy listeners Deployment Folder Web Bundle Processor Monitored by the OSGI framework Blocked Valid WAB bundle Web Bundle Processor Container notifies the deployer OSGI Container Web Bundle Deployer
  • 23. Leveraging all the power! The module admin portlet
  • 24. Leveraging all the power! New kind of plugins
  • 25. Q&A