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

Podobne dokumenty
Zarządzanie sieciami telekomunikacyjnymi

SSW1.1, HFW Fry #20, Zeno #25 Benchmark: Qtr.1. Fry #65, Zeno #67. like

OSGi Agata Hejmej

Network Services for Spatial Data in European Geo-Portals and their Compliance with ISO and OGC Standards

Helena Boguta, klasa 8W, rok szkolny 2018/2019

Machine Learning for Data Science (CS4786) Lecture 11. Spectral Embedding + Clustering

Zakopane, plan miasta: Skala ok. 1: = City map (Polish Edition)

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

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

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)


Jak zasada Pareto może pomóc Ci w nauce języków obcych?

Zarządzanie sieciami komputerowymi - wprowadzenie

Paweł Rajba


ERASMUS + : Trail of extinct and active volcanoes, earthquakes through Europe. SURVEY TO STUDENTS.

Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition)

Stargard Szczecinski i okolice (Polish Edition)

Datacenter - Przykład projektu dla pewnego klienta.

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

Domy inaczej pomyślane A different type of housing CEZARY SANKOWSKI

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

Installation of EuroCert software for qualified electronic signature

Projekt: Mikro zaprogramowane na sukces!

1. CZYM JEST SERIALIZACJA

MaPlan Sp. z O.O. Click here if your download doesn"t start automatically

OSI Network Layer. Network Fundamentals Chapter 5. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

No matter how much you have, it matters how much you need

Machine Learning for Data Science (CS4786) Lecture11. Random Projections & Canonical Correlation Analysis

Sargent Opens Sonairte Farmers' Market

ARNOLD. EDUKACJA KULTURYSTY (POLSKA WERSJA JEZYKOWA) BY DOUGLAS KENT HALL

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

Miedzy legenda a historia: Szlakiem piastowskim z Poznania do Gniezna (Biblioteka Kroniki Wielkopolski) (Polish Edition)

Ankiety Nowe funkcje! Pomoc Twoje konto Wyloguj. BIODIVERSITY OF RIVERS: Survey to students

Tychy, plan miasta: Skala 1: (Polish Edition)


Katowice, plan miasta: Skala 1: = City map = Stadtplan (Polish Edition)

Hard-Margin Support Vector Machines

Application Layer Functionality and Protocols

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz

Revenue Maximization. Sept. 25, 2018

Ustawienia Zabezpieczeń

Zmiany techniczne wprowadzone w wersji Comarch ERP Altum

Systemy wbudowane. Poziomy abstrakcji projektowania systemów HW/SW. Wykład 9: SystemC modelowanie na różnych poziomach abstrakcji

Instrukcja obsługi User s manual

How to share data from SQL database table to the OPC Server? Jak udostępnić dane z tabeli bazy SQL do serwera OPC? samouczek ANT.

Wpływ dyrektywy PSD II na korzystanie z instrumentów płatniczych. Warszawa, 15 stycznia 2015 r. Zbigniew Długosz

Emilka szuka swojej gwiazdy / Emily Climbs (Emily, #2)

Blow-Up: Photographs in the Time of Tumult; Black and White Photography Festival Zakopane Warszawa 2002 / Powiekszenie: Fotografie w czasach zgielku

HAPPY ANIMALS L01 HAPPY ANIMALS L03 HAPPY ANIMALS L05 HAPPY ANIMALS L07

HAPPY ANIMALS L02 HAPPY ANIMALS L04 HAPPY ANIMALS L06 HAPPY ANIMALS L08

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Mirosław Kupczyk Pozna, PCSS, Szkolenie: "Architektura i uytkowanie klastra Linux IA-64"

SNP SNP Business Partner Data Checker. Prezentacja produktu

y = The Chain Rule Show all work. No calculator unless otherwise stated. If asked to Explain your answer, write in complete sentences.

SNP Business Partner Data Checker. Prezentacja produktu

Weronika Mysliwiec, klasa 8W, rok szkolny 2018/2019

Technologie Komponentowe. Piotr Łukasik p /

Working Tax Credit Child Tax Credit Jobseeker s Allowance

DO MONTAŻU POTRZEBNE SĄ DWIE OSOBY! INSTALLATION REQUIRES TWO PEOPLE!

Instrukcja konfiguracji usługi Wirtualnej Sieci Prywatnej w systemie Mac OSX

Rozpoznawanie twarzy metodą PCA Michał Bereta 1. Testowanie statystycznej istotności różnic między jakością klasyfikatorów

deep learning for NLP (5 lectures)

Proces certyfikowania aplikacji na platformie PureSystems. Rafał Klimczak Lab Services Consultant

POLITYKA PRYWATNOŚCI / PRIVACY POLICY

Leba, Rowy, Ustka, Slowinski Park Narodowy, plany miast, mapa turystyczna =: Tourist map = Touristenkarte (Polish Edition)

Rev Źródło:

OpenPoland.net API Documentation

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Zasady rejestracji i instrukcja zarządzania kontem użytkownika portalu

Egzamin maturalny z języka angielskiego na poziomie dwujęzycznym Rozmowa wstępna (wyłącznie dla egzaminującego)

Dolny Slask 1: , mapa turystycznosamochodowa: Plan Wroclawia (Polish Edition)

Why do I need a CSIRT?

Marzec: food, advertising, shopping and services, verb patterns, adjectives and prepositions, complaints - writing

Narzędzia OWASP dla developerów OWASP ESAPI & AppSensor OWASP The OWASP Foundation

JUST JAVA

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


ITIL 4 Certification

Metasploit Part 1. The Beginning


EGZAMIN MATURALNY Z JĘZYKA ANGIELSKIEGO POZIOM ROZSZERZONY MAJ 2010 CZĘŚĆ I. Czas pracy: 120 minut. Liczba punktów do uzyskania: 23 WPISUJE ZDAJĄCY

Zarządzanie instancjami EC2

Analysis of Movie Profitability STAT 469 IN CLASS ANALYSIS #2

SubVersion. Piotr Mikulski. SubVersion. P. Mikulski. Co to jest subversion? Zalety SubVersion. Wady SubVersion. Inne różnice SubVersion i CVS

Presented by. Dr. Morten Middelfart, CTO

INSTRUKCJE JAK AKTYWOWAĆ SWOJE KONTO PAYLUTION

OSI Data Link Layer. Network Fundamentals Chapter 7. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

Metodyki projektowania i modelowania systemów Cyganek & Kasperek & Rajda 2013 Katedra Elektroniki AGH

OSI Network Layer. Network Fundamentals Chapter 5. ITE PC v4.0 Chapter Cisco Systems, Inc. All rights reserved.

Planning and Cabling Networks

EXAMPLES OF CABRI GEOMETRE II APPLICATION IN GEOMETRIC SCIENTIFIC RESEARCH

Czy OMS Log Analytics potrafi mi pomóc?

Web Services. Bartłomiej Świercz. Łódź, 2 grudnia 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Web Services

Camspot 4.4 Camspot 4.5

1. INFORMACJE OGÓLNE

you see decision. oznacza to, Whenever kiedy widzisz biznes, someone once made Za każdym razem, który odnosi sukces,

kdpw_stream Struktura komunikatu: Status komunikatu z danymi uzupełniającymi na potrzeby ARM (auth.ste ) Data utworzenia: r.

Dokumentacja kompilacji źródeł aplikacji 1.0

Transkrypt:

Architektura i działanie systemów OSGi

Przykład OSGi runtime - Eclipse Demo Eclipse (podprojekt Equinox) eclipse -console help, ss, bundle 123

Nowy OSGi bundle (paczka) w Eclipse Wymagania Eclipse IDE w wersji JEE (co najmniej Plugin Development Environment) Nowy projekt typu plugin target platform: an OSGi framework alternatywa np Eclipse 3.6 Hello Bundle Wyeksportowanie bundle deployable plug-ins

Uruchomienie nowego bundle Konsola OSGi install, start, stop np. install file:///c:/workspaces/osgi/tutorial/tutorialbundle.jar Albo wgranie jara do katalogu.../eclipse/plugins

Standard OSGi OSGi Alliance The OSGi technology is a set of specifications that define a dynamic component system for Java. These specifications enable a development model where applications are (dynamically) composed of many different (reusable) components. The OSGi specifications enable components to hide their implementations from other components while communicating through services, which are objects that are specifically shared between components. This surprisingly simple model has far reaching effects for almost any aspect of the software development process. We developed the OSGi technology to create a collaborative software environment. We were not looking for the possibility to run multiple applications in a single VM. We wanted an application to emerge from putting together different reusable components that had no a-priori knowledge of each other. Even harder, we wanted that application to emerge from dynamically assembling a set of components.

OSGi Implementacje np. Apache Felix, Knoplerfish, Eclipse (podprojekt Equinox) Zakres platformy Środowisko wykonania dla komponentów i aplikacji przeznaczone dla producentów, dostawców usług oraz twórców oprogramowania Umożliwia zarządzanie komponentami i ich konfiguracją w czasie działania środowiska startowanie, stopowanie, instalowanie, uaktualnianie

Architektura OSGi

Zakres OSGi cd Orginalnie zaprojektowane dla urządzeń połączonych w sieć obecnie używane w różnych zastosowaniach (od systemów wbudowanych po IDE) Jest wąską warstwą, która umożliwia komponentom Javowym na współpracę w ramach jednej JVM Udostępnia model współpracy, w którym aplikacje mogą dynamicznie udostępniać i wykrywać serwisy serwis w OSGi - obiekt, który może być wykorzystywany przez inne bundle

Zakres OSGi cd Udostępnia możliwość zdalnego zarządzania komponentami nie zdefiniowano jednego standardu zarządzania (wiele różnych protokołów SNMP, CMISE, CIM, OMA DM) Przewiduje wiele standardowych serwisów takich jak logowanie, HTTP, device discovery... Demo exported packages, imported packages, required plugins

Architektura OSGi cd Bundles - Bundles are the OSGi components made by the developers. Services - The services layer connects bundles in a dynamic way by offering a publish-find-bind model for plain old Java objects. Life-Cycle - The API to install, start, stop, update, and uninstall bundles. Modules - The layer that defines how a bundle can import and export code. Security - The layer that handles the security aspects. Execution Environment - Defines what methods and classes are available in a specific platform.

Modularity The fundamental concept that enables such a system is modularity. Modularity, simplistically said, is about assuming less. Modularity is about keeping things local and not sharing. It is hard to be wrong about things you have no knowledge of and make no assumptions about them. Therefore, modularity is at the core of the OSGi specifications and embodied in the bundle concept. In Java terms, a bundle is a plain old JAR file. However, where in standard Java everything in a JAR is completely visible to all other JARs, OSGi hides everything in that JAR unless explicitly exported. A bundle that wants to use another JAR must explicitly import the parts it needs. By default, there is no sharing.

Services The reason we needed the service model is because Java shows how hard it is to write collaborative model with only class sharing. The standard solution in Java is to use factories that use dynamic class loading and statics. Service registry. A bundle can create an object and register it with the OSGi service registry under one or more interfaces. Other bundles can go to the registry and list all objects that are registered under a specific interfaces or class.

Services cd For example, a bundle provides an implementation of the DocumentBuilder. When it gets started, it creates an instance of its DocumentBuilderFactoryImpl class and registers it with the registry under the DocumentBuilderFactory class. A bundle that needs a DocumentBuilderFactory can go to the registry and ask for all available services that extend the DocumentBuilderFactory class A bundle can therefore register a service, it can get a service, and it can listen for a service to appear or disappear. Any number of bundles can register the same service type, and any number of bundles can get the same service.

Architektura OSGi cd Life Cycle Management start, stop bundle, obiekt BundleContext - API frameworka BundleActivator - metody start, stop Service Registry Bundle mogą dynamicznie startować / zatrzymywać się Wykorzystanie listenerów na zdarzenia byłoby zbyt obciążające Service Registry: rejestracja obiektów, wyszukanie, otrzymywanie powiadomień o konkretnych obiektach Przechowywany w pamięci Services, Security, Applications/Bundles

Demo - Utworzenie nowego serwisu Utworzenie service Kroki rejestracji Wykorzystanie serwisu w innym bundle Imported packages: org.osgi.util.tracker, servicebundle Exported packages: servicebundle Wyeksportowanie bundles i zainstalowanie ich w runtime

Standardowy serwis HTTP Wykorzystanie serwisu HTTP Zaimportowanie do pluginu org.osgi.service.http (Wyszukiwanie: *http*, w konsoli ss http) Utworzenie ServiceTracker oraz HttpService Utworzenie klasy Servletu oraz udostępnienie Servletu Uruchomienie środowiska z pluginem albo zainstalowanie jara z serwletem i wywołanie http://localhost/servletalias albo uruchomienie środowiska OSGi z Eclipse

Eclipse (OSGi) z Eclipse (IDE) Uruchomienie jako nowej instancji Eclipse Run dialog > Eclipse instance Wykorzystywane pluginy, środowisko działania opcja -console Uruchomienie samego plugina - nie działa, serwis http nie jest wystartowany odszukanie bundla z http - status Uruchomienie ręczne bundle, który udostępnia serwis - zacznie działać Zmiana treści zwracanej przez servlet hot code replace