0% found this document useful (0 votes)
99 views20 pages

Universal Middleware: Peter Kriens

OSGi can provide benefits for embedded software development by simplifying configuration management through writing code once that can run in multiple environments. It enables a service-oriented architecture with reusable components through its clean service model. The OSGi service registry allows dynamic discovery and binding of services. Real-life applications that use OSGi include BMW cars, medical devices, phones, and set-top boxes, demonstrating its viability in embedded systems.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
99 views20 pages

Universal Middleware: Peter Kriens

OSGi can provide benefits for embedded software development by simplifying configuration management through writing code once that can run in multiple environments. It enables a service-oriented architecture with reusable components through its clean service model. The OSGi service registry allows dynamic discovery and binding of services. Real-life applications that use OSGi include BMW cars, medical devices, phones, and set-top boxes, demonstrating its viability in embedded systems.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 20

Universal

Middleware
Peter Kriens
Technical Director OSGi
[email protected]

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 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

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

x86

In the end, the number of


combinations severely
constrain the hardware choices

V850E

S390

?
Sparc

Sh4

Thread architecture
Optimization levels
Endian

PowerPC

PArisc

Dont forget

Mips

Ignite

24 OSs
12 CPUs

Alpha

AIX
DigitalUnix
embos
Epoc32
FreeBSD
HPUX
IRIX
Linux
MacOS
NetBSD
Netware
OpenBSD
OS2
QNX
Solaris
SunOS
VxWorks
Windows95
Windows98
WindowsNT
WindowsCE
Windows2000
WindowsXP

ARM

The OSGi Alliance maintains a


list of OS/CPU combinations
that support Java/OSGi

68K

Trend: More Connected Devices

Devices are more and more becoming connected to the


Internet
Protocols

Security

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.
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

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
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

Dynamically discover and


bind available
implementations

Allows alternate
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

OSGi
=
Universal Middleware!

You might also like