Suche senden
Hochladen
Hints and Tips for Modularizing Existing Enterprise Applications with OSGi - Graham Chaters
•
0 gefällt mir
•
812 views
M
mfrancis
Folgen
OSGi Community Event 2012
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 31
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...
Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...
Graham Charters
Migration of Existing Web Applications to OSGi at Eclipse Summit Europe 2010
Migration of Existing Web Applications to OSGi at Eclipse Summit Europe 2010
Diyan Yordanov
Spring framework
Spring framework
Shivi Kashyap
Designing JEE Application Structure
Designing JEE Application Structure
odedns
Mavenizing your Liferay project
Mavenizing your Liferay project
mimacom
JEE Course - JEE Overview
JEE Course - JEE Overview
odedns
Taking Software Lifecycle Integration (SLI) to the Next Layer - Welcome to Co...
Taking Software Lifecycle Integration (SLI) to the Next Layer - Welcome to Co...
Johannes Nicolai
Moved to https://slidr.io/azzazzel/leveraging-osgi-to-create-extensible-plugi...
Moved to https://slidr.io/azzazzel/leveraging-osgi-to-create-extensible-plugi...
Milen Dyankov
Empfohlen
Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...
Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...
Graham Charters
Migration of Existing Web Applications to OSGi at Eclipse Summit Europe 2010
Migration of Existing Web Applications to OSGi at Eclipse Summit Europe 2010
Diyan Yordanov
Spring framework
Spring framework
Shivi Kashyap
Designing JEE Application Structure
Designing JEE Application Structure
odedns
Mavenizing your Liferay project
Mavenizing your Liferay project
mimacom
JEE Course - JEE Overview
JEE Course - JEE Overview
odedns
Taking Software Lifecycle Integration (SLI) to the Next Layer - Welcome to Co...
Taking Software Lifecycle Integration (SLI) to the Next Layer - Welcome to Co...
Johannes Nicolai
Moved to https://slidr.io/azzazzel/leveraging-osgi-to-create-extensible-plugi...
Moved to https://slidr.io/azzazzel/leveraging-osgi-to-create-extensible-plugi...
Milen Dyankov
Java Spring
Java Spring
AathikaJava
Java spring ppt
Java spring ppt
natashasweety7
The Power of Enterprise Java Frameworks
The Power of Enterprise Java Frameworks
Clarence Ho
Spring core module
Spring core module
Raj Tomar
Code One 2018 maven
Code One 2018 maven
Massimiliano Dessì
Spring notes
Spring notes
Rajeev Uppala
JavaOne 2012 CON3978 Scripting Languages on the JVM
JavaOne 2012 CON3978 Scripting Languages on the JVM
PaulThwaite
JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...
JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...
PaulThwaite
Java 9 Modularity and Project Jigsaw
Java 9 Modularity and Project Jigsaw
Comsysto Reply GmbH
Apache MyFaces 1.2 Web Application Development
Apache MyFaces 1.2 Web Application Development
Bart Kummel
Hibernate complete notes_by_sekhar_sir_javabynatara_j
Hibernate complete notes_by_sekhar_sir_javabynatara_j
Satya Johnny
Next-Generation Enterprise Application Development with SpringSource dm Serve...
Next-Generation Enterprise Application Development with SpringSource dm Serve...
Aditya Jha
Java & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate Framework
Mohit Belwal
What Is Spring Framework In Java | Spring Framework Tutorial For Beginners Wi...
What Is Spring Framework In Java | Spring Framework Tutorial For Beginners Wi...
Edureka!
Spring framework-tutorial
Spring framework-tutorial
vinayiqbusiness
Hibernate Interview Questions
Hibernate Interview Questions
Syed Shahul
Introduction to Spring Framework
Introduction to Spring Framework
Hùng Nguyễn Huy
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
Mert Çalışkan
Java modularization
Java modularization
Jonathan Vila
Towards a modularity maturity model - osgi users forum uk 16-nov2011
Towards a modularity maturity model - osgi users forum uk 16-nov2011
mfrancis
Best Practices for Enterprise OSGi Applications - Emily Jiang
Best Practices for Enterprise OSGi Applications - Emily Jiang
mfrancis
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
Fwdays
Weitere ähnliche Inhalte
Was ist angesagt?
Java Spring
Java Spring
AathikaJava
Java spring ppt
Java spring ppt
natashasweety7
The Power of Enterprise Java Frameworks
The Power of Enterprise Java Frameworks
Clarence Ho
Spring core module
Spring core module
Raj Tomar
Code One 2018 maven
Code One 2018 maven
Massimiliano Dessì
Spring notes
Spring notes
Rajeev Uppala
JavaOne 2012 CON3978 Scripting Languages on the JVM
JavaOne 2012 CON3978 Scripting Languages on the JVM
PaulThwaite
JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...
JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...
PaulThwaite
Java 9 Modularity and Project Jigsaw
Java 9 Modularity and Project Jigsaw
Comsysto Reply GmbH
Apache MyFaces 1.2 Web Application Development
Apache MyFaces 1.2 Web Application Development
Bart Kummel
Hibernate complete notes_by_sekhar_sir_javabynatara_j
Hibernate complete notes_by_sekhar_sir_javabynatara_j
Satya Johnny
Next-Generation Enterprise Application Development with SpringSource dm Serve...
Next-Generation Enterprise Application Development with SpringSource dm Serve...
Aditya Jha
Java & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate Framework
Mohit Belwal
What Is Spring Framework In Java | Spring Framework Tutorial For Beginners Wi...
What Is Spring Framework In Java | Spring Framework Tutorial For Beginners Wi...
Edureka!
Spring framework-tutorial
Spring framework-tutorial
vinayiqbusiness
Hibernate Interview Questions
Hibernate Interview Questions
Syed Shahul
Introduction to Spring Framework
Introduction to Spring Framework
Hùng Nguyễn Huy
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
Mert Çalışkan
Java modularization
Java modularization
Jonathan Vila
Towards a modularity maturity model - osgi users forum uk 16-nov2011
Towards a modularity maturity model - osgi users forum uk 16-nov2011
mfrancis
Was ist angesagt?
(20)
Java Spring
Java Spring
Java spring ppt
Java spring ppt
The Power of Enterprise Java Frameworks
The Power of Enterprise Java Frameworks
Spring core module
Spring core module
Code One 2018 maven
Code One 2018 maven
Spring notes
Spring notes
JavaOne 2012 CON3978 Scripting Languages on the JVM
JavaOne 2012 CON3978 Scripting Languages on the JVM
JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...
JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...
Java 9 Modularity and Project Jigsaw
Java 9 Modularity and Project Jigsaw
Apache MyFaces 1.2 Web Application Development
Apache MyFaces 1.2 Web Application Development
Hibernate complete notes_by_sekhar_sir_javabynatara_j
Hibernate complete notes_by_sekhar_sir_javabynatara_j
Next-Generation Enterprise Application Development with SpringSource dm Serve...
Next-Generation Enterprise Application Development with SpringSource dm Serve...
Java & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate Framework
What Is Spring Framework In Java | Spring Framework Tutorial For Beginners Wi...
What Is Spring Framework In Java | Spring Framework Tutorial For Beginners Wi...
Spring framework-tutorial
Spring framework-tutorial
Hibernate Interview Questions
Hibernate Interview Questions
Introduction to Spring Framework
Introduction to Spring Framework
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
Java modularization
Java modularization
Towards a modularity maturity model - osgi users forum uk 16-nov2011
Towards a modularity maturity model - osgi users forum uk 16-nov2011
Ähnlich wie Hints and Tips for Modularizing Existing Enterprise Applications with OSGi - Graham Chaters
Best Practices for Enterprise OSGi Applications - Emily Jiang
Best Practices for Enterprise OSGi Applications - Emily Jiang
mfrancis
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
Fwdays
Custom Buildpacks and Data Services
Custom Buildpacks and Data Services
Tom Kranz
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
VMware Tanzu
Monoliths are so 2001 – What you need is Modularity
Monoliths are so 2001 – What you need is Modularity
Graham Charters
Modules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module System
Tim Ellison
DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...
DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...
Neil Shannon
Webpack: from 0 to 2
Webpack: from 0 to 2
Alessandro Bellini
DevNexus 2019: Migrating to Java 11
DevNexus 2019: Migrating to Java 11
DaliaAboSheasha
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris O'Brien
Spring Architecture | Advanced Java
Spring Architecture | Advanced Java
VISHAL DONGA
GR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting Grails
GR8Conf
Adopting Grails - GR8Conf Europe
Adopting Grails - GR8Conf Europe
KlausBaumecker
An Introduction to Maven and Flex
An Introduction to Maven and Flex
Justin J. Moses
Maven 2.0 - Project management and comprehension tool
Maven 2.0 - Project management and comprehension tool
elliando dias
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introduction
vstorm83
Java Spring Framework
Java Spring Framework
Mehul Jariwala
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
European Collaboration Summit
What's new in p2 (2009)?
What's new in p2 (2009)?
Pascal Rapicault
Java 9 and the impact on Maven Projects (JavaOne 2016)
Java 9 and the impact on Maven Projects (JavaOne 2016)
Robert Scholte
Ähnlich wie Hints and Tips for Modularizing Existing Enterprise Applications with OSGi - Graham Chaters
(20)
Best Practices for Enterprise OSGi Applications - Emily Jiang
Best Practices for Enterprise OSGi Applications - Emily Jiang
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
Custom Buildpacks and Data Services
Custom Buildpacks and Data Services
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)
Monoliths are so 2001 – What you need is Modularity
Monoliths are so 2001 – What you need is Modularity
Modules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module System
DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...
DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...
Webpack: from 0 to 2
Webpack: from 0 to 2
DevNexus 2019: Migrating to Java 11
DevNexus 2019: Migrating to Java 11
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
Spring Architecture | Advanced Java
Spring Architecture | Advanced Java
GR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting Grails
Adopting Grails - GR8Conf Europe
Adopting Grails - GR8Conf Europe
An Introduction to Maven and Flex
An Introduction to Maven and Flex
Maven 2.0 - Project management and comprehension tool
Maven 2.0 - Project management and comprehension tool
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introduction
Java Spring Framework
Java Spring Framework
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
What's new in p2 (2009)?
What's new in p2 (2009)?
Java 9 and the impact on Maven Projects (JavaOne 2016)
Java 9 and the impact on Maven Projects (JavaOne 2016)
Mehr von mfrancis
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
mfrancis
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)
mfrancis
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
mfrancis
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
mfrancis
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
mfrancis
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
mfrancis
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
mfrancis
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
mfrancis
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
mfrancis
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)
mfrancis
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
mfrancis
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
mfrancis
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
mfrancis
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
mfrancis
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
mfrancis
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
mfrancis
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
mfrancis
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
mfrancis
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
mfrancis
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)
mfrancis
Mehr von mfrancis
(20)
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)
Kürzlich hochgeladen
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Results
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
Pixlogix Infotech
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Enterprise Knowledge
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
naman860154
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Puma Security, LLC
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Principled Technologies
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
Kürzlich hochgeladen
(20)
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Hints and Tips for Modularizing Existing Enterprise Applications with OSGi - Graham Chaters
1.
© IBM Corporation
2012 Hints and Tips for Modularizing Existing Enterprise Applications Graham Charters Graham Charters - Senior Technical Staff Member, WebSphere Application Server October 2012
2.
© IBM Corporation
2012 Agenda Motivation for a Modular Enterprise Approaches to OSGi Adoption A Staged Approach in Detail Summary 2
3.
© IBM Corporation
20123 Java EE modularity is inadequate Across apps - each archive typically contains all required libraries – Common libraries/frameworks get installed with each application – Multiple copies of libraries in memory Within apps - 3rd party libraries consume other 3rd party libraries leading to conflicting versions on the application classpath. webB.war WEB-INF/classes/servletB.class WEB-INF/lib/json4j.jar WEB-INF/lib/commons-logging.jar WEB-INF/lib/junit.jar… webC.war WEB-INF/classes/servletC.class WEB-INF/lib/json4j.jar WEB-INF/lib/commons-logging.jar WEB-INF/lib/junit.jar… plankton.v1 plankton.v2 Modularity Issues in Java EE
4.
© IBM Corporation
2012 Enterprise OSGi Specifications are growing coverage First specification released 2010 added: – Web Applications (WAR -> WAB) – JNDI (including OSGi Service scheme) – Transactions – Blueprint (inspired by Spring) – Remote Services Second specification released 2012, added: – Subsystems (standard application model) – Repository – Resolver Work in the pipeline – EJB – CDI – Blueprint transactions – Blueprint enhancements Platforms are plugging the gaps: Apache Aries, Eclipse Virgo, Apache Geronimo, WebSphere Application Server, JBoss AS, Glassfish, ... your mileage may vary... 4
5.
© IBM Corporation
2012 A Staged Approach Lots of good reasons to improve modularity but don‟t have to achieve all in one go – “Big bang” =often=> “damp squib” Incremental successes are successes that help build and sustain momentum A bad practice may still be a better practice (a means to an end) 5 A CB D How?
6.
© IBM Corporation
2012 Useful Tools Many tools help with OSGi development, including bundle generation from simple configuration – Rational Application Developer – IBM WebSphere Application Server V8.5 Developer Tools V8.5 – BND – BNDTools – Maven-bundle-plugin – BND Ant Task – ... Example taken from modularizing the Apache Geronimo DayTrader application. DayTrader is built using maven and so maven-bundle-plugin snippets are used throughout. 6
7.
© IBM Corporation
2012 Strategies A number of possible approaches: – Hargrave & Kriens: “Single Bundle” – Feng & Charters: “One to One” – Nottingham & Charters: “Fragments” (a “work in progress”) 7
8.
© IBM Corporation
2012 application Hargrave & Kriens JavaOne 2008: http://www.osgi.org/wiki/uploads/Links/TS-5122.pdf Approach Summary: 1. Single bundle project with all dependent jars on Bundle-Classpath 2. Over time, pull out dependent jars as bundles Focuses on Java SE: – Does not consider Java EE classloaders – Does not consider Java EE component models Surfaces OSGi slower, but delivers incremental benefits 8 bundle bundle log entities log core ejb3 entities log core ejb3 entities core ejb3
9.
© IBM Corporation
2012 Feng & Charters ApacheCon 2009: http://people.apache.org/~lresende/presentations/felix%20goes%20to%20tuscany.pdf Approach Summary: 1. Convert each build module directly to an OSGi Bundle 2. Analyze and refactor Focused on Java SE – No consideration for Java EE classloaders – No consideration for Java EE component models Motivated by need to deliver assembly subsets Surfaces OSGi early, but longer lead-time to first success 9 beans core ejb3 entities json-proxy soap wsappclient streamer web beans core ejb3 entities json-proxy soap wsappclient streamer web core ejb3 entities json-proxy soap wsappclient streamer web log log
10.
© IBM Corporation
2012 Nottingham & Charters EclipseCon 2012: this deck Approach Summary: 1. Replicate existing classloading in OSGi using bundle fragments 2. Incrementally separate out individual bundles 3. Adopt OSGi best practices Considers Java EE classloading and component models Surfaces OSGi early, and incrementally - a staged approach 10 beans core ejb3 entities json-proxy soap wsappclient streamer web app-host logcoreejb3 wab web app-host logcoreejb3 wab web log
11.
© IBM Corporation
2012 Stage 1: Understanding the starting point Java EE prescribes a hierarchical classloading model Assuming “parent first” and “multiple”: – Each Application has own classloader – Each WAR has own class loader – WAR has visibility to Application classes – WAR prefers Application classs, Application prefers System classes, etc... OSGi modularity enforced through class visibility using classloaders Migration strategies need to consider the impact of this change – e.g. replicate visibility relationships of existing application in OSGi 11 Bootstrap Extensions System Application Application WAR WAR WAR
12.
© IBM Corporation
2012 Replicating Java EE classloading: Classloaders Preserve Application and WAR roles Application -> Application Host Bundle – Add application modules to fragments of host bundle Web App Archive -> Web Application Bundle – Add WEB-INF/classes to Bundle- Classpath – Extract WEB-INF/lib jars and add as fragments of Web Application Bundle We now have two classloaders just as we did in Java EE We also have full visibility of the modules 12 System Application WAR app-host logcoreejb3 wab web
13.
© IBM Corporation
2012 Maven-bundle-plugin - Application Host Bundle Example 13 ... <parent> ... </parent> <packaging>bundle</packaging> <groupId>org.apache.geronimo.daytrader.modules</groupId> <artifactId>app-host</artifactId> <version>0.1</version> <name>DayTrader :: Modules – Application</name> <description>DayTrader Application Module</description> <dependencies> ... </dependencies> <build> <plugins> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <configuration> <instructions> ... </instructions> </configuration> </plugin> </plugins> </build> </project> bundle artefact type to be built plugin uses this as default bundle metadata the dependencies to build against extra bundle configuration (e.g. exports, imports, etc)
14.
© IBM Corporation
2012 Maven-bundle-plugin - Fragment Bundle Example 14 <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <configuration> <instructions> <Fragment-Host>org.apache.geronimo.daytrader.modules.daytrader-app-host</Fragment-Host> </instructions> </configuration> </plugin> Fragment-Host: org.apache.geronimo.daytrader.modules.daytrader-app-host
15.
© IBM Corporation
2012 Replicating Java EE classloading: Delegation App and wab can‟t see the container apis from the System Classloader Wab can‟t see app classes Solution: – Add package imports for container packages to app and wab – Add package exports to app-host fragments required by wab – Add require bundle from wab to app Note: delegation semantics are not identical to Java EE – WAS provides all imported packages (close to “parent-first”) – Bundle provides everything else – Now have control over what wab & app-host see from the System classloader 15 System app-host wab X X X
16.
© IBM Corporation
2012 Determining the Container APIs (System Classloader) Warning: This step will vary depending on target server <was_install>/dev contains the APIs in was_public.jar and JavaEE/jee.jar Take Export-Package entries and add as Import-Package entries on app and wab bundles If using BND-based tools then can wildcard values (e.g. com.ibm.*, javax.*) <was_install>/dev includes a pom for WAS API for maven development (available since v8.0) Applications should not rely on packages not defined in <was_install>/dev 16
17.
© IBM Corporation
2012 Maven-bundle-plugin: Container delegation 17 <Import-Package> <!-- from was_public.jar --> com.ibm.*, ... <!-- from jdk & jee.jar --> javax.* </Import-Package> Import-Package: com.ibm.websphere.ActivitySession;version="1.1.0", ... javax.xml.rpc.server;version="1.1.0", javax.xml.rpc.soap;version="1.1.0" maven-bundle-plugin (pom.xml) daytrader-app.jar META-INF/MANIFEST.MF mvn install:install-file -DgroupId=com.ibm.websphere.appserver -DartifactId=was_public -Dversion=8.5 - Dpackaging=jar -Dfile=was_public-8.5.0.jar <dependency> <groupId>com.ibm.websphere.appserver</groupId> <artifactId>was_public</artifactId> <version>8.5</version> </dependency> maven dependency on WAS API
18.
© IBM Corporation
2012 Maven-bundle-plugin: WAB to App Delegation Fragment exports (daytrader package naming allowed wildcarding) Wab Require-Bundle 18 <instructions> <Fragment-Host>org.apache.geronimo.daytrader.modules.daytrader-app-host</Fragment-Host> <Export-Package>org.apache.geronimo.samples.daytrader.core*</Export-Package> </instructions> <instructions> <Require-Bundle>org.apache.geronimo.daytrader.modules.daytrader-app-host</Require-Bundle> </instructions> app-host wab Export-Package: ... Require-Bundle: app-host core log entities ejb3 logcoreejb3
19.
© IBM Corporation
2012 A Note on Require-Bundle Uses – Merge split package – When there‟ll only ever be one provider (e.g. extension points) Considered bad practice because: – The required bundle can change what it provides - brittle in the face of refactoring 19
20.
© IBM Corporation
2012 Extenders: Enabling Component Models Web Components, EJBs, Persistence Contexts, Blueprint Beans all handled by extenders Extenders look inside bundles for code/metadata to process Extenders typically require a bundle to „opt in‟ using a manifest header – host must opt-in JPA entities not permitted to come from fragments: “...any entity classes must originate in the bundle’s JAR, it cannot come from a fragment.” 20 <!-- maven-bundle-plugin configuration snippet--> <instructions> <!-- Opt in for Web Extender --> <Web-ContextPath>/daytrader</Web-ContextPath> </instructions> Tip: <<EMPTY>> allows empty header in BND (needs a recent version of maven-bundle-plugin) app-host wab Web-ContextPath: /daytrader Export-EJB: <!-- maven-bundle-plugin configuration snippet--> <instructions> ... <!-- Opt in for EJB Extender --> <Export-EJB><<EMPTY>></Export-EJB> </instructions>
21.
© IBM Corporation
2012 daytrader.eba OSGi Application Warning: this step will vary depending on target server Servers typically enable a deployment artefact and build tools for an application Example was targeting WebSphere, so used a .eba (a zip file with an application manifest) – RAD/WDT tools make development simple – Ant zip task and eba-maven- plugin (Apache Aries) can also be used in builds wab app-host Application-Name: DayTrader Application Application-SymbolicName: org.apache.aries.samples.daytrader Application-ManifestVersion: 1 Application-Version: 0.1 Manifest-Version: 1.0 Application-Content: daytrader.app;version="[0.1,1.0)", daytrader.wab;version="[0.1,1.0)" <plugin> <groupId>org.apache.aries</groupId> <artifactId>eba-maven-plugin</artifactId> <version>0.4-SNAPSHOT</version> <extensions>true</extensions> <configuration> <generateManifest>true</generateManifest> <instructions> <Application-SymbolicName> ${project.artifactId} </Application-SymbolicName> </instructions> </configuration> </plugin>
22.
© IBM Corporation
2012 Stage 2: Factoring out Bundles Now the application‟s running in OSGi we can start to split out the fragments as independent, re-usable bundles Strategy: – Do one fragment at a time – Start with the leaf dependencies • Wab bundle contents first, then the app bundle • Project build dependencies help with identification • Third-party libraries • “shared libraries” (if runtime supports this concept) – Detach from host and calculate the package imports & exports 22 wab web wab web Fragment-Host: wab Export-Package: daytrader.web Import-Package: daytrader.web
23.
© IBM Corporation
2012 Split Package Strategies A split package is a package exported by more than one provider where the contents differ – Sub-set/superset relationship - e.g. javax.transactions – Intersecting or non-intersecting subsets – Not different releases Split packages hint at poor modularity or naming Consumers often need access to all providers, but OSGi Import-Package will only wire to one Solution: – Combine jars with split packages into a single bundle • Multiple jars on single Bundle-Classpath or • Fragment Bundles attached to a single host This approach is tactical and is addressed in Stage 3 23 log Bundle-Classpath: ., A.jar. B.jar Export-Package: p A B p p
24.
© IBM Corporation
2012 Converting Jars to Bundles Using RAD/WDT? – Convert Java projects to OSGi Bundle Projects (also works for EJB and WAR) – Or import “Java Archive into OSGi Bundle” • Wraps Jar in a Bundle Using maven or ant? – Modify build to produce bundles (e.g. maven-bundle-plugin or bnd in ant task) – Use wild-cards to generate initial imports/exports then refine... 24 <packaging>bundle</packaging> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <configuration> <instructions> ... </instructions> </configuration> </plugin>
25.
© IBM Corporation
2012 Third-party Libraries Applications often use third-party libraries, such as open source – DayTrader uses commons.logging Many now come with OSGi metadata Most others have been bundlized by repository projects – Eclipse Orbit - bundlized, pedigree reviewed for Eclipse projects – Apache Felix Commons – SpringSource Enterprise Bundle Repository or by other OSGi-based projects – Apache Tuscany – Apache ServiceMix – Ops4J Pax * Use these if available But what if you can‟t find a bundlized library...? 25
26.
© IBM Corporation
2012 Bundlizing third-party libraries Use tools to calculate manifest – RAD/WDT - Import -> Java Archive into an OSGi Bundle – BND – Refine Imports/Exports If library required to work inside and outside OSGi? – inject OSGi manifest into existing jar – Doesn‟t work for signed Jars – Can‟t aggregate multiple Jars If library only required to work in OSGi – Wrap jar in bundle (add jar to Bundle- Classpath) – Works for signed jars – Can aggregate multiple jars, if necessary 26 log log Export-Package: org.c... log log Bundle-Classpath: ., log.jar Export-Package: org.c... log org/apache/commons/... inject wrap
27.
© IBM Corporation
2012 The story so far... The first two stages have: – Taken Java EE application and run in OSGi – Decomposed single deployment artefact into multiple bundles Now have the potential to: – Understand the application architecture; modules used and their relationships (OSGi Application Console) – Remove duplicate deployment binaries (single bundle in repository) – Remove duplicate runtime binaries (share bundle in server) – Reduce operational costs and errors - deploy shared binaries based on application needs – Determine which binaries are in use (e.g. to apply critical fix) But there‟s more... 27
28.
© IBM Corporation
2012 Stage 3: Incrementally Adopt Best Practices Stage 2 documents the „as-is‟ architecture, warts-„n‟-all OSGi Best Practices show how to make the most of OSGi – Hopefully you attended Emily Jiang‟s session – http://www.ibm.com/developerworks/websphere/techjournal/1007_charters/1007_charters.html Adopting best practices leads to: – High cohesion - bundles with clear and distinct roles in the architecture – Loose coupling - flexible, but necessary, dependencies ...which all leads to greater agility, flexibility and re-use – Development teams can understand and explain the architecture and are no longer afraid to change the code – Applications can evolve and new application can be created at a pace that enables, rather than inhibits, the business 28
29.
© IBM Corporation
2012 Summary Moving enterprise applications to OSGi helps: – increase understanding of application architecture – increase module cohesiveness – reduce module coupling Leads to greater application agility through re-use and understanding of impact of change A staged approach to adoption delivers value sooner and in-line with investment With the wealth of tools, runtimes, and existing assets, it‟s never been easier to adopt OSGi What OSGi could do to better: – Enable „fragments‟ to define everything except a classloader – Enable JPA entities in fragments 29
30.
© IBM Corporation
2012 Questions 30
31.
© IBM Corporation
2012 Trademarks Eclipse and the Eclipse logo are trademarks of Eclipse Foundation, Inc. Apache, Apache Felix, Felix, the Apache Felix project logo, Apache Tuscany and the Apache Tuscany project logo are trademarks of The Apache Software Foundation. Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates. IBM and the IBM logo are trademarks of International Business Machines Corporation, registered in many jurisdictions. Other marks may be trademarks or registered trademarks of their respective owners. 31
Jetzt herunterladen