Community Event 2013 Abstracts and Bios

Mastering OSGi with Ease

Ferry Huberts [Pelagic], Neil Bartlett [Paremus Ltd] | 09:00-12:00 – 29/10/2013 | Tutorial – Schubartsaal

Abstract:
Experience level: Beginner

This tutorial is a compressed version of the OSGi Masterclass. Its goal is to take you into areas of OSGi that are extremely useful, but seldom discovered through independent experimentation or even from reading the specifications. We cover tooling that make these features not merely painless but highly accessible and a joy to use.

For example, you will find out how, with just a few annotations, you can build components that adapt to changes in their environment and can be configured through a rich, automatically generated admin GUI. You will find out how to automatically version your package exports and imports, manage repositories, and coordinate deployments. Learn how to simplify the assembly and deployment of applications into a variety of runtime environments using the R5 Repositories and Resolver specifications. Discover the secrets of service API design and evolution, and put them into practice.

These topics will be introduced in the background of an example application developed with Bndtools, the easy and powerful IDE for OSGi development.

This is not a low-level introduction to OSGi, and delegates will be expected to have a basic understanding of modularity, dependencies and services.

Speaker Bios:

huberts Coming soon.
bartlett Coming soon.

Back to Conference Schedule


Single Points of Failure: The Human Element of Software Engineering

Brian Fitzpatrick [Google] | 14:00-15:00 – 29/10/2013 | Keynote

Abstract:
EclipseCon Europe Keynote.

Experience level: Beginner.

Despite decades of work developing new languages, tools, and methodologies, the hardest part of writing software is not working with technology, but working with other people. This talk will take a hard look at the human element of successful (and unsuccessful) projects.

Speaker Bio:

Brian Fitzpatrick started Google’s Chicago engineering office in 2005. An open source contributor for over 13 years, Brian is the engineering manager for several Google products, a member of both the Apache Software Foundation and the Open Web Foundation, a former engineer at Apple and CollabNet, a Subversion developer, a author of several books, and a resident of Chicago.

Back to Conference Schedule


(Web) Applications Made Simple with OSGi

Peter Kriens [OSGi Alliance] | 15:00-15:35 – 29/10/2013 | Schubartsaal

Abstract:
Experience level: Beginner

OSGi is renowned for its advanced modularity but it is not often called simple. I actually believe that OSGi is simple but that most reported problems are caused by trying to push a square through a round hole. Problems are invariably caused by trying to apply incumbent non-modular technology through a modular framework. However, today the average developer has not much choice, most of the free and available components use hacks that are not compatible with strong modularity, nor do they leverage OSGi’s features like µservices and central dynamic config admin as they were intended.

Spending a sabbatical year developing a web application the ‘OSGi Way’ it was clear that a lot of components and documentations is missing to quickly build a web application the ‘OSGi Way’. To leverage OSGi to the hilt I had to develop too many base components. Though I proved to myself that OSGi was really working as advocated if you go with the flow, it was clear that other developers have neither the time, OSGi experience, nor the inclination to do what I could do. Discussing these experiences with the OSGi Alliance we therefore decided to turn this into a project!

This presentation will show you my experiences with developing a truly OSGi Web App and an overview of the OSGi Alliance’s plans to simplify development of OSGi (web) applications.

Speaker Bio:

Peter Kriens is an independent consultant since 1990.He currently works for the OSGi Alliance and jpm4j. During the eighties he developed advanced distributed systems for newspapers based on microcomputers based on, at the time very novel, object oriented technologies. For this experience in Objects he was hired by a number of international companies, including Adobe, Intel, Ericsson, IBM, and many others. During his work at Ericsson Research in 1998 he got involved with the OSGi specification; Later he became the primary editor for these specifications. In 2005 he was awarded the OSGi Fellows title. After taking a sabbatical in 2012 to develop jpm4j he returned to the OSGi Alliance to help increasing adoption. He is Dutch but decided to live in France.

Back to Conference Schedule


Going Native With The OSGi Service Layer

Sascha Zelzer [German Cancer Research Center (DKFZ)] | 15:00-15:35 – 29/10/2013 |Seminarräume 1-3

Abstract:
Experience level: Intermediate

OSGi is a dynamic module system for Java, supporting the development of highly modular applications. However, many concepts and design choices in the OSGi specifications are language neutral and can, for example, also be applied to native C++ application development. In fact, a vast amount of applications in many different domains (embedded, desktop, server, distributed, etc.) are still written in native languages like C++, for various reasons. In turn, many of these applications are in need of a light-weight modular architecture, fostering a service oriented design to minimize coupling between components and to maximize their re-usability.

The C++ Micro Services project (http://cppmicroservices.org) is a pure C++ implementation of the OSGi service layer, bringing a dynamic and service oriented framework inspired by OSGi to native application developers. Its scope is similar to the PojoSR project, a Java implementation of the OSGi service layer only. By only implementing the OSGi service layer, the complexity and foot-print of such an implementation is drastically reduced and its usage heavily simplified. Additionally, incrementally modifying an existing project to make use of the OSGi service layer can be viewed as an easy migration path to using a full-blown native OSGi implementation later on.

In this talk, the challenges of mapping the Java OSGi service layer API (based on OSGi R4.3 and Java generics) to an intuitive and easy-to-use C++ API are presented. Further, the properties of the native linkers of the major operating systems (Windows, Linux, MacOS) and how they effectively already implement parts of the OSGi module layer are discussed. These concepts will then be illustrated by looking at how a big C++ toolkit related to medical image processing makes use of the C++ Micro Services project and its OSGi-based service layer implementation. Furthermore, the relationship of the C++ Micro Services project to the recently initiated “Native OSGi” efforts, the related OSGi RFP 156, and other native OSGi implementations like Apache Celix will be discussed.

Speaker Bio:

Sascha Zelzer studied Theoretical Physics in Austria and has been working with Java and C++ for the last ten years. While working on his Ph.D. at the German Cancer Research Center, he is also deeply involved in developing and maintaining a large C++ software stack primarily focused on medical imaging platforms. His current interests include modularized and distributed systems in C++, especially how to leverage the benefits of OSGi technology in a native environment.

Back to Conference Schedule


Monitoring OSGi Applications with the Web Console

Carsten Ziegeler [Adobe] | 15:45-16:20 – 29/10/2013 | Schubartsaal

Abstract:
Experience level: Beginner

This session introduces the latest version of the famous Apache Felix web console which allows to monitor and inspect OSGi web applications through the browser. The web console is based on a flexible plugin mechanism to add custom information and functionality. Learn how to write your own extensions and how to leverage the available functionality for monitoring and troubleshooting OSGi installations.

Speaker Bio:

Carsten Ziegeler is senior developer at Adobe Research Switzerland and spends most of his time on architectural and infrastructure topics. Working for over 25 years in open source projects, Carsten is a member of the Apache Software Foundation and heavily participates in several Apache communities including Sling, Felix and ACE. He is a frequent speaker on technology and open source conferences and participates in the OSGi Core Platform and Enterprise expert groups.

Back to Conference Schedule


Testing OSGi the “groovy” way

Lars Pfannenschmidt , Dennis Nobel [itemis AG] | 15:45-16:20 – 29/10/2013 | Seminarräume 1-3

Abstract:
Experience level: Intermediate

In order to meet software project requirements, it is important to implement ongoing quality assurance using automated tests. However, for OSGi platforms which are used in various areas such as Embedded or Enterprise this turns out to be difficult. If several components need to be tested together, unit tests written in Java tend to reach their limits. Thus, implementing these tests can be very time consuming. Using the Groovy language, OSGi integration tests are efficient and easy to write, e.g. registering Groovy mocks as a OSGi Service turns out to be very handy. Hereby declarative OSGi components can be tested, too. Even if an OSGi application has to be CDC-compliant, tests can be written using Groovy in a modern syntax.

This presentation demonstrates how to implement Groovy tests for a sample OSGi project and how Groovy tests can be executed in an Equinox OSGi environment. Furthermore, it shows how a continuous integration solution using Maven Tycho can look like.

Speaker Bios:

Lars PfannenschmidtInterested in Mobile Applications, Smart Home, Domain Specific Languages, Machine Learning and agile development methodologies such as Scrum and Kanban. Senior Software Engineer and Founder of mobile.cologne.
Dennis NobelDennis works as an IT Consultant for itemis in the field of Java, Web and Mobile Development. Moreover he is interested in Agile Development, Continuous Integration, Modeling Technologies, Testing, IoT, Smart Home, OSGi and Groovy.

 

Back to Conference Schedule


Device Abstraction in OSGi Based Embedded Systems

Dimitar Valtchev [ProSyst Software GmbH] | 16:45-17:20 – 29/10/2013 | Schubartsaal

Abstract:
Experience level: Beginner

OSGi is gaining popularity as enabling technology for building embedded systems in residential, automotive and M2M markets. In all these contexts it is often necessary to communicate with IP and non-IP devices by using various protocols such as Zigbee, ZWave, KNX, EnOcean, etc. In order to provide a convenient programming model suitable for the realization of end-to-end services it is very important to apply an abstraction layer which unifies the work with devices supporting different protocols. A specification work covering this topic has been already started by OSGi Alliance in cooperation with organizations such as HGI, ETSI M2M, BBF and OneM2M.

This presentation comments the existing approaches for the realization of device abstraction in OSGi. Special attention is paid to the requirements making such an abstraction suitable for interactions with cloud based applications and services. A reference architecture based on the experience gained from numerous commercial projects is presented and explained.

Speaker Bio:

Dr. Dimitar Valtchev is Chief Technology Officer of ProSyst Software. His main technical interests are in the fields of embedded systems, device management and distributed computing.

Recently Dimitar has been involved in numerous residential and automotive projects using the OSGi technology. He believes in the power of open systems/architectures and actively participates in the work of organizations such as HGI and OSGi Alliance.

Dimitar is a senior member of IEEE and holds MS in Electronics, MS in Computer Science and PhD in Electrical Engineers degrees from the Technical University of Sofia.

Back to Conference Schedule


OSGi Remote Services

Alexander Broekhuis [Luminis Arnhem], Bram de Kruijff [Luminis Technologies] | 16:45-17:20 – 29/10/2013 | Seminarräume 1-3

Abstract:
Experience level: Intermediate

The OSGi framework has become a popular platform for dynamic and pluggable Java applications and, with the creation of RFP-156 for Native OSGi, more and more native applications are following. OSGi promotes modularity, allowing applications to version and update components at runtime, and provides a local service registry that supports dynamic application (re-)assembly. Therefore OSGi based applications are inherently capable of dealing with component life-cycles and service dynamics. This provides a natural fit with the qualities desirable in scalable distributed applications and systems, but no solution. This talk introduces the OSGi Enterprise Remote Services specification that leverages the standard OSGi services model in order to provide transparent and dynamically manageable distribution and integration capabilities to any application.

Designing and building applications that are reliable, maintainable, modifiable, extensible and scale-out well is hard, expensive and, to make matters worse, requirements change. Maybe your new and cool internet application will have little or no success and those huge up-front investments, in a multi-tier architecture running on dedicated servers using top notch middleware, will get you fired. Or, maybe it will go viral and your monolithic homebrew webapp, using a MySql backend, will grind to a halt and force you into a complete rebuild (and possibly also get you fired). Both these scenarios occur every day on the internet and the stakes are getting bigger and bigger. Therefore we need an architecture that allows us to develop applications that can run on a single node as well as transparently and dynamically scale out to hundreds.

Over the last years the OSGi framework has been steadily gaining popularity as a platform for dynamic and pluggable applications. OSGi promotes modularity, allowing applications to version and update components at runtime, and provides a local service registry that allows dynamic application (re-)assembly. Therefore OSGi based applications are inherently capable of dealing with component life-cycles and service dynamics making them maintainable, modifiable and extensible. However, the core specification does not address remoting or scaling in any way. This means that these concerns still have to be addressed in every project often forcing upfront design choices on specific standards and possibly even locking into specific middleware in large parts of the code base. Even though OSGi make it easier to isolate and modify those areas we would rather not write the code at all.

The OSGi Enterprise Remote Services and Remote Service Admin specifications address these concerns by leveraging the standard OSGi service model, providing an abstraction from any transport concerns. Together they provide transparent remoting (or not) of services based on a dynamic and manageable service registry that may span any number of systems using any number of protocols, transports or routes. This model is very powerful and allows almost any well designed OSGi based application to scale out subsystems, or integrate with other remote applications, using an appropriate transport as required, on -demand and without ever changing a line of code. With the rise of non Java based OSGi implementations this model provides a great means to create a transparent remoting between services implemented in different environments/languages.

In this talk we will give an overview of the OSGi Enterprise Remote Service and Remote Service Admin specifications and provide concrete usage scenarios and code examples based on the open-source Amdatu RemoteServices implementation and C based Apache Celix implementation. In addition, usage examples will be presented where a Java OSGi implementation communicates with a C OSGi implementation, leveraging the benefits of OSGi and the RSA in both languages. We assume attendees have a basic understanding of Java, OSGi and distributed computing.

Speaker Bio:

Alexander Broekhuis Alexander Broekhuis works for Luminis and is a Java engineer since 2004 with a clear focus on OSGi. In the last years he has worked for embedded product companies on distributed middleware in which Java and C is used. His work includes creating meta-models and transformations from which the code for the middleware is generated (MDA, MDD), and more recently updating existing middleware to support dynamic services, based on OSGi. Alexander is initiator and committer of the Apache Celix project, a platform for distributed systems in C, with a focus on interoperability with Java (OSGi).
Bram de Kruijff Active on the web since 1995, Bram an open source enthusiast working for Luminis Technologies. As a software architect he has a broad experience with server side web application architectures, frameworks and technologies for enterprise grade applications. Since 2005 he has been actively involved in several products and projects that successfully adopted OSGi as a server side application architecture. At present Bram’s focus is on cloud infrastructure and applications architectures.

Bram is a PMC member of Apache ACE and the Amdatu project and has presented at ApacheCon as well as several smaller Dutch conferences.

Back to Conference Schedule


What’s cool in the new and updated OSGi specs (DS, Cloud and more)

David Bosschaert [Red Hat], Carsten Ziegeler [Adobe] | 17:30-18:30 – 29/10/2013 |Schubartsaal

Abstract:
Experience level: Intermediate

Carsten and David will look at new and updated OSGi specs that are in the works. Developing components has never been easier. Learn more about the new Prototype Service Factory, OSGi/CDI integration and the improved annotation support for Declarative Services.

Many people are realizing that OSGi is a great foundation technology for fluid cloud-computing architectures where the deployments change dynamically and applications don’t simply scale by duplicating the entire VMs but by providing extra capacity exactly to those components that need it. Work is being done to create standards that facilitate such a portable OSGi cloud in ‘Cloud Ecosystems’ and the REST API specs. Learn more about these and other upcoming specs during this talk.

Speaker Bios:

David BosschaertDavid Bosschaert, Principal Software Engineer at Red Hat, spends the majority of his time on the JBoss OSGi framework, JBoss AS7, Apache Aries and other open source projects. He is also co-chair of the OSGi Enterprise Expert Group and an active participant in the OSGi Cloud efforts. Before joining JBoss/Red Hat in 2010, David worked for IONA Technologies and Progress Software in Dublin, Ireland.
Carsten ZiegelerCarsten Ziegeler is senior developer at Adobe Research Switzerland and spends most of his time on architectural and infrastructure topics. Working for over 25 years in open source projects, Carsten is a member of the Apache Software Foundation and heavily participates in several Apache communities including Sling, Felix and ACE. He is a frequent speaker on technology and open source conferences and participates in the OSGi Core Platform and Enterprise expert groups.

Back to Conference Schedule


OSGi Lightning Talks

Talks Below | 17:30-18:30 – 29/10/2013 | Seminarräume 1-3

This session is made up of a number of Lightning Talks about OSGi:

OSGi Puzzlers – Neil Bartlett & Peter Kriens
A fun look at some of the traps and pitfalls that people come across when working with OSGi, along with suggestions on how you should deal with these cases in point.

iPOPO: Service-Oriented components in Python – Thomas Calmant
This talk introduces two Python libraries: Pelix, a dynamic service platform, inspired from OSGi, and iPOPO, a service-oriented component model based on the concepts of iPOJO. It will also present some of the featured services, how to communicate between iPOPO and OSGi and finally the projects in which this framework is involved.

Polyglot Persistence with OSGi – Alexander Grzesik
This Lightning talk shows an example how to use use an EclipseLink composite Persistence Unit in an OSGi Bundle to seamless combine a Relational Database and NoSQL MongoDB. Furthermore it gives some best practice how to use a JPA Persistence Unit with Blueprint.

An Introduction to Apache ACE – Jago de Vreede & Marcel Offermans
Apache ACE is a software distribution framework that allows you to centrally manage and distribute your (OSGi) software. This lightning talk will give a overview of the basics of Apache ACE.

When is ‘optional’ really optional? – Tim Ward
OSGi has an excellent, flexible dependency model and enables loosely coupled interactions between bundles via the service registry. Most of the time this is easy to reason about, but having optional dependencies can sometimes lead to surprising results. This talk will highlight the issues you might come across if you start playing with optional dependencies.

Back to Conference Schedule


Scaling Pinterest

Marty Weiner [Pinterest] | 09:00-10:00 – 30/10/2013 | Keynote

Abstract:
EclipseCon Europe Keynote.

Experience level: Beginner.

In the early days, Pinterest grew from 0 pageviews per month to billions in just under a year.

In this talk, Marty will go over what it was like scaling Pinterest over the first two years – the fires, sharding MySQL, caching, server management, logging – all on Amazon EC2. He’ll talk about the mistakes made, the lessons learned, the successes, and where Pinterest is headed.

Bring lots of questions!

Speaker Bio:

Marty is a Level 17 Cloud Ninja at Pinterest. As one of the early geeks, he built out the site’s infrastructure and is now managing the spam and abuse team. Marty previously worked at Azul Systems as a VM engineer, focused on building and improving the JIT compilers in HotSpot.

Back to Conference Schedule


DS, BP, EJB, CDI, WTF!?

Graham Charters [IBM] | 10:30-11:05 – 30/10/2013 | Schubartsaal

Abstract:
Experience level: Intermediate

There are a number component models available to OSGi developers; Declarative Services (DS), Blueprint (BP), Enterprise JavaBeans (EJB), Contexts and Dependency Injection (CDI). Some have their roots in Java EE, some in open source projects such as the Spring Framework, others are standards at the OSGi Alliance, and some have DNA from all three. As is often the case where there are options available, there’s rarely a one-size-fits-all. The ‘right’ choice may depend on the type of project you’re working on, the existing assets, tools and skills at your disposal, and the runtime you’re looking to deploy to. This talk will provide a brief overview of the four component models listed, describe their capabilities, standards coverage, tools support, and available implementations, and will show working examples of each, all in an effort to help OSGi users find a path to a component model best suited to their particular task.

Speaker Bio:

Graham Charters is a Senior Technical Staff Member in the IBM WebSphere Application Server development organization. He is responsible for the OSGi Applications feature of the Application Server and a committer and PMC member of the Apache Aries OSGi programming model project. He is also the IBM technical lead in the OSGi Alliance Enterprise Expert Group.

Back to Conference Schedule


Open The Box

Fred Rivard [IS2T], Francois Bodet| 10:30-11:05 – 30/10/2013 | Seminarräume 1-3

Abstract:
Experience level: Intermediate

A new world of applications emerges in the Home thanks to the growing variety of sensors and actuators available. Several application domains are considered, e.g., security, energy efficiency, comfort, ambient assisted living, multimedia communication. As the whole range of devices and applications is not foreseeable, one great challenge lies in the deployment and maintenance of a software environment embedded on a Home box open to third party applications.

OSGi technology has been chosen as the software execution environment for both technical & business reasons (1)– embedded constraints, object sharing and isolation – and (2) ecosystem reasons – openness and standardization. However, challenges remained: Robustness & and data security, easy access to heterogeneous devices, resources management have to be provided above a low footprint execution environment.

Bouygues Telecom has taken part to a joint national project – Open The Box (OTB) – in 2012 with IS2T as a JVM provider, and seven other partners such as Orange to achieve this vision. The set of specifications targets cost effective (low footprint) Java OSGi system: 1MB RAM, 0.5MB Flash for the whole OSGi execution environment including the JVM and libraries.

Bouygues Telecom demonstrates the integration of a home energy management service as a “Fifth Play” on OTB OSGi environment embedded on Bouygues Telecom BBox Sensation gateway. http://www.btinitiatives.fr/bouygues-telecom-ijenko-and-is2tdemonstrate-

The presentation will provide details about these specifications and their developments. Speakers will also give a vision of the public delivery of those developments and the commercial roadmap.

Speaker Bios:
Fred Rivard Fred is CEO of IS2T.

MBA, PhD in computer science

With its dual competency, business and technology, Fred turns technologies assets into business reality within embedded systems. Prior to founding IS2T, Fred has been part at OTI/IBM of the Java compiler team, the J9 Java virtual machine team, and the pervasive embedded team.

Back to Conference Schedule


TRESOR: The modular cloud – Building a domain specific cloud platform with OSGi

Alexander Grzesik [medisite Systemhaus GmbH] | 11:15-11:40 – 30/10/2013 | Schubartsaal

Abstract:
Experience level: Intermediate

The usage of cloud technologies for data exchange as well as the capability of services to run in the cloud brought this internet-based technology a gain of importance in the last years covering the private customer as well as the industry. This talk will give a practical introduction to an OSGi based architecture for cloud applications and gives an overview to the usage of OSGi Enterprise and Blueprint specifications. It will show some best practices, we established to develop with OSGi in an enterprise cloud environment.

With sight on the healthcare sector, the cloud is challenged with special requirements on data security during storage and transfer. Thus leading to the need to address customer concerns respecting privacy in much more detail than in other areas. To advance the research on the usage of cloud technologies in the healthcare sector as well as to enrich discussions on this theme, the German Federal Ministry of Economics and Technology funds 14 research projects as part of the Trusted Cloud initiative [1]. The TRESOR – Trusted Ecosystem for Standardized and Open cloud-based Resources – project as one of these projects has the aim to provide an open platform for cloud applications for the health care sector [2]. In this project, we combine modern cloud technologies and the OSGi service framework to build a modular and scalable PaaS (Platform as a Service) to provide flexible domain specific services for healthcare.

Topics covered:

  • Introduction to the TRESOR project
  • Why we decided to use OSGi
  • OSGi based architecture, benefits and pitfalls
  • OSGi Enterprise and Blueprint, What they provide and what is lacking
  • Some Best Practices
  • OSGi & Maven
  • From jar-hell to bundle hell ?
  • Fine grained control with Bundle Security
  • OSGi Bundles & JPA Persistence
  • Transaction management with Blueprint
  • OSGi in the cloud

References

[1] Trusted Cloud Project, BMWi

[2] TRESOR Homepage, BMWi

Speaker Bio:

Current employment: Head of development of medisite Systemhaus GmbH responsible for the development of the Patient Data Management System (PDMS) m.life and Software architect for the TRESOR Project. 15 years of work experience in medical Software development, 10 of this as Team leader and Software architect. Expert for Software Architecture, OSGi, Java and Java EE.

Back to Conference Schedule


The PowerMatcher – making the electricity grid smarter

Aldo Eisma [IBM] | 11:15-11:40 – 30/10/2013 | Seminarräume 1-3

Experience level: Beginner

Today’s energy market is rapidly changing. The percentage of renewable energy is growing fast, and more and more energy consumers are also generating energy. However, renewable energy sources, like solar and wind are uncontrollable and not always accurately predictable. To avoid black-outs and other problems, the electricity grid must become smarter.

In this talk I will present the PowerMatcher smart grid concept, and how its rapid adoption is enabled by OSGi and Eclipse technologies, as demonstrated in the Couperus field trial in the Netherlands.

The PowerMatcher is an innovative approach for smart coordination in the electricity grid, a scalable multi-agent system that optimizes distributed generation, storage and use of electrical energy.

In 2012, the development of a reference implementation for PowerMatcher on OSGi was started, and the result is now available under a research license from the newly founded Flexiblepower Alliance Network. The OSGi’s service, component and configuration model enable rapid development of PowerMatcher solutions, from simulation to assembly and distributed deployment. Messaging between distributed agents is supported with Eclipse Paho, and a simulation toolkit has been developed using the Eclipse Rich Client Platform.

The first field deployment that is using the new reference implementation for PowerMatcher is the Couperus Smart Grid project, a new housing project with 300 energy efficient apartment homes equipped with an individual heat pump for heating and cooling. The PowerMatcher controls the heat pumps in such a way that it compensates generation imbalance of a wind turbine, within the capacity constraints of the local grid.

Please join us in making the electricity grid smarter!

Speaker Bio:

Aldo Eisma is a solution architect at IBM, currently focusing on innovation in energy management. He has led the development of the initial version of the PowerMatcher reference implemention and its field trial in the Couperus Smart Grid project. His past work includes development of RFID and sensor solutions and middleware products, contributions to the Eclipse Service Oriented Device Architecture, and IBM’s Java runtime technologies and tools.

Back to Conference Schedule


Building dynamic distributed data stores with OSGi

Tim Ward [Paremus Ltd] | 13:45-14:20 – 30/10/2013 | Schubartsaal

Abstract:
Experience level: Intermediate

Managing large distributed runtimes can be very hard, particularly when it comes to configuration. Tools like Puppet and Chef try to solve this by automating configuration rollout, but it can be very hard to cope when parts of the runtime need to be moved, or the underlying platform changes.

OSGi is a powerful modularity framework for Java, but it also provides support for dynamic life-cycles and loosely coupled service interactions. This makes OSGi an ideal tool for configuring and managing distributed environments, especially when responding to change.

In this talk you will see how an OSGi framework can be used to manage external processes, and how by using OSGi Remote Services it is possible to automatically configure these processes into a resilient, distributed NoSQL store that adapts to its environment.

Speaker Bio:

Tim Ward is a Principal Engineer at Paremus Ltd, a co-author of Enterprise OSGi in Action, and has been actively working with OSGi for over five years. Tim has been a regular participant in the OSGi Core Platform and Enterprise Expert Groups, and led development of several specifications. Tim is also an active Open Source committer and a PMC member in the Apache Aries project, which provides a container for enterprise OSGi applications.

Back to Conference Schedule


OSGi-based management of distributed renewable power sources

Andreas Gerstmeier [EnBW ODR AG] | 13:45-14:20 – 30/10/2013 | Seminarräume 1-3

Abstract:
Experience level: Beginner

OSGi-based management of distributed renewable power sources

The presentation will provide an overview of the architecture and implementation of the infrastructure that will be used at EnBW ODR AG to manage distributed renewable energy sources.

In Germany, a electrical distribution system operator (DSO) is authorised by the legislator to limit the production of energy, if stability of the power grid is endangered or the grid is not capable to transport the renewable or conventional generated energy. Due to the installation of 1.2 million distributed renewable generating facilities, this instrument is used almost daily by some DSOs. The capability of the DSO, to measure the current power and to limit the energy production, have now to be implemented for all renewable power plants bigger than 100kW.

At first, we were looking for a turn-key solution in the market, that offers automatic provisioning, dynamic software-updates, hardware independence and process integration plus some additional management features. Due to the fact, that no existing software solution was able to fulfil our requirements (these all is needed because of the vague legal situation), we decided to implement a prototype based on a public standard that is widely accepted, OSGi.

Eclipse Equinox is in use as runtime on the gateways and ProSyst mPRM device management software are implemented on the back-end side. The gateways communicate with the local automation units at the renewable energy plants using protocols that are common in industrial automation. The 3G-based gateway communication to the back-end is implemented using SSL-encrypted messaging services. Registered gateways appear in the back-end as so-called power-plant- and generator-control-units with a defined feature set. An OSGi bundle on the mPRM back-end tracks these control-units and handles communication to the control center, using the telecontrol protocol IEC 60870-5-104. Currently the integration and rollout of gateways for 1,000 power plants starting in Q1/2014, is carefully arranged.

About EnBW ODR AG EnBW ODR AG is a regional subsidiary of EnBW AG (the 3rd biggest energy supplier in Germany) and supplies about 220,000 customers with electricity in a rural area of 3,400 km². Currently there is an installation of 25,000 renewable generating facilities in our electrical grid, rising about 2,500 every year. 380 employees work in the head office, which is located in Ellwangen. http://www.odr.de

Speaker Bio:

Andreas Gerstmeier served an apprenticeship as a farmer before following up with an apprenticeship as a software developer (Fachinformatiker). Andreas holds a masters degree in computer sience (Dipl.-Inf. FH) and has been working for two and a half years with EnBW ODR AG in Ellwangen in software development for embedded devices and OSGi. Prior to this he was with IBM in Böeblingen working on System Z and zLinux device driver development for four years.

Back to Conference Schedule


Dynamic Hybrid Cloud Applications

Bram de Kruijff [Luminis Technologies], Alexander Broekhuis [Luminis Arnhem] | 14:30-15:05 – 30/10/2013 | Schubartsaal

Abstract:
Experience level: Intermediate

The Cloud is booming. Economic advantages of utility computing, better time-to-market and apparent flexibility is what drives more and more businesses to move their critical systems into the third party infrastructures of cloud providers such as Amazon and Google. But are these providers and their infrastructures reliable? Are they secure and do they comply to local rules and regulations with regard to privacy sensitive data? Most “Service License Agreements” are nowhere near to accepted industry standards and, as such, certainly do not meet the requirements for time and mission critical systems. And what about that so called flexibility? Each provider introduces their own proprietary management interfaces and platform services locking customers in as fast as possible. The infrastructure may be virtualized, but unless great care is taken, moving between providers when infrastructure fails or a cheaper alternative emerges, becomes a major hurdle.

This talk introduces INAETiCS, a research project that aims to define an open platform architecture and application model that supports truly dynamic and hybrid cloud applications by leveraging, but not locking into, existing public and private cloud solutions as well as native and embedded systems. Through a “Quality of Service” based deployment model, run-time automated infrastructure management, resource and topology management as well as dynamic software provisioning and configuration, the goal is to provide a non-intrusive environment where applications can run anywhere, anytime in a most optimal configuration. These concepts will be illustrated by looking at the implementations of key components and mechanisms, such as OSGi Remote Services, being developed by the open-source projects Amdatu Platform, Apache ACE and Apache JClouds where anyone interested is welcome to get involved.

Speaker Bio:
Bram de Kruijff Active on the web since 1995, Bram an open source enthusiast working for Luminis Technologies. As a software architect he has a broad experience with server side web application architectures, frameworks and technologies for enterprise grade applications. Since 2005 he has been actively involved in several products and projects that successfully adopted OSGi as a server side application architecture. At present Bram’s focus is on cloud infrastructure and applications architectures.

Bram is a PMC member of Apache ACE and the Amdatu project and has presented at ApacheCon as well as several smaller Dutch conferences.

Alexander Broekhuis Alexander Broekhuis works for Luminis and is a Java engineer since 2004 with a clear focus on OSGi. In the last years he has worked for embedded product companies on distributed middleware in which Java and C is used. His work includes creating meta-models and transformations from which the code for the middleware is generated (MDA, MDD), and more recently updating existing middleware to support dynamic services, based on OSGi. Alexander is initiator and committer of the Apache Celix project, a platform for distributed systems in C, with a focus on interoperability with Java (OSGi).

Back to Conference Schedule


Smart and Highly Scalable Lifecycle Management for Embedded Devices

Thomas Hott [ProSyst Software GmbH], Rainer Eschrich | 14:30-15:05 – 30/10/2013 |Seminarräume 1-3

Abstract:
Experience level: Intermediate

M2M is a highly dynamic market and is turning ever more challenging and complex as we progress toward fulfilling the vision of the Internet of Things. There are several big challenges to overcome. While device interoperability between devices and with the cloud has already been tackled, one of the biggest challenges is the managing of the devices and its resources in the cloud as well as ensuring scalability across a wide range of intelligent, heterogeneous devices. The strongly adopted M2M-gateways based on Java/ OSGi pose another dimension to manageability, as you now need to do complete lifecycle management of the applications including the efficient and secure deployment of software components and also manage their use of resources on the embedded devices.

We will present an integrated End-2-End Java/ OSGI solution addressing this, consisting of an embedded Java/ OSGI solution for the client-side and a JavaEE-based backend system. We will also show the results of a performance benchmarking of the ProSyst backend device management system (mPRM) deployed on Oracle Exalogic Elastic Cloud system with Oracle Exadata Database, which demonstrates an integrated backend M2M solution capable to provide real-time management and monitoring of millions of simultaneously connected devices in a very efficient and secure manner. Last not least, we will talk about concrete customer deployments and demonstrate the complete solution.

Speaker Bio:

Thomas HottThomas, CEO of ProSyst, joined them in November 2000. Before, he gained over 17 years of experience in international banking, thereof 4 years as an Executive Board member of Chase Manhattan Bank AG, as head of the banks corporate business, and, since mid 1998, as a Managing Director of Capital Markets at Merrill Lynch Germany. Throughout his career, his main focus was on the successful introduction of innovative products and services. Thomas Hott attained a German Diploma in Economics.

Back to Conference Schedule


Distributed Eventing in OSGi

Carsten Ziegeler [Adobe] | 15:15-15:50 – 30/10/2013 | Schubartsaal

Abstract:
Experience level: Beginner

One of the major topics the OSGi alliance is working on is a proposal for distributed eventing especially in the cloud. This session starts with an overview of the current state in the alliance and then shows already available solutions from the Apache Sling open source project. This includes distributing events through event admin and controlled processing of events by exactly one processor in distributed installations. The current implementations will be set in context to the ongoing activations in the alliance.

Speaker Bio:

Carsten Ziegeler is senior developer at Adobe Research Switzerland and spends most of his time on architectural and infrastructure topics. Working for over 25 years in open source projects, Carsten is a member of the Apache Software Foundation and heavily participates in several Apache communities including Sling, Felix and ACE. He is a frequent speaker on technology and open source conferences and participates in the OSGi Core Platform and Enterprise expert groups.

Back to Conference Schedule


The OSGi world of REST

Dragos Dascalita Haut [Adobe Systems] | 15:15-15:50 – 30/10/2013 | Seminarräume 1-3

Abstract:
Experience level: Intermediate

There are many ways to write web services today; can OSGI bring a better alternative to the existing solutions?

Come to see what you could win by writing your REST services following OSGI standards.

In this presentation you will discover the story behind a real use case, the challenges, the lessons learned, and the technology stack powering the solution. You will see how OSGI fits into the JAX-RS industry standard, how it plays with cloud deployments and how easy is to scale it in an enterprise environment. This story starts with the bare Apache Felix and the bundles that come with it, walking you through the important decisions and explaining the technology choices.

So if you’re curious to know how the final solution looks like, how many bundles you need in order to run a RESTfull web service in practice, or if the OSGI based modularization pays off eventually, then this presentation is for you.

Among the showrunners you’ll find Jersey 2, Apache Felix, Apache Karaf, Swagger, Bean Validation and others.

Speaker Bio:
Coming soon.

Back to Conference Schedule


Never A Wrong (Semantic) Version Again!

Ferry Huberts [Pelagic] | 16:15-16:50 – 30/10/2013 | Schubartsaal

Abstract:
Experience level: Beginner

This talk will explain why semantic versioning is both easy and hard at the same time. It will go into detail on what semantic versioning actually entails, and offer some examples to challenge the audience. It will become clear that the hard part of semantic versioning is best not dealt with by mere mortals and that tooling should take over that responsibility.

At that time, a semantic versioning demo will be given using bndtools. Bndtools incorporates baselining, which is an implementation of automatic semantic versioning. The demo will show the audience all the advantages of having a tool do the versioning for them: never a wrong version again!

huberts

Back to Conference Schedule


STMicroelectronics Smart Home Reference Designs – Turnkey platforms with compatible software to facilitates application development

Luca Celetto | 16:15-16:50 – 30/10/2013 | Seminarräume 1-3

Abstract:
Experience level: Intermediate

This talk will present a platform designed for application development to serve the new markets enabled by the Internet of Things, with a particular focus on Home Automation, Smart Energy, and e-health. It will provide the reasons why OSGi has been chosen and show how the platform works.

The Internet of things is the next revolutionary wave following profound changes brought to us by Personal Computers (connecting places) and Mobile Phones (connecting people on the go). This third wave heralds the beginning of the new era of pervasive connectivity, embedded intelligence, and application convergence. It will be the world where smart things will communicate among themselves and with us, enabling a more efficient, and more comfortable environment.

Designed to jumpstart application development, the STMicroelectronics Smart Home Platform is composed of a gateway in production-ready form factor and a set of sensor/actuator nodes, along with a Java Virtual Machine, ProSyst’s OSGi framework and a working demonstration application fully supported by STMicroelectronics. The built-in OSGi stack provides Java-level abstraction of the network interfaces of the gateway and its nodes as well as cloud integration features such as a web server, web services and standards-based remote management. The OSGi framework is the key enabler of the product lifecycle and remote application management mandatory for service provider driven deployments.

The JAVA/OSGi software abstraction layer provides zero-effort portability across the all STMicroelectronics’ CPUs enabling the developers to select an SoC based on application and/or interface convergence requirements. Successful demonstrations of the same home automation software built on this platform have been already made on an entry-level gateway (based on ARM926) as well as a high-end multimedia gateway (Dual-Cortex A9 multimedia processor).

Speaker Bio:

Luca Celetto is a Software Design Manager in STMicroelectronics, Italy, where he manages a team of R&D employees and consultants that provides innovative solutions for embedded software development on the company products. In the last two years of activity, he worked on OSGi solutions for the company cross-divisional project on Internet of Things that is the object of this presentation. The project aims at providing an ecosystem of reference hardware and software for gateways connecting the company hardware sensors and actuators.

Back to Conference Schedule


Robust collaboration services with OSGi

Satya Maheshwari [Adobe] | 17:00-17:35 – 30/10/2013 | Schubartsaal

Abstract:
Experience level: Beginner

The speaker is Computer Scientist in Adobe, working for Adobe Connect, a web conferencing solution from Adobe. He has been involved in the adoption of OSGi framework in Adobe’s web conferencing solution.

Live real-time collaboration is mission critical for any web conferencing solution. Nothing is worse than a technical failure/downtime occurring while hosting a seminar on a web conferencing solution like ours. When dealing with such a kind of requirement, it is desirable to have a framework where a software component failure is isolated to the functionality based on it or at most, the parts which depend on it. Also it should be possible to fix and upgrade the components in isolation without impacting other pieces of functionality. The OSGI framework is a perfect match for our requirement. The OSGi framework provides a mechanism of plugging in/out services from a running server without pulling the server down.

The speaker intends to demonstrate how OSGi framework is utilized in providing a resilient architecture for maintaining a web conferencing service with mission-critical requirments.

Let’s consider a scenario where component of a web conferencing service needs to be upgraded. In one case it’s deployed on a regular application server while in the other it is deployed in an OSGi container.

Non-OSGi: Bringing the server down for an upgrade would not only make the concerned part of web conferencing service unavailable but also all other services offered by the server would become unavailable too, thus resulting in an overall downtime.

OSGi: If this service is deployed as an OSGi service instead then it would be possible to just upgrade this service while the other services would continue to work un-interrupted.

Consider our use case of a web conferencing system which provides several services like chat, audio conference control integration with several conferencing systems by means of adapters. Let’s assume, there are 2 conferencing providers A and B, with an adapter for each of them. At some point in time, the conferencing system A got upgraded. Consequently we have to upgrade the adapter A to support the changes. At the time of upgrade, provider B has some critical conferences in progress. Now if we use the conventional approach of deploying all the adapters on an application server, we would need to stop it, deploy adapter A and restart it. During this process, conferences of provider B needlessly gets interrupted. Taking this point further, if we had more providers, all of them would have got interrupted because of changes in just one . And these interruptions would be very frequent as one or the other conferencing system would keep changing.

The solution to the problem is to segregate these as separate services and deploy them on an OSGi based server. Adapter A and Adapter B would be 2 now be separate OSGi services. If service A has to be upgraded,only it will be stopped, upgraded and restarted, without disturbing service B. Deploying as an OSGi service ensures code modularity because individual services have a clean separation and can be developed independently. Also an OSGi services’ configuration can be dynamically updated on the fly without stopping the server.

Back to Conference Schedule


Travelling Light for the Long Haul

Ian Robinson [IBM] | 09:00-10:00 – 31/10/2013 | OSGi Keynote

Abstract:
Experience level: Beginner

One of the attractive qualities of OSGi is its role in enabling technologies that adopt it to manage the cost of their own success. Anything that gains adoption – in technology or elsewhere – picks up baggage as a result and needs to figure out how to deal with current installations while expanding in new directions. The WebSphere platform has been around for almost as long as Java and knows a thing or two about baggage but still manages to travel to many places with just a carry-on allowance. We adopted OSGi internally 8 years ago and have gradually increased our exploitation with each passing release, most recently and deeply with the lightweight WAS Liberty Profile. It hasn’t all been plain sailing and we learned from a number of mistakes made along the way. When WebSphere Application Server first adopted OSGi it had over 10 million lines of code in a modest number of huge JARs. The engineering effort to modularize that into a “sensible” number of OSGi bundles was fairly significant. We had a global development team spread across a dozen labs and nearly as many timezones, all learning OSGi principles at the same time. What could possibly go wrong? I’ll spend a little time reviewing the consequences of our bundles-first-services-later approach but our success was initially limited to having the equivalent of a well-organized and large container ship which could travel at speed but needed a pretty wide berth. Our initial investment in OSGi delivered on most of the internal benefits we wanted but failed on some of the external ones that matter to our customers.

Application Servers are used in different ways by Developers and IT Operations. Ops teams care about the overall cost, including performance and availability, of the platform and the applications it supports; Dev teams care about how quickly and easily they can create and deliver their applications and treat the server as a tool. Only some of them know or care about OSGi; multi-channel enablement and cloud deployment are the current pressures they are under. Today, WebSphere is a consumer of OSGi in two distinct fashions. Internally we learned from our earlier experiences and embraced an OSGi services model to enable us to run the same runtime just as fast but in a far more dynamic fashion: it’s how we can start/stop individual technologies of the Java EE Web Profile independently on the WAS Liberty profile, in a 50MB install with a 2-second startup while still support all our customers’ existing deployments. Externally we support both Enterprise OSGi and traditional Java EE as application programming models, on the same runtime and using the same Eclipse-based tools. Our customers who understand and care about OSGi can develop and deploy web application bundles and multi-bundle enterprise applications. Those who don’t care about OSGi benefit from it indirectly through the OSGi subsystem features that provide the server capabilities their applications use.

One of the challenges OSGi continues to face is over when to be “front of office” and when to be “back”. As the industry accelerates towards cloud, OSGi is an internal part of IBM’s strategy for high-density virtualized Platform-as-a-Service through WebSphere Liberty. Today’s cloud provisioning strategies, for example the buildpacks used by Heroku and CloudFoundry, are designed to be technology-agnostic. As a programming model for the cloud, OSGi is in a position of strength with its heavily service-oriented architecture. But in the spirit of agnosticism, one of the next steps OSGi needs to take is simply greater availability of the core OSGi framework in some of the more popular cloud platforms. Once there are more OSGi services running in those environments then the value and simplicity of autowiring OSGi services as cloud services becomes more apparent.

Expectations and vision has to be managed up and down any organization that invests in OSGi – from the executive leadership team responsible for the business’s bottom line, through the distributed architecture/development teams building tomorrow’s technology on top of today’s, to the marketing and sales organization who need to sell the result to both IT and line of business. The value proposition has to be tailored to the audience. This is the story of how WebSphere has had outstanding success with the former four-letter acronym that IBM Marketing still wants to expand.

Speaker Bio:

Dr. Ian Robinson is an IBM Distinguished Engineer and the Chief Architect of the WebSphere Application Server, based at the IBM Hursley Software Lab in the UK. Ian has over 20 years’ experience working in distributed enterprise middleware across product development, open standards and open source. He is responsible for the strategy and development of IBM’s WebSphere Application Server and its Eclipse developer tools. Beyond product development, Ian has been chair of the OASIS Web Service Transactions technical committee, OSGi EEG co-author of the OSGi Transaction Service specification and created the open source Apache Aries incubator project for enterprise OSGi technologies.

Over the last two years Ian has been one of the driving forces behind the OSGi-based WebSphere Liberty Profile, a lightweight profile of the WebSphere Application Server which integrates OSGi with Java EE technology to provide a highly functional yet small and developer-friendly environment for enterprise applications. WebSphere is a successful business for IBM and one of the toughest challenges for the product team is how to be radical with projects like Liberty without breaking existing customer deployments. Ian will be talking about both the successes and failures (mostly self-inflicted) the WebSphere team have had with OSGi and about the role it plays in IBM’s cloud strategy.

Back to Conference Schedule


For Coordination, State Component Transitions

Radoslaw Szymanek [Crossing-Tech], Simon Bliudze [EPFL, Rigorous System Design lab] | 10:30-11:05 – 31/10/2013 | Schubartsaal

Abstract:
Experience level: Intermediate

When building large concurrent systems, one of the key difficulties lies in coordinating component behaviour and, in particular, concurrent access to resources. Native mechanisms such as, for instance, locks, semaphores and monitors allow developers to address these issues. However, such solutions are complex to design, debug and maintain. Indeed, coordination primitives are mixed up with the functional code, forcing developers to keep in mind both aspects simultaneously. Finally, in concurrent environments, it is difficult to envision all possible execution scenarios, making it hard to avoid common problems such as race conditions.

The coordination problem above calls for a solution that would allow developers to think on a higher abstraction level, separating functional and coordination aspects of the system behaviour. For instance, one such solution is the AKKA library implementing the Actor model. An actor is a component that communicates with other components by sending and receiving messages. The processing of a message by an actor is atomic. The state of an actor cannot be directly accessed by other actors, avoiding such common problems as data races. However, component coordination and resource management are still difficult. Fairly complex message exchange protocols have to be designed, which are still spread out across multiple actors. Any modification of the coordination policy calls for the corresponding modifications in the behaviour of several actors, potentially leading to cascading effects and rendering the entire process highly error-prone.

Our approach relies on the observation that the behaviour of a component can be represented as a Finite State Machine (FSM). An FSM has a finite set of states and a finite set of transitions between these states. Transitions are associated to functions, which can be called to force a component to take an action or to react to external events coming from the environment. Such states and transitions usually have intuitive meaning for the developer. Hence, representing components as FSM is a good level of abstraction for reasoning about their behaviour. In our approach, the primitive coordination mechanism is the synchronisation of transitions of several components. This primitive mechanism gives the developers a powerful and flexible tool to manage component coordination. Furthermore, this approach allows us to clearly separate the behaviour of a component and the interface it exposes for the interaction with other components from the system-wide coordination policies.

OSGi associates to each bundle a simple state machine representing the bundle’s lifecycle. A bundle can be in one of the states Installed, Resolved, Active, etc. However, once the bundle has been started, it remains in the state Active — the functional states are not represented. Therefore, this mechanism is not applicable for coordination of active components.

We have implemented functional component coordination in OSGi by using BIP coordination mechanisms (see also the overview on the RiSD web site). BIP is a component framework jointly developed by Verimag (France) and EPFL RiSD (Switzerland) laboratories lead by Prof. Joseph Sifakis (2007 Turing Award laureate). In BIP, systems are constructed by superposing three layers of modelling: Behaviour, Interaction, and Priority. The first layer, behaviour, consists of a set of components modelled by FSM. The second layer models interaction between components defining explicitly which transitions could be synchronised. When several interactions are possible, priorities can be used as a filter. Interaction and Priority layers are collectively called glue. The execution of a BIP system is driven by the BIP Engine applying the following protocol in a cyclic manner:

Upon reaching a state, each component notifies the BIP Engine about the possible outgoing transitions; The BIP Engine picks one interaction satisfying the glue specification and notifies all the components involved in it; The notified components execute the functions associated to the corresponding transitions. To use the transition synchronisation mechanism, developers must ensure that the component states remain stable during one cycle of the above protocol: a component must be able to perform any transition it has announced as possible to the BIP Engine.

As mentioned above, this approach allows a clear separation between the component behaviour and system-wide coordination policies. For coordination scenarios that require a global state information (see for example our use case below), dedicated monitor components can be added in straightforward manner. This allows to centralise all the information related to the coordination in one single location, instead of distributing it across the components. This considerably simplifies the system maintenance and improves reusability of components. Indeed, components do not carry coordination logic relying on the characteristics of any specific execution environment.

An observable trend in software engineering is that design becomes more and more declarative. Developers provide specifications of what must be achieved, rather than how this must be achieved. These specifications are then interpreted by the corresponding engines, which generate — often on the fly — the corresponding software entities. Thus, it is not always possible to instrument or even access the actual source code. Furthermore, it is usually not desirable to modify such code, since this can lead to a considerable increase of the maintenance costs.

We have taken a non-invasive approach relying, for the interaction with the controlled components, on existing API. With our approach, designers write a separate annotated Java class that we call “BIP specification”. BIP specification is an abstract model of the component that is aware of its functional states. It defines the functions associated to the corresponding transitions. Transitions can be of three types: enforceable, spontaneous and internal. Enforceable transitions are used for coordination through the BIP Engine; spontaneous transitions are used to take into account the changes in the controlled component; finally, internal transitions can be used to make the BIP Specification more concise — when enabled, they are executed immediately. In order to respect the state stability assumption mentioned above, we require that transitions of only one type be enabled at any given execution step. BIP Specification developers are responsible for enforcing the validity of this requirement. However, our tools log an exception when a violation is detected at runtime.

Annotations in a BIP Specification are processed by the BIP Executor, which we have developed as part of our library, to construct a corresponding Behaviour object representing the FSM. The Behaviour object is used to coordinate the actions of the component with the other components of the system through the BIP Engine. Additional components can be provided in a similar manner to monitor and influence the system behaviour, in particular to impose safety properties. For specifying larger components, where annotations become impractical, we have defined a Behaviour API, which allows developers to construct a Behaviour object in a programmatical manner.

BIP coordination extension for OSGi has been implemented and tested in Connectivity Factory™, a flagship product of Crossing-Tech S.A. The main use-case consists in managing the memory usage by a set of Camel routes. A Camel route connects a number of data sources to transfer data among them. The data can be fairly large and may require additional processing. Hence, Camel routes share and compete for memory. Without additional coordination, simultaneous execution of several Camel routes can lead to OutOfMemory exceptions, even when each route has been tested and sized appropriately on its own. We have designed an annotated BIP Specification for Camel routes, using the suspend and resume functions provided by the Camel Engine API. We also use notification policies provided by Camel to observe the spontaneous modifications of the route states. By introducing an additional Monitor component, we limit the number of Camel routes running simultaneously to ensure that the available memory is sufficient for the safe functioning of the entire system.

Introduction of OSGi was a tremendous improvement for the design of modular Java-based systems. OSGi greatly simplifies the work of a software developer and its benefit has been shown by the ever growing community of users. It takes into account such aspects as class loading, class visibility, bundle lifecycle and service dynamicity. However, the lifecycle layer makes a very strong simplification by limiting all the information about an active bundle to a single state. In Crossing-Tech’s experience with OSGi, this happens to be very restrictive. In our practice, common coordination issues are very difficult to address with the mechanisms provided by the OSGi lifecycle layer. We had to resort to ad-hoc solutions to ensure that resources such as memory within the JVM running an OSGi container are not being exhausted. The specification of what are the allowed global states and global state transitions is an integral part of the specification of a modular system. Using BIP, we have shown how these aspects can be taken into account in a non-invasive manner and without any impact on the technology stack within an OSGi container following the best practices of OSGi. Although differentiating multiple components within a bundle could go beyond the desired scope of the OSGi specification, one has to notice that this finer granularity is already quite common, since OSGi best practices prefer packages to bundles as means to express dependency relationship. Thus, we consider that our work, recognizing the fact that bundles may have multiple components with multiple functional states, will help to improve the OSGi standard.

This work was co-authored by:

Simon Bliudze, Anastasia Mavridou and Alina Zolotukhina (EPFL RiSD) Radoslaw Szymanek (Crossing-Tech S.A.)

Speaker Bio:

Simon Bliudze holds an MSc in Mathematics from St. Petersburg State University (Russia, 1998), an MSc in Computer Science from Université Paris 6 (France, 2001) and a PhD in Computer Science from École Polytechnique (France, 2006). He has spent two years at Verimag (Grenoble, France) as a post-doc with Joseph Sifakis working on formal semantics for the BIP component framework. After three years as a research engineer at CEA Saclay, France, he has joined the newly created Laboratory for Rigorous System Design (RiSD) at EPFL.Simon Bliudze is a member of the Steering Committee of the Interaction and Concurrency Experience (ICE) workshop.

Back to Conference Schedule


Continuous Automated Deployment with Apache ACE

Jago de Vreede [Luminis Technologies], Marcel Offermans [Luminis Technologies] |11:15-11:50 – 31/10/2013 | Schubartsaal

Abstract:
Experience level: Intermediate

Nowadays, it is quite common to have build infrastructure that, on every change in a repository, builds your software and runs all your tests. However this is where most development teams stop. This talk demonstrates how you can consistently deploy systems from development to testing, staging and production.

With Bndtools we semantically version bundles in the Eclipse IDE. The continuous build is setup to automatically deploy to a bundle repository and create snapshots of changed bundles compared to a baselined version that is available in a release repository. By hooking up these repositories to Apache ACE, such updates can instantly be deployed to systems in different configurations, allowing you to deploy new features to QA systems, beta users and finally roll them out to all other customers.

This can all be done with hot deployment when your bundles are versioned properly. We’ll also go into real life scenarios and pitfalls we have encountered setting this up.

Speaker Bio:

Jago de VreedeJago is a software engineer at Luminis Technologies, as a software engineer he has seen a broad-spectrum of projects and he has been working on a large OSGi project for the last year. His work is not exclusive to java development but also does front-end development, and the integration between these. Performance tuning and optimizations are also part of his work.
Marcel OffermansMarcel is a fellow at Luminis and the Director at Luminis Technologies. As a software architect he has a broad experience in different operating systems, languages and applications, ranging from enterprise applications to mobile, embedded and distributed systems. He has been involved in lots of commercial OSGi projects for over eight years and is responsible for the architecture, development and support of an OSGi and cloud based software provisioning product. He is also a member of the Apache Software Foundation and involved as a committer and PMC member in the Apache Felix, Apache ACE and Apache Celix projects.

Marcel regularly speaks at conferences, including ApacheCon, JavaOne, EclipseCon, OSGi DevCon, FOSDEM, Devoxx, NLJUG and various local demo camps and user forums and has given several hands-on trainings on OSGi related subjects.

Back to Conference Schedule


Test Driven Development with OSGi

Balázs Zsoldos [Everit Kft.] | 13:30-14:05 – 31/10/2013 | Schubartsaal

Abstract:
Experience level: Intermediate

The purpose of the talk is to show how developers can start writing their tests using TDD techniques. During the speech, the audience will get an idea about the following topics:

Writing tests and production code snipets with 30 second iterations Running the tests during development on a real OSGi container that has a similar environment to the live server (no mocking) Running the tests in the integration-test lifecycle phase of a maven build Getting coverage reports after a full build Creating a custom testing environment with a custom OSGi server with the preferred setups Technologies and tools used during the talk: Maven, Eclipse, OSGi, Equinox, Jacoco, Jenkins, JUnit, custom developed opensource tools.

Speaker Bio:

I started java coding in 2006, when I had to take over the lead developer’s job, for he left the project we worked on. Every night, I studied the technologies of Java and finally I fell in love with the language. In 2008, I set up the company Everit with a friend, where my purpose is to use only open-source technologies and to give back to the communities as much as I can. Later, I created the website http://everit.org, where most of our open-source micro projects are listed.

After a couple of years, I realized that most of our projects suffer from deployment time issues. If a developer has to wait two minutes to be able to start testing after deployment, then he will open a browser and surf for ten minutes, therefore, I started to look for a framework capable of producing the fastest possible deployment time.

After seeking for a solution for quite a while, I found OSGi and started to work with it. I realized that many of the modern technologies are not ready for modularization, so I started to migrate or rewrite them. These technologies include the OSGi hibernate adapter and JDBC driver extensions too.

I tried all available OSGi development tools in 2011, but my greediness regarding fast deployment time could not be fulfilled. I found a nice article about Test Driven Development in the book Clean Coder and I got really interested in the topic immediately. In the last two years, my aim was to create a set of tools that make TDD possible in a way that after changing the source code, the procedure of deployment takes only a moment.

I also started many micro projects to improve the technologies even further. Most of them are available at http://github.org/everit-org. Developing a strongly OSGi based UI technology and persistence layer (like JPA) is also amongst my plans.

Back to Conference Schedule


Building modular software with OSGi

Ulf Fildebrandt | 14:15-14:50 – 31/10/2013 | Schubartsaal

Abstract:
Experience level: Intermediate

Modularity of a system is an important topic in software development in order to build solutions that are enable to evolve and support future use cases. New frameworks and standards are created in this context that put modularity more and more in the focus.

In this presentation, usual patterns for modular development are shown combined with the adoption of these patterns with Java and OSGi. Some examples are shown how modularity looks like in coding. Additional there are tools required to check the modularity of a system, because otherwise modularity ends up only as a set of principles, but not really in coding.

So, the session is a combination of patterns, examples, and tools supporting modularity.

Speaker Bio:

Ulf Fildebrandt is a Chief Development Architect at SAP, based in Walldorf. He received his Diploma in computer science from the University of Hildesheim in Germany. Directly after university he was joining SAP. His work started in the client development for SAP systems including SAP GUI, HTML frontends, and ITS. After that he focused on development tools like Eclipse and their adoption in SAP products. Then he becomes responsible of the architecture work for the SAP NetWeaver Composition Environment and SAP NetWeaver Process Integration.

During the last years, he was working for cloud-based integration solutions based on Java and OSGi.

Back to Conference Schedule