SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
© Copyright 2000-2014 TIBCO Software Inc.
Application Isolation
Is there an alternative to Subsystems?
Tim Diekmann!
Principal Architect
TIBCO Software Inc.
1
© Copyright 2000-2014 TIBCO Software Inc.
Disclaimer
Any of the TIBCO ActiveMatrix BusinessWorks materials presented here is
subject to change without notice. This document is TIBCO proprietary
information.
!
This document (including, without limitation, any product roadmap or
statement of direction data) illustrates the planned testing, release and
availability dates for TIBCO products and services. This document is
provided for informational purposes only and its contents are subject to
change without notice. 
!
TIBCO makes no warranties, express or implied, in or relating to this
document or any information in it, including, without limitation, that this
document, or any information in it, is error-free or meets any conditions
of merchantability or fitness for a particular purpose. 
2
© Copyright 2000-2014 TIBCO Software Inc.
Overview
• why multiple applications
• brief history of approaches
• OSGi solution
• why another solution
• Alternative OSGi solution
3
© Copyright 2000-2014 TIBCO Software Inc.
Why multiple applications?
… in a single JVM that is
• save memory (objects and classes)
• reduce management and monitoring overhead
• save CPU on startup and load of applications
• multiple applications vs multi-tenancy
4
© Copyright 2000-2014 TIBCO Software Inc.
very brief History
• web resources
• web applications
• JEE application servers
• application servers like Apache Karaf, Eclipse
Virgo, Paremus Service Fabric, IBM WebSphere,
etc.
• what are applications?
5
© Copyright 2000-2014 TIBCO Software Inc. 6
“Application software is all the computer
software that causes a computer to perform
useful tasks beyond the running of the computer
itself.”
Wikipedia - http://en.wikipedia.org/wiki/Application_software
Application Definition
© Copyright 2000-2014 TIBCO Software Inc.
* in the context of this presentation, Java, and OSGi
• packaged software deployed to an app server:
• versioned unit of release/maintenance
• providing coherent business function
• with a common life cycle
• possibly modular in composition
7
my Application Definition*
© Copyright 2000-2014 TIBCO Software Inc.
Problems
• no isolation
• same OS process, OutOfMemoryErrors, in-memory access
to other application data
• trade-off between sharing versus protecting
• no accounting
• unwanted side effects
• unit of certified deliverable
• cannot possibly test all potential interactions
8
© Copyright 2000-2014 TIBCO Software Inc.
Approaches
• servlet bridge
• nested / child OSGi frameworks
• Apache Karaf
• Eclipse features
• Eclipse Virgo
• IBM WebSphere, Paremus Service Fabric
9
© Copyright 2000-2014 TIBCO Software Inc.
• Deployment Admin Service, Application Admin Service (older)
• nested OSGi framework
• Subsystems
• part of Enterprise Specification, introduced in R5
• based on experience in Eclipse Equinox, Virgo, Apache Aries, and
others
• explicit model of sharing policies: share all, share selected, share
nothing
• visibility boundaries for services, packages, events
• implementation boundary already provided by OSGi service model
10
OSGi Approaches
© Copyright 2000-2014 TIBCO Software Inc.
• rich metadata supports large number of use cases
• common life cycle for constituents
• declarative approach
• independent of OSGi implementation
• reduces memory consumption by sharing
• supports dynamic resolution and installation of applications
• unresolved deployment
• SUBSYSTEM.MF vs DEPLOYMENT.MF
11
Advantages
© Copyright 2000-2014 TIBCO Software Inc.
SUBSYSTEM.MF
Example of Subsystems Metadata
12
Manifest-Version: 1.0!
Subsystem-ManifestVersion: 1.0!
Subsystem-Name: Bank Account!
Subsystem-SymbolicName: com.mybank.account.app!
Subsystem-Version: 1.0!
Subsystem-Type: osgi.subsystem.application!
Subsystem-Content: !
com.mybank.account.bankWeb; version=1.0.0,!
com.mybank.account.bankAccount; version=1.0.0,!
com.mybank.account.common; version=1.0.0,!
com.mybank.account.utility; version=1.0.0!
Use-Bundle: com.mybank.account.admin;version="[1.0.0,2.0.0)"!
Subsystem-ExportService: com.mybank.account.service.AccountService!
Subsystem-ImportService:!
com.mybank.security.UserAuthService;filter="(security=strong)"
© Copyright 2000-2014 TIBCO Software Inc.
Drawbacks
• complicated
• complex policy definitions
13
© Copyright 2000-2014 TIBCO Software Inc.
Drawbacks
• complicated
• complex policy definitions
• configuration vs convention
• missing tooling: details exposed to users, application developers
• issues with common infrastructure services
• e.g. Configuration Admin, Event Admin, Declarative Services, Blueprint and other extenders
• application is aware of subsystem environment, not functional in OSGi environment
without it
• modular applications require updates of metadata in multiple places
• think distributed application development
• dynamic changes to the application
• subsystem needs to be started to share code
14
© Copyright 2000-2014 TIBCO Software Inc.
SUBSYSTEM.MF
Drawbacks
15
Manifest-Version: 1.0!
Subsystem-ManifestVersion: 1.0!
Subsystem-Name: Bank Account!
Subsystem-SymbolicName: com.mybank.account.app!
Subsystem-Version: 1.0!
Subsystem-Type: osgi.subsystem.application!
Subsystem-Content:!
com.mybank.account.bankWeb; version=1.0.0,!
com.mybank.account.bankAccount; version=1.0.0,!
com.mybank.account.common; version=1.0.0,!
com.mybank.account.utility; version=1.0.0!
Use-Bundle: com.mybank.account.admin;version="[1.0.0,2.0.0)"!
Subsystem-ExportService: com.mybank.account.service.AccountService!
Subsystem-ImportService:!
com.mybank.security.UserAuthService;filter="(security=strong)"
© Copyright 2000-2014 TIBCO Software Inc.
Subsystems Improvements
• enhancements worked out in RFC 201 scheduled for
a later release of the Enterprise Specification
• header localization
• weaving hook integration / interaction
• provide deployment manifest at install time
• improve API for management agent
• determine service dependencies of applications
• revisit rules for preferred provider and application resolution
16
© Copyright 2000-2014 TIBCO Software Inc.
Alternative
• use existing ResolverHook, BundleCollisionHook,
EventHook, FindHook etc
• model common infrastructure, shared libraries,
applications based on file system location
• use bundle location to identify source
• apply visibility rules based on location
17
© Copyright 2000-2014 TIBCO Software Inc.
Layering
18
OSGi framework
JVM
Product Infrastructure
Shared SW Shared SW
Application Application Application
© Copyright 2000-2014 TIBCO Software Inc.
File System Layout
19
OSGi framework
JVM
Product Infrastructure
Shared SW Shared SW
Application Application Application
$JAVA_HOME
~/product/lib
~/libs
~/apps
© Copyright 2000-2014 TIBCO Software Inc.
Solution
• file system is source of truth for deployment
• use the JVM as-is with its boot and ext class loaders
• place product code in one folder or structure
• e.g. system or product
• place common infrastructure code in separate folder
• place shared libraries in separate folders
• not necessarily part of the product, separate lifecycle
• place applications in separate folders
20
© Copyright 2000-2014 TIBCO Software Inc.
Visibility Boundaries
21
OSGi framework
JVM
Product Infrastructure
Shared SW Shared SW
Application Application Application
© Copyright 2000-2014 TIBCO Software Inc.
Advantages
• simple
• understandable
• changeable, flexible
• structured by location in file system
• no other metadata required
• unless you want to model other dependencies and
visibility boundaries
• compatible
22
© Copyright 2000-2014 TIBCO Software Inc.
Implementation
• different strategies possible
• multi-tier level visibility
• sensitive vs public services and code
• visibility boundaries enforced via ResolverHooks,
EventHooks, FindHooks, even WaevingHooks
• change strategy via configuration
• support multiple singletons if required by business
logic, e.g. static variables in common classes
23
© Copyright 2000-2014 TIBCO Software Inc.
Disadvantages
• may not support all complex use cases
• requires additional metadata to support finer grain
sharing policies
• too simple?
24
© Copyright 2000-2014 TIBCO Software Inc. 25
TIBCO ActiveMatrix BusinessWorksTM 6
Real World Example
© Copyright 2000-2014 TIBCO Software Inc.
• ESB product, hosting multiple applications in single
OSGi based runtime environment
• install product in one folder
• install applications in a different folder
• determine visibility and accessibility based on
folder location
26
TIBCO BusinessWorksTM 6
© Copyright 2000-2014 TIBCO Software Inc.
Entitites
• product
• BusinessWorks 6
• palettes (part of the product)
• ~16 Palettes
• product extensions
• palettes like salesforce.com, Twitter, etc.
• applications
27
© Copyright 2000-2014 TIBCO Software Inc.
Folder Layout
product layout:
system contains all product code
ext contains links to product extensions
28
application layout:
grouped in AppSpaces
versioned
contains code and configuration
© Copyright 2000-2014 TIBCO Software Inc.
Visibility Boundaries
• product is self-contained in system folder
• does not get wired outside of system folder
• product extensions are able to see and use anything in
product folder
• can also supply their own versions of infrastructure bundles
• visible to all applications
• palettes sit above product and product extensions
• applications sit above palettes
• can provide infrastructure that is confined to application
29
© Copyright 2000-2014 TIBCO Software Inc.
Visibility Boundaries
30
OSGi framework
JVM
BW framework
Application Application Application
BW extensions BW palettes
© Copyright 2000-2014 TIBCO Software Inc.
Applications
31
Application
Module
Module
Module
Application
Module
Module
Module
© Copyright 2000-2014 TIBCO Software Inc.
Specifics
• separate public from internal APIs
• product internals are hidden from upper layers
• application support provided by Eclipse based designer
• additional application metadata
• application identification and versioning
• dependency management
• same hotfix mechanism for product as well as
applications and extensions
32
© Copyright 2000-2014 TIBCO Software Inc.
Hotfixing
• simple, file system based
• system/hotfix folder repeats structure under system
• any files in hotfix override files in original location
• works for outer flat class path as well as OSGi class
path environments
33
© Copyright 2000-2014 TIBCO Software Inc.
the end
34
questions?
© Copyright 2000-2014 TIBCO Software Inc.
References
• OSGi Alliance, http://www.osgi.org
• OSGi Core Specification, http://www.osgi.org/Download/File?url=/download/r5/
osgi.core-5.0.0.pdf
• Enterprise Specification, http://www.osgi.org/Download/File?url=/download/r5/
osgi.enterprise-5.0.0.pdf
• Introduction to Java Multitenancy, http://www.ibm.com/developerworks/library/j-
multitenant-java/
• Apache Aries, https://aries.apache.org
• wikipedia.org, http://en.wikipedia.org/wiki/OSGi
• Equinox Regions, Mind the Gap Blog, http://underlap.blogspot.com/2011/02/stumbling-
towards-better-design.html
• Paremus Service Fabric, http://www.paremus.com/products/products_psf.html
• TIBCO ActiveMatrix BusinessWorks 6, http://www.tibco.com/products/automation/
application-integration/activematrix-businessworks/default.jsp
35

Weitere ähnliche Inhalte

Was ist angesagt?

JavaFX - Bringing rich Internet applications ...
JavaFX - Bringing rich Internet applications ...JavaFX - Bringing rich Internet applications ...
JavaFX - Bringing rich Internet applications ...terrencebarr
 
Whats new in was liberty security and cloud readiness
Whats new in was liberty   security and cloud readinessWhats new in was liberty   security and cloud readiness
Whats new in was liberty security and cloud readinesssflynn073
 
OSAmI-Commons – an OSGi based platform supporting Open Ambient Intelligence f...
OSAmI-Commons – an OSGi based platform supporting Open Ambient Intelligence f...OSAmI-Commons – an OSGi based platform supporting Open Ambient Intelligence f...
OSAmI-Commons – an OSGi based platform supporting Open Ambient Intelligence f...mfrancis
 
Software application architecture
Software application architectureSoftware application architecture
Software application architectureanwitat
 
IBM WebSphere Portal - Die nächste Generation
IBM WebSphere Portal - Die nächste GenerationIBM WebSphere Portal - Die nächste Generation
IBM WebSphere Portal - Die nächste GenerationIBM Lotus
 
Developing the Next Generation Embedded HMIs
Developing the Next Generation Embedded HMIs Developing the Next Generation Embedded HMIs
Developing the Next Generation Embedded HMIs mentoresd
 
Automated Packaging Self-Service Webinar 4th April, 2013
Automated Packaging Self-Service Webinar 4th April, 2013Automated Packaging Self-Service Webinar 4th April, 2013
Automated Packaging Self-Service Webinar 4th April, 2013Oleg Nalyvaiko
 
Wholesale Applications Community
Wholesale Applications CommunityWholesale Applications Community
Wholesale Applications CommunityMobile 2.0 Europe
 
InduSoft Web Studio 8.0 + Service Pack Two Overview
InduSoft Web Studio 8.0 + Service Pack Two OverviewInduSoft Web Studio 8.0 + Service Pack Two Overview
InduSoft Web Studio 8.0 + Service Pack Two OverviewAVEVA
 
Liferay Portal Introduction
Liferay Portal IntroductionLiferay Portal Introduction
Liferay Portal IntroductionNguyen Tung
 
Impact 2014 IEC1159 - Trends in Integration & Governance
Impact 2014 IEC1159 - Trends in Integration & GovernanceImpact 2014 IEC1159 - Trends in Integration & Governance
Impact 2014 IEC1159 - Trends in Integration & GovernanceNicola Hills
 
Liferay as solution for legacy applications
Liferay as solution for legacy applicationsLiferay as solution for legacy applications
Liferay as solution for legacy applicationsManish Kumar Jaiswal
 
ZENworks 2017 - Overview
ZENworks 2017 - OverviewZENworks 2017 - Overview
ZENworks 2017 - OverviewGWAVA
 

Was ist angesagt? (13)

JavaFX - Bringing rich Internet applications ...
JavaFX - Bringing rich Internet applications ...JavaFX - Bringing rich Internet applications ...
JavaFX - Bringing rich Internet applications ...
 
Whats new in was liberty security and cloud readiness
Whats new in was liberty   security and cloud readinessWhats new in was liberty   security and cloud readiness
Whats new in was liberty security and cloud readiness
 
OSAmI-Commons – an OSGi based platform supporting Open Ambient Intelligence f...
OSAmI-Commons – an OSGi based platform supporting Open Ambient Intelligence f...OSAmI-Commons – an OSGi based platform supporting Open Ambient Intelligence f...
OSAmI-Commons – an OSGi based platform supporting Open Ambient Intelligence f...
 
Software application architecture
Software application architectureSoftware application architecture
Software application architecture
 
IBM WebSphere Portal - Die nächste Generation
IBM WebSphere Portal - Die nächste GenerationIBM WebSphere Portal - Die nächste Generation
IBM WebSphere Portal - Die nächste Generation
 
Developing the Next Generation Embedded HMIs
Developing the Next Generation Embedded HMIs Developing the Next Generation Embedded HMIs
Developing the Next Generation Embedded HMIs
 
Automated Packaging Self-Service Webinar 4th April, 2013
Automated Packaging Self-Service Webinar 4th April, 2013Automated Packaging Self-Service Webinar 4th April, 2013
Automated Packaging Self-Service Webinar 4th April, 2013
 
Wholesale Applications Community
Wholesale Applications CommunityWholesale Applications Community
Wholesale Applications Community
 
InduSoft Web Studio 8.0 + Service Pack Two Overview
InduSoft Web Studio 8.0 + Service Pack Two OverviewInduSoft Web Studio 8.0 + Service Pack Two Overview
InduSoft Web Studio 8.0 + Service Pack Two Overview
 
Liferay Portal Introduction
Liferay Portal IntroductionLiferay Portal Introduction
Liferay Portal Introduction
 
Impact 2014 IEC1159 - Trends in Integration & Governance
Impact 2014 IEC1159 - Trends in Integration & GovernanceImpact 2014 IEC1159 - Trends in Integration & Governance
Impact 2014 IEC1159 - Trends in Integration & Governance
 
Liferay as solution for legacy applications
Liferay as solution for legacy applicationsLiferay as solution for legacy applications
Liferay as solution for legacy applications
 
ZENworks 2017 - Overview
ZENworks 2017 - OverviewZENworks 2017 - Overview
ZENworks 2017 - Overview
 

Ähnlich wie Alternative OSGi Application Isolation Using File System Location

PART 1: Intro To JasperReports IO And How To Build Your First Report
PART 1: Intro To JasperReports IO And How To Build Your First ReportPART 1: Intro To JasperReports IO And How To Build Your First Report
PART 1: Intro To JasperReports IO And How To Build Your First ReportTIBCO Jaspersoft
 
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)VMware Tanzu
 
Infrastructure as Code in Large Scale Organizations
Infrastructure as Code in Large Scale OrganizationsInfrastructure as Code in Large Scale Organizations
Infrastructure as Code in Large Scale OrganizationsXebiaLabs
 
2014-wso2 platform-v1.1.0
2014-wso2 platform-v1.1.02014-wso2 platform-v1.1.0
2014-wso2 platform-v1.1.0aaronwso2
 
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...VMworld
 
Made for Each Other: Microservices + PaaS
Made for Each Other: Microservices + PaaSMade for Each Other: Microservices + PaaS
Made for Each Other: Microservices + PaaSVMware Tanzu
 
DevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in MicroservicesDevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in MicroservicesRich Mills
 
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipCloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipVMware Tanzu
 
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipCloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipMatt Stine
 
[2015-11월 정기 세미나] Cloud Native Platform - Pivotal
[2015-11월 정기 세미나] Cloud Native Platform - Pivotal[2015-11월 정기 세미나] Cloud Native Platform - Pivotal
[2015-11월 정기 세미나] Cloud Native Platform - PivotalOpenStack Korea Community
 
Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Ken Owens
 
DevOps for Enterprise Systems : Innovate like a Startup
DevOps for Enterprise Systems : Innovate like a StartupDevOps for Enterprise Systems : Innovate like a Startup
DevOps for Enterprise Systems : Innovate like a StartupDevOps for Enterprise Systems
 
Modernize Service-Oriented Architecture with APIs
Modernize Service-Oriented Architecture with APIsModernize Service-Oriented Architecture with APIs
Modernize Service-Oriented Architecture with APIsApigee | Google Cloud
 
Big Fix Architectural Overview
Big Fix Architectural OverviewBig Fix Architectural Overview
Big Fix Architectural OverviewBrian Dickhaus
 
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native MiddlewareTrends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native MiddlewareKai Wähner
 
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...Kai Wähner
 
Benchmark Maturity of your SaaS Solution
Benchmark Maturity of your SaaS SolutionBenchmark Maturity of your SaaS Solution
Benchmark Maturity of your SaaS SolutionTechcello
 
DevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in MicroservicesDevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in MicroservicesRich Mills
 
Turning up the HEAT with IBM MobileFirst for iOS Apps (Interconnect 2016)
Turning up the HEAT with IBM MobileFirst for iOS Apps (Interconnect 2016)Turning up the HEAT with IBM MobileFirst for iOS Apps (Interconnect 2016)
Turning up the HEAT with IBM MobileFirst for iOS Apps (Interconnect 2016)Michael Elder
 

Ähnlich wie Alternative OSGi Application Isolation Using File System Location (20)

PART 1: Intro To JasperReports IO And How To Build Your First Report
PART 1: Intro To JasperReports IO And How To Build Your First ReportPART 1: Intro To JasperReports IO And How To Build Your First Report
PART 1: Intro To JasperReports IO And How To Build Your First Report
 
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
 
Infrastructure as Code in Large Scale Organizations
Infrastructure as Code in Large Scale OrganizationsInfrastructure as Code in Large Scale Organizations
Infrastructure as Code in Large Scale Organizations
 
2014-wso2 platform-v1.1.0
2014-wso2 platform-v1.1.02014-wso2 platform-v1.1.0
2014-wso2 platform-v1.1.0
 
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
 
Made for Each Other: Microservices + PaaS
Made for Each Other: Microservices + PaaSMade for Each Other: Microservices + PaaS
Made for Each Other: Microservices + PaaS
 
DevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in MicroservicesDevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in Microservices
 
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipCloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
 
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipCloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
 
[2015-11월 정기 세미나] Cloud Native Platform - Pivotal
[2015-11월 정기 세미나] Cloud Native Platform - Pivotal[2015-11월 정기 세미나] Cloud Native Platform - Pivotal
[2015-11월 정기 세미나] Cloud Native Platform - Pivotal
 
Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015
 
DevOps for Enterprise Systems : Innovate like a Startup
DevOps for Enterprise Systems : Innovate like a StartupDevOps for Enterprise Systems : Innovate like a Startup
DevOps for Enterprise Systems : Innovate like a Startup
 
Modernize Service-Oriented Architecture with APIs
Modernize Service-Oriented Architecture with APIsModernize Service-Oriented Architecture with APIs
Modernize Service-Oriented Architecture with APIs
 
Big Fix Architectural Overview
Big Fix Architectural OverviewBig Fix Architectural Overview
Big Fix Architectural Overview
 
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native MiddlewareTrends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native Middleware
 
The Future of DevOps and UrbanCode
The Future of DevOps and UrbanCodeThe Future of DevOps and UrbanCode
The Future of DevOps and UrbanCode
 
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
 
Benchmark Maturity of your SaaS Solution
Benchmark Maturity of your SaaS SolutionBenchmark Maturity of your SaaS Solution
Benchmark Maturity of your SaaS Solution
 
DevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in MicroservicesDevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in Microservices
 
Turning up the HEAT with IBM MobileFirst for iOS Apps (Interconnect 2016)
Turning up the HEAT with IBM MobileFirst for iOS Apps (Interconnect 2016)Turning up the HEAT with IBM MobileFirst for iOS Apps (Interconnect 2016)
Turning up the HEAT with IBM MobileFirst for iOS Apps (Interconnect 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...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
 

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...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)
 

Kürzlich hochgeladen

SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Kürzlich hochgeladen (20)

SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

Alternative OSGi Application Isolation Using File System Location

  • 1. © Copyright 2000-2014 TIBCO Software Inc. Application Isolation Is there an alternative to Subsystems? Tim Diekmann! Principal Architect TIBCO Software Inc. 1
  • 2. © Copyright 2000-2014 TIBCO Software Inc. Disclaimer Any of the TIBCO ActiveMatrix BusinessWorks materials presented here is subject to change without notice. This document is TIBCO proprietary information. ! This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. This document is provided for informational purposes only and its contents are subject to change without notice.  ! TIBCO makes no warranties, express or implied, in or relating to this document or any information in it, including, without limitation, that this document, or any information in it, is error-free or meets any conditions of merchantability or fitness for a particular purpose.  2
  • 3. © Copyright 2000-2014 TIBCO Software Inc. Overview • why multiple applications • brief history of approaches • OSGi solution • why another solution • Alternative OSGi solution 3
  • 4. © Copyright 2000-2014 TIBCO Software Inc. Why multiple applications? … in a single JVM that is • save memory (objects and classes) • reduce management and monitoring overhead • save CPU on startup and load of applications • multiple applications vs multi-tenancy 4
  • 5. © Copyright 2000-2014 TIBCO Software Inc. very brief History • web resources • web applications • JEE application servers • application servers like Apache Karaf, Eclipse Virgo, Paremus Service Fabric, IBM WebSphere, etc. • what are applications? 5
  • 6. © Copyright 2000-2014 TIBCO Software Inc. 6 “Application software is all the computer software that causes a computer to perform useful tasks beyond the running of the computer itself.” Wikipedia - http://en.wikipedia.org/wiki/Application_software Application Definition
  • 7. © Copyright 2000-2014 TIBCO Software Inc. * in the context of this presentation, Java, and OSGi • packaged software deployed to an app server: • versioned unit of release/maintenance • providing coherent business function • with a common life cycle • possibly modular in composition 7 my Application Definition*
  • 8. © Copyright 2000-2014 TIBCO Software Inc. Problems • no isolation • same OS process, OutOfMemoryErrors, in-memory access to other application data • trade-off between sharing versus protecting • no accounting • unwanted side effects • unit of certified deliverable • cannot possibly test all potential interactions 8
  • 9. © Copyright 2000-2014 TIBCO Software Inc. Approaches • servlet bridge • nested / child OSGi frameworks • Apache Karaf • Eclipse features • Eclipse Virgo • IBM WebSphere, Paremus Service Fabric 9
  • 10. © Copyright 2000-2014 TIBCO Software Inc. • Deployment Admin Service, Application Admin Service (older) • nested OSGi framework • Subsystems • part of Enterprise Specification, introduced in R5 • based on experience in Eclipse Equinox, Virgo, Apache Aries, and others • explicit model of sharing policies: share all, share selected, share nothing • visibility boundaries for services, packages, events • implementation boundary already provided by OSGi service model 10 OSGi Approaches
  • 11. © Copyright 2000-2014 TIBCO Software Inc. • rich metadata supports large number of use cases • common life cycle for constituents • declarative approach • independent of OSGi implementation • reduces memory consumption by sharing • supports dynamic resolution and installation of applications • unresolved deployment • SUBSYSTEM.MF vs DEPLOYMENT.MF 11 Advantages
  • 12. © Copyright 2000-2014 TIBCO Software Inc. SUBSYSTEM.MF Example of Subsystems Metadata 12 Manifest-Version: 1.0! Subsystem-ManifestVersion: 1.0! Subsystem-Name: Bank Account! Subsystem-SymbolicName: com.mybank.account.app! Subsystem-Version: 1.0! Subsystem-Type: osgi.subsystem.application! Subsystem-Content: ! com.mybank.account.bankWeb; version=1.0.0,! com.mybank.account.bankAccount; version=1.0.0,! com.mybank.account.common; version=1.0.0,! com.mybank.account.utility; version=1.0.0! Use-Bundle: com.mybank.account.admin;version="[1.0.0,2.0.0)"! Subsystem-ExportService: com.mybank.account.service.AccountService! Subsystem-ImportService:! com.mybank.security.UserAuthService;filter="(security=strong)"
  • 13. © Copyright 2000-2014 TIBCO Software Inc. Drawbacks • complicated • complex policy definitions 13
  • 14. © Copyright 2000-2014 TIBCO Software Inc. Drawbacks • complicated • complex policy definitions • configuration vs convention • missing tooling: details exposed to users, application developers • issues with common infrastructure services • e.g. Configuration Admin, Event Admin, Declarative Services, Blueprint and other extenders • application is aware of subsystem environment, not functional in OSGi environment without it • modular applications require updates of metadata in multiple places • think distributed application development • dynamic changes to the application • subsystem needs to be started to share code 14
  • 15. © Copyright 2000-2014 TIBCO Software Inc. SUBSYSTEM.MF Drawbacks 15 Manifest-Version: 1.0! Subsystem-ManifestVersion: 1.0! Subsystem-Name: Bank Account! Subsystem-SymbolicName: com.mybank.account.app! Subsystem-Version: 1.0! Subsystem-Type: osgi.subsystem.application! Subsystem-Content:! com.mybank.account.bankWeb; version=1.0.0,! com.mybank.account.bankAccount; version=1.0.0,! com.mybank.account.common; version=1.0.0,! com.mybank.account.utility; version=1.0.0! Use-Bundle: com.mybank.account.admin;version="[1.0.0,2.0.0)"! Subsystem-ExportService: com.mybank.account.service.AccountService! Subsystem-ImportService:! com.mybank.security.UserAuthService;filter="(security=strong)"
  • 16. © Copyright 2000-2014 TIBCO Software Inc. Subsystems Improvements • enhancements worked out in RFC 201 scheduled for a later release of the Enterprise Specification • header localization • weaving hook integration / interaction • provide deployment manifest at install time • improve API for management agent • determine service dependencies of applications • revisit rules for preferred provider and application resolution 16
  • 17. © Copyright 2000-2014 TIBCO Software Inc. Alternative • use existing ResolverHook, BundleCollisionHook, EventHook, FindHook etc • model common infrastructure, shared libraries, applications based on file system location • use bundle location to identify source • apply visibility rules based on location 17
  • 18. © Copyright 2000-2014 TIBCO Software Inc. Layering 18 OSGi framework JVM Product Infrastructure Shared SW Shared SW Application Application Application
  • 19. © Copyright 2000-2014 TIBCO Software Inc. File System Layout 19 OSGi framework JVM Product Infrastructure Shared SW Shared SW Application Application Application $JAVA_HOME ~/product/lib ~/libs ~/apps
  • 20. © Copyright 2000-2014 TIBCO Software Inc. Solution • file system is source of truth for deployment • use the JVM as-is with its boot and ext class loaders • place product code in one folder or structure • e.g. system or product • place common infrastructure code in separate folder • place shared libraries in separate folders • not necessarily part of the product, separate lifecycle • place applications in separate folders 20
  • 21. © Copyright 2000-2014 TIBCO Software Inc. Visibility Boundaries 21 OSGi framework JVM Product Infrastructure Shared SW Shared SW Application Application Application
  • 22. © Copyright 2000-2014 TIBCO Software Inc. Advantages • simple • understandable • changeable, flexible • structured by location in file system • no other metadata required • unless you want to model other dependencies and visibility boundaries • compatible 22
  • 23. © Copyright 2000-2014 TIBCO Software Inc. Implementation • different strategies possible • multi-tier level visibility • sensitive vs public services and code • visibility boundaries enforced via ResolverHooks, EventHooks, FindHooks, even WaevingHooks • change strategy via configuration • support multiple singletons if required by business logic, e.g. static variables in common classes 23
  • 24. © Copyright 2000-2014 TIBCO Software Inc. Disadvantages • may not support all complex use cases • requires additional metadata to support finer grain sharing policies • too simple? 24
  • 25. © Copyright 2000-2014 TIBCO Software Inc. 25 TIBCO ActiveMatrix BusinessWorksTM 6 Real World Example
  • 26. © Copyright 2000-2014 TIBCO Software Inc. • ESB product, hosting multiple applications in single OSGi based runtime environment • install product in one folder • install applications in a different folder • determine visibility and accessibility based on folder location 26 TIBCO BusinessWorksTM 6
  • 27. © Copyright 2000-2014 TIBCO Software Inc. Entitites • product • BusinessWorks 6 • palettes (part of the product) • ~16 Palettes • product extensions • palettes like salesforce.com, Twitter, etc. • applications 27
  • 28. © Copyright 2000-2014 TIBCO Software Inc. Folder Layout product layout: system contains all product code ext contains links to product extensions 28 application layout: grouped in AppSpaces versioned contains code and configuration
  • 29. © Copyright 2000-2014 TIBCO Software Inc. Visibility Boundaries • product is self-contained in system folder • does not get wired outside of system folder • product extensions are able to see and use anything in product folder • can also supply their own versions of infrastructure bundles • visible to all applications • palettes sit above product and product extensions • applications sit above palettes • can provide infrastructure that is confined to application 29
  • 30. © Copyright 2000-2014 TIBCO Software Inc. Visibility Boundaries 30 OSGi framework JVM BW framework Application Application Application BW extensions BW palettes
  • 31. © Copyright 2000-2014 TIBCO Software Inc. Applications 31 Application Module Module Module Application Module Module Module
  • 32. © Copyright 2000-2014 TIBCO Software Inc. Specifics • separate public from internal APIs • product internals are hidden from upper layers • application support provided by Eclipse based designer • additional application metadata • application identification and versioning • dependency management • same hotfix mechanism for product as well as applications and extensions 32
  • 33. © Copyright 2000-2014 TIBCO Software Inc. Hotfixing • simple, file system based • system/hotfix folder repeats structure under system • any files in hotfix override files in original location • works for outer flat class path as well as OSGi class path environments 33
  • 34. © Copyright 2000-2014 TIBCO Software Inc. the end 34 questions?
  • 35. © Copyright 2000-2014 TIBCO Software Inc. References • OSGi Alliance, http://www.osgi.org • OSGi Core Specification, http://www.osgi.org/Download/File?url=/download/r5/ osgi.core-5.0.0.pdf • Enterprise Specification, http://www.osgi.org/Download/File?url=/download/r5/ osgi.enterprise-5.0.0.pdf • Introduction to Java Multitenancy, http://www.ibm.com/developerworks/library/j- multitenant-java/ • Apache Aries, https://aries.apache.org • wikipedia.org, http://en.wikipedia.org/wiki/OSGi • Equinox Regions, Mind the Gap Blog, http://underlap.blogspot.com/2011/02/stumbling- towards-better-design.html • Paremus Service Fabric, http://www.paremus.com/products/products_psf.html • TIBCO ActiveMatrix BusinessWorks 6, http://www.tibco.com/products/automation/ application-integration/activematrix-businessworks/default.jsp 35