SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
@MilenDyankov
OSGi Fundamentals
OSGi = Modularity
"When I use a word,"
Humpty Dumpty said,
in rather a scornful tone,
"it means
just what I choose
it to mean - neither
more nor less."
Modularity Maturity Model
proposed by Dr Graham Charters
at the OSGi Community Event 2011
Level 1 Ad Hoc nothing
Level 2 Modules decoupled from artifact
Level 3 Modularity decoupled from identity
Level 4 Loose-Coupling decoupled from implementation
Level 5 Devolution decoupled from ownership
Level 6 Dynamism decoupled from time
Level 1 Ad Hoc nothing
Level 2 Modules decoupled from artifact
Level 3 Modularity decoupled from identity
Level 4 Loose-Coupling decoupled from implementation
Level 5 Devolution decoupled from ownership
Level 6 Dynamism decoupled from time
Level 7 Peter Kriens only available to people who are Peter Kriens
Modularity Maturity Model
proposed by Dr Graham Charters
at the OSGi Community Event 2011
Modularity Maturity Model
proposed by Peter Kriens
in foreword to “Java Application Architecture”
Level 1 Ad Hoc
Level 2 Modules
Level 3 Modularity
Level 4 Loose-Coupling
Level 5 Devolution
Level 6 Dynamism
Unmanaged / chaos
Managing dependencies
Proper isolation
Minimize coupling
Service-oriented architecture
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5 JuServices
Buzzword compliant
Modularity Maturity Model
Level 1 Monolith Unaware of own dependencies
Level 2 Composite Aware of infrastructural dependencies
Level 3 Containers Aware of functional dependencies
Level 4 Discovery Aware of functional requirements
Level 5 Adapts to changing requirementsJuServices
Buzzword compliant
Modularity Maturity Model
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5 JuServices
Buzzword compliant
Modularity Maturity Model
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5 JuServices
Buzzword compliant
Modularity Maturity Model
Buzzword compliant
Modularity Maturity Model
JuServices
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5
Buzzword compliant
Modularity Maturity Model
JuServices
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5 OSGi
product
intermediate
intermediate
material
Product
Entity
Entity
Entity
Entity
Entity Entity
Offer
Offer
Offer
Offer
Offer
Offer
Offer
Offer
Offer
Offer
Offer
Application
Artifact
Artifact
Artifact
Artifact
Artifact Artifact
Export
Export
Export
Export
Export
Export
Export
Export
Export
Export
Export
Artifact
Level 2
decoupled from
artifact
Foo
Level 2
decoupled from
artifact
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Foo
Bundle-SymbolicName: com.foo
Bundle-Vendor: Foo, Inc.
Bundle-Version: 1.0.0
. . .
Buzzword compliant
Modularity Maturity Model
JuServices OSGi
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5
OK!
Level 3
decoupled from
identity
Artifact
Export
Artifact
Level 3
decoupled from
identity
Require-Bundle: com.foo
Foo
Me
Level 3
decoupled from
identity
Export-Package ::= export ( ',' export)*
List of packages (Java package + version) within this jar
file that external code is allowed to access!
Foo
Me
Level 3
decoupled from
identity
Export-Package:
com.standard.power.plugs;
version=”1.0.0”,
com.foo.power.plugs.shop;
version=”2.3.0”;
uses:=”com.standard.power.plugs”,
...
Export-Package ::= export ( ',' export)*
List of packages (Java package + version) within this jar
file that external code is allowed to access!
Foo
Me
Level 3
decoupled from
identity
Import-Package ::= import ( ',' import )*
List of packages (Java package + version-range) that
classes in this jar file expect other bundles to provide!
Foo
Me
Level 3
decoupled from
identity
Import-Package:
com.standard.power.plugs;
version=”[1,2)”,
com.foo.power.plugs.shop;
version=”2.3.0”,
com.other.power.plugs.shop;
version=”1.5.0”,
...
Foo
Me
Import-Package ::= import ( ',' import )*
List of packages (Java package + version-range) that
classes in this jar file expect other bundles to provide!
Buzzword compliant
Modularity Maturity Model
JuServices OSGi
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5
OK!
OK!
Level 4
decoupled from
implementation
Artifact
Artifact
Requirement
Need to
connect
device to
power outlet!
Capability
Can
connect
device to
power outlet!
RESOLVER
Level 4
decoupled from
implementation
Artifact
Artifact
Requirement
Need to
connect
device to
power outlet!
Capability
Can
connect
device to
power outlet!
RESOLVER
Require-Capability:
power.supply;
filter:=”(& (voltage>110)
(voltage<230))”,
electrician;
filter:=”(& (price<50)
(certified=yes))”
Level 4
decoupled from
implementation
Artifact
Artifact
Requirement
Need to
connect
device to
power outlet!
Capability
Can
connect
device to
power outlet!
RESOLVER
Require-Capability:
power.supply;
filter:=”(& (voltage>110)
(voltage<230))”,
electrician;
filter:=”(& (price<50)
(certified=yes))”
org.osgi.framework.system.capabilities.extra=
power.supply;voltage:Long=220
Level 4
decoupled from
implementation
Artifact
Artifact
Requirement
Need to
connect
device to
power outlet!
Capability
Can
connect
device to
power outlet!
RESOLVER
Require-Capability:
power.supply;
filter:=”(& (voltage>110)
(voltage<230))”,
electrician;
filter:=”(& (price<50)
(certified=yes))”
org.osgi.framework.system.capabilities.extra=
power.supply;voltage:Long=220
Provide-Capability:
electrician;price:Long=10;certified=yes
Buzzword compliant
Modularity Maturity Model
JuServices OSGi
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5
OK!
OK!
OK!
Level 5
decoupled from
ownership & time
JuServices
Artifact
Artifact
REGISTRY
Service
Service
Service
Service
Level 5
decoupled from
ownership & time
JuServices
Artifact
Artifact
REGISTRY
Service
Service
Service
Service
manifestmanifest
OSGi service registry
REGISTER
REGISTER
manifest
Interface
Service 1
. . .
Service N
Level 5
decoupled from
ownership & time
JuServices
Artifact
Artifact
REGISTRY
Service
Service
Service
Service
manifestmanifest
OSGi service registry
REGISTER USE
manifest
Interface
Service 1
. . .
Service N
REGISTER
Level 5
decoupled from
ownership & time
JuServices
Artifact
Artifact
REGISTRY
Service
Service
Service
Service
OSGi service registry
SERVLET
SERVLET
GET GET
REGISTER
REGISTER
HTTPServiceImpl
HTTP
Service
HTTPServiceImpl
REGISTER
manifest
Level 5
decoupled from
ownership & time
JuServices
Artifact
Artifact
REGISTRY
Service
Service
Service
Service
manifest
OSGi service registry
HTTP
Servlet
REGISTER
SERVLET
SERVLETGET
(when needed)
HTTPServiceImpl
Servlet1
(path=”/1”)
Servlet2
(path=”/2”)
REGISTER
Level 5
decoupled from
ownership & time
JuServices
Artifact
Artifact
REGISTRY
Service
Service
Service
Service
Register OSGI service
(manually) SINGLETON
PROPERTIES CONTRACT
Level 5
decoupled from
ownership & time
JuServices
Artifact
Artifact
REGISTRY
Service
Service
Service
Service
Use an OSGI service
(manually)
DONE WITH
THE SERVICE
START USING
THE SERVCE
FIND
A SERVCE
Level 5
decoupled from
ownership & time
JuServices
Artifact
Artifact
REGISTRY
Service
Service
Service
Service
Declarative services
and
Service Component Runtime
(SCR)
Level 5
decoupled from
ownership & time
JuServices
Artifact
Artifact
REGISTRY
Service
Service
Service
Service
/OSGI-INF/MyComponent.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<scr:component
name=”MyComponent”
xmlns:scr=”http://www.osgi.org/xmlns/scr/v1.2.0”>
<implementation class=”com.liferay.MyComponent”/>
</scr:component>
Manifest header:
Service-Component: OSGI-INF/MyComponent.xml
Level 5
decoupled from
ownership & time
JuServices
Artifact
Artifact
REGISTRY
Service
Service
Service
Service
@Component(
configurationPid=”hello.component.pid”,
configurationPolicy=ConfigurationPolicy.OPTIONAL,
enabled=true,
immediate=true,
name=”HelloComponent”,
property={
”vendor.name=Liferay”,
”other.property=value”
},
service={HelloService.class, OtherService.class}
)
public class HelloComponent implements MultiService {
. . .
Level 5
decoupled from
ownership & time
JuServices
Artifact
Artifact
REGISTRY
Service
Service
Service
Service
@Activate
void open(Map<String,?> properties) {
}
@Deactivate
void close() {
}
@Modified
void modified(Map<String,?> properties) {
}
Level 5
decoupled from
ownership & time
JuServices
Artifact
Artifact
REGISTRY
Service
Service
Service
Service
@Reference(
cardinality=ReferenceCardinality.MANDATORY,
name = “LogService”,
policy = ReferencePolicy.STATIC,
policyOption=ReferencePolicyOption.RELUCTANT,
service = LogService.class,
target = “(vendor.name=Liferay)”,
unbind = “unsetLog”,
updated = “updatedLog”
)
void setLog( LogService log) {
}
void unsetLog( LogService log) {
}
void updatedLog( Map<String,?> ref ) {
}
Buzzword compliant
Modularity Maturity Model
JuServices OSGi
Level 1 Monolith
Level 2 Composite
Level 3 Containers
Level 4 Discovery
Level 5
OK!
OK!
OK!
OK!
The essence of
modularity is
Not knowing
The essence of
modularity is
Not knowing
Which enforces
optimization for
Predictability
Which results in
application
Agility
The essence of
modularity is
Not knowing
Which enforces
optimization for
Predictability
milen.dyankov@liferay.com
@MilenDyankov
http://www.liferay.com
@Liferay

Más contenido relacionado

La actualidad más candente

Core Java Basics
Core Java BasicsCore Java Basics
Core Java BasicsFayis-QA
 
Clean Code - Design Patterns and Best Practices at Silicon Valley Code Camp
Clean Code - Design Patterns and Best Practices at Silicon Valley Code CampClean Code - Design Patterns and Best Practices at Silicon Valley Code Camp
Clean Code - Design Patterns and Best Practices at Silicon Valley Code CampTheo Jungeblut
 
Clean Code III - Software Craftsmanship
Clean Code III - Software CraftsmanshipClean Code III - Software Craftsmanship
Clean Code III - Software CraftsmanshipTheo Jungeblut
 
Contract First Development with Microsoft Code Contracts and Microsoft Pex at...
Contract First Development with Microsoft Code Contracts and Microsoft Pex at...Contract First Development with Microsoft Code Contracts and Microsoft Pex at...
Contract First Development with Microsoft Code Contracts and Microsoft Pex at...Theo Jungeblut
 
Clean Code II - Dependency Injection
Clean Code II - Dependency InjectionClean Code II - Dependency Injection
Clean Code II - Dependency InjectionTheo Jungeblut
 
Messages, Instances and Initialization
Messages, Instances and InitializationMessages, Instances and Initialization
Messages, Instances and Initializationadil raja
 
Framework engineering JCO 2011
Framework engineering JCO 2011Framework engineering JCO 2011
Framework engineering JCO 2011YoungSu Son
 
Working Effectively With Legacy Code
Working Effectively With Legacy CodeWorking Effectively With Legacy Code
Working Effectively With Legacy CodeNaresh Jain
 
Clean Code at Silicon Valley Code Camp 2011 (02/17/2012)
Clean Code at Silicon Valley Code Camp 2011 (02/17/2012)Clean Code at Silicon Valley Code Camp 2011 (02/17/2012)
Clean Code at Silicon Valley Code Camp 2011 (02/17/2012)Theo Jungeblut
 
Tdd is not about testing (C++ version)
Tdd is not about testing (C++ version)Tdd is not about testing (C++ version)
Tdd is not about testing (C++ version)Gianluca Padovani
 
Tdd is not about testing (OOP)
Tdd is not about testing (OOP)Tdd is not about testing (OOP)
Tdd is not about testing (OOP)Gianluca Padovani
 
Top 50 .NET Interview Questions and Answers 2019 | Edureka
Top 50 .NET Interview Questions and Answers 2019 | EdurekaTop 50 .NET Interview Questions and Answers 2019 | Edureka
Top 50 .NET Interview Questions and Answers 2019 | EdurekaEdureka!
 
Functional Dependency Injection in C#
Functional Dependency Injection in C#Functional Dependency Injection in C#
Functional Dependency Injection in C#Thomas Jaskula
 
C# Interview Questions | Edureka
C# Interview Questions | EdurekaC# Interview Questions | Edureka
C# Interview Questions | EdurekaEdureka!
 
Top 20 software testing interview questions for sdet
Top 20 software testing interview questions for sdetTop 20 software testing interview questions for sdet
Top 20 software testing interview questions for sdetDevLabs Alliance
 
CR Bridge Solutions Pvt Ltd. Java slides
CR Bridge Solutions Pvt Ltd. Java slidesCR Bridge Solutions Pvt Ltd. Java slides
CR Bridge Solutions Pvt Ltd. Java slidesCRBTech
 
Clean Code I - Best Practices
Clean Code I - Best PracticesClean Code I - Best Practices
Clean Code I - Best PracticesTheo Jungeblut
 
Clean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code CampClean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code CampTheo Jungeblut
 

La actualidad más candente (20)

Core Java Basics
Core Java BasicsCore Java Basics
Core Java Basics
 
1
11
1
 
Clean Code - Design Patterns and Best Practices at Silicon Valley Code Camp
Clean Code - Design Patterns and Best Practices at Silicon Valley Code CampClean Code - Design Patterns and Best Practices at Silicon Valley Code Camp
Clean Code - Design Patterns and Best Practices at Silicon Valley Code Camp
 
Clean Code III - Software Craftsmanship
Clean Code III - Software CraftsmanshipClean Code III - Software Craftsmanship
Clean Code III - Software Craftsmanship
 
Contract First Development with Microsoft Code Contracts and Microsoft Pex at...
Contract First Development with Microsoft Code Contracts and Microsoft Pex at...Contract First Development with Microsoft Code Contracts and Microsoft Pex at...
Contract First Development with Microsoft Code Contracts and Microsoft Pex at...
 
Clean Code II - Dependency Injection
Clean Code II - Dependency InjectionClean Code II - Dependency Injection
Clean Code II - Dependency Injection
 
Clean Code 2
Clean Code 2Clean Code 2
Clean Code 2
 
Messages, Instances and Initialization
Messages, Instances and InitializationMessages, Instances and Initialization
Messages, Instances and Initialization
 
Framework engineering JCO 2011
Framework engineering JCO 2011Framework engineering JCO 2011
Framework engineering JCO 2011
 
Working Effectively With Legacy Code
Working Effectively With Legacy CodeWorking Effectively With Legacy Code
Working Effectively With Legacy Code
 
Clean Code at Silicon Valley Code Camp 2011 (02/17/2012)
Clean Code at Silicon Valley Code Camp 2011 (02/17/2012)Clean Code at Silicon Valley Code Camp 2011 (02/17/2012)
Clean Code at Silicon Valley Code Camp 2011 (02/17/2012)
 
Tdd is not about testing (C++ version)
Tdd is not about testing (C++ version)Tdd is not about testing (C++ version)
Tdd is not about testing (C++ version)
 
Tdd is not about testing (OOP)
Tdd is not about testing (OOP)Tdd is not about testing (OOP)
Tdd is not about testing (OOP)
 
Top 50 .NET Interview Questions and Answers 2019 | Edureka
Top 50 .NET Interview Questions and Answers 2019 | EdurekaTop 50 .NET Interview Questions and Answers 2019 | Edureka
Top 50 .NET Interview Questions and Answers 2019 | Edureka
 
Functional Dependency Injection in C#
Functional Dependency Injection in C#Functional Dependency Injection in C#
Functional Dependency Injection in C#
 
C# Interview Questions | Edureka
C# Interview Questions | EdurekaC# Interview Questions | Edureka
C# Interview Questions | Edureka
 
Top 20 software testing interview questions for sdet
Top 20 software testing interview questions for sdetTop 20 software testing interview questions for sdet
Top 20 software testing interview questions for sdet
 
CR Bridge Solutions Pvt Ltd. Java slides
CR Bridge Solutions Pvt Ltd. Java slidesCR Bridge Solutions Pvt Ltd. Java slides
CR Bridge Solutions Pvt Ltd. Java slides
 
Clean Code I - Best Practices
Clean Code I - Best PracticesClean Code I - Best Practices
Clean Code I - Best Practices
 
Clean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code CampClean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code Camp
 

Destacado

Moved to https://slidr.io/azzazzel/osgi-for-outsiders
Moved to https://slidr.io/azzazzel/osgi-for-outsidersMoved to https://slidr.io/azzazzel/osgi-for-outsiders
Moved to https://slidr.io/azzazzel/osgi-for-outsidersMilen Dyankov
 
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...Milen Dyankov
 
Moved to https://slidr.io/azzazzel/your-role-in-the-next-release-of-world-pro...
Moved to https://slidr.io/azzazzel/your-role-in-the-next-release-of-world-pro...Moved to https://slidr.io/azzazzel/your-role-in-the-next-release-of-world-pro...
Moved to https://slidr.io/azzazzel/your-role-in-the-next-release-of-world-pro...Milen Dyankov
 
Moved to https://slidr.io/azzazzel/things-you-cannot-do-before-7
Moved to https://slidr.io/azzazzel/things-you-cannot-do-before-7Moved to https://slidr.io/azzazzel/things-you-cannot-do-before-7
Moved to https://slidr.io/azzazzel/things-you-cannot-do-before-7Milen Dyankov
 
Moved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmx
Moved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmxMoved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmx
Moved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmxMilen Dyankov
 
Moved to https://slidr.io/azzazzel/leveraging-osgi-to-create-extensible-plugi...
Moved to https://slidr.io/azzazzel/leveraging-osgi-to-create-extensible-plugi...Moved to https://slidr.io/azzazzel/leveraging-osgi-to-create-extensible-plugi...
Moved to https://slidr.io/azzazzel/leveraging-osgi-to-create-extensible-plugi...Milen Dyankov
 
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterpriseMoved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterpriseMilen Dyankov
 
Moved to https://slidr.io/azzazzel/liferay-multi-channel-mobile-delivery-plat...
Moved to https://slidr.io/azzazzel/liferay-multi-channel-mobile-delivery-plat...Moved to https://slidr.io/azzazzel/liferay-multi-channel-mobile-delivery-plat...
Moved to https://slidr.io/azzazzel/liferay-multi-channel-mobile-delivery-plat...Milen Dyankov
 
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten ZiegelerNew and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegelermfrancis
 
Microservices and OSGi: Better together?
Microservices and OSGi: Better together?Microservices and OSGi: Better together?
Microservices and OSGi: Better together?Graham Charters
 
Protobuf & Code Generation + Go-Kit
Protobuf & Code Generation + Go-KitProtobuf & Code Generation + Go-Kit
Protobuf & Code Generation + Go-KitManfred Touron
 
Reactive Programming in Spring 5
Reactive Programming in Spring 5Reactive Programming in Spring 5
Reactive Programming in Spring 5poutsma
 
Microservices OSGi-running-with-apache-karaf
Microservices OSGi-running-with-apache-karafMicroservices OSGi-running-with-apache-karaf
Microservices OSGi-running-with-apache-karafAchim Nierbeck
 
"PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио...
"PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио..."PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио...
"PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио...Badoo Development
 
"Производительность MySQL: что нового?"
"Производительность MySQL: что нового?""Производительность MySQL: что нового?"
"Производительность MySQL: что нового?"Badoo Development
 
"Великолепный API без Rest", Констатин Якушев (Badoo)
 "Великолепный API без Rest", Констатин Якушев (Badoo) "Великолепный API без Rest", Констатин Якушев (Badoo)
"Великолепный API без Rest", Констатин Якушев (Badoo)Badoo Development
 
Moved to https://slidr.io/azzazzel/what-is-a-portal
Moved to https://slidr.io/azzazzel/what-is-a-portalMoved to https://slidr.io/azzazzel/what-is-a-portal
Moved to https://slidr.io/azzazzel/what-is-a-portalMilen Dyankov
 
Thrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased ComparisonThrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased ComparisonIgor Anishchenko
 

Destacado (20)

Moved to https://slidr.io/azzazzel/osgi-for-outsiders
Moved to https://slidr.io/azzazzel/osgi-for-outsidersMoved to https://slidr.io/azzazzel/osgi-for-outsiders
Moved to https://slidr.io/azzazzel/osgi-for-outsiders
 
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
 
Moved to https://slidr.io/azzazzel/your-role-in-the-next-release-of-world-pro...
Moved to https://slidr.io/azzazzel/your-role-in-the-next-release-of-world-pro...Moved to https://slidr.io/azzazzel/your-role-in-the-next-release-of-world-pro...
Moved to https://slidr.io/azzazzel/your-role-in-the-next-release-of-world-pro...
 
Moved to https://slidr.io/azzazzel/things-you-cannot-do-before-7
Moved to https://slidr.io/azzazzel/things-you-cannot-do-before-7Moved to https://slidr.io/azzazzel/things-you-cannot-do-before-7
Moved to https://slidr.io/azzazzel/things-you-cannot-do-before-7
 
Moved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmx
Moved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmxMoved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmx
Moved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmx
 
Moved to https://slidr.io/azzazzel/leveraging-osgi-to-create-extensible-plugi...
Moved to https://slidr.io/azzazzel/leveraging-osgi-to-create-extensible-plugi...Moved to https://slidr.io/azzazzel/leveraging-osgi-to-create-extensible-plugi...
Moved to https://slidr.io/azzazzel/leveraging-osgi-to-create-extensible-plugi...
 
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterpriseMoved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
 
Moved to https://slidr.io/azzazzel/liferay-multi-channel-mobile-delivery-plat...
Moved to https://slidr.io/azzazzel/liferay-multi-channel-mobile-delivery-plat...Moved to https://slidr.io/azzazzel/liferay-multi-channel-mobile-delivery-plat...
Moved to https://slidr.io/azzazzel/liferay-multi-channel-mobile-delivery-plat...
 
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten ZiegelerNew and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
 
Microservices and OSGi: Better together?
Microservices and OSGi: Better together?Microservices and OSGi: Better together?
Microservices and OSGi: Better together?
 
Reactive Architectures
Reactive ArchitecturesReactive Architectures
Reactive Architectures
 
Protobuf & Code Generation + Go-Kit
Protobuf & Code Generation + Go-KitProtobuf & Code Generation + Go-Kit
Protobuf & Code Generation + Go-Kit
 
OSGi Blueprint Services
OSGi Blueprint ServicesOSGi Blueprint Services
OSGi Blueprint Services
 
Reactive Programming in Spring 5
Reactive Programming in Spring 5Reactive Programming in Spring 5
Reactive Programming in Spring 5
 
Microservices OSGi-running-with-apache-karaf
Microservices OSGi-running-with-apache-karafMicroservices OSGi-running-with-apache-karaf
Microservices OSGi-running-with-apache-karaf
 
"PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио...
"PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио..."PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио...
"PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио...
 
"Производительность MySQL: что нового?"
"Производительность MySQL: что нового?""Производительность MySQL: что нового?"
"Производительность MySQL: что нового?"
 
"Великолепный API без Rest", Констатин Якушев (Badoo)
 "Великолепный API без Rest", Констатин Якушев (Badoo) "Великолепный API без Rest", Констатин Якушев (Badoo)
"Великолепный API без Rest", Констатин Якушев (Badoo)
 
Moved to https://slidr.io/azzazzel/what-is-a-portal
Moved to https://slidr.io/azzazzel/what-is-a-portalMoved to https://slidr.io/azzazzel/what-is-a-portal
Moved to https://slidr.io/azzazzel/what-is-a-portal
 
Thrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased ComparisonThrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased Comparison
 

Similar a Moved to https://slidr.io/azzazzel/osgi-fundamentals

Professional Code Reviews - Bogdan Gusiev
Professional Code Reviews - Bogdan GusievProfessional Code Reviews - Bogdan Gusiev
Professional Code Reviews - Bogdan GusievRuby Meditation
 
Go Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
Go Reactive: Event-Driven, Scalable, Resilient & Responsive SystemsGo Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
Go Reactive: Event-Driven, Scalable, Resilient & Responsive SystemsJonas Bonér
 
Kotlin what_you_need_to_know-converted event 4 with nigerians
Kotlin  what_you_need_to_know-converted event 4 with nigeriansKotlin  what_you_need_to_know-converted event 4 with nigerians
Kotlin what_you_need_to_know-converted event 4 with nigeriansjunaidhasan17
 
Modular JavaScript in an OSGi World - S Mak
Modular JavaScript in an OSGi World - S MakModular JavaScript in an OSGi World - S Mak
Modular JavaScript in an OSGi World - S Makmfrancis
 
JavaOne 2017 - TestContainers: integration testing without the hassle
JavaOne 2017 - TestContainers: integration testing without the hassleJavaOne 2017 - TestContainers: integration testing without the hassle
JavaOne 2017 - TestContainers: integration testing without the hassleAnton Arhipov
 
OOP-Advanced Programming with c++
OOP-Advanced Programming with c++OOP-Advanced Programming with c++
OOP-Advanced Programming with c++Mohamed Essam
 
14_inheritance.ppt
14_inheritance.ppt14_inheritance.ppt
14_inheritance.pptsundas65
 
Phosphor: Illuminating Dynamic Data Flow in Commodity JVMs
Phosphor: Illuminating Dynamic Data Flow in Commodity JVMsPhosphor: Illuminating Dynamic Data Flow in Commodity JVMs
Phosphor: Illuminating Dynamic Data Flow in Commodity JVMsjon_bell
 
End-2-End test environments, a dead End road
End-2-End test environments, a dead End roadEnd-2-End test environments, a dead End road
End-2-End test environments, a dead End roadRoy Braam
 
Test Driven Development - Workshop
Test Driven Development - WorkshopTest Driven Development - Workshop
Test Driven Development - WorkshopAnjana Somathilake
 
New Ideas for Old Code - Greach
New Ideas for Old Code - GreachNew Ideas for Old Code - Greach
New Ideas for Old Code - GreachHamletDRC
 
Beyond design patterns phpnw14
Beyond design patterns   phpnw14Beyond design patterns   phpnw14
Beyond design patterns phpnw14Anthony Ferrara
 
[Ultracode Munich #4] Short introduction to the new Android build system incl...
[Ultracode Munich #4] Short introduction to the new Android build system incl...[Ultracode Munich #4] Short introduction to the new Android build system incl...
[Ultracode Munich #4] Short introduction to the new Android build system incl...BeMyApp
 
Dependency injection with koin
Dependency injection with koinDependency injection with koin
Dependency injection with koinSean Tsai
 
Continous Delivering a PHP application
Continous Delivering a PHP applicationContinous Delivering a PHP application
Continous Delivering a PHP applicationJavier López
 

Similar a Moved to https://slidr.io/azzazzel/osgi-fundamentals (20)

Javantura v4 - What’s NOT new in modular Java - Milen Dyankov
Javantura v4 - What’s NOT new in modular Java - Milen DyankovJavantura v4 - What’s NOT new in modular Java - Milen Dyankov
Javantura v4 - What’s NOT new in modular Java - Milen Dyankov
 
Professional Code Reviews - Bogdan Gusiev
Professional Code Reviews - Bogdan GusievProfessional Code Reviews - Bogdan Gusiev
Professional Code Reviews - Bogdan Gusiev
 
Go Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
Go Reactive: Event-Driven, Scalable, Resilient & Responsive SystemsGo Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
Go Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
 
AMIS definer invoker rights
AMIS definer invoker rightsAMIS definer invoker rights
AMIS definer invoker rights
 
Kotlin what_you_need_to_know-converted event 4 with nigerians
Kotlin  what_you_need_to_know-converted event 4 with nigeriansKotlin  what_you_need_to_know-converted event 4 with nigerians
Kotlin what_you_need_to_know-converted event 4 with nigerians
 
JavaHTP6e_10.ppt
JavaHTP6e_10.pptJavaHTP6e_10.ppt
JavaHTP6e_10.ppt
 
Modular JavaScript in an OSGi World - S Mak
Modular JavaScript in an OSGi World - S MakModular JavaScript in an OSGi World - S Mak
Modular JavaScript in an OSGi World - S Mak
 
JavaOne 2017 - TestContainers: integration testing without the hassle
JavaOne 2017 - TestContainers: integration testing without the hassleJavaOne 2017 - TestContainers: integration testing without the hassle
JavaOne 2017 - TestContainers: integration testing without the hassle
 
OOP-Advanced Programming with c++
OOP-Advanced Programming with c++OOP-Advanced Programming with c++
OOP-Advanced Programming with c++
 
14_inheritance.ppt
14_inheritance.ppt14_inheritance.ppt
14_inheritance.ppt
 
Phosphor: Illuminating Dynamic Data Flow in Commodity JVMs
Phosphor: Illuminating Dynamic Data Flow in Commodity JVMsPhosphor: Illuminating Dynamic Data Flow in Commodity JVMs
Phosphor: Illuminating Dynamic Data Flow in Commodity JVMs
 
End-2-End test environments, a dead End road
End-2-End test environments, a dead End roadEnd-2-End test environments, a dead End road
End-2-End test environments, a dead End road
 
intellimeet
intellimeetintellimeet
intellimeet
 
Test Driven Development - Workshop
Test Driven Development - WorkshopTest Driven Development - Workshop
Test Driven Development - Workshop
 
New Ideas for Old Code - Greach
New Ideas for Old Code - GreachNew Ideas for Old Code - Greach
New Ideas for Old Code - Greach
 
Beyond design patterns phpnw14
Beyond design patterns   phpnw14Beyond design patterns   phpnw14
Beyond design patterns phpnw14
 
[Ultracode Munich #4] Short introduction to the new Android build system incl...
[Ultracode Munich #4] Short introduction to the new Android build system incl...[Ultracode Munich #4] Short introduction to the new Android build system incl...
[Ultracode Munich #4] Short introduction to the new Android build system incl...
 
Dependency injection with koin
Dependency injection with koinDependency injection with koin
Dependency injection with koin
 
Koin Quickstart
Koin QuickstartKoin Quickstart
Koin Quickstart
 
Continous Delivering a PHP application
Continous Delivering a PHP applicationContinous Delivering a PHP application
Continous Delivering a PHP application
 

Último

%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedDelhi Call girls
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 

Último (20)

%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 

Moved to https://slidr.io/azzazzel/osgi-fundamentals