OSGi Agata Hejmej 4.05.2009



Podobne dokumenty
SOP System Obsługi Parkingów

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Zaawansowane narzędzia programowania rozproszonego

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

SOA Web Services in Java

Android - wprowadzenie. Łukasz Przywarty

Szkolenie: Budowa aplikacji SOA/BPM na platformie Oracle SOA Suite 11g

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Katedra Inżynierii Oprogramowania Tematy prac dyplomowych inżynierskich STUDIA NIESTACJONARNE (ZAOCZNE)

Virtual Grid Resource Management System with Virtualization Technology

Globalne referencje dla idempiere Business Suite

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

Tematy dyplomów inżynierskich 2009 Katedra Inżynierii Oprogramowania

Autor : Mateusz Kupczyk

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Integracja wirtualnego laboratorium z platformą e-learningową

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Architektury usług internetowych. Tomasz Boiński Mariusz Matuszek

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

ZAŁOŻENIA TECHNICZNO-TECHNOLOGICZNE SYSTEMU BUDOWANEGO W RAMACH PROJEKTU

WYKORZYSTANIE I ROZWÓJ WOLNEGO OPROGRAMOWANIA W WOJEWÓDZKIM WĘŹLE INFRASTRUKTURY INFORMACJI PRZESTRZENNEJ

Google Android. Opracował Maciej Ciurlik

Programowanie aspektowe na przykładzie AspectJ JUG Poznań, Jacek Pospychała

Historia modeli programowania

SVN. 10 października Instalacja. Wchodzimy na stronę i pobieramy aplikację. Rysunek 1: Instalacja - krok 1

ZAPOZNANIE SIĘ Z TWORZENIEM

Web frameworks do budowy aplikacji zgodnych z J2EE

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Programowanie obiektowe zastosowanie języka Java SE

EJB 3.0 (Enterprise JavaBeans 3.0)

REFERAT O PRACY DYPLOMOWEJ

Sekcja I: Instytucja zamawiająca/podmiot zamawiający

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Projektowanie obiektowe Wzorce projektowe. Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów)

Deduplikacja danych. Zarządzanie jakością danych podstawowych

Aplikacje RMI

WMS Thematic Standard do publikacji opracowań kartograficznych. Serena Coetzee, Adam Iwaniak, Paweł Netzel

System INTEGRYB jako zintegrowane repozytorium danych umożliwiające zaawansowaną analitykę badawczą

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Tomasz Grześ. Systemy zarządzania treścią

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Spis treści. Wykaz ważniejszych skrótów Wprowadzenie Rdzeń Cortex-M Rodzina mikrokontrolerów XMC

Ekspert MS SQL Server Oferta nr 00/08

Tworzenie sterowników dla FreeBSD. Michał Hajduk

Słowa kluczowe jak góry lodowe

1 Wprowadzenie do J2EE

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak

Wykład 1 Inżynieria Oprogramowania

Przykładowa implementacja

Aplikacja webowa do zarządzania maszynami wirtualnymi

Linux -- u mnie działa!

Java Server Faces - wprowadzenie

Release Notes Process Data Flow ("PDF" )

KATEGORIA OBSZAR WIEDZY NR ZADANIA Podstawowe informacje i czynności

Analiza i projektowanie aplikacji Java

Dokumentacja aplikacji Szachy online

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2011/2012. Architektura zorientowana na usługi

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Wprowadzenie do J2ME

Automatyzacja procesów biznesowych Andrzej Sobecki. ESB Enterprise service bus

Programowanie aplikacji na urządzenia mobilne

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Plan. Raport. Tworzenie raportu z kreatora (1/3)

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Programowanie Komponentowe WebAPI

Praca licencjacka kwiecień 2010

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

HP Service Anywhere Uproszczenie zarządzania usługami IT

JAVA EE MODEL APLIKACJI. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

Programowanie współbieżne i rozproszone

OpenLaszlo. OpenLaszlo

Stan zaawansowania prac dotyczących zamówienia na opracowanie i wdrożenie rdzenia systemu e Urząd.

Systemy operacyjne na platformach mobilnych 3 Wstęp do systemu Android

PROJEKT Z BAZ DANYCH

Web Services. Wojciech Mazur. 17 marca Politechnika Wrocławska Wydział Informatyki i Zarządzania

Platforma Eclipse: Pluginy, RCP oraz GEF

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

ZARZĄDZANIE WYMAGANIAMI ARCHITEKTONICZNYMI

L i f e r a y. Open Source Java Multiplatformowy

7. zainstalowane oprogramowanie zarządzane stacje robocze

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka

LOTUS DAY grudnia 2009 r., Warszawa IBM WebSphere Portal NOW czyli portal w 3 tygodnie

Transkrypt:

OSGi Agata Hejmej 4.05.2009

Plan prezentacji Co to jest OSGi Jakie problemy rozwiązuje Opis standardu Przykładowa aplikacja Podsumowanie korzyści

Co to jest OSGi? Standard, który pozwala na tworzenie wysoce modularnych aplikacji w Javie Koncepcja podobna do SOA, tylko ograniczona do jednej JVM

Do OSGi Alliance (organizacji odpowiedzialnej za rozwijanie standardu) należą m. in.: IBM, Oracle, Red Hat, Spring Source, Ericsson, Deutsche Telekom, Motorola, Nokia, Samsung, Siemens Aplikacje, które powstały przy użyciu OSGi to m.in.: GlassFish Weblogic

Problem Najważniejsze wyzwanie przy budowie dużych systemów: ich złożoność MODULARNOŚĆ podział pracy łatwość utrzymania abstrakcja ponowne użycie Java to oczywiście umożliwia, ale... jeśli nie wymusimy modularności, tak naprawdę nie będziemy jej mieć

Jaki powinien być moduł? stanowiący logiczną całość wewnętrznie spójny luźno powiązany z innymi modułami z dobrze zdefiniowanym interfejsem co dajemy i czego oczekujemy

Problem: JAR hell JARy dostarczają zazwyczaj albo pojedynczą bibliotekę albo część funkcjonalności aplikacji Tylko małe aplikacje w jednym JARze, duże - rzędu kilkudziesięciu, kilkuset JARów, które trzeba ze sobą złożyć

Problemy z JARami liniowy classpath wewnętrzne zależności JARów nie są podane explicite (ClassNotFoundException podczas wykonania... ) brak ukrywania informacji pomiędzy JARami tylko między pakietami (package) brak informacji o wersjach JARy nie spełniają oczekiwań co do modułów!

Możliwe rozwiązanie: OSGi dynamiczny system modułów dla Javy definiuje sposób tworzenia prawdziwych modułów definiuje sposób interakcji pomiędzy modułami w czasie wykonania

moduł OSGi = bundle zamiast jednej globalnej classpath dla aplikacji, każdy moduł posiada swoją dzielenie klas poprzez importy i eksporty explicite dynamiczne podłączanie, wymienianie, wyłączanie modułów - serwisy tak naprawdę OSGi bundles to zwykłe JARy (!), z dodatkowymi wpisami w manifeście całą organizacją zarządza dodana warstwa middleware OSGi framework

OSGi framework środowisko wykonania Java (J2SE, J2EE, J2ME, konfiguracje i profile jak MIDP) warstwa zarządzająca ładowaniem klas, zgodnie z opisanym podziałem na moduły warstwa zarządzająca cyklem życia modułów w trakcie wykonania dynamiczne instalowanie, odinstalowywanie, uruchamianie, wstrzymywanie http://www.osgi.org/about/technology moduły mogą kooperować poprzez tradycyjne dzielenie klas, ale to przeszkadza w ich dynamicznym cyklu życia; rozwiązanie: serwisy

http://en.wikipedia.org/wiki/file:osgi.svg

Dynamiczne serwisy Serwisy to zwykłe obiekty Javowe Serwisy rejestrują się w OSGi Service Registry pod jednym lub kilkoma interfejsami Klient, który ich potrzebuje, szuka ich w OSGi Service Registry pod nazwą interfejsu Co stanie się, gdy uruchomimy bundle z serwisem A, który korzysta z serwisu B, zanim uruchomimy bundle z serwisem B? Nic złego.. A po prostu poczeka, aż B stanie się dostępny

Dynamiczne serwisy cd. Możemy podmieniać pojedyncze komponenty bez potrzeby restartu całego systemu Oczywiście łatwiej jest używać czegoś, co jest cały czas dostępne, stąd dodatkowy koszt, ale OSGi Service Registry wydatnie ułatwia radzenie sobie z tym problemem

OSGi a SOA Serwisy w OSGi to w zasadzie implementacja koncepcji SOA SOA Service Oriented Architecture (architektura zorientowana na usługi) Aplikacje działają korzystając z serwisów (usług), które mogą działać na innej maszynie Usługi komunikują się ze sobą za pomocą magistrali komunikacyjnej i specyficznych komunikatów Pozwala to np. na łatwe łączenie aplikacji z części napisanych w różnych językach W OSGi serwisy komunikują się w ramach jednej JVM dlatego nie potrzeba magistrali, funkcję tego typu spełnia OSGi Service Registry

Mobile OSGi Istnieją implementacje OSGi na Win Mobile, Nokia S60, Android

Implementacje standardu OSGi Istnieje kilka niezależnych implementacji frameworków (zrębów) OSGi, w tym 3 popularne open-source'owe: Eclipse Equinox Apache Felix Knopflerfish Poza tym istnieje wiele narzędzi wspomagających

Przykładowa aplikacja część praktyczna

Korzyści podsumowanie Pozwala tworzyć oprogramowanie złożone z dynamicznych komponentów; jasno zdefiniowany cykl życia komponentów pozwala na odpowiednią obsługę zdarzeń Dostarcza bezpieczne środowisko, w którym komponenty mają dostęp tylko do tych zasobów, do których powinny mieć Niejako wymusza modularność, co poprawia jakość kodu

Literatura http://www.osgi.org - strona OSGi Alliance http://neilbartlett.name/blog/osgibook/ - darmowa książka o OSGi http://java.dzone.com/articles/dozen-osgi-myths-and - ciekawy artykuł o OSGi

Dziękuję za uwagę