SlideShare a Scribd company logo
Why Have TheWhy Have The
OSGiOSGi SpecificationsSpecifications
Been Based OnBeen Based On
JavaJava™™ TechnologyTechnology
??
ByBy
Peter Kriens, CEOPeter Kriens, CEO aQuteaQute
OSGiOSGi Technology OfficerTechnology Officer
www.www.aQuteaQute.se.se
www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 22
ContentContent
Interpreted and Compiled languagesInterpreted and Compiled languages
Detailed look at IssuesDetailed look at Issues
Comparison with .NETComparison with .NET
ConclusionConclusion
www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 33
Interpreted LanguagesInterpreted Languages
Interpreter/VM isInterpreter/VM is betweenbetween source code and CPUsource code and CPU
Java is an interpreter with a defined executableJava is an interpreter with a defined executable
format: VMformat: VM
Compiled
Source code
Compiler
CPU
Java
Source code
javac
VM
CPU
Interpreted
Source code
CPU
Interpreter
byte-codes
www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 44
PortabilityPortability
Interpreters are easier to port to other environmentsInterpreters are easier to port to other environments
No Source Code changes requiredNo Source Code changes required
Source code Source code Source code
Compiler javac
VM
Interpreted Compiled Java
CPUCPU CPU
Interpreter
Interpreter VM
Source code
Compiler
CPUCPUCPU
www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 55
Illegal Access To MemoryIllegal Access To Memory
No Illegal Access: Reduces security threats, ImprovesNo Illegal Access: Reduces security threats, Improves
stabilitystability
No (more) memory exceptions and buffer overrunsNo (more) memory exceptions and buffer overruns
Compiler
Interpreted Compiled Java
CPUCPU CPU
Interpreter
javac
VM
Source code Source code Source code
www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 66
VersioningVersioning
Solves many version issues: Simpler deploymentSolves many version issues: Simpler deployment
No More: Requires version 5.12.1.4No More: Requires version 5.12.1.4--kwtkwt
Interpreters use symbolic linking: more robustInterpreters use symbolic linking: more robust
Compiler
Interpreted Compiled Java
CPUCPU CPU
Interpreter
javac
VM
Source code Source code Source code
lib liblib
www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 77
Type Problems DetectionType Problems Detection
Early detection of bugs: improved productivityEarly detection of bugs: improved productivity
Accidental and intended type violationsAccidental and intended type violations
Java finds all type errors, and many earlyJava finds all type errors, and many early
Compiler
Interpreted Compiled Java
CPUCPU CPU
Interpreter
javac
VM
Source code Source code Source code
www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 88
PerformancePerformance
PrePre--processing reduces overhead: faster startupprocessing reduces overhead: faster startup
Compiled code is most efficientCompiled code is most efficient
JIT techniques can reduce the performance gapJIT techniques can reduce the performance gap
Compiler
Interpreted Compiled Java
CPUCPU CPU
Interpreter
javac
VM
Source code Source code Source code
www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 99
Too Many Libraries ...Too Many Libraries ...
Foundation library: One App for all platforms!Foundation library: One App for all platforms!
Problems increase exponentially!Problems increase exponentially!
JavaJava very wellvery well defined, including rundefined, including run--timetime
Interpreted
Source code
mod
Interpreter
A-lib
mod
B-lib
Compiled
Source code
mod mod
Compiler
A-lib B-lib
Java
Source code
mod mod
VM
rt.jar
www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 1010
Do It Right versus PerformanceDo It Right versus Performance
Cannot performCannot perform hackshacks: security versus performance: security versus performance
Traditional code hasTraditional code has hackshacks that perform wellthat perform well
HacksHacks increase maintenance cost and field problemsincrease maintenance cost and field problems
Source code
memory
= byte= int
Conversion through
casting
Source code
memory
Invalid memory
access checks
Source code
unicode
Use of Unicode
versus bytes
Source code
s meta
Meta information
for diagnostics
Source code
s
Security Checks
security check
www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 1111
Life Cycle ManagementLife Cycle Management
Loading policy defined in application code: FlexibilityLoading policy defined in application code: Flexibility
Used by theUsed by the OSGiOSGi specificationsspecifications
Policies implemented by application codePolicies implemented by application code
Traditional
run-time
CPU
code
Java
VM
CPU
= Class Loadernetwork
code code
code
www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 1212
SecuritySecurity
Language includes security check: Safe codeLanguage includes security check: Safe code
Prevents against viruses and wormsPrevents against viruses and worms
First language with builtFirst language with built--in security architecturein security architecture
Application A
Application B
Application C
method foo SecurityManager
resource x
Verify permissions
for resource x
www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 1313
But What AboutBut What About
MicrosoftMicrosoft’’s .NETs .NET
??
www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 1414
What is .NET?What is .NET?
www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 1515
Java versus .NET CLI/CLRJava versus .NET CLI/CLR
Java VM technology is similar to .NET C#Java VM technology is similar to .NET C#
But the Java environment is:But the Java environment is:
–– More matureMore mature
–– Not controlled by a single vendor: JCPNot controlled by a single vendor: JCP
–– Applicable for embedded devicesApplicable for embedded devices
–– Coherent environment (Coherent environment (singlesingle syntax)syntax)
–– Exists for virtually every OS in existence,Exists for virtually every OS in existence, todaytoday
–– Runs theRuns the OSGiOSGi specifications!specifications!
www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 1616
ConclusionConclusion
PortabilityPortability
Safety and security featuresSafety and security features
Increased productivityIncreased productivity
Class loaders makeClass loaders make OSGiOSGi possiblepossible
Interpreted language is the right choice for theInterpreted language is the right choice for the OSGiOSGi
Should we use Java today [again]?Should we use Java today [again]?
YES!YES!
www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 1717
QuestionsQuestions
??
Contact:Contact:
Peter.Kriens@aQute.sePeter.Kriens@aQute.se

More Related Content

PDF
Dev(Sec)Ops - Architecture for Security and Compliance
PDF
CDI 2.0 (JSR 365) - Java Day Tokyo 2017 (English)
PDF
RTOS application verified by VeriFast, and future plan
KEY
Advanced IDE functionality in modern language workbenches
PPTX
Integreation
PDF
How to reverse engineer Android applications
PDF
Scrum is not enough - being a successful agile engineer
ODP
Concepts of JetBrains MPS
Dev(Sec)Ops - Architecture for Security and Compliance
CDI 2.0 (JSR 365) - Java Day Tokyo 2017 (English)
RTOS application verified by VeriFast, and future plan
Advanced IDE functionality in modern language workbenches
Integreation
How to reverse engineer Android applications
Scrum is not enough - being a successful agile engineer
Concepts of JetBrains MPS

What's hot (8)

DOCX
Kannan_Resume
PDF
Android Native Development Kit
DOCX
SoftwareEngineer
PDF
Best practices of project management for small teams
DOC
Kirti_Exp_Datacom_testing
DOCX
SoftwareEngineer
DOCX
SoftwareEngineer
PDF
Introduction to the Android NDK
Kannan_Resume
Android Native Development Kit
SoftwareEngineer
Best practices of project management for small teams
Kirti_Exp_Datacom_testing
SoftwareEngineer
SoftwareEngineer
Introduction to the Android NDK
Ad

Similar to Why Have The Specifications Been Based On Java™ Technology? - P Kriens (20)

PPTX
A Comparison of .NET Framework vs. Java Virtual Machine
PDF
10 Reasons Why Java Now Rocks More Than Ever
PPTX
A tour of Java and the JVM
PPTX
Unit1 introduction to Java
PPT
Java for beginners in java and want to write vtu exams
PPTX
Introduction to Single page application in web desing
PPTX
GOTO Night with Charles Nutter Slides
PPTX
Java byte code & virtual machine
PPT
J2ee strutswithhibernate-140121221332-phpapp01
DOCX
FRAUD DETECTION IN ONLINE AUCTIONING
PPT
Java & J2EE Struts with Hibernate Framework
PDF
Real World Java Compatibility (Tim Ellison)
PPSX
Java Semimar Slide (Cetpa)
PPSX
Java Semimar Slide (Cetpa)
PDF
complete_referenceoverview.pdf
PPT
Basic javaprogramming(session1)
PPTX
Java is a new language on the mainframe
PPTX
1_Introduction to Java.pptx java programming
PPT
Java basic
A Comparison of .NET Framework vs. Java Virtual Machine
10 Reasons Why Java Now Rocks More Than Ever
A tour of Java and the JVM
Unit1 introduction to Java
Java for beginners in java and want to write vtu exams
Introduction to Single page application in web desing
GOTO Night with Charles Nutter Slides
Java byte code & virtual machine
J2ee strutswithhibernate-140121221332-phpapp01
FRAUD DETECTION IN ONLINE AUCTIONING
Java & J2EE Struts with Hibernate Framework
Real World Java Compatibility (Tim Ellison)
Java Semimar Slide (Cetpa)
Java Semimar Slide (Cetpa)
complete_referenceoverview.pdf
Basic javaprogramming(session1)
Java is a new language on the mainframe
1_Introduction to Java.pptx java programming
Java basic
Ad

More from mfrancis (20)

PDF
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
PDF
OSGi and Java 9+ - BJ Hargrave (IBM)
PDF
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
PDF
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
PDF
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
PDF
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
PDF
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
PDF
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
PDF
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
PDF
OSGi CDI Integration Specification - Ray Augé (Liferay)
PDF
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
PDF
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
PDF
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
PDF
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
PDF
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
PDF
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
PDF
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
PDF
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
PDF
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
PDF
How to connect your OSGi application - Dirk Fauth (Bosch)
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
OSGi and Java 9+ - BJ Hargrave (IBM)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
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...
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
OSGi CDI Integration Specification - Ray Augé (Liferay)
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...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
How to connect your OSGi application - Dirk Fauth (Bosch)

Recently uploaded (20)

PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
KodekX | Application Modernization Development
PDF
Encapsulation theory and applications.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Spectroscopy.pptx food analysis technology
PDF
Electronic commerce courselecture one. Pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
cuic standard and advanced reporting.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
“AI and Expert System Decision Support & Business Intelligence Systems”
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Advanced methodologies resolving dimensionality complications for autism neur...
Review of recent advances in non-invasive hemoglobin estimation
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
KodekX | Application Modernization Development
Encapsulation theory and applications.pdf
MIND Revenue Release Quarter 2 2025 Press Release
20250228 LYD VKU AI Blended-Learning.pptx
Chapter 3 Spatial Domain Image Processing.pdf
Spectroscopy.pptx food analysis technology
Electronic commerce courselecture one. Pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
sap open course for s4hana steps from ECC to s4
Building Integrated photovoltaic BIPV_UPV.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
cuic standard and advanced reporting.pdf

Why Have The Specifications Been Based On Java™ Technology? - P Kriens

  • 1. Why Have TheWhy Have The OSGiOSGi SpecificationsSpecifications Been Based OnBeen Based On JavaJava™™ TechnologyTechnology ?? ByBy Peter Kriens, CEOPeter Kriens, CEO aQuteaQute OSGiOSGi Technology OfficerTechnology Officer www.www.aQuteaQute.se.se
  • 2. www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 22 ContentContent Interpreted and Compiled languagesInterpreted and Compiled languages Detailed look at IssuesDetailed look at Issues Comparison with .NETComparison with .NET ConclusionConclusion
  • 3. www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 33 Interpreted LanguagesInterpreted Languages Interpreter/VM isInterpreter/VM is betweenbetween source code and CPUsource code and CPU Java is an interpreter with a defined executableJava is an interpreter with a defined executable format: VMformat: VM Compiled Source code Compiler CPU Java Source code javac VM CPU Interpreted Source code CPU Interpreter byte-codes
  • 4. www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 44 PortabilityPortability Interpreters are easier to port to other environmentsInterpreters are easier to port to other environments No Source Code changes requiredNo Source Code changes required Source code Source code Source code Compiler javac VM Interpreted Compiled Java CPUCPU CPU Interpreter Interpreter VM Source code Compiler CPUCPUCPU
  • 5. www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 55 Illegal Access To MemoryIllegal Access To Memory No Illegal Access: Reduces security threats, ImprovesNo Illegal Access: Reduces security threats, Improves stabilitystability No (more) memory exceptions and buffer overrunsNo (more) memory exceptions and buffer overruns Compiler Interpreted Compiled Java CPUCPU CPU Interpreter javac VM Source code Source code Source code
  • 6. www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 66 VersioningVersioning Solves many version issues: Simpler deploymentSolves many version issues: Simpler deployment No More: Requires version 5.12.1.4No More: Requires version 5.12.1.4--kwtkwt Interpreters use symbolic linking: more robustInterpreters use symbolic linking: more robust Compiler Interpreted Compiled Java CPUCPU CPU Interpreter javac VM Source code Source code Source code lib liblib
  • 7. www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 77 Type Problems DetectionType Problems Detection Early detection of bugs: improved productivityEarly detection of bugs: improved productivity Accidental and intended type violationsAccidental and intended type violations Java finds all type errors, and many earlyJava finds all type errors, and many early Compiler Interpreted Compiled Java CPUCPU CPU Interpreter javac VM Source code Source code Source code
  • 8. www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 88 PerformancePerformance PrePre--processing reduces overhead: faster startupprocessing reduces overhead: faster startup Compiled code is most efficientCompiled code is most efficient JIT techniques can reduce the performance gapJIT techniques can reduce the performance gap Compiler Interpreted Compiled Java CPUCPU CPU Interpreter javac VM Source code Source code Source code
  • 9. www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 99 Too Many Libraries ...Too Many Libraries ... Foundation library: One App for all platforms!Foundation library: One App for all platforms! Problems increase exponentially!Problems increase exponentially! JavaJava very wellvery well defined, including rundefined, including run--timetime Interpreted Source code mod Interpreter A-lib mod B-lib Compiled Source code mod mod Compiler A-lib B-lib Java Source code mod mod VM rt.jar
  • 10. www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 1010 Do It Right versus PerformanceDo It Right versus Performance Cannot performCannot perform hackshacks: security versus performance: security versus performance Traditional code hasTraditional code has hackshacks that perform wellthat perform well HacksHacks increase maintenance cost and field problemsincrease maintenance cost and field problems Source code memory = byte= int Conversion through casting Source code memory Invalid memory access checks Source code unicode Use of Unicode versus bytes Source code s meta Meta information for diagnostics Source code s Security Checks security check
  • 11. www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 1111 Life Cycle ManagementLife Cycle Management Loading policy defined in application code: FlexibilityLoading policy defined in application code: Flexibility Used by theUsed by the OSGiOSGi specificationsspecifications Policies implemented by application codePolicies implemented by application code Traditional run-time CPU code Java VM CPU = Class Loadernetwork code code code
  • 12. www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 1212 SecuritySecurity Language includes security check: Safe codeLanguage includes security check: Safe code Prevents against viruses and wormsPrevents against viruses and worms First language with builtFirst language with built--in security architecturein security architecture Application A Application B Application C method foo SecurityManager resource x Verify permissions for resource x
  • 13. www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 1313 But What AboutBut What About MicrosoftMicrosoft’’s .NETs .NET ??
  • 14. www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 1414 What is .NET?What is .NET?
  • 15. www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 1515 Java versus .NET CLI/CLRJava versus .NET CLI/CLR Java VM technology is similar to .NET C#Java VM technology is similar to .NET C# But the Java environment is:But the Java environment is: –– More matureMore mature –– Not controlled by a single vendor: JCPNot controlled by a single vendor: JCP –– Applicable for embedded devicesApplicable for embedded devices –– Coherent environment (Coherent environment (singlesingle syntax)syntax) –– Exists for virtually every OS in existence,Exists for virtually every OS in existence, todaytoday –– Runs theRuns the OSGiOSGi specifications!specifications!
  • 16. www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 1616 ConclusionConclusion PortabilityPortability Safety and security featuresSafety and security features Increased productivityIncreased productivity Class loaders makeClass loaders make OSGiOSGi possiblepossible Interpreted language is the right choice for theInterpreted language is the right choice for the OSGiOSGi Should we use Java today [again]?Should we use Java today [again]? YES!YES!
  • 17. www.aQute.sewww.aQute.se -- 20022002 OSGiOSGi World CongressWorld Congress -- 1717 QuestionsQuestions ?? Contact:Contact: Peter.Kriens@aQute.sePeter.Kriens@aQute.se