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 …
Trends • Increasing Software Cost • More Connected Devices • Decreasing Hardware Cost
Trend: Increasing Software Cost • Software is becoming a bigger and bigger part of the product’s 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
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 OS CPU IO
Trend: Increasing Software Cost • The OSGi Alliance maintains a list of OS/CPU combinations that support Java/OSGi • 24 OS’s • 12 CPUs • Don’t 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 CPU’s 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 Java VM OS CPU IO
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 today’s 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 provides Component 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 today’s 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
OSGi = Universal Middleware!