SlideShare une entreprise Scribd logo
1  sur  28
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Moving the Guidewire platform to
OSGi
A case study
Paul D’Albora
Guidewire Software
pdalbora@guidewire.com
March 2012
2
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Agenda
• Introduction to the Guidewire platform
• Motivation for moving to OSGi
• Challenges
• Where we are and where we’re going
• Q & (hopefully) A
3
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
The Guidewire Platform – Basics
• Supports core system software for the global
property/casualty insurance industry
• Core services: ORM layer, web UI framework,
business rules, workflow, automated upgrade, I18N,
customer plugins, messaging and web services
integration
• High degree of configurability
• Supports multiple JEE containers
4
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
The Guidewire Platform – Pressures
• Constantly adding and improving features for
applications
• Must not break existing customers
• Large code base developed over ten years
• Large and growing development team
• All of which can lead to …
5
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
6
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
7
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Goals
• Test components in isolation
• Reduce learning curve
• Contain maintenance costs
• Release components independently
8
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
OSGi
• Module system
• Versioning
• Manageability
• Mature, well-defined specifications
• Robust community
• Services!
9
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Givens
• Application must be delivered as a JEE application
(EAR/WAR)
• Code divided into coarse-grained “modules”
forming a DAG of compile-time dependencies
• Non-Eclipse IDE (no PDE)
• Custom build system
10
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Step 1
11
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Plan
• Run Equinox embedded in JEE container using
servlet bridge
• Define a bundle for each existing code “module”
• Replace/Convert 3rd
-party jars with OSGi equivalents
• Get automated tests running in framework
• DON’T try to modularize yet
12
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Roadblocks
13
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Problem: Split Packages
• Same package exists in multiple modules
• Framework binds to one of them, causing the other
“parts” of the package to effectively disappear
• Typical for platform and one or more applications
to define classes in the same package
• This is pervasive in our code
14
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Solution: Fragments
• Define an empty “root” bundle
• Every bundle is a fragment of root
- Fragment-Host: com.guidewire.root
• Simulates one bundle
• More closely represents original, non-modular,
global classpath environment
15
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Problem: 3rd
-party libraries
• Lots of them (~102
)
• Signed jars
• Classpath assumptions
16
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Solution: Varied
• Public OSGi bundle repositories
– Eclipse Orbit
– SpringSource
• BND
– For signed jars, embed jar within jar and use Bundle-
ClassPath
– Can combine related jars to deal with split packages
• TCCL to work around classpath assumptions
• Newer jars being packaged as OSGi bundles
17
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Problem: Servlets
• No longer registered in web.xml (just the servlet
bridge)
• How to register platform and application servlets
with HttpService
• Ordering requirements (<load-on-startup>)
18
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Solution: Components
• Felix Http Whiteboard
• Declarative Services with Bnd
- @Component(provide=Servlet.class,
properties="alias=/path")
• For ordering-dependent servlets, register in order
with HttpService
- Component with @Reference to HttpService
19
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Practical Tips
• Learn and use BND
• Learn the classloading flow chart (R4.2 Spec, Fig
3.19)
– Turn off osgi.compatibility.bootdelegation,
osgi.context.bootdelegation in Equinox
– No Require-Bundle
• Lean on automated tests
• Use the framework itself
20
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Current Status
• Applications and integration tests running
successfully in development
• Initial performance testing reveals no significant
difference in response times or memory usage
• Rolled out to application teams with minimal
disruption
21
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Next Steps
• Define candidate areas for modularization
• Use services to de-couple components
• Use services to replace ad hoc registries
• Educate developers about service-oriented
programming
22
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Example: Static Service Registry
• Map of interface Class to implementation instance
• Initialized by bootstrap class
• Accessed via static methods
23
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Static Service Registry – Code Sample 1
24
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Static Service Registry – Code Sample 2
25
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Static Service Registry – Code Sample 3
26
© Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
Static Service Registry – Replacement
Questions?
Feedback welcome.
Give Feedback on the Sessions
1
Sign In: www.eclipsecon.org
2
Select Session Evaluate
3
Vote

Contenu connexe

Tendances

The Payer of the Future: Modernizing Health Insurance with API-led Connectivity
The Payer of the Future: Modernizing Health Insurance with API-led ConnectivityThe Payer of the Future: Modernizing Health Insurance with API-led Connectivity
The Payer of the Future: Modernizing Health Insurance with API-led ConnectivityMuleSoft
 
Testing & Compliance Challenges for Healthcare in the Cloud
Testing & Compliance Challenges for Healthcare in the CloudTesting & Compliance Challenges for Healthcare in the Cloud
Testing & Compliance Challenges for Healthcare in the CloudAdam Sandman
 
Spira Test Overview Presentation
Spira Test Overview PresentationSpira Test Overview Presentation
Spira Test Overview PresentationAdam Sandman
 
Webinar 3: Five Essentials to Requirements Management
Webinar 3: Five Essentials to Requirements ManagementWebinar 3: Five Essentials to Requirements Management
Webinar 3: Five Essentials to Requirements ManagementSriram Rajagopalan
 
eFolder Partner Chat Webinar — Happy Together: Integrating Managed File Sync ...
eFolder Partner Chat Webinar — Happy Together: Integrating Managed File Sync ...eFolder Partner Chat Webinar — Happy Together: Integrating Managed File Sync ...
eFolder Partner Chat Webinar — Happy Together: Integrating Managed File Sync ...eFolder
 
What Patterns to Avoid in Agile Ceremonies?
What Patterns to Avoid in Agile Ceremonies?What Patterns to Avoid in Agile Ceremonies?
What Patterns to Avoid in Agile Ceremonies?Inflectra
 
Progress Pacific: Contemporary App Development
Progress Pacific: Contemporary App DevelopmentProgress Pacific: Contemporary App Development
Progress Pacific: Contemporary App DevelopmentProgress
 
Roadmap 101 of the ServiceNow business platform
Roadmap 101 of the ServiceNow business platformRoadmap 101 of the ServiceNow business platform
Roadmap 101 of the ServiceNow business platformSheetal Kale
 
Catalyst Accelerate for Healthcare
Catalyst Accelerate for HealthcareCatalyst Accelerate for Healthcare
Catalyst Accelerate for HealthcareMuleSoft
 
SpiraPlan - Top Productivity Boosting Features
SpiraPlan - Top Productivity Boosting FeaturesSpiraPlan - Top Productivity Boosting Features
SpiraPlan - Top Productivity Boosting FeaturesInflectra
 
Operationalizing your Virtual Network: Getting to the Next Level with SDN/NFV...
Operationalizing your Virtual Network: Getting to the Next Level with SDN/NFV...Operationalizing your Virtual Network: Getting to the Next Level with SDN/NFV...
Operationalizing your Virtual Network: Getting to the Next Level with SDN/NFV...CA Technologies
 
Always-On Services for Consumer Web, Mobile and the Internet of Things
Always-On Services for Consumer Web, Mobile and the Internet of ThingsAlways-On Services for Consumer Web, Mobile and the Internet of Things
Always-On Services for Consumer Web, Mobile and the Internet of ThingsIver Band
 
Overview Brochure - VMware Partnership_0
Overview Brochure - VMware Partnership_0Overview Brochure - VMware Partnership_0
Overview Brochure - VMware Partnership_0Brian Hamilton
 
NERC CIP - Top Testing & Compliance Challenges, How to Address Them
NERC CIP - Top Testing & Compliance Challenges, How to Address ThemNERC CIP - Top Testing & Compliance Challenges, How to Address Them
NERC CIP - Top Testing & Compliance Challenges, How to Address ThemInflectra
 
Ensuring Project Success with SpiraTeam and Rapise from Inflectra pta - short
Ensuring Project Success with SpiraTeam and Rapise from Inflectra   pta - shortEnsuring Project Success with SpiraTeam and Rapise from Inflectra   pta - short
Ensuring Project Success with SpiraTeam and Rapise from Inflectra pta - shortAdam Sandman
 
SpiraTeam Overview Presentation (2019)
SpiraTeam Overview Presentation (2019)SpiraTeam Overview Presentation (2019)
SpiraTeam Overview Presentation (2019)Inflectra
 
Building excellence in support
Building excellence in supportBuilding excellence in support
Building excellence in supportJeff Green
 
Moving from a Data Center to a Hybrid IT Environment Securely
Moving from a Data Center to a Hybrid IT Environment SecurelyMoving from a Data Center to a Hybrid IT Environment Securely
Moving from a Data Center to a Hybrid IT Environment SecurelyJeff Green
 
Enhancing QA Strategy to Achieve Agile Quality Engineering
Enhancing QA Strategy to Achieve Agile Quality Engineering Enhancing QA Strategy to Achieve Agile Quality Engineering
Enhancing QA Strategy to Achieve Agile Quality Engineering Aspire Systems
 

Tendances (20)

The Payer of the Future: Modernizing Health Insurance with API-led Connectivity
The Payer of the Future: Modernizing Health Insurance with API-led ConnectivityThe Payer of the Future: Modernizing Health Insurance with API-led Connectivity
The Payer of the Future: Modernizing Health Insurance with API-led Connectivity
 
Testing & Compliance Challenges for Healthcare in the Cloud
Testing & Compliance Challenges for Healthcare in the CloudTesting & Compliance Challenges for Healthcare in the Cloud
Testing & Compliance Challenges for Healthcare in the Cloud
 
Spira Test Overview Presentation
Spira Test Overview PresentationSpira Test Overview Presentation
Spira Test Overview Presentation
 
Webinar 3: Five Essentials to Requirements Management
Webinar 3: Five Essentials to Requirements ManagementWebinar 3: Five Essentials to Requirements Management
Webinar 3: Five Essentials to Requirements Management
 
eFolder Partner Chat Webinar — Happy Together: Integrating Managed File Sync ...
eFolder Partner Chat Webinar — Happy Together: Integrating Managed File Sync ...eFolder Partner Chat Webinar — Happy Together: Integrating Managed File Sync ...
eFolder Partner Chat Webinar — Happy Together: Integrating Managed File Sync ...
 
What Patterns to Avoid in Agile Ceremonies?
What Patterns to Avoid in Agile Ceremonies?What Patterns to Avoid in Agile Ceremonies?
What Patterns to Avoid in Agile Ceremonies?
 
Progress Pacific: Contemporary App Development
Progress Pacific: Contemporary App DevelopmentProgress Pacific: Contemporary App Development
Progress Pacific: Contemporary App Development
 
How DevOps works in MOKA
How DevOps works in MOKAHow DevOps works in MOKA
How DevOps works in MOKA
 
Roadmap 101 of the ServiceNow business platform
Roadmap 101 of the ServiceNow business platformRoadmap 101 of the ServiceNow business platform
Roadmap 101 of the ServiceNow business platform
 
Catalyst Accelerate for Healthcare
Catalyst Accelerate for HealthcareCatalyst Accelerate for Healthcare
Catalyst Accelerate for Healthcare
 
SpiraPlan - Top Productivity Boosting Features
SpiraPlan - Top Productivity Boosting FeaturesSpiraPlan - Top Productivity Boosting Features
SpiraPlan - Top Productivity Boosting Features
 
Operationalizing your Virtual Network: Getting to the Next Level with SDN/NFV...
Operationalizing your Virtual Network: Getting to the Next Level with SDN/NFV...Operationalizing your Virtual Network: Getting to the Next Level with SDN/NFV...
Operationalizing your Virtual Network: Getting to the Next Level with SDN/NFV...
 
Always-On Services for Consumer Web, Mobile and the Internet of Things
Always-On Services for Consumer Web, Mobile and the Internet of ThingsAlways-On Services for Consumer Web, Mobile and the Internet of Things
Always-On Services for Consumer Web, Mobile and the Internet of Things
 
Overview Brochure - VMware Partnership_0
Overview Brochure - VMware Partnership_0Overview Brochure - VMware Partnership_0
Overview Brochure - VMware Partnership_0
 
NERC CIP - Top Testing & Compliance Challenges, How to Address Them
NERC CIP - Top Testing & Compliance Challenges, How to Address ThemNERC CIP - Top Testing & Compliance Challenges, How to Address Them
NERC CIP - Top Testing & Compliance Challenges, How to Address Them
 
Ensuring Project Success with SpiraTeam and Rapise from Inflectra pta - short
Ensuring Project Success with SpiraTeam and Rapise from Inflectra   pta - shortEnsuring Project Success with SpiraTeam and Rapise from Inflectra   pta - short
Ensuring Project Success with SpiraTeam and Rapise from Inflectra pta - short
 
SpiraTeam Overview Presentation (2019)
SpiraTeam Overview Presentation (2019)SpiraTeam Overview Presentation (2019)
SpiraTeam Overview Presentation (2019)
 
Building excellence in support
Building excellence in supportBuilding excellence in support
Building excellence in support
 
Moving from a Data Center to a Hybrid IT Environment Securely
Moving from a Data Center to a Hybrid IT Environment SecurelyMoving from a Data Center to a Hybrid IT Environment Securely
Moving from a Data Center to a Hybrid IT Environment Securely
 
Enhancing QA Strategy to Achieve Agile Quality Engineering
Enhancing QA Strategy to Achieve Agile Quality Engineering Enhancing QA Strategy to Achieve Agile Quality Engineering
Enhancing QA Strategy to Achieve Agile Quality Engineering
 

Similaire à Moving the Guidewire platform to OSGi - Paul D'Albora

DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013Ethan Ram
 
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...jaxconf
 
OSGi Best Practices – Learn how to prevent common mistakes and build robust, ...
OSGi Best Practices – Learn how to prevent common mistakes and build robust, ...OSGi Best Practices – Learn how to prevent common mistakes and build robust, ...
OSGi Best Practices – Learn how to prevent common mistakes and build robust, ...mfrancis
 
How Oracle Integrates Accessibility into the Development Process
How Oracle Integrates Accessibility into the Development ProcessHow Oracle Integrates Accessibility into the Development Process
How Oracle Integrates Accessibility into the Development Process3Play Media
 
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...SmartBear
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationXPDays
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weaveworks
 
The Rocky Cloud Road
The Rocky Cloud RoadThe Rocky Cloud Road
The Rocky Cloud RoadGert Drapers
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemBruno Borges
 
Oracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version ControlOracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version ControlChris Muir
 
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptxMulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptxAlfonso Martino
 
Use Case: Building OSGi Enterprise Applications (QCon 14)
Use Case: Building OSGi Enterprise Applications (QCon 14)Use Case: Building OSGi Enterprise Applications (QCon 14)
Use Case: Building OSGi Enterprise Applications (QCon 14)Carsten Ziegeler
 
Building Modular Enterprise Applications - C Ziegeler
Building Modular Enterprise Applications - C ZiegelerBuilding Modular Enterprise Applications - C Ziegeler
Building Modular Enterprise Applications - C Ziegelermfrancis
 
Hyd virtual meetupslides11jul
Hyd virtual meetupslides11julHyd virtual meetupslides11jul
Hyd virtual meetupslides11julSantosh Ojha
 
Alexyj Kovaliov "Waterfalling to Agile"
Alexyj Kovaliov "Waterfalling to Agile" Alexyj Kovaliov "Waterfalling to Agile"
Alexyj Kovaliov "Waterfalling to Agile" Agile Lietuva
 
Creative Automation with Galen Framework
Creative Automation with Galen FrameworkCreative Automation with Galen Framework
Creative Automation with Galen Framework'Ashmeet Sehgal'
 
Introduction To Groovy And Grails - SpringPeople
Introduction To Groovy And Grails - SpringPeopleIntroduction To Groovy And Grails - SpringPeople
Introduction To Groovy And Grails - SpringPeopleSpringPeople
 
Deploying Stateful Applications Securely & Confidently with Ondat & Weave GitOps
Deploying Stateful Applications Securely & Confidently with Ondat & Weave GitOpsDeploying Stateful Applications Securely & Confidently with Ondat & Weave GitOps
Deploying Stateful Applications Securely & Confidently with Ondat & Weave GitOpsWeaveworks
 
Deployit Product Demo
Deployit Product DemoDeployit Product Demo
Deployit Product DemoXebiaLabs
 

Similaire à Moving the Guidewire platform to OSGi - Paul D'Albora (20)

DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013
 
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
 
OSGi Best Practices – Learn how to prevent common mistakes and build robust, ...
OSGi Best Practices – Learn how to prevent common mistakes and build robust, ...OSGi Best Practices – Learn how to prevent common mistakes and build robust, ...
OSGi Best Practices – Learn how to prevent common mistakes and build robust, ...
 
How Oracle Integrates Accessibility into the Development Process
How Oracle Integrates Accessibility into the Development ProcessHow Oracle Integrates Accessibility into the Development Process
How Oracle Integrates Accessibility into the Development Process
 
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
 
The Rocky Cloud Road
The Rocky Cloud RoadThe Rocky Cloud Road
The Rocky Cloud Road
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na Nuvem
 
Oracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version ControlOracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version Control
 
From ci to cd
From ci to cdFrom ci to cd
From ci to cd
 
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptxMulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
 
Use Case: Building OSGi Enterprise Applications (QCon 14)
Use Case: Building OSGi Enterprise Applications (QCon 14)Use Case: Building OSGi Enterprise Applications (QCon 14)
Use Case: Building OSGi Enterprise Applications (QCon 14)
 
Building Modular Enterprise Applications - C Ziegeler
Building Modular Enterprise Applications - C ZiegelerBuilding Modular Enterprise Applications - C Ziegeler
Building Modular Enterprise Applications - C Ziegeler
 
Hyd virtual meetupslides11jul
Hyd virtual meetupslides11julHyd virtual meetupslides11jul
Hyd virtual meetupslides11jul
 
Alexyj Kovaliov "Waterfalling to Agile"
Alexyj Kovaliov "Waterfalling to Agile" Alexyj Kovaliov "Waterfalling to Agile"
Alexyj Kovaliov "Waterfalling to Agile"
 
Creative Automation with Galen Framework
Creative Automation with Galen FrameworkCreative Automation with Galen Framework
Creative Automation with Galen Framework
 
Introduction To Groovy And Grails - SpringPeople
Introduction To Groovy And Grails - SpringPeopleIntroduction To Groovy And Grails - SpringPeople
Introduction To Groovy And Grails - SpringPeople
 
Deploying Stateful Applications Securely & Confidently with Ondat & Weave GitOps
Deploying Stateful Applications Securely & Confidently with Ondat & Weave GitOpsDeploying Stateful Applications Securely & Confidently with Ondat & Weave GitOps
Deploying Stateful Applications Securely & Confidently with Ondat & Weave GitOps
 
Deployit Product Demo
Deployit Product DemoDeployit Product Demo
Deployit Product Demo
 

Plus de 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...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)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)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 LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruumfrancis
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...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...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...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)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...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)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...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...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...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)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)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)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...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)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...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)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)mfrancis
 

Plus de 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...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)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)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 LyaruuOSGi 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...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...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...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)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...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)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...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...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...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)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)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)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...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)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...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)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)
 

Dernier

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 

Dernier (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Moving the Guidewire platform to OSGi - Paul D'Albora

  • 1. © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Moving the Guidewire platform to OSGi A case study Paul D’Albora Guidewire Software pdalbora@guidewire.com March 2012
  • 2. 2 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Agenda • Introduction to the Guidewire platform • Motivation for moving to OSGi • Challenges • Where we are and where we’re going • Q & (hopefully) A
  • 3. 3 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. The Guidewire Platform – Basics • Supports core system software for the global property/casualty insurance industry • Core services: ORM layer, web UI framework, business rules, workflow, automated upgrade, I18N, customer plugins, messaging and web services integration • High degree of configurability • Supports multiple JEE containers
  • 4. 4 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. The Guidewire Platform – Pressures • Constantly adding and improving features for applications • Must not break existing customers • Large code base developed over ten years • Large and growing development team • All of which can lead to …
  • 5. 5 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
  • 6. 6 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission.
  • 7. 7 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Goals • Test components in isolation • Reduce learning curve • Contain maintenance costs • Release components independently
  • 8. 8 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. OSGi • Module system • Versioning • Manageability • Mature, well-defined specifications • Robust community • Services!
  • 9. 9 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Givens • Application must be delivered as a JEE application (EAR/WAR) • Code divided into coarse-grained “modules” forming a DAG of compile-time dependencies • Non-Eclipse IDE (no PDE) • Custom build system
  • 10. 10 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Step 1
  • 11. 11 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Plan • Run Equinox embedded in JEE container using servlet bridge • Define a bundle for each existing code “module” • Replace/Convert 3rd -party jars with OSGi equivalents • Get automated tests running in framework • DON’T try to modularize yet
  • 12. 12 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Roadblocks
  • 13. 13 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Problem: Split Packages • Same package exists in multiple modules • Framework binds to one of them, causing the other “parts” of the package to effectively disappear • Typical for platform and one or more applications to define classes in the same package • This is pervasive in our code
  • 14. 14 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Solution: Fragments • Define an empty “root” bundle • Every bundle is a fragment of root - Fragment-Host: com.guidewire.root • Simulates one bundle • More closely represents original, non-modular, global classpath environment
  • 15. 15 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Problem: 3rd -party libraries • Lots of them (~102 ) • Signed jars • Classpath assumptions
  • 16. 16 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Solution: Varied • Public OSGi bundle repositories – Eclipse Orbit – SpringSource • BND – For signed jars, embed jar within jar and use Bundle- ClassPath – Can combine related jars to deal with split packages • TCCL to work around classpath assumptions • Newer jars being packaged as OSGi bundles
  • 17. 17 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Problem: Servlets • No longer registered in web.xml (just the servlet bridge) • How to register platform and application servlets with HttpService • Ordering requirements (<load-on-startup>)
  • 18. 18 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Solution: Components • Felix Http Whiteboard • Declarative Services with Bnd - @Component(provide=Servlet.class, properties="alias=/path") • For ordering-dependent servlets, register in order with HttpService - Component with @Reference to HttpService
  • 19. 19 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Practical Tips • Learn and use BND • Learn the classloading flow chart (R4.2 Spec, Fig 3.19) – Turn off osgi.compatibility.bootdelegation, osgi.context.bootdelegation in Equinox – No Require-Bundle • Lean on automated tests • Use the framework itself
  • 20. 20 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Current Status • Applications and integration tests running successfully in development • Initial performance testing reveals no significant difference in response times or memory usage • Rolled out to application teams with minimal disruption
  • 21. 21 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Next Steps • Define candidate areas for modularization • Use services to de-couple components • Use services to replace ad hoc registries • Educate developers about service-oriented programming
  • 22. 22 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Example: Static Service Registry • Map of interface Class to implementation instance • Initialized by bootstrap class • Accessed via static methods
  • 23. 23 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Static Service Registry – Code Sample 1
  • 24. 24 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Static Service Registry – Code Sample 2
  • 25. 25 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Static Service Registry – Code Sample 3
  • 26. 26 © Guidewire Software, Inc. All rights reserved. Do not distribute without permission. Static Service Registry – Replacement
  • 28. Give Feedback on the Sessions 1 Sign In: www.eclipsecon.org 2 Select Session Evaluate 3 Vote

Notes de l'éditeur

  1. We’re all probably familiar with this metaphor. It’s a natural consequence of code evolution without proper boundaries. Tug on one strand and you affect something on the other side of the “plate.” And we all know where this leads…
  2. Leads to frustration for new developers
  3. Understanding the pressures we face on the platform team, and that those are only likely to increase, we defined some goals we’d like to have in order to survive. Testing in isolation: we invest a lot in automated testing. Over time, more and more of our tests have had to be written as integration / end-to-end tests. We attempted to use mocks for more “unit” style testing, but our components are not de-coupled enough for that to work. New developers face a daunting challenge. No clear APIs, sub-systems tightly coupled Fixing bugs often requires knowledge over a broad area of the platform Platform must be delivered as a monolith
  4. We decided to go with OSGi Module system provides a way to define boundaries and enforce them Has momentum Manageability is a big advantage – modular architecture allows for wide array of introspection tools Service layer is a simple but extremely powerful way of de-coupling code. Combined with Declarative Services, it is the most exciting aspect for us.
  5. How are we going to get there? Here’s what we’ve got to work with. Customers familiar with and have expertise with managing their own JEE application servers. From their point-of-view, it’s still just a WAR. PL, apps depend on PL For development, no access to PDE Custom, script-based build system
  6. First step is get the platform and applications running in OSGi: replace the foundation
  7. Just want to get the framework in place and prove that it can work.
  8. Renaming packages is not an option at this point. Neither is co-locating the packages. This is not unusual when the package doesn’t mean much.
  9. Last point is important in light of our goal: get platform running in OSGi framework without breaking existing code.
  10. Learned about unresolved dependencies, duplicate packages/classes
  11. Entry points to the applications
  12. Not yet released to customers