Presentation is loading. Please wait.

Presentation is loading. Please wait.

Why Have The OSGi Specifications Been Based On Java Technology ? By Peter Kriens, CEO aQute OSGi Technology Officer www.aQute.se.

Similar presentations


Presentation on theme: "Why Have The OSGi Specifications Been Based On Java Technology ? By Peter Kriens, CEO aQute OSGi Technology Officer www.aQute.se."— Presentation transcript:

1 Why Have The OSGi Specifications Been Based On Java Technology ? By Peter Kriens, CEO aQute OSGi Technology Officer

2 OSGi World Congress - 2 Content Interpreted and Compiled languages Interpreted and Compiled languages Detailed look at Issues Detailed look at Issues Comparison with.NET Comparison with.NET Conclusion Conclusion

3 OSGi World Congress - 3 Interpreted Languages Interpreter/VM is between source code and CPU Interpreter/VM is between source code and CPU Java is an interpreter with a defined executable format: VM Java is an interpreter with a defined executable format: VM Compiled Source code Compiler CPU Java Source code javac VM CPU Interpreted Source code CPU Interpreter byte-codes

4 OSGi World Congress - 4 Portability Interpreters are easier to port to other environments Interpreters are easier to port to other environments No Source Code changes required No Source Code changes required Source code Compilerjavac VM InterpretedCompiledJava CPU Interpreter VM Source code Compiler CPU

5 OSGi World Congress - 5 Illegal Access To Memory No Illegal Access: Reduces security threats, Improves stability No Illegal Access: Reduces security threats, Improves stability No (more) memory exceptions and buffer overruns No (more) memory exceptions and buffer overruns Compiler InterpretedCompiledJava CPU Interpreter javac VM Source code

6 OSGi World Congress - 6 Versioning Solves many version issues: Simpler deployment Solves many version issues: Simpler deployment No More: Requires version kwt No More: Requires version kwt Interpreters use symbolic linking: more robust Interpreters use symbolic linking: more robust Compiler InterpretedCompiledJava CPU Interpreter javac VM Source code lib

7 OSGi World Congress - 7 Type Problems Detection Early detection of bugs: improved productivity Early detection of bugs: improved productivity Accidental and intended type violations Accidental and intended type violations Java finds all type errors, and many early Java finds all type errors, and many early Compiler InterpretedCompiledJava CPU Interpreter javac VM Source code

8 OSGi World Congress - 8 Performance Pre-processing reduces overhead: faster startup Pre-processing reduces overhead: faster startup Compiled code is most efficient Compiled code is most efficient JIT techniques can reduce the performance gap JIT techniques can reduce the performance gap Compiler InterpretedCompiledJava CPU Interpreter javac VM Source code

9 OSGi World Congress - 9 Too Many Libraries... Foundation library: One App for all platforms! Foundation library: One App for all platforms! Problems increase exponentially! Problems increase exponentially! Java very well defined, including run-time Java very well defined, including run-time Interpreted Source code mod Interpreter A-lib mod B-lib Compiled Source code mod Compiler A-libB-lib Java Source code mod VM rt.jar

10 OSGi World Congress - 10 Do It Right versus Performance Cannot perform hacks: security versus performance Cannot perform hacks: security versus performance Traditional code has hacks that perform well Traditional code has hacks that perform well Hacks increase maintenance cost and field problems Hacks increase 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 smeta Meta information for diagnostics Source code s Security Checks security check

11 OSGi World Congress - 11 Life Cycle Management Loading policy defined in application code: Flexibility Loading policy defined in application code: Flexibility Used by the OSGi specifications Used by the OSGi specifications Policies implemented by application code Policies implemented by application code Traditional run-time CPU code Java VM CPU = Class Loader network code

12 OSGi World Congress - 12 Security Language includes security check: Safe code Language includes security check: Safe code Prevents against viruses and worms Prevents against viruses and worms First language with built-in security architecture First language with built-in security architecture Application A Application B Application C method fooSecurityManager resource x Verify permissions for resource x

13 OSGi World Congress - 13 But What About Microsofts.NET ?

14 OSGi World Congress - 14 What is.NET?

15 OSGi World Congress - 15 Java 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 mature – Not controlled by a single vendor: JCP – Applicable for embedded devices – Coherent environment (single syntax) – Exists for virtually every OS in existence, today – Runs the OSGi specifications!

16 OSGi World Congress - 16 Conclusion Portability Portability Safety and security features Safety and security features Increased productivity Increased productivity Class loaders make OSGi possible Class loaders make OSGi possible Interpreted language is the right choice for the OSGi Interpreted language is the right choice for the OSGi Should we use Java today [again]? Should we use Java today [again]? YES! YES!

17 OSGi World Congress - 17


Download ppt "Why Have The OSGi Specifications Been Based On Java Technology ? By Peter Kriens, CEO aQute OSGi Technology Officer www.aQute.se."

Similar presentations


Ads by Google