Presentation on theme: "Universal Middleware Peter Kriens Technical Director OSGi"— Presentation transcript:
Universal Middleware Peter Kriens Technical Director OSGi Peter.Kriens@osgi.org
Contents OSGi/Java and Embedded Trends 900 Million Phones can not be wrong What can OSGi/Java give you? Service Oriented Architectures Real Life Applications Conclusions
OSGi/Java and Embedded Common prejudices: Java is too expensive, adds too much to the Bill Of Material (BOM) Java is slow Java is a security risk Nobody in the embedded world is using it.NET is much better Java is for sissies, C is for real men
OSGi/Java and Embedded Some of the prejudices are, or have been, more or less true. However, developing embedded software in Java has also a lot of advantages: Software development in Java is less error prone, faster, and cheaper There is an awful lot of interesting software out there that is useful for connected devices
OSGi/Java and Embedded The interesting question remains: What will happen in the future? Let us look at some trends …
Trend: Increasing Software Cost Software is becoming a bigger and bigger part of the products life This is often not well reflected in the BOM Complexity of the software is increasing due to: Exploding number of configurations. Managing the software for these configurations can be a nightmare Compatibility with more and more legacy. A current DVD player has over a million lines of code! People want more features and most of the features reside in the software
IOCPU OS Trend: Increasing Software Cost Application Development requires man, many, choices that are different for different environments Binaries can only be deployed on their target platform, and then … Applications
Trend: Increasing Software Cost The OSGi Alliance maintains a list of OS/CPU combinations that support Java/OSGi 24 OSs 12 CPUs Dont forget Thread architecture Optimization levels Endian … In the end, the number of combinations severely constrain the hardware choices ?
Trend: More Connected Devices Devices are more and more becoming connected to the Internet Protocols TCP/IP, UPnP, DLNA, SMTP, DNS, Jini, Rendezvous, SLP, HTTP, WebDAV, FTP, Juxta, MSN, Jabber, AIM, Web 2.0, Atom/REST, OMA DM, MP3, MPEG, etc., etc. Security Connected devices are prone to viruses After sales support is becoming harder and harder Updating software after sales is hard (if possible) and expensive
Trend: Decreasing Hardware Cost At large quantities, flash costs < 2 $cts a Mb Modern CPUs run at >200 Mhz Adding OSGi/Java is not a pipe dream anymore How many companies made the trade off calculations between a better software development environment and BOM cost?
900 Million Phones can not be Wrong 900 million phones run Java, despite: Severe cost limitations Severe power constraints Java is feasible on embedded devices today Maybe not for the smallest CE devices, but a significant number of devices could benefit
What can OSGi/Java Give You? Simplified Software Configuration Management due to use of Java Less combinations to worry about Powerful deployment model Remote lifecycle management Service Oriented Architecture Easier to mix and match components into applications: Reusable components Secure software environment After sales downloads
What can OSGi/Java Give You? Simplified Software Configuration Management Write once, run unmodified at a lot of places! Clean service model Simplifies software development Reuse of components Easier to buy IOCPU OS Java VM
Remote Management Powerful software deployment model The software life-cycle does not stop when a networked device leaves the factory Updates and new installs are a fact of life (Remote) Management is an intrinsic and non-trivial aspect of todays device software The OSGi Alliance has standardized the API for remote device management Benefits: Supports any number of management protocols Optimized solutions for specific problems Reduces management costs
Service Oriented Architectures Separate the contract from the implementation Allows alternate implementations Dynamically discover and bind available implementations Based on contract (interface) Components are reusable Not coupled to implementation details Service Contract Component provides uses
The Service Registry Why? Provides decoupling between applications How? Provides a programming service model Discover (and get notified about) services based on their interface or properties Bind to one or more services by program control, default rules, or deployment configuration OSGi Service Platform Benefits: Components are smaller (easier to make) and not coupled to other components (gives reusability) Excellent model for the myriad of customizations and variation that are required of todays devices Collaboration model
Real Life Applications Using OSGi X-ray measurement Systems BMW 7 series Eclipse Siemens Medical Nokia E70 Siemens Gigaset SX765 Espial Set-top box VDO on-board computer Etc. etc. etc.
Conclusion The OSGi Service Platform provides an excellent environment for system, firmware, middleware and application software The service architecture solves many of the complex customization issues that are part of massive market devices like mobile phones and telematic units. The security model is the most fine grained model available without becoming unmanageable