- 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 Accelerating vector graphics output with openVG
- 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 Hardwarefreies Embedded Software Development
- 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
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
Jeff McAffer, Equinox Project Co-Lead & 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?
Accelerating vector graphics output with openVG
Abstract: Today, many embedded systems feature high quality graphical I/O for user interaction. The HMI (human machine interface) standards set by consumer electronic devices like the iPhone are pretty demanding for Java applications. AWT and even eSWT tend to be too slow running on low powered CPUs with comparably small memory. Proprietary interfaces prevent portability, one of the main benefits of Java applications, so the market looks at other graphics standards which are available in the Java space. openGL is a common choice for 3-D graphics, whereas the openVG standard is targeted towards 2 vector graphical applications. While openGL is covered in JSR 231 - no JSR has been published for openVG yet, although some major vendors have announced the availability for direct hardware support for the openVG standard in their embedded CPUs. The lecture puts openVG in a context with other graphic APIs usable in the embedded space and expands on the options and implementation of MicroDoc's "Java bindings for openVG".
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
Hardwarefreies Embedded Software Development
Abstract: Die Testbarkeit von hardwarenahen Softwarekomponenten gestaltet sich zumeist sehr schwierig und teuer, einmal mehr wenn eine komplexe Applikation darüber liegt. Das führt i.d.R. zu Qualitätsmängeln, die speziell beim Roll-Out eines neuen Produktes das Kunde-Lieferant-Verhältnis belasten können. Ausweg bietet hier eine konsequente Zerteilung von Funktionalitäten in Schichten, die für sich automatisiert getestet werden können. Dieser Ansatz führt zur Chance, die identifizierten Schichten durch Simulationen zu ersetzen und die Testabdeckung nach oben zu treiben. Embedded Software Development wird zum Teil eines regulären Entwicklungsprozesses, der sich nicht von anderen unterscheidet. Qualität lässt sich dadurch erzeugen und steuern, sie wird weniger das Produkt von zufälligen Einzelleistungen.
Die Skidata AG ist auf die Entwicklung und Vermarktung von Besuchermanagementsystemen, Zutrittstechnologien und Ticketinglösungen spezialisiert. Thomas Donhauser leitet dort die Abteilung "Device Enabling Interface Technology". Er berichtet über sein Projekt zur Hardwarefreien Entwicklung von Embedded Software.
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
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.
Marcus Hohloch will reflect FleetBoard’s experiences of automated tests on embedded platforms from an operator's point of view.