- 1 Managing Open Source Legal Issues
- 2 Provisioning and managing embedded systems
- 3 Profiling Java Applications Running on Embedded Devices with Restricted Resources
- 4 Distributed Embedded Systems with Ambicomp
- 5 The interplay between Models, Generators and Variants
- 6 How Mature are Maturity Models?
- 7 Device Emulation with OSGi and Flash
- 8 An open OSGI Embedded platform for Intelligent Transport
- 9 Building an embedded software IDE on top of Eclipse
- 10 Open-DO and OSEE: agile methods for producing high-integrity software
- 11 Nutzen und Grenzen der Erweiterbarkeit von Eclipse CDT (ein Erfahrungsbericht)
- 12 Eclipse-based IS2T Embedded Tools allow new design concept : Drag Emb'Drop
- 13 OSGi: The Best Tool in Your Embedded Systems Toolbox
- 14 Artop – a shared platform for AUTOSAR tool development
- 15 99,99% Testautomation using OSGi, Eclipse and FitNesse
- 16 Closing Keynote
Managing Open Source Legal Issues
Abstract: The legal issues of using and contributing to open source projects are often a source of confusion. In this session, we will focus on the key aspects of open source licensing. The session will also outline how the Eclipse Foundation provides the legal framework for industry collaboration through the use of Working Groups to facilitate the creation and growth of innovation networks. As part of this, the session will examine how the Eclipse Foundation manages contributions of intellectual property to Eclipse projects and undertakes due diligence to give our downstream consumers greater comfort as they use and distribute Eclipse technology.
Janet Campbell is Legal Counsel & Manager, Intellectual Property at the Eclipse Foundation and is responsible for the review of intellectual property proposed for inclusion in Eclipse open source projects. This review includes examining both the provenance of the intellectual property and license compatibility
Provisioning and managing embedded systems
Jochen Krause, EclipseSource
Abstract: Embedded systems are becoming increasingly powerful and looking more and more like miniature distributed systems. As their connectivity, storage and compute capabilities increase so does the complexity of the software they run. This complexity is both an opportunity and a challenge. The opportunity is to create targeted system solutions with the flexibility to adapt to usage models (e.g., connected, disconnected, full and lite product versions, ...). The challenge is to create, deliver and manage software systems that afford this level of variability.
This talk focuses on p2, the Equinox provisioning platform, and its use in industrial settings for provisioning and managing remote and embedded systems. We cover the architecture and extensibility of p2 as well as its use in both Java and non-Java systems.
Certainly the most common usage of p2 is for folks using p2 to manage Java/OSGi systems whether it is their tooling or their RCP/embedded apps or servers. p2 can however be used to manage non-OSGi and non-Java things. As such, p2 has appeal in two ways.
- managing the tool chain. Embedded systems tend to have very complex tool chains with lots of variation from platform to platform and including Java and non-Java bits. p2 can capture and manage these variations and ensure that tool chains are consistent and coherent. It enables people to reason explicitly about their tool configurations and record them for later reproduction, auditing, ...
- managing the runtimes. There are several configurations of p2 "agents". Some require Java running on the target while others can be used to configure systems locally and then push them remotely. Still other configurations are possible by integrating with third party configuration systems (e.g., OMA DM, ...) that do all the direct management while p2 is used to do the reasoning.
Profiling Java Applications Running on Embedded Devices with Restricted Resources
Abstract: Java in general and more specifically J2ME is the platform of choice for providing application models for various embedded devices such as residential gateways, telematics systems, and mobile phones. The usage of profiling tools is a must for creating efficient and reliable Java applications. A rich set of profilers and other optimizations tools are available as stand alone applications or as plug-ins for the leading Java IDEs but most of them are targeted only for desktop systems and are not applicable for embedded systems with restricted resources.
This presentation deals with an approach for profiling embedded Java applications which takes into account the need to profile the Java applications directly on the embedded device without significantly influencing the system behavior. This is achieved by designing and installing a profiling agent on the target device which communicates actively with the developer PC and consumes minimal system resources.
This approach is applied for creating an Eclipse plug-in which will be presented during the session.
Distributed Embedded Systems with Ambicomp
Abstract: The Ambicomp research project develops hardware modules and a transparently distributed virtual machine for embedded systems. The current hardware portfolio contains Bluetooth, Ethernet and Power-over-Ethernet modules, as well as various IO modules. An 8bit microcontroller on each module executes a virtual machine instance. An Eclipse-Plugin and a module emulator provide easy access to the virtual machine and the hardware features.
Ambicomp's main goal is to provide a single system image across a potentially large, distributed set of hardware modules. To this end, it employs latest research results from distributed computing: scalable source routing, globally accessible objects, and software transactional memory. As a result, Ambicomp provides an easy means for rapid prototyping and thereby supports small and medium sized companies to achieve a quick time to market.
Ambicomp does not address a particular target market. Promising prototypes are building automation, process automation, and ambient assisted living. The Ambicomp project is funded by the BMBF. Ambicomp partners are always interested in collaborations that can establish further use cases for this technology.
The interplay between Models, Generators and Variants
Abstract: Efficient embedded software development depends on mastering three essential techniques: increased level of abstraction using semantically rich models, efficient and streamlined implementation through code generation as well as mastering the variability between products in product lines. In this talk we will show how these three techniques can be used together, based on Eclipse tools. We will briefly show how to define modeling languages and code generators and then integrate them with variant management tools. The implementation of variability will be shown in models, handwritten code and generators using an example based on textual DSLs and C.
How Mature are Maturity Models?
Prof. Hans-Jürgen Kugler, Chief Scientist, KUGLER MAAG CIE GmbH
Abstract: Exactly 20 years ago the first version of the Capability Maturity Model, CMM, was published. Initially the CMM was deployed to facilitate software supplier selection and management in the defence sector. The CMM soon spread beyond defence, because for the first time a reasonable standard way of thinking about development processes had become available. The process improvement movement concerned with the maturity of an organisation’s development processes had started. And in these 20 years several promising models for good practice and organisational competence development emerged, but few achieved widespread deployment. Among these is ISO 15504 “SPICE”, and in particular its variant “Automotive SPICE”. Has the deployment of these models improved the capability of engineering organisations to meet the ever increasing challenges of modern complex software intensive systems? Has industry really benefited? What will happen in the face of ever decreasing development cycles and the ever increasing interdependence of previously separate systems? Do maturity models drive development organisations into a rigidity that will either lead to the end of the era of maturity models, or to that of the organisations using them? Or is it simply our lack of wisdom in utilising such models?
Device Emulation with OSGi and Flash
Abstract: Software development for embedded systems is usually cross-platform development.That is, the application is developed on a general-purpose computer, but executed on a resource-constrained embedded platform. The embedded platform is often not able to run an integrated development environment (IDE). This approach leads to increased development cycles (code -> deploy -> run -> debug) and it is generally speaking not really handy. Another problem within embedded software development is that sometimes the embedded hardware is simply too expensive to provide hardware units for each developer of a team. These are some reasons for emulation needs arising in embedded software development.
In our presentation we propose a device emulation framework based on Java, OSGi and Adobe Flash. This framework is already in productive use by our customers. Emulation can happen on several levels of abstraction, ranging from whole processor emulation like the software QEMU does, to more high-level emulation as we have done in our framework: Each emulated device is represented by a bundle that is split into a Java and a Flash part. The Java part provides the API to the application code, the Flash part contains all graphical elements. All devices together build up a complete embedded system emulation. The emulator has a modular design principle that allows to build up a custom emulation very quickly. The emulator behavior can be programmed with a simple domain-specific language. The language supports the definition of reactions to events, throwing of events, and verifying expected application actions. For example, consider a simple embedded device with a turnstile and an RFID reader. The behavior can now be programmed that the (emulated) RFID reader should throw an event that a ticket has been read, and that the expected application action is to open the (emulated) turnstile if the ticket was valid. This allows the definition of several scenarios that can be replayed automatically within a continuous build. In our presentation we will show a live demo and we will also discuss some issues that come along with the integration of Java, OSGi, and Flash.
An open OSGI Embedded platform for Intelligent Transport
Abstract: Today, public transport companies are facing growing constraints including legal, environmental and economic constraints, in addition to the need for improving service to passengers. Hence public transport operators are seeking to improve their productivity and quality of service with new applications & intelligent solutions. Application integration using embedded electronics solutions is seen as one of the levers to answer public transportation multi-facetted challenges efficiently. Such solutions should facilitate scalability of services, interoperability of applications such as ticketing, information to passengers, geo-localization, fuel consumption optimization, etc… , and ensure overall cost effectiveness.
However, the offers currently available on the market are heterogeneous and mostly proprietary; they are not easily interoperable, thus hindering any smooth evolution & scalability of the necessary services required to address growing operators’ constraints. The heterogeneity and fragmentation of today’s market offerings are obstacles to the effective deployment of suitable solutions; in addition current offers are complex, expensive to implement and to maintain.
This paper will present a novel approach, pioneered by a French Bus company and developed by Geensys, based upon an open, OSGI compliant, core platform, using the Eclipse Equinox reference implementation.
Building an embedded software IDE on top of Eclipse
Abstract: This talk will present how different Eclipse technologies have been used to develop a complete IDE for device software development for the wireless device manufacturer Wavecom. Indeed, in order to provide a usable and effective product, the project had to deal with high level user abstraction and complex low level environment. To achieve this goal, various very different Eclipse projects have been used :
- EMF modeling of business rules
- CDT/MBS definition of compilation chains
- p2 custom installer and specific updates
- C library encapsulation into plugins
- RSE UI services
- JNI and TCF communications with target.
Moreover, the whole IDE had to conform with Eclipse products quality standards using decoupling and extensibility through plugins and extension points. It also enables user assistance with contextual/online help and cheatsheets. This project is a good example of how various Eclipse projects can be set up in an industrial product. The agenda will be :
- Embedded/Device software development constraints
- The IDE features
- The libraries repository system
- The development
Gaetan Morice is head of the Eclipse Products Team at Anyware Technologies. He leads Eclipse based IDE projects for embedded software tooling that involve lots of cool Eclipse technologies such as EMF, CDT, TM and DLTK. He also leads research efforts on alternative JVM languages use in Eclipse plugins development.
Open-DO and OSEE: agile methods for producing high-integrity software
Abstract: The development of high-integrity systems is governed by stringent industrial standards which require engineers to provide enough evidence of the quality of the developed artifacts. In the avionics world, these certification standards are known to produce very reliable code, but the current industry practices are costly.
In the first half of this presentation, we introduce key aspects of software certification in airborne software - most of which apply directly to other domains such as automotive and industrial automation. We introduce the Open-DO initiative, which aims at bringing agile processes to high-integrity software development, and we highlight the importance of an integrated engineering environment.
In the second half, we show a number of features of the Open System Engineering Environment (OSEE) as an integrated engineering environment for high-integrity software development.
OSEE enables developers to apply lean software engineering principles needed to build high integrity software. Using an integrated, user definable process and workflow and bidirectional traceability across the full development life-cycle, OSEE facilitates the creation and management of the engineering artifacts that can be used as evidence when certifying the product's integrity.
Nutzen und Grenzen der Erweiterbarkeit von Eclipse CDT (ein Erfahrungsbericht)
Abstract: In this short talk the experiences made at Bosch Rexroth when using Eclipse CDT for software development are presented:
- Defining and contributing a own toolchain (Renesas SH4)
- Adding Build Tools, especially PC-Lint
- Adding a "New project" wizard
- Using Ant to run a automatic headless build
- Experiences in general
Eclipse-based IS2T Embedded Tools allow new design concept : Drag Emb'Drop
Abstract: IS2T, thanks to Eclipse, has optimized a tool chain for agile development of embedded systems : MicroJvm™ Java virtual machine (footprint of roughly 50KB), and their associated embedded libraries (ESRs), allow a brand new system/device design process called Drag Emb 'Drop™ which focuses on cost reduction and better time-to-market.
For the customization of platforms (adding new peripherals for instance), IS2T now offers a platform design tool called MicroBSP. This tool, based on IS2T proprietary Java-like language Ice Tea, relies on IDT, a customization of existing JDT of Eclipse, and CDT for the reuse of existing C drivers.
IS2T tool chain for agile development of high-tech/low costs embedded systems was achieved by combining benefits of Eclipse and Jazz RTC
OSGi: The Best Tool in Your Embedded Systems Toolbox
Abstract: While interest is cresting in applications of OSGi to server side systems, Band XI International happily reports that OSGi still powerfully serves its original target market in embedded systems. Based on nine years of experience deploying embedded solutions on OSGi and Eclipse Equinox, we have witnessed and participated in the adaptations of the framework over time. The one thing that remains unchanged is that OSGi offers us an effective, practical way to design true component architectures and frameworks. These enable us to practice software development more in line with solid engineering practices than as a form of expressive artistry or craftsmanship. Building applications with OSGi facilitates the creation of reliable, testable, predictable software more consistently than using any other technology, tools, or methodology we have encountered.
We discuss several of our past and current OSGi-based solutions for defense systems, mining equipment, construction equipment, industrial automation, and automotive/telematics domains. We present some best practices for building flexible, cross-platform, high-performance embedded application and the resulting lessons learned along the way. We demonstrate how the Eclipse Runtime Components and Frameworks can be used to access communication buses such as CAN, J1939, J1850, and MIL-STD-1553. Finally, we explain how using OSGi and Equinox can simplify the development, testing, and deployment of your next application, whether embedded or not.
Abstract: In the IT industry as of today a successful approach to develop and evolve complex technologies is to collaboratively develop such technologies with an open source development model. The AUTOSAR Tool Platform (Artop) employs a similar approach and adapts it to the development of AUTOSAR (Automotive Open System Architecture) tools and the special conditions in the field of AUTOSAR. AUTOSAR is a standardized software architecture for complex E/E systems. To describe such systems formal models containing large amounts of data have to be handled by specialized tools. AUTOSAR also standardizes a methodology which builds on the ideas of model driven software development and enables the generation of code for certain elements of the AUTOSAR software architecture for embedded targets. Due to the complexity of the AUTOSAR models the availability of powerful tools for authoring such models is crucial. At its core Artop is an implementation of common base functionality for development tools that are used to design and configure AUTOSAR compliant E/E (electric/electronic) systems and ECUs (electronic control units). The first release of Artop was published in October 2008 and can be downloaded from http://www.artop.org. Since then, over 200 users have shown interest in the platform.
Artop is related to Eclipse in two ways: (1) it is based on Eclipse technologies, i.e. on a technical level Artop is a set of plug-ins for the Eclipse Platform. (2) The organization of Artop and the Artop development process is modeled after their respective counterparts in the Eclipse community.
Artop is mainly based on EMF (Eclipse Modeling Framework) and consequently on the Eclipse Rich Client Platform (RCP). Artop provides functionality that is common for several kinds of AUTOSAR tools, for example the serialization of AUTOSAR models and meta model implementations that provide programming interfaces (APIs) to manipulate AUTOSAR models.
The development of Artop is organized in the Artop User Group which is comparable to the Eclipse Foundation. The Artop User Group is a group of users of the AUTOSAR standard with a special interest in AUTOSAR tools, due to existing AUTOSAR regulations membership in the Artop User Group is limited to members and partners of the AUTOSAR partnership.
99,99% Testautomation using OSGi, Eclipse and FitNesse
Martin Figel, Daimler FleetBoard GmbH
Abstract: To meet today’s market speed in developing new features for the telematic market it is essential to achieve a high degree testautomatization. Since a telematic installation is a distributed system it is essential to establish the corresponding interfaces between all system components for an end to end software test. FleetBoard is using OSGi, Eclipse, FitNesse and the Rational toolchain to achieve this.
The usage of OSGi in combination with Eclipse and FitNesse on FleetBoard’s embedded telematics devices does not only allow to perform standard unit and module tests but enables a fully automated end to end test including arbitrary HMI interactions.
Martin Figel will reflect FleetBoard’s experiences of automated tests on embedded platforms from an operator's point of view.
Dave Thomas, Bedarra Research Labs
Bio: Dave Thomas has a wide spectrum of experience in the software industry as an engineer, consultant, architect, executive, and investor. He is the Founder and Chairman of Bedarra Research Labs, a company specializing in emerging software technologies and applications. He is also the Managing Director of Object Mentor, a company specializing in the training and deployment of Agile and Object-Oriented Software Development methodologies. He is best known as the founder and past CEO of Object Technology International Inc. (formerly OTI, now IBM OTI Labs) where he led the commercial introduction of object and component technology. Dave is widely published in software engineering literature and remains active in various roles within the technical community including ECOOP, AOSD, JAOO, Agile Development Conference, OOPSLA Onward, ENASE, and Dynamic Language Symposium. He is an adjunct research professor at Carleton University and the Queensland University of Technology (QUT) as well as a founding director of the Agile Alliance, an ACM Distinguished Engineer, President of AITO, and an advisor for IEEE Software. He also writes an expert column in the Journal of Object Technology.