SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
OSGi and Mule
Travis Carlson




                 MuleCon San Francisco (March 27-28, 2007)
What is OSGi?

• Dynamic module system for Java


• A sort of Java OS


• SOA within your app!




                      MuleCon San Francisco (March 27-28, 2007)
Benefits of OSGi

   Plug & Play!


   Change parts of your app. dynamically without
   requiring restarts


   Components dynamically discover each other
   for collaboration


   Increased security: more isolation between
   modules of your app.

                   MuleCon San Francisco (March 27-28, 2007)
Industry Support

Plug-in model for Eclipse IDE (Equinox)


Embraced by Spring


IBM Websphere 6.1


JSR 291: Dynamic Component Support for Java
   – Supporters: Apache, BEA, IBM, Intel, Nokia, Nortel Networks




                           MuleCon San Francisco (March 27-28, 2007)
Benefits of OSGi for Mule

Hot deploy your Mule app just like you would a WAR file, EAR file,
  etc. in J2EE
                           Hot Deploy


A Mule config can use different versions of the same class

                       Change Management


Update and restart a part of your running Mule instance without
  having to restart all of it
                          High Availability



                           MuleCon San Francisco (March 27-28, 2007)
Benefits of OSGi for Mule


Separate classloader per bundle – not all of Mule has to depend
  on the same version of a 3rd party library

                      Dependency Mgmt.


Enabling technology for Patch Management in MuleHQ

                          Patch Mgmt.




                          MuleCon San Francisco (March 27-28, 2007)
How it works
     Mule runs within an “OSGi Framework”




                MuleCon San Francisco (March 27-28, 2007)
How it works

The Framework manages Bundles and Services:
   Bundles – static libraries, may or may not be
     startable/stoppable (via BundleActivator interface)
   Services – dynamic components managed by a
     registry similar to JNDI




                     MuleCon San Francisco (March 27-28, 2007)
Bundles
Each Mule module/transport is an OSGi “bundle”
  containing a special manifest file

The bundle manifest declares:
  – Packages provided by this bundle (static)
  – Services provided by this bundle (dynamic)
  – Required/optional packages (static dependencies)
  – Required/optional services (dynamic dependencies)


Both packages and services have a version
  associated which is useful for change
  management
                        MuleCon San Francisco (March 27-28, 2007)
Lifecycle

The framework manages bundles according to a
  well-defined lifecycle.




                  MuleCon San Francisco (March 27-28, 2007)
Lifecycle
The lifecycle state for each bundle is
  persistent in case of a system
  crash or restart       Failover

The framework keeps a timeline of
  each bundle's lifecycle events for
  sysadmins
                       Audit Trail

Bundles can be grouped into “run
  levels” (like Unix services) and
  brought up/down in a layered
  approach

                          MuleCon San Francisco (March 27-28, 2007)
Service Registry
• Mule bundles register their available services
  (connectors, transformers, components, etc.) in the
  OSGi Service Registry.

• A user's Mule app. then looks up the needed services
  from the Registry and binds to them.

• Mule services may appear/disappear and consumers
  must react accordingly.

• This decoupling is what makes hot updates possible.


                      MuleCon San Francisco (March 27-28, 2007)
Spring OSGi
Spring OSGi hides the details of registering
  and consuming OSGi services, using
  sensible defaults where possible.




Details may be given in a simple, declarative
 form within the Spring Beans config file:
   – cardinality of dependent services
   – handling of ServiceNotAvailable exceptions
   – timeouts
                  MuleCon San Francisco (March 27-28, 2007)
Choosing an OSGi Framework

The big 3 Open Source Frameworks are:

• Equinox (a subproject of Eclipse)
• Knopflerfish (Gatespace Telematics)
• Felix (Apache)


Knopflerfish seems to be the best “fit” for Mule
  in a production environment, but since
  OSGi is a standard, it should be able to run
  in any framework.

                 MuleCon San Francisco (March 27-28, 2007)
Looking Forward

• OSGi will be the foundation for future
  versions of Mule


• It will enable innovative new features for the
  Mule platform




                  MuleCon San Francisco (March 27-28, 2007)

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (7)

e-imagen 2.0
e-imagen 2.0e-imagen 2.0
e-imagen 2.0
 
Keats Solomons 0
Keats Solomons 0Keats Solomons 0
Keats Solomons 0
 
E Imagen 2.0
E Imagen 2.0E Imagen 2.0
E Imagen 2.0
 
3 Tier Animation
3 Tier Animation3 Tier Animation
3 Tier Animation
 
Search Engine Marketing (SEM)
Search Engine Marketing (SEM)Search Engine Marketing (SEM)
Search Engine Marketing (SEM)
 
MLA Documentation & Style
MLA Documentation & StyleMLA Documentation & Style
MLA Documentation & Style
 
Understanding MLA Documentation Style3
Understanding MLA Documentation Style3Understanding MLA Documentation Style3
Understanding MLA Documentation Style3
 

Mehr von Hendy Irawan

Persiapan Google Summer of Code (GSoC)
Persiapan Google Summer of Code (GSoC)Persiapan Google Summer of Code (GSoC)
Persiapan Google Summer of Code (GSoC)Hendy Irawan
 
Tutorial JSON-LD dan RabbitMQ di Java
Tutorial JSON-LD dan RabbitMQ di JavaTutorial JSON-LD dan RabbitMQ di Java
Tutorial JSON-LD dan RabbitMQ di JavaHendy Irawan
 
EBA Internship Program 2015-2016
EBA Internship Program 2015-2016EBA Internship Program 2015-2016
EBA Internship Program 2015-2016Hendy Irawan
 
Big Data innovation in Japan’s energy industry - EBA Fieldwork 2015
Big Data innovation in Japan’s energy industry - EBA Fieldwork 2015Big Data innovation in Japan’s energy industry - EBA Fieldwork 2015
Big Data innovation in Japan’s energy industry - EBA Fieldwork 2015Hendy Irawan
 
EBA (Evidence-Based Approach) Culture
EBA (Evidence-Based Approach) CultureEBA (Evidence-Based Approach) Culture
EBA (Evidence-Based Approach) CultureHendy Irawan
 
Peraturan Walikota (Perwal) PPDB Kota Bandung Tahun 2015
Peraturan Walikota (Perwal) PPDB Kota Bandung Tahun 2015Peraturan Walikota (Perwal) PPDB Kota Bandung Tahun 2015
Peraturan Walikota (Perwal) PPDB Kota Bandung Tahun 2015Hendy Irawan
 
Sosialisasi Petunjuk Teknis Penerimaan Peserta Didik Baru (PPDB) Kota Bandung...
Sosialisasi Petunjuk Teknis Penerimaan Peserta Didik Baru (PPDB) Kota Bandung...Sosialisasi Petunjuk Teknis Penerimaan Peserta Didik Baru (PPDB) Kota Bandung...
Sosialisasi Petunjuk Teknis Penerimaan Peserta Didik Baru (PPDB) Kota Bandung...Hendy Irawan
 
Twitter Author Prediction from Tweets using Bayesian Network
Twitter Author Prediction from Tweets using Bayesian NetworkTwitter Author Prediction from Tweets using Bayesian Network
Twitter Author Prediction from Tweets using Bayesian NetworkHendy Irawan
 
Biased Media - Game Theory (EL5000) Course Project
Biased Media - Game Theory (EL5000) Course ProjectBiased Media - Game Theory (EL5000) Course Project
Biased Media - Game Theory (EL5000) Course ProjectHendy Irawan
 
3D Reality Tracking in Realtime - Team Hendy-Sigit
3D Reality Tracking in Realtime - Team Hendy-Sigit3D Reality Tracking in Realtime - Team Hendy-Sigit
3D Reality Tracking in Realtime - Team Hendy-SigitHendy Irawan
 
Pemrograman Logika Induktif (Inductive Logic Programming)
Pemrograman Logika Induktif (Inductive Logic Programming)Pemrograman Logika Induktif (Inductive Logic Programming)
Pemrograman Logika Induktif (Inductive Logic Programming)Hendy Irawan
 
Inductive Logic Programming
Inductive Logic ProgrammingInductive Logic Programming
Inductive Logic ProgrammingHendy Irawan
 
AksiMata Studio Tablet
AksiMata Studio TabletAksiMata Studio Tablet
AksiMata Studio TabletHendy Irawan
 
Dasar Koperasi Kredit (Credit Union)
Dasar Koperasi Kredit (Credit Union)Dasar Koperasi Kredit (Credit Union)
Dasar Koperasi Kredit (Credit Union)Hendy Irawan
 
How to Develop a Basic Magento Extension Tutorial
How to Develop a Basic Magento Extension TutorialHow to Develop a Basic Magento Extension Tutorial
How to Develop a Basic Magento Extension TutorialHendy Irawan
 
How to Create A Magento Adminhtml Controller in Magento Extension
How to Create A Magento Adminhtml Controller in Magento ExtensionHow to Create A Magento Adminhtml Controller in Magento Extension
How to Create A Magento Adminhtml Controller in Magento ExtensionHendy Irawan
 
How to create a magento controller in magento extension
How to create a magento controller in magento extensionHow to create a magento controller in magento extension
How to create a magento controller in magento extensionHendy Irawan
 

Mehr von Hendy Irawan (18)

Persiapan Google Summer of Code (GSoC)
Persiapan Google Summer of Code (GSoC)Persiapan Google Summer of Code (GSoC)
Persiapan Google Summer of Code (GSoC)
 
Tutorial JSON-LD dan RabbitMQ di Java
Tutorial JSON-LD dan RabbitMQ di JavaTutorial JSON-LD dan RabbitMQ di Java
Tutorial JSON-LD dan RabbitMQ di Java
 
EBA Internship Program 2015-2016
EBA Internship Program 2015-2016EBA Internship Program 2015-2016
EBA Internship Program 2015-2016
 
Big Data innovation in Japan’s energy industry - EBA Fieldwork 2015
Big Data innovation in Japan’s energy industry - EBA Fieldwork 2015Big Data innovation in Japan’s energy industry - EBA Fieldwork 2015
Big Data innovation in Japan’s energy industry - EBA Fieldwork 2015
 
EBA (Evidence-Based Approach) Culture
EBA (Evidence-Based Approach) CultureEBA (Evidence-Based Approach) Culture
EBA (Evidence-Based Approach) Culture
 
Peraturan Walikota (Perwal) PPDB Kota Bandung Tahun 2015
Peraturan Walikota (Perwal) PPDB Kota Bandung Tahun 2015Peraturan Walikota (Perwal) PPDB Kota Bandung Tahun 2015
Peraturan Walikota (Perwal) PPDB Kota Bandung Tahun 2015
 
Sosialisasi Petunjuk Teknis Penerimaan Peserta Didik Baru (PPDB) Kota Bandung...
Sosialisasi Petunjuk Teknis Penerimaan Peserta Didik Baru (PPDB) Kota Bandung...Sosialisasi Petunjuk Teknis Penerimaan Peserta Didik Baru (PPDB) Kota Bandung...
Sosialisasi Petunjuk Teknis Penerimaan Peserta Didik Baru (PPDB) Kota Bandung...
 
Twitter Author Prediction from Tweets using Bayesian Network
Twitter Author Prediction from Tweets using Bayesian NetworkTwitter Author Prediction from Tweets using Bayesian Network
Twitter Author Prediction from Tweets using Bayesian Network
 
Biased Media - Game Theory (EL5000) Course Project
Biased Media - Game Theory (EL5000) Course ProjectBiased Media - Game Theory (EL5000) Course Project
Biased Media - Game Theory (EL5000) Course Project
 
3D Reality Tracking in Realtime - Team Hendy-Sigit
3D Reality Tracking in Realtime - Team Hendy-Sigit3D Reality Tracking in Realtime - Team Hendy-Sigit
3D Reality Tracking in Realtime - Team Hendy-Sigit
 
Pemrograman Logika Induktif (Inductive Logic Programming)
Pemrograman Logika Induktif (Inductive Logic Programming)Pemrograman Logika Induktif (Inductive Logic Programming)
Pemrograman Logika Induktif (Inductive Logic Programming)
 
Inductive Logic Programming
Inductive Logic ProgrammingInductive Logic Programming
Inductive Logic Programming
 
AksiMata Studio Tablet
AksiMata Studio TabletAksiMata Studio Tablet
AksiMata Studio Tablet
 
AksiMata Studio
AksiMata StudioAksiMata Studio
AksiMata Studio
 
Dasar Koperasi Kredit (Credit Union)
Dasar Koperasi Kredit (Credit Union)Dasar Koperasi Kredit (Credit Union)
Dasar Koperasi Kredit (Credit Union)
 
How to Develop a Basic Magento Extension Tutorial
How to Develop a Basic Magento Extension TutorialHow to Develop a Basic Magento Extension Tutorial
How to Develop a Basic Magento Extension Tutorial
 
How to Create A Magento Adminhtml Controller in Magento Extension
How to Create A Magento Adminhtml Controller in Magento ExtensionHow to Create A Magento Adminhtml Controller in Magento Extension
How to Create A Magento Adminhtml Controller in Magento Extension
 
How to create a magento controller in magento extension
How to create a magento controller in magento extensionHow to create a magento controller in magento extension
How to create a magento controller in magento extension
 

Kürzlich hochgeladen

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 

Kürzlich hochgeladen (20)

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 

Mule+And+Os Gi+ +Travis+Carlson

  • 1. OSGi and Mule Travis Carlson MuleCon San Francisco (March 27-28, 2007)
  • 2. What is OSGi? • Dynamic module system for Java • A sort of Java OS • SOA within your app! MuleCon San Francisco (March 27-28, 2007)
  • 3. Benefits of OSGi Plug & Play! Change parts of your app. dynamically without requiring restarts Components dynamically discover each other for collaboration Increased security: more isolation between modules of your app. MuleCon San Francisco (March 27-28, 2007)
  • 4. Industry Support Plug-in model for Eclipse IDE (Equinox) Embraced by Spring IBM Websphere 6.1 JSR 291: Dynamic Component Support for Java – Supporters: Apache, BEA, IBM, Intel, Nokia, Nortel Networks MuleCon San Francisco (March 27-28, 2007)
  • 5. Benefits of OSGi for Mule Hot deploy your Mule app just like you would a WAR file, EAR file, etc. in J2EE Hot Deploy A Mule config can use different versions of the same class Change Management Update and restart a part of your running Mule instance without having to restart all of it High Availability MuleCon San Francisco (March 27-28, 2007)
  • 6. Benefits of OSGi for Mule Separate classloader per bundle – not all of Mule has to depend on the same version of a 3rd party library Dependency Mgmt. Enabling technology for Patch Management in MuleHQ Patch Mgmt. MuleCon San Francisco (March 27-28, 2007)
  • 7. How it works Mule runs within an “OSGi Framework” MuleCon San Francisco (March 27-28, 2007)
  • 8. How it works The Framework manages Bundles and Services: Bundles – static libraries, may or may not be startable/stoppable (via BundleActivator interface) Services – dynamic components managed by a registry similar to JNDI MuleCon San Francisco (March 27-28, 2007)
  • 9. Bundles Each Mule module/transport is an OSGi “bundle” containing a special manifest file The bundle manifest declares: – Packages provided by this bundle (static) – Services provided by this bundle (dynamic) – Required/optional packages (static dependencies) – Required/optional services (dynamic dependencies) Both packages and services have a version associated which is useful for change management MuleCon San Francisco (March 27-28, 2007)
  • 10. Lifecycle The framework manages bundles according to a well-defined lifecycle. MuleCon San Francisco (March 27-28, 2007)
  • 11. Lifecycle The lifecycle state for each bundle is persistent in case of a system crash or restart Failover The framework keeps a timeline of each bundle's lifecycle events for sysadmins Audit Trail Bundles can be grouped into “run levels” (like Unix services) and brought up/down in a layered approach MuleCon San Francisco (March 27-28, 2007)
  • 12. Service Registry • Mule bundles register their available services (connectors, transformers, components, etc.) in the OSGi Service Registry. • A user's Mule app. then looks up the needed services from the Registry and binds to them. • Mule services may appear/disappear and consumers must react accordingly. • This decoupling is what makes hot updates possible. MuleCon San Francisco (March 27-28, 2007)
  • 13. Spring OSGi Spring OSGi hides the details of registering and consuming OSGi services, using sensible defaults where possible. Details may be given in a simple, declarative form within the Spring Beans config file: – cardinality of dependent services – handling of ServiceNotAvailable exceptions – timeouts MuleCon San Francisco (March 27-28, 2007)
  • 14. Choosing an OSGi Framework The big 3 Open Source Frameworks are: • Equinox (a subproject of Eclipse) • Knopflerfish (Gatespace Telematics) • Felix (Apache) Knopflerfish seems to be the best “fit” for Mule in a production environment, but since OSGi is a standard, it should be able to run in any framework. MuleCon San Francisco (March 27-28, 2007)
  • 15. Looking Forward • OSGi will be the foundation for future versions of Mule • It will enable innovative new features for the Mule platform MuleCon San Francisco (March 27-28, 2007)