The material and instructions for the assignments will be provided during the course.
Two extended abstracts on research papers The course portfolio includes the assignments given during the course. The tutorials are held in class room B221!Ĭompleting the course requires completing the course portfolio and passing the course exam. The course consists of ten (10) lectures and three tutorials.
#Modelio sequence diagram tutorial software
The course provides an introduction to the context, characteristics and concepts of service-oriented software engineering. This course is aimed for MSc and PhD students interested in collaborative and interoperable computing within the Networking and Services subprogramme, and Service-oriented software engineering within the Software systems subprogramme. The screencast was done with a free tool - you can use the pause button at the bottom of the page to pause the presentation. The screencast is available here: SoaML screencast. In the screen cast, the model created at the tutorial session (and available on this page below) is extended with a participant representing the hotel provider. You can use that one still for your own implementation, if applicable.ĭue to numerous requests and feedback, I have now created a "screen cast" for SoaML modelling exercise. I will provide a small example solution (involving traveller, travel provider and hotel provider participants of the service choreography) of the OSGi-projects due Monday that addresses all the technical challenges that you may encounter. So, concentrate on the modelling projects and the home-exam instead. Instead, you can gain 0-5 extra-points (over the 40 points) from your implementation efforts.
#Modelio sequence diagram tutorial full
That is why I decided to change the grading criteria as follows: you can now get the full 40 points from the course portfolio without the OSGi service implementation part. Solving these technical challenges do not contribute to the core objectives of the course. These challenges include for example resolution of cyclic dependencies, and possible issues with configuring the OSGi platform. I realized this week that implementing the OSGi services involves many technical challenges that could not be addressed at the two hour tutorial. Grading criteria changed: OSGi exercise provides now extra-points! In the OSGi framework there is however another way of declaring and using services, namely the OSGi Blueprinting mechanism which should be more easy way to create such service constellations (it hides the lifecycles and dependencies between services, and as far as I know, can also be used with service constellations having cyclic dependencies). Using OSGi Declarative Services created some technological complexities that were not foreseen by me! Especially, because cyclic dependecies are not tolerated, simply implementing the business logic for orchestrating a set of services does not work. Using this quit complex configuration of OSGi bundles we have now created a simple service choreography. the eventhandlers must be registered in the activate() -methods of the backend implementations before the frontend implementations publish the corresponding events. This was needed to guarantee that events published by service frontends get consumed by the backends, i.e. In the runtime configuration illustrated in the screenshot above, the backend-parts of services are initiated before (they have runlevel 4) the frontends (with runlevel 5).
by corresponding bind / unbind methods).Įach front- / backend-implementation utilizes now an activate() -method which is a callback method called by the OSGi platform after all service references for the service implementation have been resolved. For this purpose, each implementation uses the OSGi EventAdmin services reference to this OSGi infrastructure service given using the declarative service mechanism (i.e. and ) that are orchestrated with OSGi Event (publish-subscribe) mechanism. The service implementations were divided to front-end and back-end parts (e.g.
For this reason, the service interfaces and their implementations are now implemented as distinct bundles. The biggest complexity became due to the features of OSGi DS to not allow cyclic dependencies between services. The example implementation became way too complex because the way OSGi Declarative Services runtime is designed. You should create a run configuration that is illustrated in this screenshot: sose-runconfiguration-screenshot.jpg The example projects can be run under the Eclipse by creating a new OSGi run configuration from the menu Run/Run Configurations. zip-file that you can import to your Eclipse -workspace here: osgi-example-projects.zip. The OSGi example projects are now finally available! You can find the.