Vertical market consulting groups have tried for decades to find the Holy Grail of application development - a standard industry domain model composed of supporting frameworks and models. To date, no one has succeeded in uncovering the secrets to unlock an entire application domain. That doesn't mean that we haven't learned important and useful things along the way or that we should give up the quest.
We all know that application development has proven to be an expensive and trying endeavor, with studies indicating that the majority of application development efforts fail to meet schedule, cost, and functional objectives. One approach to minimizing the risks of failure demands that we establish a stable, proven, common foundation on which a wide variety of applications can be built. A Reference Implementation comprised of Tools, Frameworks, Components, and Samples and Examples would embody this common foundation. What we are really after is a reliable, predictable manner of creating applications that have utility and longevity. Obviously, applications must satisfy the business requirements, but to warrant the investment they must also remain in service and adapt to changes in the business. Application longevity depends on our ability to extend, replace, and refactor the code base in manageable chunks. By implication, that means large components are less desirable than small components. Yet, many small components will result in larger numbers of components and increased complexity, bringing about a configuration management challenge both at development and runtime.
Eclipse itself addresses a vertical market (IDE development) quite successfully by offering a combination of black-box, gray-box, and white-box components and frameworks. This foundation provides us with a model for addressing other vertical markets intelligently by recognizing the significant changes as Eclipse has evolved from its original implementations. With the adoption of OSGi as a guiding architecture as encapsulated by Equinox, this combination offers us the first real opportunity to capture a glimpse of that Holy Grail of application development. Eclipse offers us an example of how to construct a package of Tools, Frameworks and Components. OSGi offers excellent agile, extensible software architecture.
We explore this opportunity through the prism of our experiences developing complex applications for the US Army. These applications range from in-vehicle telematics, to hazardous materials detection, to unit communications, and supply chain logistics. This talk will highlight a sensor fusion system, Cyrano, which we deployed with the National Guard Weapons of Mass Destruction Civil Support Team (WMD/CST) at several high profile public events in 2006. Cyrano consists about 100 bundles, was built using Eclipse and was deployed with Equinox. We will address the challenges of large bundle numbers for an OSGi/Equniox application as contrasted with smaller plugin numbers associated with an Eclipse hosted application.
Over time, using the OSGi/Equinox architecture and Eclipse tooling has enabled us to meet our application development objectives of short cycle times, high reusability, and ease of refactoring, extending and replacing components. Our efforts have been noticed and the systems are being referenced in discussions to define a standard software architecture. This architecture would be used by the Army to support other complex applications including condition based maintenance and fleet management. This quickly leads to discussions of multiple platforms and application management. We will address these issues and more as we explain some of the gaps we discovered in the Eclipse tooling and the approaches that we have taken to fill them while developing, deploying, and maintaining these complex applications running on over a dozen remote devices.
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.
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.
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).