The OSGi software architecture standards provide a highly effective means for creating highly cohesive, yet loosely coupled applications, frameworks and components. The Eclipse IDE plugin architecture is built on the OSGi architecture and Equinox provides an OSGi R4 runtime platform. Beyond the Eclipse plugin solution space, OSGi has been used in a broad range of applications for mobile phones, telematics, industrial automation, building automation, PDAs, healthcare, grid computing, fleet management, as well as application servers.
This tutorial introduces attendees to the world of the service-oriented bundle architecture (SOBA), where bundle services are imported and exported on demand. One of the benefits to using this style of OSGi development is the ease of deployment of enhancements and new functionality to the platform. OSGi provides a dynamic, service-oriented environment for developing and deploying applications, but effectively delivering SOBA solutions requires a careful mix of disciplined adherence to convention and tooling support.
Attendees will experience building and deploying dynamic service-oriented bundles and applications. The day will cover best practices, suggested workflows, tooling usage, Equinox runtime launching, and client management. Provided with a small set of simulated sensor devices, access to some actual devices, a user interface shell, a client bundle manager, and an off-board communications channel, attendees with build and deploy a new SOBA application. Attendees will be given the option of implementing a scripted set of requirements or integrating the available simulators and real devices into a new scenario. Class instructors will be available throughout the day to work with the tutorial participants.
In addition to core OSGi concepts, the use of several newly open sourced components will provide the foundation for this tutorial:
Attendees should already have experience doing Java development in the Eclipse Tooling Environment. A knowledge of basic OSGi principles and terminology is essential to getting the most out of the exercises. Readings will be made available prior to the tutorial to allow those without OSGi knowledge to gain some context.
All of the tutorial instructors have been building SOBA applications for six years, in telematics, defense, healthcare and industrial applications. There will be a short keynote by Peter Kriens to start things off.
Exercises will contain various elements, including:
We will provide a collection of sensor devices (real and simulated) and a means for off-board communications (server and/or peer-to-peer).
We can provide a wide array of simulated and real sensors, such as:
John Cunningham leads Band XI International, a small software and services company started in 2005 that builds everything using Eclipse tooling and OSGi service-oriented bundle architectures. Although most of his work today is done in Java (and some Ruby), he really learned the most while working in LISP and Smalltalk. Mr. Cunningham has been building and managing software for 20 years in a wide variety of domains as a consultant and line manager. He has worked for Andersen Consulting (Accenture), Computer Sciences Corporation (CSC), Travelers Insurance (Citigroup), Object Technology International (OTI), and IBM. Mr. Cunningham holds the following degrees: BS in Mechanical Engineering (Columbia University), MS in Mechanical Engineering (University of Massachusetts/Amherst), and an MBA in Finance (University of Connecticut).
Paul VanderLei is a software architect from Grand Rapids, Michigan. He has specialized in applying embedded Java, object-oriented design, agile development practices, and OSGi to a variety of problem spaces including in-vehicle telematics and RFID.
Brett Hackleman is an agile/XP software developer with Band XI International. In his past life he was a member of the Embedded Java Enablement Team (eJET) in IBM's Pervasive Computing Group, where he worked for 6 years in the Telematics and RFID domains. Before that, Brett was happily employed by Object Technology International, Inc. He holds a BS in Computer Engineering (NC State University) and works to support his flying and snowboarding addictions.
Randy Carroll is a software architect at IBMs Research Triangle Park facility. His recent past efforts were in the areas of telematics and RFID applications. His current focus is in emerging software architecture and standards in the health care industry. His primary interests are in embedded computing and the practical application of technology.
Bill Millett is a Software Architect working with IBM's Sensor and Actuator Development organization. He specialized in embedded software development, embedded java, team building, and applying solutions to various industries including military, retail, telematics, and many more.
Once upon a time Patrick Dempsey was a member of the Embedded Java Enablement Team (eJET) in IBM's Pervasive Computing Group. That time, all five years of it, has come and gone leaving only memories of RFID and Telematics and a much better understanding of OSGi, JAVA, embedded C, and all manners of hardware devices. In ages past he earned a BS in Electrical Engineering and a BS and MS in Computer Engineering from North Carolina State University. The present finds Mr. Dempsey the latest addition to Band XI International where he continues to develop OSGi device applications and the Eclipse tooling to further that work.
Kristen Balhoff is a Staff Software Engineer at IBM, developing software to make it easier to interact with hardware devices. She enjoys working with OSGi to develop reusable components to control and communicate with embedded systems. Her development experience also includes business integration software, device-independent portal software, and RFID middleware.