Zaawansowane narzędzia programowania rozproszonego



Podobne dokumenty
Programowanie współbieżne i rozproszone

OSGi Agata Hejmej

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

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

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

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Projektowanie architektury systemu. Jarosław Kuchta Projektowanie Aplikacji Internetowych

1 Wprowadzenie do J2EE

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

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

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

Wprowadzenie. Dariusz Wawrzyniak 1

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Programowanie obiektowe - 1.

Wykład 1 Inżynieria Oprogramowania

SIMON SAYS ARCHITECTURE! Usługi zdalne. Technologie, techniki i praktyki implementacji

Wybrane działy Informatyki Stosowanej

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Konspekt pracy inżynierskiej

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Dokumentacja aplikacji Szachy online

Systemy rozproszone System rozproszony

współbieżność - zdolność do przetwarzania wielu zadań jednocześnie

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

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

Globalne referencje dla idempiere Business Suite

Wprowadzenie do systemów rozproszonych

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: Aukcjomat

DLA SEKTORA INFORMATYCZNEGO W POLSCE

Enterprise Java Beans wykład 7 i 8

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Middleware wprowadzenie października 2010

Wzorce projektowe. dr inż. Marcin Pietroo

EJB 3.0 (Enterprise JavaBeans 3.0)

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

2016 Proget MDM jest częścią PROGET Sp. z o.o.

Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego. Przetwarzanie współbieżne, równoległe i rozproszone

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

System zarządzający grami programistycznymi Meridius

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych

Bazy danych 2. Wykład 1

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Protokoły sieciowe D1_7

Wybrane działy Informatyki Stosowanej

<Nazwa firmy> <Nazwa projektu> Specyfikacja wymagań projektu. Wersja <1.0>

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Projekt architektury systemów informatycznych Uniwersytetu Warszawskiego w oparciu o metodykę TOGAF. Tomasz Turski

UML w Visual Studio. Michał Ciećwierz

Wybrane działy Informatyki Stosowanej

Tworzenie i obsługa wirtualnego laboratorium komputerowego

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Tworzenie oprogramowania

Java jako język programowania

Modelowanie i Programowanie Obiektowe

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

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Programowanie Komponentowe WebAPI

Programowanie obiektowe

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Virtual Grid Resource Management System with Virtualization Technology

Web frameworks do budowy aplikacji zgodnych z J2EE

Rok akademicki: 2015/2016 Kod: IIN s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Wywoływanie metod zdalnych

Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Instytut Fizyki

Historia modeli programowania

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Projekt przejściowy 2015/2016 BARTOSZ JABŁOŃSKI, TOMASZ JANICZEK

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Sieci komputerowe - administracja

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

PRACA DYPLOMOWA INŻYNIERSKA. Mobilny system wspomagający pracę. terminala kontenerowego

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Systemy obiegu informacji i Protokół SWAP "CC"

SOP System Obsługi Parkingów

IO - SAD. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

Pojęcie systemu baz danych

OpenLaszlo. OpenLaszlo

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

PRZEWODNIK PO PRZEDMIOCIE

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Dokumentacja projektu QUAIKE Architektura oprogramowania

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

76.Struktura oprogramowania rozproszonego.

PRZEWODNIK PO PRZEDMIOCIE

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

EXSO-CORE - specyfikacja

Wypożyczalnia VIDEO. Technologie obiektowe

Infrastruktura bibliotek cyfrowych

Kolejkowanie wiadomości Standard MQ (JMS)

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Analiza i projektowanie aplikacji Java

Transkrypt:

Zaawansowane narzędzia programowania rozproszonego Karol Gołąb karol.golab@tls-technologies.com 28 listopada 2001 1 Streszczenie Omówienie i porównanie popularnych standardów mechanizmów komunikacyjnych: CORBA, JavaSpaces, Java Message Service, JXTA. 1 Wstęp Wraz ze wzrostem powszechności korzystania z sieci komputerowych (Internetu w szczególności) rośnie gwałtownie znaczenie oprogramowania rozproszonego złożonego z wielu programów wykonywanych na osobnych komputerach połączonych przez sieć. Do niedawna model budowy oprogramowania pracującego w sieci był oparty na architekturze klient-serwer. Do tworzenia takiego oprogramowania wystarczały stosunkowo proste technologie i narzędzia. Obecnie sytuacja ulega zmianie. Prosty model klient-serwer coraz mniej wystarcza. Rosnąca złożoność oprogramowania rozproszonego wymaga użycia coraz bardziej skomplikowanych mechanizmów komunikacyjnych. 1 Współzałożyciel firmy (s). Doktorant w Instytucie Informatyki UW. Zajmuję się wszelkimi aspektami sieci komputerowych, przede wszystkim problemami algorytmicznymi. Copyright c 2001, wszystkie prawa zastrzeżone 1

2 Założenia Jednym z powodów powstania nowych modeli komunikacji była chęć usunięcia wielu niekorzystnych założeń wymuszanych na twórcach oprogramowania przez architekturę klientserwer. Do podstawowych założeń stojących za omawianymi tu systemami a służących rozwiązaniu problemów istniejących w środowisku aplikacji rozproszonych należą: Współdziałanie (ang. interoperability) zapewnienie możliwości współdziałania pomiędzy różnymi aplikacjami używającymi tego samego systemu. W szczególności możliwość komunikowania się niezależnie napisanych programów. Skalowalność łatwe zwiększanie wielkości i wydajności systemów. Przenośność jak największa (czy wręcz całkowita) niezależność od platformy programowej czy sprzętowej. Jednorodność zapewnienie jednolitych interfejsów dostępu do informacji na różnych platformach, prezentacja informacji we wspólnym formacie. Powszechność (ang. ubiquity) udostępnienie i rozpowszechnienie na możliwie wielu platformach, niezależnie od mocy obliczeniowej. Asynchroniczność rozdzielenie w czasie operacji wysyłania i odbierania komunikatu. Docelowo możliwość skomunikowania się dwóch aplikacji nawet w sytuacji gdy ich czas życia nie pokrywa się. Wyszukiwanie informacji udostępnienie metod znajdowania nieznanego a priori źródła informacji. 3 Systemy i produkty Obecnie na rynku istnieje wiele konkurencyjnych rozwiązań, opartych na różnych architekturach. Większość architektur posiada jednak wiele cech wspólnych wynikających z wymienionych wcześniej założeń. Warstwa pośrednicząca (ang. middle-tier) zajmuje się tłumaczeniem danych z/do różnych formatów, ukrywa implementację i niższe warstwy (np. system operacyjny). Zazwyczaj zapewnia także większą skalowalność systemu. Modularność pozwala na instalację aktualnie potrzebnej części funkcjonalności a także na stopniowe rozszerzanie aplikacji poprzez dodawanie kolejnych podsystemów. Copyright c 2001, wszystkie prawa zastrzeżone 2

3.1 CORBA Pierwszy standard CORBA y (Common Object Request Broker Architecture) został opublikowany przez OMG w 1991 roku. CORBA to zarówno architektura jak i cała infrastruktura (język specyfikacji interfejsów IDL, oprogramowanie pośredniczące ORB, szereg dodatkowych usług takich jak przestrzeń nazw czy wsparcie dla transakcji) pozwalająca na łatwe tworzenie aplikacji rozproszonych działających w modelu obiektowym. Do CORBA y należą także narzędzia wspomagające proces tworzenia oprogramowania np. kompilatory tworzące ze specyfikacji szkielet implementacji obiektu w danym języku. Jednym z głównych założeń jest rozdzielenie interfejsu obiektu (specyfikowanego w języku IDL) od jego implementacji, która może zostać wykonana w jednym z wielu wspieranych języków (C, C++, Java, SmallTalk, Lisp, Python i inne). Aplikacja rozproszona to zbiór współpracujących ze sobą obiektów, być może zaimplementowanych w różnych językach. Do najpopularniejszych implementacji Open Source należą szybki, lecz wciąż niekompletny omniorb i większy, ale wolniejszy mico. 3.2 JavaSpaces Technologia JavaSpaces, będąca częścią platformy J2EE, została oparta na systemie krotek Linda. Model zbudowano wokół współdzielonych przez sieć przestrzeni (ang. spaces), w których aplikacje mogą umieszczać bądź wyszukiwać dane. JavaSpaces zapewnia, że dane przechowywane w przestrzeniach są trwałe (ang. persistent), w szczególności nie znikają wraz z procesem aplikacji, która je tam umieściła. Dane są dostępne na zasadzie asocjacji można je wyszukiwać na podstawie zawartości, co umożliwia łatwe współdziałanie niezależnie napisanych aplikacji. Ponadto implementacja Java- Spaces troszczy się o transakcyjność i bezpieczeństwo wszystkich operacji. Ponieważ w przestrzeniach przechowuje się obiekty Java y, to przy użyciu JavaSpaces można wymieniać kod wykonywalny (a dokładniej ByteCode Javy) na równi z wymianą danych. W szczególności pozwala to na dynamiczne rozszerzanie aplikacji o dodatkową funkcjonalność zdefiniowaną już po utworzeniu aplikacji. 3.3 JMS Technologia JMS (Java Message Service) jest integralną częścią platformy J2EE. Pozwala ona na wymianę komunikatów pomiędzy luźno powiązanymi (ang. loosely coupled) aplikacjami. JMS zapewnia asynchroniczną, pewną i (opcjonalnie) transakcyjną wymianę informacji w dwóch modelach: Komunikacja producent konsument (ang. publish subscribe). Producenci wysyłają dane do systemu, wiążąc je z zarejestrowanym wcześniej tematem. Konsumenci od- Copyright c 2001, wszystkie prawa zastrzeżone 3

bierają dane dotyczące wybranych tematów. Każdy komunikat może zostać odebrany przez dowolną ilość konsumentów. Komunikacja punkt do punktu (ang. point to point), zbudowana na kolejkach. Aplikacja wysyła dane do wybranej kolejki, która z kolei dostarcza je do konkretnego odbiorcy. Dodatkowo technologia JMS pozwala na dynamiczną konfigurację trasowania, umożliwiając w szczególności określenie odbiorcy dla danej kolejki czy tematu podczas uruchamiania systemu. Najpopularniejsze implementacje Open Source to JBossMQ, JORAM i OpenJMS. 3.4 JXTA System JXTA, zainicjowany przez Sun Microsystems przy okazji tworzenia platformy J2EE, to zestaw specyfikacji i protokołów umożliwiających wymianę dowolnego typu informacji, niezależnie od typu transportu. JXTA rozwija model partnerski (ang. peer-to-peer) wraz z infrastrukturą potrzebną dla zapewnienia uniwersalności. Aktualnie w skład sytemu wchodzą następujące protokoły: Protokół znajdowania ogłoszeń (ang. advertisement) zgłaszanych przez partnerów (ang. peer) bądź ich grupy. Protokół znajdowania partnerów bądź ich grup dla zadanych kryteriów wyszukiwania. Protokół informacyjny służący do dynamicznego poznawania możliwości partnera. Protokół grup pozwalający na przyłączenie się do grupy czy też poznania jej składu i wymagań. Protokół znajdowania trasy do partnera pozwalający na ustanowienie połączenia nawet w przypadku, gdy partnerzy nie widzą się nawzajem bądź używają różnych transportów. Protokół wiązania ogłoszeń i transportów. 3.5 Przydatne adresy http://.omg.org http://java.sun.com/products/javaspaces/ http://developer.java.sun.com/developer/books/javaspaces/introduction.html http://java.sun.com/products/jms/ Copyright c 2001, wszystkie prawa zastrzeżone 4

http://developer.java.sun.com/developer/technicalarticles/networking/messaging http://.jxta.org Copyright c 2001, wszystkie prawa zastrzeżone 5