Today you often face discussions whether to develop something for the desktop with a GUI, the web or the command line. It also happens quite often that you start in one area, and while the project evolves, the requirements are changed or extended. To minimize the discussions and to avoid re-implementing functionality, it is a good practice to separate the function from the user interface. Of course the "single-source" approach is nothing new, but probably for developers that started their career good to hear again. :)
In the OSGi and Eclipse world it is quite easy to achieve such a design. If the functionality is implemented in an OSGi service, it can be easily included in either an Eclipse based application like the Eclipse IDE. You can also simply create a new standalone application with a rich user interface, a command line application or even a REST based webservice for a cloud application.
In this talk I will describe the possibilities with a simple example to explain the basic concepts. After this I will show some real world examples developed in APP4MC, covering Model Migration and Model Transformation. Both functionalities are available in the APP4MC Platform IDE, as standalone command line applications and as a REST-based service published on a cloud infrastructure.
At the end of the session you should have a basic understanding of the "single-source" approach using OSGi services, and the options the OSGi specifications already provide to achieve different deployments of the same functionality.