IBM SWG Kraków Lab. OSGi. Wiele usług pod jednym dachem. 2006 IBM Corporation



Podobne dokumenty
SNP SNP Business Partner Data Checker. Prezentacja produktu

SNP Business Partner Data Checker. Prezentacja produktu

U3000/U3100 Mini (Dla Komputera Eee na systemie operacyjnym Linux) Krótka Instrukcja

Instrukcje instalacjipakietu IBM SPSS Data Access Pack dla systemu Windows

Wdrożenie archiwum ELO w firmie z branży mediowej. Paweł Łesyk

Instrukcja użytkownika portalu MyDevice

SNP NIP Checker. Prezentacja produktu

Jak skutecznie zarządzać informacją?

Marzena Kanclerz. Microsoft Channel Executive. Zachowanie ciągłości procesów biznesowych. z Windows Server 2012R2

OSGi Agata Hejmej

34% nowych projektów IT jest opóźnionych

Warstwa ozonowa bezpieczeństwo ponad chmurami

Zapewniają aktywnym społecznościom edukacyjnym dostęp do programów i usług umożliwiających komunikację i współpracę między ludźmi

Szkolenie Microsoft Lync Korzystanie z roli pełnomocnika

IBM Storwize V7000 Unified

Jak skutecznie zarządzać informacją?

Platforma Office 2010

Uruchamianie aplikacji za pomocą kontenerów Docker SUSE Expert Days 2016

Bądź mobilny. dysponując bezpiecznym dostępem do plików i możliwością samoobsługowego drukowania. Rafał Kruschewski.

Uzyskaj dostęp do oprogramowania, którego potrzebujesz, w sposób, który wybierzesz

Sektor Opieki Zdrowia. Regionalne Spotkania z Technologią Microsoft. Collaborate more. Katowice,

Szkolenie Microsoft Lync Grupy Odpowiedzi

License Certificate. Autodesk License Certificate Terms and Conditions

Collaborate more. Praca grupowa nad dokumentacją i komunikacja pomiędzy zespołami. Rzecz o mobilnej pracy w administracji publicznej

Collaborate more. Praca grupowa nad dokumentacją i komunikacja pomiędzy zespołami. Rzecz o mobilnej pracy w administracji publicznej

Bezprzewodowy Moduł GPS Nokia LD-3W. oraz Nawigacja Navicore. (mapy w pamięci telefonu) 1 Copyright 2006 Nokia. All rights reserved.

Szybki start z SUSE Enterprise Storage.

Vuquest 3320g Area imager

Serwer Open-Xchange. OXtender dla SyncML-a -- beta --

Collaborate more. Praca grupowa nad dokumentacją i komunikacja pomiędzy zespołami. Rzecz o mobilnej pracy w administracji publicznej

Szkolenie Microsoft Lync Aplikacja Lync Web App

Kierunek Software- Defined Data Center

Oferta przetargu. Poland Tender. Nazwa. Miejscowość. Warszawa Numer ogłoszenia. Data zamieszczenia Typ ogłoszenia

Twoje osobiste Obliczenie dla systemu ogrzewania i przygotowania c.w.u.

Powiedz TAK dla mobilności w biznesie wybierając Novell ZENworks Mobile Management!

Collaborate more. Praca grupowa nad dokumentacją i komunikacja pomiędzy zespołami. Rzecz o mobilnej pracy w administracji publicznej

Jazz EB207S is a slim, compact and outstanding looking SATA to USB 2.0 HDD enclosure. The case is

Skuteczne zastosowanie BIM w infrastrukturze i efektywne wykorzystanie narzędzi Autodesk

Office 365 Midsize Business

Powiedz TAK dla mobilności w biznesie wybierając Novell ZENworks Mobile Management!

WARUNKI UCZESTNICTWA W SAP EXECUTIVE FORUM 2017

Sprawna współpraca w organizacji dzięki Novell Vibe 3.3

CPX Cisco Partner Excellence CSPP program partnerski

Efektywna ochrona danych jako skutek wdrożenia systemu Data Loss Prevention Maciej Iwanicki

Product Design Suite. AutoCAD. Mechanical. Showcase. Autodesk. Autodesk. Designer. SketchBook. Autodesk. Mudbox Vault. Autodesk. Ultimate.

POLITYKA PRYWATNOŚCI / PRIVACY POLICY

Rozwijaj swój biznes szybciej, sprytniej i prościej niż kiedykolwiek wcześniej

NetIQ Cloud Manager Zarządzanie chmurą w środowisku VMware, Hyper-V, KVM i Xen

Nowoczesne formy edukacji

ELO Task Manager - system zarządzania zadaniami w organizacji na przykładzie wdrożenia Sitech sp. z o.o. Grupa Volkswagen

Zmiany techniczne wprowadzone w wersji Comarch ERP Altum



Budowa przełączników modularnych. Piotr Głaska Senior Product Manager Enterprise Networking Solutions

Datacenter Services Private Cloud

Ogólne warunki licencji użytkowania oprogramowania SecureFile firmy Engine On sp. z o.o..

Instalacja pakietu IBM SPSS Data Access Pack Instrukcje dla systemu Linux

311186J. Copyright 2004, Graco Inc. is registered to I.S. EN ISO 9001

Architektura i działanie systemów OSGi. Paweł Kaczmarek, WETI, PG

Co już można, a co będzie można zrobić w e-podręczniku technologicznie?

Disaster Recovery z PlateSpin Forge. Jedno narzędzie do zabezpieczania serwerów fizycznych, wirtualnych i chmury!

Interaktywne uwzględnienie potrzeb Klienta w procesie projektowania i ofertowania

17-18 września 2016 Spółka Limited w UK. Jako Wehikuł Inwestycyjny. Marek Niedźwiedź. InvestCamp 2016 PL

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz

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

Zintegrowany System Kontroli VACIS IP6500 Technologia obrazowania dla przemysłu paliwowego

IBM Optim Test Data Management Solution

Silverlight 4 przełom czy kontynuacja. Michał Żyliński, Microsoft Polska

Cel szkolenia. Konspekt

Proces implementacji BIM z perspektywy firmy wdrażającej

Magnetic Charging Dock

1. INFORMACJE OGÓLNE

Rozwiązanie Autodesk BIM dla inwestorów i firm wykonawczych

Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows

Czy systemy informatyczne pomogą zbudować zdrowe społeczeństwo informacyjne? Przykłady zdrowych wdrożeń. Leszek Bartłomiejczyk

Modele komponentowe SCA, OSGi, Distributed OSGi i OSGi Enterprise a Java EE

Instrukcja obsługi User s manual

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian

Collaborate more Budowa i utrzymanie taniej, wydajnej, bezpiecznej infrastruktury IT

EASY FAKTURA Zarządzanie fakturami. We save time.

PORADNIK. Cztery kroki do symulacji dynamicznej w Autodesk

Capgemini IT Wirtualizacja fundamentem chmury technologie wirtualizacji jako podstawy funkcjonowania chmury

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG

Datacenter - Przykład projektu dla pewnego klienta.

EaglePCB_2_FreeCAD (beta)

Szkolenie Microsoft Lync Wiadomości błyskawiczne i statusy dostępności

SUSE Manager. Paweł Mirończuk. Starszy konsultant.

Wirtualny serwer we/wy wersja Uwagi do wydania GI

EASY KONTRAKT Zarządzanie umowami. We save time.

Novell Service Desk. Jacek Nienałtowski Konsultant

DURAMOULD. Potęga elastycznego projektowania

ZENworks Patch Management 11 SP2

OBWIESZCZENIE MINISTRA INFRASTRUKTURY. z dnia 18 kwietnia 2005 r.

Zarządzanie tożsamością

Proposal of thesis topic for mgr in. (MSE) programme in Telecommunications and Computer Science


ZGŁOSZENIE WSPÓLNEGO POLSKO -. PROJEKTU NA LATA: APPLICATION FOR A JOINT POLISH -... PROJECT FOR THE YEARS:.

Transkrypt:

OSGi Wiele usług pod jednym dachem

OSGi Alliance Organizacja non-profit skupiona wokół uniwersalnej warstwy usług (universal middleware) Celem działania: stworzenie uniwersalnej platformy Członkowie: firmy IT, producenci sprzętu telekomunikacyjnego, koncerny motoryzacyjne, producenci sprzętu AGD/RTV

osgi.org

Cechy platformy OSGi Wykonywanie wielu modułów aplikacji w tej samej wirtualnej maszynie Javy Współdzielenie klas/interfejsów przez moduły Instalowanie i aktualizacje modułów bez konieczności restartu aplikacji Zdalne zarządzanie modułami

Korzyści ze stosowania OSGi Producenci oprogramowania Dostęp do szerszego grona klientów Obniżenie kosztów wytworzenia, testowania i utrzymywania oprogramowania Znaczne ograniczenie czasu wprowadzania produktu na rynek

Korzyści ze stosowania OSGi Producenci urządzeń Łatwiejszy wybór dostawcy oprogramowania Łatwość aktualizacji oprogramowania Możlliwość rozszerzenia funkcjonalności produktu nawet po wprowadzeniu na rynek Ułatwiony serwis produktów Niewielkie wymagania wobec sprzętu

Korzyści ze stosowania OSGi Użytkownicy Niższy koszt zakupu produktów i/lub wyższa jakość Ochrona inwestycji Możliwość integracji zakupionych produktów Nowa, niespotykana wcześniej funkcjonalność Szybszy, prostszy i tańszy serwis

Praktyczne zastosowania OSGi Aplikacje złożone z modułów Urządzenia przenośne Sprzęt RTV/AGD Motoryzacja Budynki inteligentne Urządzenia sieciowe

Architektura Modules (bundles) Services Service Registry Life Cycle Class Loading JVM Security Warstwy Security Layer Life Cycle Layer Module Layer Service Layer Actual Services

Module Layer Moduł = bundle Funkcjonowanie modułów w środowisku OSGi Identyfikacja i wersjonowanie modułów Eksportowanie i importowanie pakietów przez moduły Zależności międzymodułowe Opis modułu umieszczany w deskryptorze (plik tekstowy)

Module Layer sposób budowania modułów Dostarczane w postaci plików JAR Deskryptorem jest plik META-INF/MANIFEST.MF Bundle-SymbolicName: jednoznacznie identyfikuje moduł Bundle-Version: wersja modułu w środowisku wykonawczym można zainstalować kilka wersji modułu Import-Package: wykorzystywane w module pakiety innych modułów Export Package: pakiety udostępniane innym modułom Bundle-Activator: klasa aktywująca moduł

Life Cycle Layer BundleActivator Moduł opcjonalnie dostarcza klasę implementującą zadeklarowaną w deskryptorze Moduły nie posiadające klasy BundleActivator nazywa się bibliotecznymi Moduł jest informowany o przejściu w inny stan przez wywołania metod start(bundlecontext context) Rejestracja usług, uruchomienie wątków, itp. stop(bundlecontext context) Wyrejestrowanie usług, zatrzymanie wątków.

Life Cycle Layer BundleContext Stanowi API modułu do środowiska OSGi Zarządzanie modułami: installbundle, getbundle,... Zarządzanie usługami: registerservice, getservice, ungetservice, getservicereference,... BundleListener Otrzymuje zdarzenia BundleEvent związane z cyklem życia modułów: INSTALLED, STARTED, STOPPED, UPDATED, UNINSTALLED, RESOLVED, UNRESOLVED, STARTING, STOPPING

Life Cycle Layer Bundle Reprezentuje moduł zainstalowany w środowisku Zarządzanie cyklem życia: start, stop, getstate Deinstalacja: update, uninstall Zarządzanie usługami: getregisteredservices, getservicesinuse,... Dostęp do zasobów modułu: loadclass, getresources,... Dostęp do szczegółowych danych moudłu: getbundleid, getheaders, getlocation,...

Service Layer Moduł może rejestrować usługi i korzystać z usług innych modułów Usługa posiada interfejs(y) i implementację Zwykle w różnych pakietach public interface HelloService { public abstract String hello(string name); } public class HelloServiceImpl implements HelloService { } public String hello(string name) { } return "Hello, " + name;

Service Layer rejestracja usług Usługa zaimplementowana jako zwykła klasa Listę metod udostępnianych przez usługę definiują interfejsy Informacja o zarejestrowanej usłudze przechowywana w obiekcie ServiceRegistration HelloService service = new HelloServiceImpl(); ServiceRegistration registration = //... bundlecontext.registerservice(helloservice.class.getname(), registration.unregister(); service, new Hashtable());

Service Layer korzystanie z usług Moduł rejestrujący eksportuje pakiet z interfejsami Moduł kliencki Importuje pakiet z interfejsami Wyszukuje usługę Wywołuje metody biznesowe ServiceReference reference = bundlecontext.getservicereference( HelloService.class.getName()); HelloService service = (HelloService) bundlecontext.getservice(reference); service.hello("marcin"); bundlecontext.ungetservice(reference);

Service Layer dynamiczne korzystanie z usług ServiceListener otrzymuje informacje o zdarzeniach ServiceEvent: REGISTERED, MODIFIED, UNREGISTERING Jeszcze łatwiej posłużyć się klasą ServiceTracker Utworzenie obiektu ServiceTracker Dostarczenie obiektu ServiceTrackerCustomizer Metody: addingservice, modifiedservice, removedservice

Service Layer ServiceTrackerCustomizer public Object addingservice(servicereference reference) { } HelloService helloservice = (HelloService) context return helloservice;.getservice(reference); public void modifiedservice(servicereference reference, Object service) { } public void removedservice(servicereference reference, Object service) { }

Service Layer ServiceTracker ServiceTracker servicetracker = new ServiceTracker( HelloService.class.getName(), new HelloServiceTrackerCustomizer()); servicetracker.open(); //... servicetracker.close();

Security Layer Bazuje na Java2 Security Podpisywanie modułów (jarsigner) Specyficzne rodzaje uprawnień Dostęp do zasobów modułu PackagePermission, ResourcePermission Zarządzanie modułami AdminPermission Dostęp do usług ServicePermission Warstwa bezpieczeństwa nie jest wymagana przez specyfikację Może niepotrzebnie podnosić wymagania sprzętowe

Kto stosuje OSGi Eclipse zawiera środowisko Equinox Możliwa jest zmiana konfiguracji Eclipse bez restartu środowiska Nokia telefony nowej generacji Telefony posiadające możliwość zdalnego zarządzania aplikacjami BMW obsługa urządzeń elektronicznych znajdujących się w samochodach serii 5 Siemens oprogramowanie sterujące urządzeniami RTV/AGD I wielu innych...

Implementacje OSGi Equinox http://www.eclipse.org/ Implementacja Open Source, licencja CPL Certyfikat OSGi Alliance Knopplerfish http://www.knopplerfish.org/ Implementacja Open Source, dostępna również licencja komercyjna Certyfikat OSGi Alliance Felix http://incubator.apache.org/felix/ Implementacja Open Source, licencja APL

Przyszłość OSGi Włączenie OSGi do stosu standardów Javy JSR 232: Mobile Operational Management JSR 291: Dynamic Component Support for Java SE Adaptacja platformy OSGi przez producentów oprogramowania Spring Framework

Trademarks and Disclaimers Copyright International Business Machines Corporation 2004, 2006. All rights reserved. The following terms are trademarks or registered trademarks of International Business Machines Corporation in the United States,other countries, or both: IBM iseries OS/400 Informix WebSphere IBM(logo) pseries AIX Cloudscape MQSeries e(logo)business xseries CICS DB2 Universal Database DB2 Tivoli zseries OS/390 IMS Lotus Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in theunited States, other countries, or both. Microsoft, Windows, Windows NT, andthe Windows logo are registered trademarks of Microsoft Corporation in the United States, other countries, or both. Intel, ActionMedia, LANDesk, MMX, Pentium and ProShare aretrademarks of Intel Corporation in the United States, other countries, or both. UNIX is a registered trademark of The Open Group in the United States and other countries. Linux is a registered trademark of Linus Torvalds. Other company, product and service names may be trademarks or service marks of others. Product data has been reviewed for accuracy as of the date of initial publication. Product data is subject to change without notice. This document could include technical inaccuracies or typographical errors. IBM may make improvements and/or changes in the product(s) and/or program(s) described herein at any time without notice. Any statements regarding IBM's future direction and intent are subject to change or withdrawal without notice, and represent goals and objectives only. References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM operates or does business. Any referenceto an IBM Program Product in this document is not intended to state or imply that only that program product may be used. Any functionally equivalent program, that does not infringe IBM's intellectually property rights, may be used instead. Information is provided "AS IS" without warranty of any kind. THE INFORMATION PROVIDED IN THIS DOCUMENT IS DISTRIBUTED "AS IS" WITHOUT ANY WARRANTY, EITHER EXPRESS OR IMPLIED. IBM EXPRESSLY DISCLAIMS ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. IBM shall have no responsibility to update this information. IBM products are warranted, if at all, according to the terms and conditions of the agreements (e.g., IBM Customer Agreement, Statement of Limited Warranty, International Program License Agreement, etc.) under which they are provided. Information concerning non-ibm products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-ibm products. IBM makes no representations or warranties, express or implied, regarding non-ibm products and services. The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents or copyrights. Inquiries regarding patent or copyright licenses should be made, in writing, to: IBM Director of Licensing IBM Corporation North Castle Drive Armonk, NY 10504-1785 U.S.A. Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. The actual throughput orperformance that any user will experience will vary depending upon considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve throughput or performanceimprovements equivalent to the ratios stated here. Note to U.S. Government Users -Documentation related to restricted rights-use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract and IBM Corp.