Architektury systemów rozproszonego przetwarzania danych

Wielkość: px
Rozpocząć pokaz od strony:

Download "Architektury systemów rozproszonego przetwarzania danych"

Transkrypt

1 Zeszyty Naukowe nr 764 Uniwersytetu Ekonomicznego w Krakowie 2007 Pawe Lula Katedra Informatyki Tadeusz Wilusz Katedra Informatyki Architektury systemów rozproszonego przetwarzania danych Streszczenie: w artykule, na podstawie dostępnych źródeł literaturowych, przedstawiono najważniejsze elementy współczesnych koncepcji budowy systemów rozproszonego przetwarzania danych. Główny nacisk położono na architekturę obiektów rozproszonych (OMG) i zbiór standardów CORBA. Obserwacja trendów rozwojowych współczesnych technologii informacyjnych nie pozostawia wątpliwości, że prezentowane w artykule rozwiązania można z dużym prawdopodobieństwem traktować jako najbliższą generację technologii systemów informacyjnych. Słowa kluczowe: systemy informacyjne, systemy informatyczne, systemy rozproszone, CORBA, ORB, architektura klient serwer, architektura obiektów rozproszonych 1 Wst p Systemem rozproszonym nazywamy taki system, w którym przetwarzanie informacji jest wykonywane na kilku komputerach, a nie przydzielone do jednej maszyny. Komputery te mogą być istotnie oddalone geograficznie (od kilku metrów do dziesiątków tysięcy kilometrów porównaj dane w tabeli 2). Przeciwieństwem systemów rozproszonych są systemy scentralizowane, które historycznie pojawiły się jako pierwsze. Lista współcześnie najważniejszych systemów da się sprowadzić do trzech pozycji. Są to:

2 58 Paweł Lula, Tadeusz Wilusz systemy osobiste, które nie są rozproszone i są przeznaczone do pracy na komputerze osobistym lub stacji roboczej. Przykładami takich systemów są m.in. procesory tekstów, arkusze kalkulacyjne, systemy graficzne itd.; systemy wbudowane, które działają na jednym procesorze lub na zintegrowanej grupie procesorów. Przykładami takich systemów są m.in. systemy sterowania sprzętem domowym, systemy sterujące przyrządami itd.; systemy rozproszone, w których oprogramowanie systemowe działa na luźno zintegrowanej grupie współpracujących procesorów połączonych siecią. Przykładami takich systemów są m.in. systemy bankomatów, systemy rezerwacji, systemy pracy grupowej itd. Tabela 1. Zagadnienia projektowania systemów rozproszonych Zagadnienie projektowe Identyfikacja zasobów Komunikacja Jakość usług Architektura oprogramowania Źródło: [Sommerville 2003]. Opis Zasoby systemu rozproszonego są rozmieszczone na różnych komputerach, należy więc opracować schemat nazewnictwa, aby użytkownicy mogli znajdować i wykorzystywać potrzebne im zasoby. Przykładem takiego schematu jest URL (Uniform Resource Locator zunifikowany adres zasobu) służący do identyfikacji stron www. Jeśli nie zastosuje się znaczącego i powszechnie rozumianego schematu, to wiele zasobów będzie niedostępnych dla użytkowników systemu Powszechna dostępność sieci i efektywna implementacja jej protokołu komunikacyjnego TCP/IP oznacza, że jest to najskuteczniejszy sposób komunikacji komputerów w wypadku większości systemów rozproszonych. Tam, gdzie występują szczególne wymagania efektywnościowe, niezawodnościowe itd. można skorzystać z innych mechanizmów komunikacji Jakość usług oferowanych przez system odzwierciedla jego efektywność, dostępność i niezawodność. Mają na nią wpływ także inne czynniki, takie jak przydział procesów do procesorów systemu, rozproszenie zasobów w ramach systemu, sprzęt sieciowy i systemowy oraz zdolność systemu do adaptacji W architekturze oprogramowania opisuje się, w jaki sposób funkcjonalność programu użytkowego rozproszono na kilku logicznych komponentach oraz jak te komponenty rozproszono na procesorach. Wybór odpowiedniej architektury programu użytkowego jest zasadniczym warunkiem osiągnięcia pożądanej jakości usług Obecnie łatwo jest rozróżnić te rodzaje systemów, ale dynamiczny rozwój szybkich sieci (zwłaszcza bezprzewodowych) zatrze te różnice w niedalekiej przyszłości. Przykładowo, w świecie szybkich sieci bezprzewodowych będzie łatwo

3 Architektury systemów rozproszonego 59 dynamicznie integrować z bardziej ogólnymi systemami produkty zawierające systemy wbudowane (np. elektroniczne terminarze). W zasadzie już teraz można zaryzykować tezę, że niemal wszystkie współczesne systemy są rozproszone. Dzieje się tak za sprawą Internetu, który powoduje, że najważniejsza ostoja systemów scentralizowanych, jaką współcześnie jest komputer osobisty, podłączona do Internetu może śmiało być traktowana w kategoriach elementu składowego systemu rozproszonego. Projektowanie i własności systemów rozproszonych w dużej mierze są takie same jak systemów scentralizowanych, ale istnieją także istotne różnice, których wszyscy zainteresowani współczesnymi systemami przetwarzania danych (a w szczególności specjaliści w zakresie inżynierii oprogramowania) winni być świadomi. Zagadnienia wskazywane w literaturze (por. [Colorouis, Dollimore, Kindberg 1998]), jako krytyczne dla projektowania systemów wymieniono w tabeli 1. Tematyka tego opracowania jest związana z ostatnim z wymienionych w powyższym zestawieniu zagadnień. Celem opracowania jest bowiem prezentacja podstawowych koncepcji stanowiących fundament współczesnej architektury systemów rozproszonych. W szczególności z punktu widzenia projektowania rozproszonych systemów gromadzenia i analizy danych istotnym jest wyeksponowanie najważniejszych różnic pomiędzy architekturą klient serwer i architekturą obiektów rozproszonych, a w obrębie tej ostatniej najważniejszych zasad standardów CORBA. 2. Architektury wieloprocesorowe Najprostszym modelem systemu rozproszonego jest system wieloprocesorowy, składający się z kilku różnych procesów, które mogą (ale nie muszą) działać na oddzielnych procesorach. Ten model powszechnie występuje w wielkich systemach czasu rzeczywistego. Takie systemy zbierają informacje, na ich podstawie podejmują decyzje i wysyłają sygnały do efektorów, które oddziałują na środowisko systemu. Z logicznego punktu widzenia procesy zajmujące się zbieraniem informacji, podejmowaniem decyzji i sterowaniem efektorami mogłyby działać na jednym procesorze sterowanym przez moduł szeregujący. Użycie wielu procesorów poprawia efektywność i odporność systemu. Przydział procesów do procesorów może być zadany z góry (tak zwykle jest w systemach krytycznych) albo sterowany przez dyspozytora, który decyduje o przyznaniu procesowi procesora. Na rys. 1 w charakterze przykładu takiego systemu pokazano uproszczony model systemu kierowania ruchem drogowym. Zbiór rozproszonych detektorów zbiera informacje o natężeniu ruchu, przetwarza je lokalnie, po czym przesyła do centrum sterowania. Centrum sterownia wypracowane na podstawie otrzymanych informacji decyzje przekazuje w formie odpowiednich poleceń do oddzielnego

4 60 Paweł Lula, Tadeusz Wilusz procesu sterowania światłami. W rezultacie, w tym przykładzie, możemy mówić o trzech logicznie wydzielonych procesach (lub trzech grupach procesów), które działają na oddzielnych procesorach. Rys. 1. Przykład systemu wieloprocesorowego Źródło:opracowanie własne na podstawie [Sommerville 2003]. Systemy oprogramowania zbudowane z wielu procesów mogą, ale nie muszą być systemami rozproszonymi. Wynika to stąd, że historycznie wieloprocesorowość pojawiła się jako jedna z technologii zwiększania mocy obliczeniowej i wydajności systemów o architekturze scentralizowanej. W tabeli 2 przywołano klasyfikację systemów powstałych z określonego sposobu połączenia procesorów, która stara się doprecyzować znaczenie powszechnie używanych terminów dla funkcjonujących w praktyce systemów wieloprocesorowych. Tabela 2. Klasyfikacja systemów powstałych z połączenia procesorów Odległości między procesorami Rozmieszczenie procesorów w obrębie jednego Przykład 0,1 m pakietu maszyny przepływowe 1 m systemu systemy wieloprocesorowe 10 m pomieszczenia 100 m budynku sieci lokalne 1 km terenu firmy (np. uczelni) 10 km miasta 100 km kraju sieci dalekosiężne (rozległe) 1000 km kontynentu intersieci powstałe z połączenia km planety sieci dalekosiężnych Źródło: [Tanenbaum 1998].

5 Architektury systemów rozproszonego Podstawowe własnoêci systemów rozproszonych Jako podstawowe zalety systemów rozproszonych najczęściej wymienia się sześć, następujących cech Colorouis, Dollimore, Kindberg 1998]: współdzielenie zasobów system rozproszony umożliwia współdzielenie zasobów sprzętowych i programowych umieszczonych na różnych komputerach w sieci, np. dysków, drukarek, plików, kompilatorów itd. 1 ; otwartość ta cecha systemu charakteryzuje łatwość rozszerzania go o nowe nie należące do niego zasoby. Systemy rozproszone są otwarte i zwykle zawierają sprzęt i oprogramowanie różnych producentów; współbieżność w systemie współbieżnym kilka procesów może działać na różnych komputerach w tym samym czasie. Procesy te mogą (ale nie muszą) komunikować się podczas swojego działania; skalowalność moc i możliwości przetwarzania może wzrastać w miarę dodawania do systemu nowych zasobów, w szczególności komputerów. W praktyce skalowalność jest często ograniczona poprzez przepustowość sieci oraz (niekiedy) poprzez np. specyficzne protokoły wymiany informacji. Niemniej skalowalność systemu rozproszonego jest nieporównywalnie lepsza w stosunku do systemu scentralizowanego; tolerancja błędów (odporność na awarie) dostępność wielu komputerów oraz możliwość dublowania informacji (replikacje) oznacza, że systemy rozproszone powinny być odporne na pewne awarie zarówno sprzętowe, jak i programowe. Przykładowo, awaria węzła komunikacyjnego powoduje wygenerowanie innej trasy przepływu informacji. Zwykle całkowity zanik obsługi zdarza się jedynie w wypadku awarii sieci; przezroczystość polega na ukryciu przed użytkownikiem rozproszonej natury systemu. Przezroczystość ma istotne znaczenie przede wszystkim dla komfortu pracy użytkownika (pozwala korzystać z zasobów i usług systemu bez jakiejkolwiek potrzeby wnikania w szczegóły implementacyjne systemu) oraz dla niezawodności budowanego oprogramowania (m.in. dlatego, że potencjalne błędy użytkownika są dużo łatwiej poddają się kontroli na poziomie abstrakcji użytkowej systemu aniżeli na poziomie jego fizycznej implementacji). Warto przy tym zauważyć, że w wielu wypadkach udostępnienie użytkownikom pewnej wiedzy o organizacji systemu umożliwia im jednak lepsze korzystanie z jego zasobów. Powszechnie znanym przykładem przezroczystości jest Internet: klikając odnośnik na stronie www użytkownik nie musi wiedzieć, gdzie znajduje się odpowiadający mu zasób oraz jak i na czym jest zaimplementowany. 1 Współdzielenie zasobów może dotyczyć także scentralizowanej architektury systemu wielodostępnego, ale w takim wypadku wszystkie zasoby są oferowane przez menedżera zasobów takiego systemu.

6 62 Paweł Lula, Tadeusz Wilusz Korzyści, jakie oferują systemy rozproszone mają swoją cenę, którą stanowi zwiększony stopień trudności w obrębie zagadnień wyspecyfikowanych niżej. Ponieważ w tych obszarach systemy o scentralizowanej architekturze sprawiają zdecydowanie mniej kłopotów, więc poniższą listę można traktować jako wykaz najważniejszych słabości systemów rozproszonych (w odniesieniu do systemów zcentralizowanych): złożoność systemy rozproszone, jako bardziej złożone od scentralizowanych, są trudniejsze do zaprogramowania i do administrowania. Zależą od własności sieci, np. jej przepustowości i czasu transmisji, co nie tylko utrudnia zaprojektowanie i realizację wielu algorytmów procesu przetwarzania, ale również pełne rozumienie zachowań systemu, a co za tym idzie jego testowanie. Przenoszenie zasobów z jednej części systemu do innej (replikacja) może przy tym drastycznie wpływać na efektywność systemu; ochrona (zabezpieczenie) system zcentralizowany może być skutecznie chroniony już na poziomie zabezpieczeń fizycznych i organizacyjnych ( strażnik z karabinem ). System rozproszony z definicji musi być i jest dużo bardziej narażony na różnorodne zagrożenia (włamania, wirusy, sabotaż, odmowa płatności itd.) pojawiające się z wielu stron, które trudno zidentyfikować. To sprawia, że zarządzanie bezpieczeństwem systemu rozproszonego jest trudniejsze; łatwość zarządzania zarządzanie systemem rozproszonym jest niepomiernie trudniejsze niż zcentralizowanym wskutek tego, że konsekwencje różnych działań administracyjnych w systemie rozproszonym są trudniejsze do zidentyfikowania. Podobnie z przyczynami sytuacji anormalnych, w szczególności awarii (w sieci mogą być komputery rozmaitych typów i mieć różne wersje systemów operacyjnych, awarie jednej maszyny mogą rozszerzać się na inne maszyny i powodować niespodziewane konsekwencje); nieprzewidywalność system rozproszony jest nieprzewidywalny w swoim działaniu, ponieważ zakłócenia mogą być powodowane przez wiele przyczyn: małą przepustowość i awarię łączy, awarię komputerów, zbyt duże obciążenie danego serwera, lokalne decyzje administracji serwera itd. Przykładem eksploatacyjnej nieprzewidywalności systemu rozproszonego może być bardzo duża wariancja czasu odpowiedzi w systemie www, o czym doskonale wiedzą wszyscy jego użytkownicy. Z powyższej charakterystyki wynika, że podstawowym wyzwaniem przy projektowaniu systemów rozproszonych jest opracowanie projektu oprogramowania i sprzętu tak, aby miały pożądane cechy w ramach systemu rozproszonego i aby zmniejszyć kłopoty charakterystyczne dla architektur systemów rozproszonych. Jak do tej pory nie znaleziono uniwersalnego rozwiązania tak postawionego problemu, a funkcjonujące w praktyce rozwiązania dają się zaklasyfikować do jednej z następujących architektur rozproszenia:

7 Architektury systemów rozproszonego 63 architektury klient serwer w tym podejściu system jest postrzegany jako zbiór usług oferowanych klientom, którzy z nich korzystają. W takich systemach odmiennie traktuje się serwery i klientów; architektury obiektów rozproszonych w tym podejściu nie istnieje rozróżnienie między klientami i serwerami. System jest postrzegany jako zbiór komunikujących się obiektów, których położenie jest nieistotne. Nie ma różnicy między dostawcą i użytkownikiem usług. Architektury te bazują na koncepcji oprogramowania pośredniczącego (middleware); architektury sieci równorzędnych (peer-to-peer) w tym przypadku wiele węzłów świadczy sobie wzajemne usługi poprzez bezpośrednie połączenie. Podobnie jak w architekturze obiektów rozproszonych nie ma wyraźnego podziału na usługodawców i usługobiorców. Każdy węzeł może być jednocześnie klientem i serwerem usług. Architekturę peer-to-peer będącą historycznie prekursorem architektury obiektów rozproszonych z epoki powstania i rozwoju lokalnych sieci komputerowych można współcześnie traktować jako szczególny rodzaj tej ostatniej. Dlatego też dalsze rozważania ograniczono do architektury klient serwer i architektury obiektów rozproszonych. 4. Architektury klient serwer W architekturze klient serwer program użytkowy jest modelowany jako zbiór usług oferowanych przez serwery i zbiór klientów, którzy z tych usług korzystają. Klienci muszą znać dostępne serwery, ale zwykle nie muszą wiedzieć o istnieniu innych klientów. Klienci i serwery są oddzielnymi procesami, jak pokazano na rys. 2, który jest logicznym modelem rozproszonej architektury klient serwer. k1 k2 k3 k7 k4 s1 s4 k8 k5 s2 s3 k9 k6 k11 k10 Rys. 2. Architektura klient serwer: si proces serwera, kn proces klienta Źródło: [Sommerville 2003].

8 64 Paweł Lula, Tadeusz Wilusz k1, k2 kk1 k3, k6 kk2 k4, k5 kk3 s1, s2, s3 ks1 Sieć komputerowa s4 ks2 kk4 k7, k11 kk5 k8, k9, k10 Rys. 3. Komputery w sieci klient serwer komputer serwera komputer klienta Źródło: opracowanie własne. Procesy i procesory systemu nie muszą być wzajemnie jednoznacznie przyporządkowane. Na rys. 3 pokazano fizyczną architekturę systemu z dwoma komputerami serwerów i pięcioma komputerami klientów. Mogą na nich działać procesy klientów i serwerów z rys. 2. Oznacza to, że terminy klient oraz serwer należy rozumieć jako odniesienia do logicznych procesów usługobiorcy i usługodawcy, a nie jako odniesienia do fizycznych komputerów, na których te procesy działają. Warstwa prezentacji Warstwa przetwarzania Warstwa zarządzania danymi Rys. 4. Warstwy programu użytkowego Źródło: [Sommerville 2003]. Projekt systemu klient serwer powinien odzwierciedlać logiczną strukturę tworzonego programu użytkowego. Na rys. 4 pokazano jeden ze sposobów postrzegania programu użytkowego złożonego z trzech warstw. Warstwa prezentacji to inaczej warstwa interfejsu użytkownika. W warstwie przetwarzania

9 Architektury systemów rozproszonego 65 implementuje się logikę programu użytkowego. Warstwa zarządzania danymi jest odpowiedzialna za wszystkie operacje na danych (najczęściej przechowywanych w bazach danych). W systemie scentralizowanym nie ma potrzeby jawnego wydzielania tych warstw. Projektując system rozproszony, trzeba jednak wyraźnie je wyróżnić, ponieważ umożliwia to realizację funkcji każdej warstwy na różnych procesorach (komputerach). Korzystając z wprowadzonego warstwowego modelu aplikacji architektury klient serwer można się przedstawić w sposób pokazany na rys. 5. Program użytkowy składa się wówczas z serwera (lub wielu identycznych serwerów) i zbioru klientów. Jak wynika z pokazanych schematów, możliwe są dwa podstawowe warianty architektury klient serwer: model cienkiego klienta 2 w tym modelu całość przetwarzania i zarządzania danymi ma miejsce na serwerze. Jedynym zadaniem klienta jest uruchomienie oprogramowania prezentacyjnego; model grubego klienta w tym modelu serwer odpowiada przede wszystkim za zarządzanie danymi. Oprogramowanie u klienta implementuje logikę programu użytkowego i kontakt z użytkownikiem systemu. W praktyce współczesnych systemów funkcja warstwy przetwarzania najczęściej jest realizowana wspólnie (w różnych proporcjach w zależności od konkretnych potrzeb) przez procesy zarówno po stronie klienta, jak i serwera. Stwarza to duże problemy projektowe. Rys. 5. Uproszczone architektury trójwarstwowe z cienkim lub grubym klientem Źródło: [Sommerville 2003]. 2 Terminy cienki klient oraz gruby klient, pomimo pewnej niezgrabności językowej, są powszechnie używanymi terminami na gruncie polskojęzycznej terminolgii systemów rozproszonych z racji braku lepszych odpowiedników anglojęzycznych pierwowzorów, jakimi są terminy thin client oraz fat client.

10 66 Paweł Lula, Tadeusz Wilusz Architektura z cienkim klientem jest najprostszym rozwiązaniem, które nader często jest wykorzystywane w scentralizowanych systemach odziedziczonych ewoluujących w kierunku architektur klient serwer. Interfejs użytkownika tych systemów jest przenoszony na komputer osobisty, a program użytkowy działa jako serwer i obsługuje przetwarzanie użytkowe oraz zarządzanie danymi. Model cienkiego klienta może być również zaimplementowany tam, gdzie klienci są raczej prostymi urządzeniami sieciowymi, a nie komputerami osobistymi albo stacjami roboczymi. Na takim urządzeniu sieciowym działa przeglądarka sieci oraz interfejs użytkownika realizowany przez ten system. Najważniejszą wadą modelu cienkiego klienta jest duże obciążenie zarówno sieci (transmisją), jak i serwera (przetwarzaniem). Serwer odpowiada za wszystkie obliczenia, co może prowadzić do dużego ruchu sieciowego między klientem a serwerem. Współczesne komputery osobiste mają dużą moc obliczeniową, z której w modelu cienkiego klienta się nie korzysta. W modelu grubego klienta korzysta się natomiast z dostępnej mocy obliczeniowej na stacji roboczej i przekazuje klientowi zarówno przetwarzanie związane z logiką programu użytkowego, jak i prezentację. Serwer jest zasadniczo serwerem transakcji, który zarządza transakcjami w bazie danych. Dobrze znanym przykładem architektury tego typu są systemy bankomatów. Bankomat jest tam klientem, a serwerem jest komputer główny obsługujący bazę danych kont klientów. Bankomat Bankomat Serwer kont klientów banku Bankomat Monitor teleprztwarzania Baza danych kont klientów banku Bankomat Oprogramowanie pośredniczące organizujące komunikację z odległymi klientami i szeregujące transakcje klientów celem przetwarzania ich przez bazę danych Rys. 6. Sieć bankomatów jako przykład architektury klient serwer Źródło: opracowanie własne na podstawie [Sommerville 2003]. Na rys. 6 przedstawiono taką sieć bankomatów. Warto zauważyć, że bankomaty nie łączą się bezpośrednio z bazą danych o klientach, ale z monitorem przetwarzania zdalnego. Jest to system klasy middleware, który zarządza komunikacją

11 Architektury systemów rozproszonego 67 z klientami zdalnymi i szereguje transakcje klientów przed przetwarzaniem ich w bazie danych. Zastosowanie transakcji szeregowych umożliwia odtworzenie systemu po awarii bez uszkadzania danych. W modelu grubego klienta przetwarzanie jest bardziej efektywne niż w wypadku modelu cienkiego klienta, zarządzanie systemem jest natomiast trudniejsze. Funkcjonalność programów użytkowych jest rozproszona po wielu różnych komputerach. Gdy konieczna jest zmiana oprogramowania użytkowego, trzeba wykonać ponowną instalację na każdym komputerze klienta. Jeśli w systemie są setki komputerów, to taka operacja może stanowić najistotniejszy koszt takiej poprawki. Pojawienie się Javy i ściąganych apletów 3 umożliwiło opracowanie modelu klient serwer, który leży gdzieś między modelem cienkiego klienta i modelem grubego klienta. Części oprogramowania przetwarzającego mogą być przekazane klientowi w postaci apletów Javy, co zmniejsza obciążenia serwera. Interfejs użytkownika jest budowany dla przeglądarki www, w której mogą działać aplety 4. Rys. 7. Trójwarstwowa architektura klient serwer Źródło: [Sommerville 2003]. Zasadnicza trudność dotycząca dwuwarstwowego podejścia klient serwer polega na tym, że trzy warstwy logiczne (prezentacja, przetwarzanie użytkowe i zarządzanie danymi) muszą być przyporządkowane do dwóch systemów komputerowych. Mogą wystąpić kłopoty ze skalowalnością i efektywnością, gdy wybierzemy model cienkiego klienta, albo trudności z pielęgnacją, gdy zdecydujemy się na grubego klienta. Aby uniknąć tych kłopotów, można zastosować architekturę 3 Termin aplet jest zapożyczonym z języka angielskiego określeniem na skompilowany program, który może być uruchomiony w środowisku systemowym przeglądarki internetowej. Termin ten nie ma odpowiednika na gruncie polskojęzycznej terminologii informatycznej. 4 Warto zauważyć, że przeglądarki różnych producentów, a nawet różne wersje tej samej przeglądarki nie zawsze jednak wyświetlają te same strony w ten sam sposób. Technologie internetowe rozwijają się bardzo dynamicznie i może się zdarzyć, że na starszych komputerach użytkownik nie będzie miał możliwości uruchamiania programów w Javie. Powinno się zatem używać tego podejścia jedynie wówczas, gdy wiadomo, że tego typu problemy na pewno nie będą miały miejsca. Jest to sytuacja przejściowa i wszystko wskazuje, że postęp technologii XML w najbliższej przyszłości usunie wszelkie problemy tego rodzaju.

12 68 Paweł Lula, Tadeusz Wilusz trójwarstwową (rys. 7). W tej architekturze prezentacja, przetwarzanie użytkowe i zarządzanie danymi są logicznie oddzielonymi procesami 5. Internetowy system bankowy jest przykładem systemu, który można zaimplementować za pomocą architektury trójwarstwowej klient serwer. Bankowa baza danych o klientach oferuje usługi zarządzania danymi. Serwer www zapewnia usługi użytkowe, takie jak udogodnienia do przelewania pieniędzy, generowania wyciągów, płacenia rachunków itd. Komputer użytkownika z przeglądarką sieci odgrywa rolę klienta. W efekcie dostajemy system pokazany na rys. 8. Rys. 8. Architektura rozproszenia systemu bankowego w Internecie (portal www) Źródło: [Sommerville 2003]. Architektura trójwarstwowa w tym rozwiązaniu przede wszystkim umożliwia optymalizację przekazywania informacji między serwerem www a serwerem bazy danych. W szczególności komunikacja między tymi systemami nie musi być zgodna ze standardowymi protokołami Internetu, ale może bazować na szybszych protokołach komunikacyjnych niższego poziomu. Do wyszukiwania informacji w bazie danych korzystać można z efektywnych programów warstwy pośredniczącej (middleware), które umożliwiają zadawanie bazie danych pytań w języku SQL 6. W niektórych przypadkach należy rozszerzyć model trójwarstwowy klient serwer do wariantu wielowarstwowego, w którym system jest wzbogacany o dodatkowe serwery. Systemy wielowarstwowe mogą być zastosowane tam, gdzie programy 5 Architektura trójwarstwowa klient serwer niekoniecznie oznacza, że są potrzebne trzy systemy komputerowe włączone do sieci. Jeden komputer serwera może obsługiwać zarówno przetwarzanie użytkowe, jak i zarządzanie danymi programu użytkowego jako dwa oddzielne logicznie serwery. Gdy jednak oczekiwania wzrosną, można będzie dość łatwo wyodrębnić przetwarzanie użytkowe i zarządzanie danymi, po czym uruchamiać je na oddzielnych procesorach. 6 SQL (Structured Query Language) strukturalny język zapytań.

13 Architektury systemów rozproszonego 69 użytkowe muszą odczytywać i wykorzystywać dane z różnych baz danych. Serwer integracji zbiera rozproszone dane i przedstawia je programom użytkowym tak, jakby były wzięte z jednej bazy danych. Tabela 3. Typowe zastosowania różnych architektur klient serwer Dwuwarstwowa architektura z cienkim klientem Dwuwarstwowa architektura z grubym klientem Trzywarstwowa lub wielowarstwowa architektura Systemy odziedziczone (legacy), gdzie oddzielenie przetwarzania i zarządzania danymi jest niepraktyczne. Aplikacje zorientowane na obliczenia, np. kompilatory, gdzie nie występuje lub jest bardzo mała interakcja z bazą danych. Aplikacje zorientowane na dane (przeglądanie i zadawanie pytań), gdzie nie występuje lub jest bardzo małe przetwarzanie. Aplikacje, w których przetwarzanie jest zapewnione przez wyspecjalizowane oprogramowanie klienta, np. MS Excel. Aplikacje ze złożonym przetwarzaniem (np. wizualizacją danych, przetwarzaniem multimediów). Aplikacje ze stabilną funkcjonalnością dla użytkownika, użyte w środowisku z dobrze określonym zarządzaniem. Aplikacje o dużej skali z setkami lub tysiącami klientów. Aplikacje gdzie zarówno dane jak i aplikacje są ulotne (zmienne). Aplikacje integrujące dane z wielu rozproszonych źródeł. Źródło: opracowanie własne na podstawie [Sommerville 2003]. Architektury trójwarstwowe klient serwer i ich warianty wielowarstwowe, które rozdzielają przetwarzanie użytkowe między kilka serwerów, są ze swej natury bardziej skalowalne niż architektury dwuwarstwowe. Projektując systemy w architekturze klient serwer należy sobie zdawać sprawę z tego, że wybór najbardziej odpowiedniej architektury jest wyborem wielokryterialnym. Sytuacje przedstawione w tym punkcie zostały krótko streszczone w tabeli Architektury obiektów rozproszonych W architekturze klient serwer istnieje wyraźna asymetria pomiędzy klientem i serwerem; w szczególności, nie występuje tam komunikacja bezpośrednio pomiędzy klientami. Model taki dla wielu zastosowań jest mało elastyczny i zapewnia zbyt małą skalowalność. Architektura obiektów rozproszonych znosi podział na klientów i serwery. Brak podziału na klientów i serwery okazuje się być podejściem bardziej ogólnym do projektowania systemów rozproszonych. W tej architekturze (rys. 9) zasadniczymi komponentami systemu są obiekty oferujące interfejs do zbioru wykonywanych przez siebie usług. Inne obiekty mogą

14 70 Paweł Lula, Tadeusz Wilusz korzystać z tych usług bez logicznego podziału na klientów (odbiorców usług) i serwery (dostawców usług). ol oi on U(ol).... U(oi).... U(on) szyna programowa Rys. 9. Architektura obiektów rozproszonych oi i-ty obiekt, U(oi) usługa świadczona przez i-ty obiekt Źródło: [Sommerville 2003]. Obiekty mogą być umieszczone na kilku komputerach w sieci; porozumiewają się wówczas za pośrednictwem warstwy programów pośredniczących 7 (middleware). Taką warstwę oprogramowania pośredniczącego można traktować w kategoriach szyny programowej pełniącej funkcję pośrednika pomiędzy rozproszonymi obiektami składowymi systemu. Oferuje ona zbiór usług, które umożliwiają porozumiewanie się obiektów oraz dodawanie i usuwanie obiektów z systemu. Stąd też rozwiązanie o takiej architekturze nazwano pośrednikiem zleceń obiektowych. Jego rolą jest zapewnienie ciągłego interfejsu między obiektami. Do niewątpliwych zalet architektury obiektów rozproszonych można zaliczyć: umożliwienie projektantowi odłożenie w czasie decyzji, gdzie i jak oferować usługi. Obiekty wykonujące usługi mogą działać w dowolnym węźle sieci. Rozróżnienie między modelami grubego i cienkiego klienta staje się więc bezprzedmiotowe i nie ma konieczności określania z góry, gdzie umiejscowić obiekty logiki użytkowej; jest architekturą otwartych systemów, która umożliwia dodawanie nowych zasobów w miarę potrzeby; system o tej architekturze jest elastyczny i skalowalny. Do obsługi rozmaitych obciążeń można utworzyć różne egzemplarze systemu z tym samym zbiorem usług oferowanych przez odrębne lub powielone obiekty. Gdy obciążenie systemu 7 W literaturze polskojęzycznej termin middleware jest niekiedy tłumaczony jako śródprogramy.

15 Architektury systemów rozproszonego 71 rośnie, można dodać nowe obiekty bez przerywania pracy innych obiektów systemowych; w miarę potrzeby można dynamicznie zmienić konfigurację systemu przez migrację obiektów w sieci. Może to być niezbędne tam, gdzie liczbę żądań usług zmienia się rytmicznie zgodnie z pewnym wzorcem. Obiekty wykonujące usługi mogą przemieścić się na ten sam procesor, na którym działają obiekty żądające usług. Pozwala to poprawić efektywność systemu. W fazie projektowaniu systemów architektura obiektów rozproszonych może być wykorzystana na dwa sposoby: jako model logiczny, który pomaga w ustaleniu struktury i organizacji systemu w tym przypadku należy wyrazić funkcjonalność użytkową jedynie w kategoriach usług i ich kombinacji. Na tej podstawie należy następnie wypracować sposób oferowania tych usług przez kilka obiektów rozproszonych. Na tym poziomie abstrakcji zaprojektowane obiekty są gruboziarniste i wykonują usługi charakterystyczne dla określonej dziedziny. Przykładowo, w programie użytkowym do obsługi sprzedaży detalicznej mogą pojawić się obiekty do zarządzania magazynem, kontaktami z klientem, zamawianiem dóbr itd. Taki model logiczny może być później łatwo zrealizowany jako model implementacyjny; Rys. 10. Architektura rozproszonego systemu eksploracji danych Źródło: opracowanie własne na podstawie [Sommerville 2003].

16 72 Paweł Lula, Tadeusz Wilusz jako elastyczne podejście do implementacji systemów klient serwer. W tym wypadku model logiczny systemu odpowiada architekturze klient serwer, ale zarówno klienci, jak i serwery mają postać obiektów rozproszonych porozumiewających się za pośrednictwem szyny programowej. Umożliwia to łatwą zmianę systemu na przykład z dwuwarstwowego na wielowarstwowy. W tym wypadku klient lub serwer może być zaimplementowany nie jako jeden obiekt rozproszony, ale jako kilka mniejszych obiektów, z których każdy oferuje wyspecjalizowane usługi. Przykładem systemu, w którym architektura obiektów rozproszonych świetnie się sprawdza jest system eksploracji danych (Data Mining), który służy do wyszukiwania związków między danymi przechowywanymi w wielu różnych bazach danych (rys. 10). W tym przykładzie każda baza danych może być zamknięta wewnątrz obiektu rozproszonego z interfejsem do odczytu jej danych. Obiekty integratory odpowiadają za wykrywanie specyficznych związków pomiędzy danymi zawartymi we wszystkich bazach danych zasilających system. Z kolei obiekty prezenter porozumiewają się z integratorami i tworzą prezentacje albo raporty o wykrytych związkach. W takich rodzajach zastosowań architektura obiektów rozproszonych jest bardziej odpowiednia niż architektura klient serwer z następujących powodów: inaczej niż w wypadku np. systemów bankomatów, model logiczny systemu nie polega na zapewnieniu usługi i zarządzanie danymi nie jest w nim wydzielone; taka architektura umożliwia zwiększenie liczby wykorzystywanych baz danych bez przerywania pracy systemu. Każda baza danych to po prostu kolejny obiekt rozproszony. Obiekty bazy danych mogą oferować uproszczony interfejs, który umożliwia kontrolę dostępu do danych. Bazy danych mogą znajdować się na różnych maszynach; taka architektura umożliwia eksplorację nowych rodzajów związków przez dodanie nowych obiektów typu integrator. Co więcej, jeżeli różne oddziały firmy są zainteresowane różnymi związkami, to każdy z nich może rozszerzyć system przez dodanie nowych, swoich obiektów integratorów, które będą działały na ich komputerach. Taka zmiana nie wymaga wiedzy o integratorach używanych w innych miejscach. 6. CORBA Z rozważań przedstawionych w poprzednim punkcie wynika niezbicie, że implementacja architektury obiektów rozproszonych wymaga warstwy oprogramowania pośredniczącego (pośredników zleceń obiektowych) do obsługi komunikacji między obiektami rozproszonymi. Dzięki istnieniu takiej warstwy obiekty

17 Architektury systemów rozproszonego 73 systemu mogą być zrealizowane w różnych językach programowania, działać na różnych platformach, a ich nazwy nie muszą być znane wszystkim innym obiektom w systemie. W tym miejscu warto zauważyć, że programy warstw pośredniczących zaliczają się do oprogramowania ogólnego przeznaczenia, które raczej się kupuje niż specjalnie pisze. W charakterze przykładu może nam posłużyć oprogramowanie do obsługi komunikacji z bazą danych, monitory transakcyjne itp. Systemy rozproszone zwykle projektuje się używając metodologii projektowania obiektowo zorientowanego. Takie systemy składają się z luźno zintegrowanych niezależnych części, z których każda może bezpośrednio komunikować się z użytkownikami lub z innymi częściami systemu. Części systemu muszą często reagować na niezależne zdarzenia. Obiekty programowe odzwierciedlające te cechy, są więc naturalnymi abstrakcjami komponentów systemów rozproszonych. W chwili obecnej na rynku dostępne są cztery standardy oprogramowania middleware wspomagające projektowanie i budowę systemów rozproszonego przetwarzania danych. Są to: CORBA (Common Object Request Broker Architecture) jest zbiorem standardów zdefiniowanym przez OMG (Object Management Group). OMG jest konsorcjum firm 8, do którego należą główni producenci, (na przykład Sun, Hewlett-Packard i IBM). Standardy CORBA definiują ogólne niezależne od maszyny podejście do rozproszonych obliczeń obiektowych; DCOM (Distributed Component Object Model) jest to standard firmy Microsoft zintegrowany z jej systemami operacyjnymi. Model rozproszonych obliczeń w DCOM jest mniej ogólny niż CORBA; RMI (Remote Method Invocation) oprogramowanie firmy Sun, dedykowane opracowywaniu systemów rozproszonego przetwarzania danych w środowisku Javy. Podobnie jak DCOM charakteryzują go pewne ograniczone w stosunku do standardu CORBA; XML standard zaproponowany dla Internetu przez www Consortium. Jest to najmłodszy z wymienionych standardów i nadal w fazie intensywnego rozwoju. Pozwala na semantyczną kwalifikację danych przechowywanych na serwerach www. Jego głównym przeznaczeniem jest automatyzacja procesu wymiany informacji w sieci Internet. Na obecnym etapie technologie związane z XML są również mniej elastyczne i ograniczone w stosunku do standardu CORBA. Wszystkie z wymienionych standardów w interesującym nas aspekcie koncentrują się na tym samym. Z danych literaturowych wykorzystanych w powyższej, 8 OMG powstała w 1989 r. Jej celem jest promowanie teorii oraz praktyki technologii obiektowych. Założycielami OMG było 13 liczących się przedsiębiorstw z branży software owej. Obecnie do organizacji należy ponad 750 firm producentów oprogramowania oraz sprzętu komputerowego. Organizacja zajmuje się opracowywaniem standardów pomagających w tworzeniu aplikacji obiektowych.

18 74 Paweł Lula, Tadeusz Wilusz skrótowej charakterystyce dostępnych standardów wynika, że wśród nich CORBA oferuje najbardziej ogólny model budowy systemów rozproszonych i dlatego na jej przykładzie będzie opierać się dalsza charakterystyka zasad tworzenia systemów rozproszonych na bazie dostępnego na rynku oprogramowania. Na rys. 11 pokazano wizję rozproszonych aplikacji opracowaną w OMG jako element koncepcji OMA (Object Management Architekture architektura zarządzania obiektami) (por. [Siegiel 1998]). Rys. 11. Struktura rozproszonej aplikacji w standardzie CORBA Źródło: opracowanie własne na podstawie [Sommerville 2003]. Jak wynika z rys. 11 koncepcja ta zakłada, że w strukturze każdej rozproszonej aplikacji powinno się uwzględniać minimum następujące komponenty: obiekty użytkowe zaprojektowane i zaimplementowane dla określonej aplikacji, obiekty standardowe zdefiniowane przez OMG na użytek określonej dziedziny zastosowań 9, główne usługi CORBA związane z podstawowymi aspektami obliczeń rozproszonych, takie jak katalogi, zarządzanie zabezpieczeniami itd., poziome udogodnienia CORBA (usługi), takie jak ułatwienia interfejsu użytkownika, zarządzanie systemem itd. Nazwa udogodnienia poziome świadczy o tym, że są one wspólne dla wielu dziedzin zastosowań; są zatem używane w wielu rozmaitych programach użytkowych. 9 W tym celu powołano tzw. grupy tematyczne, których zadaniem jest określenie standardów obiektów dziedzinowych w finansach i ubezpieczeniach, handlu elektronicznym, opiece medycznej itd.

19 Architektury systemów rozproszonego 75 Standardy CORBA realizują wszystkie aspekty tej wizji na podstawie czterech podstawowych elementów: model obiektów użytkowych, w którym obiekty CORBA mają dobrze określony i niezależny od języka interfejs opisany w IDL (Interface Definition Language język opisu interfejsów): pośrednika zleceń obiektowych (Object Request Broker, ORB), który obsługuje żądania obiektów. ORB znajduje obiekt oferujący usługę, przygotowuje go na to żądanie, wysyła je do niego i przekazuje wynik żądającemu; zbiór ogólnych usług obiektowych (najważniejsze przykłady to usługi katalogowe i transakcyjne); zbiór wspólnych komponentów zbudowanych na bazie usług podstawowych. Mogą to być komponenty charakterystyczne dla konkretnej dziedziny (tzw. komponenty pionowe) albo komponenty ogólnego przeznaczenia dla wielu programów użytkowych. Interfejsy obiektów CORBA ustala się za pomocą standardowego, niezależnego od języka programowania języka opisu interfejsów (IDL). Gdy obiekt pragnie skorzystać z usług innego obiektu, dostaje się do nich przez interfejs IDL. Każdy obiekty CORBA mają unikatowe identyfikatory zwane IOR (Interoperable Object Reference) używane, gdy jeden z obiektów żąda usług innego. Pośrednik zleceń obiektowych zna obiekty żądające usług i ich interfejsy. ORB obsługuje komunikację między obiektami. Porozumiewające się obiekty nie muszą znać położenia innych obiektów ani wiedzieć czegokolwiek o ich implementacji. Interfejs IDL oddziela obiekty od ORB, co pozwala zmieniać zarówno szczegóły implementacyjne każdego z obiektów, jak i jego położenie w sposób niezauważalny dla innych obiektów systemu. Schemat na rys. 12 objaśnia podstawową zasadę komunikacji za pośrednictwem ORB i wyjaśnia istotę interfejsu wyspecyfikowanego w IDL. Obiekt wywołujący ma do dyspozycji namiastkę 10 IDL, która zawiera definicję interfejsu obiektu oferującego żądaną usługę. Klient, zgłaszając chęć wykonania operacji na zdalnym obiekcie, wysyła odpowiednie żądanie do namiastki reprezentanta obiektu CORBY po stronie klienta, a ta następnie angażuje w wykonanie zadania możliwości, jakie daje ORB uruchomiony na lokalnej maszynie. Ten z kolei dostarcza zlecenie obiektowi CORBY reprezentowanej przez tzw. szkielet, który uprzednio lokalizuje. Szkielet po dokonaniu translacji otrzymanego wywołania na rozpoznawany lokalnie format wywołuje odpowiednią metodę z implementacji obiektu. Wartość przez nią zwracana jest przez szkielet transformowana do postaci preferowanej przez klienta i przesyłana mu za pośrednictwem ORB. 10 Angielski termin stub w polskojęzycznej literaturze najczęściej pojawia się jako namiastka lub pniak.

20 76 Paweł Lula, Tadeusz Wilusz Rys. 12. Schemat komunikacji obiektów za pośrednictwem ORB Źródło: [Sommerville 2003]. Warto zauważyć, że IDL jest uniwersalnym językiem specyfikacji interfejsu obiektowego zaprojektowanym przez organizację OMG. Język ten zachowuje wszystkie stosowane rozwiązania obiektowe definiowanie pól atrybutów, metod, dziedziczenie itd. znane z podstaw teorii programowania obiektowego. Następnie plik zawierający definicje IDL jest rzutowany na język programowania za pomocą odpowiednich kompilatorów zależnych od języka programowania. Aktualnie OMG dostarcza specyfikacje rzutowania na kilka podstawowych języków programowania: Java, C, C++, Ada, Cobol, Lisp, Python, PL/1, Smalltalk, XML. Składnia języka wzorowana jest na języku C++ i OMG deklaruje rozwój IDL wraz z rozbudową standardów języka C++. Pośrednicy zleceń obiektowych zwykle nie są implementowani jako oddzielne procesy, ale stanowią tzw. zręby, które konsoliduje się z implementacjami obiektów. W systemie rozproszonym każdy komputer, na którym działają obiekty rozproszone będzie więc miał własnego pośrednika zleceń obiektowych. Będzie on obsługiwał lokalne wywołanie obiektów tak, jak to opisano wyżej. Gdy pojawi się jednak żądanie usługi oferowanej przez obiekt zdalny, będzie konieczna komunikacja między pośrednikami ORB. Sytuacja taka pokazana jest na rys. 13. Jeśli żądana usługa jest na zdalnym komputerze, wówczas lokalny ORB za pomocą specjalnego protokołu komunikacyjnego IIOP 11 (Internet Inter-ORB Protocol) bazującego na standardzie TCP/IP przesyła żądanie do ORB zlokalizowanego na maszynie docelowej. Odpowiedź również wędruje przez sieć. 11 OMG do komunikacji pomiędzy pośrednikami ORB systemów lokalnego i zdalnego specyfikuje protokół GIOP (Generic Inter-ORB Protocol ogólny protokół komunikacji między ORB) zawierający standardowe komunikaty, które mogą być przesyłane przez pośredników ORB i służą do implementacji zdalnych wywołań obiektów oraz przekazywania informacji. Realizacja GIOP w środowisku sieci TCP/IP daje IIOP.

21 Architektury systemów rozproszonego 77 Sieć (protokół IIOP) Rys. 13. Sieciowa komunikacja obiektów rozproszonych Źródło: opracowanie własne. Częścią standardu CORBY jest definicja całego zbioru usług wspomagających współdziałanie rozproszonych obiektów. Są one znane jako serwisy CORBY, w skrócie COS. W rzeczywistości są to po prostu standardowe obiekty CORBY (określane też jako Object Services) zdefiniowane przy użyciu interfejsów języka IDL jako części składowe serwisu ORB. Najważniejsze z nich zestawiono w tabeli 4. Tabela 4. Lista usług standardu CORBA Usługa Object life cycle definiuje sposób tworzenia, likwidowania, kopiowania i przenoszenia obiektów CORBY Naming definiuje zasady nazewnictwa obiektów CORBY Events definiuje sposób komunikacji między obiektami CORBY Relationships specyfikuje relacje między obiektami CORBY Externalization nadzoruje transformację obiektów CORBY w zewnętrznych środowiskach Transactions koordynuje dostęp do obiektów CORBY Concurrency Control gwarantuje synchronizację współbieżnego dostępu do obiektów CORBY Property wspomaga kojarzenie par typu nazwa wartość z obiektami CORBY Trader wspomaga proces wyszukiwania obiektów CORBY na podstawie specyfikacji serwisów przez nie oferowanych Query wspomaga zapytania dotyczące obiektów CORBY Źródło: opracowanie własne na podstawie materiałów dostępnych w Internecie brunel.ac.uk/~eestpvs/courses/ee5038s/wrkshp4.pdf, corbaoverview.ppt Opis

22 78 Paweł Lula, Tadeusz Wilusz 7. Proces budowy aplikacji rozproszonej w standardzie CORBA Na podstawie przedstawionej idei architektury obiektów rozproszonych można podstawowy schemat projektowania i implementacji obiektowo zorientowanej aplikacji zgodnej ze standardem CORBA przedstawić jako proces składający się z następujących kroków: 1. Definicja zdalnych interfejsów w IDL. 2. Kompilacja zdalnych interfejsów. Specyfikacje interfejsów zapisane w IDL są kompilowane do postaci użytecznej z poziomu wybranego języka programowania aplikacji (np. Javy). Przy okazji kompilator buduje namiastki i szkielety IDL, które pozwolą naszej aplikacji na komunikowanie się poprzez Internet. 3. Implementacja serwera. Kod po stronie serwera musi przede wszystkim zawierać implementacje metod deklarowanych w zdalnym interfejsie. Ponadto musi zawierać również fragment odpowiedzialny za uruchomienie serwisu ORB oraz oczekiwanie na nadesłanie ze strony klienta zlecenia wywołania którejś z usług (metod) interfejsu. Wygenerowane w poprzednim kroku pliki szkieletu łączy się z serwerową cześcią aplikacji. 4. Implementacja klienta. Po stronie klienta aplikacja powinna zawierać namiastki wygenerowane przez kompilator IDL w celu: uruchomienia ORB, zlokalizowania serwera za pomocą specjalnego serwisu nazw IDL, pobrania referencji obiektu CORBY i wywołania jego metod. 5. Uruchomienie aplikacji. Krok ten sprowadza się już tylko do uruchomienia serwisu nazw, wystartowania serwera i uruchomienia programu klienta. 8. Podsumowanie Trwający już ponad 50 lat rozwój informatyki w kierunku pozwalającym w pełni zautomatyzować wszystkie procesy informacyjne pozwolił jej osiągnąć dojrzałą formę technologii znajdującej coraz szersze i coraz łatwiejsze (z uwagi na uniwersalność, a tym samym powszechność występowania) zastosowania. Ponieważ jest to technologia procesów informacyjnych w najszerszym tego słowa znaczeniu, więc rozwój jej zastosowań stwarza coraz silniejszą presję na tempo rozwoju samej technologii. Konkurencja na rynku technologii informatycznych spowodowała, że powiększanie możliwości nowo konstruowanych systemów informatycznych na gruncie technologii półprzewodnikowych zaczęło napotykać bariery fizyczne niemożliwe do przekroczenia. Dlatego w chwili obecnej trwają intensywne prace nad zamianą technologii półprzewodnikowej na inną, a w międzyczasie na znaczeniu istotnie zyskały wszelkie metody zwiększania możliwości

23 Architektury systemów rozproszonego 79 systemów informatycznych oparte na idei traktowania sieci słabych komputera w kategoriach równoległego, wirtualnego superkomputera. Drugi wymiar coraz bardziej konkurencyjnego rynku walka o klienta zaowocowała wyścigiem o względy nabywcy wygodą, łatwością obsługi i dopasowaniem do zindywidualizowanych potrzeb to właśnie świat przedstawionych w artykule systemów obiektów rozproszonych. Chcąc na zakończenie możliwie krótko podsumować aktualny stan w tej dziedzinie, należy stwierdzić: nieomal wszystkie nowoprojektowane i realizowane wielkie systemy są rozproszone. Ich oprogramowanie systemowe działa na luźno zintegrowanych grupach procesorów; podstawowe zalety systemów rozproszonych to zdolność do współdzielenia zasobów, otwartość, współbieżność procesów, łatwa skalowalność, przezroczystość i duża odporność na lokalne awarie; historycznie starsza architektura klient serwer reprezentuje systemy rozproszone, których modelem jest zbiór usług oferowanych procesom klientów przez specjalizowane procesy usługowe (serwery). W takich systemach interfejs użytkownika działa zwykle u klienta, a zarządzanie danymi jest zawsze wykonywane przez współdzielony serwer. Aplikacja użytkowa może działać zarówno na komputerze klienta, jak i na komputerze realizującym proces serwera; w architekturze obiektów rozproszonych to bardziej uogólnione podejście do modelowania świata zewnętrznego, w którym nie ma potrzeby rozróżnienia klientów i serwerów. Obiekty oferują ogólne usługi, które mogą być wywoływane przez inne obiekty. To podejście można w oczywisty sposób wykorzystać do implementacji systemów klient serwer; systemy obiektów rozproszonych muszą korzystać z warstwy programów pośredniczących do obsługi komunikacji obiektów oraz dodawania i usuwania obiektów z systemu. Na poziomie pojęciowym można postrzegać warstwę programów pośredniczących jako szynę programową, do której podłącza się obiekty; CORBA jest najbardziej ogólnym zbiorem standardem budowy warstwy programów pośredniczących do obsługi architektur obiektów rozproszonych. Obejmuje definicje modelu obiektowego, pośrednika zleceń obiektowych i wspólnych usług. Jej przewaga np. nad RMI to przede wszystkim brak ograniczenia jeśli idzie o wybór narzędzi do implementacji systemu. Literatura Ben-Ari M. [1982], Principles of Concurrent Programming, Prentice-Hall. Colorouis G., Dollimore J., Kindberg T. [1998], Systemy rozproszone. Podstawy i projektowanie, WNT, Warszawa. Comer D.E. [2000], Sieci komputerowe i intersieci, WNT, Warszawa.

24 80 Paweł Lula, Tadeusz Wilusz Roszczyk R. [1999], Technologia CORBA, Pckurier 25. Siegiel J. [1998], OMG Review: CORBA and OMA in Enterprise Computing, Communication of the ACM no. 41 (10). Silberschatz A., Galvin P.B. [2000], Podstawy systemów operacyjnych, WNT, Warszawa. Sommerville I. [2003], Inżynieria oprogramowania, WNT, Warszawa. Stevens W.W. [1990], Programowanie zastosowań sieciowych w systemie Unix, WNT, Warszawa. Vaskevitch D. [1995], Strategie Klient-Server, IDG Poland SA, Warszawa. Tanenbaum A.S. [1998], Sieci komputerowe, WNT, Warszawa. Architectures of Distributed Data Processing Systems The authors, utilising available publications, try to briefly submit a contemporary idea of construction of distributed data processing systems. The main emphasis has been put on the distributed objects architecture (OMG) and on the set of standards CORBA. Observation of development trends of contemporary information technologies delivers no doubt that the solutions presented in the paper can be with high probability regarded as an up-coming generation of information systems technologies. Key words: information systems, computer systems, distributed systems, CORBA, ORB, client-server architecture, distributed objects architecture.

Wprowadzenie do systemów rozproszonych

Wprowadzenie do systemów rozproszonych Wprowadzenie do systemów rozproszonych Rodzaje systemów Systemy osobiste, które nie są rozproszone i są przeznaczone do pracy na komputerze osobistym lub stacji roboczej. Przykładami takich systemów są

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 11 dr inż. CORBA CORBA (Common Object Request Broker Architecture) standard programowania rozproszonego zaproponowany przez OMG (Object Management Group)

Bardziej szczegółowo

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

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu. Systemy rozproszone Wg Wikipedii: System rozproszony to zbiór niezależnych urządzeń (komputerów) połączonych w jedną, spójną logicznie całość. Połączenie najczęściej realizowane jest przez sieć komputerową..

Bardziej szczegółowo

Wprowadzenie. Dariusz Wawrzyniak 1

Wprowadzenie. Dariusz Wawrzyniak 1 Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5) 60-965 Poznań Dariusz.Wawrzyniak@cs.put.poznan.pl Dariusz.Wawrzyniak@put.edu.pl www.cs.put.poznan.pl/dwawrzyniak

Bardziej szczegółowo

Middleware wprowadzenie października 2010

Middleware wprowadzenie października 2010 Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5) 60-965 Poznań Dariusz.Wawrzyniak@cs.put.poznan.pl Dariusz.Wawrzyniak@put.edu.pl www.cs.put.poznan.pl/dwawrzyniak/middleware

Bardziej szczegółowo

Systemy rozproszone System rozproszony

Systemy rozproszone System rozproszony Systemy rozproszone Wg Wikipedii: System rozproszony to zbiór niezależnych urządzeń (komputerów) połączonych w jedną, spójną logicznie całość. Połączenie najczęściej realizowane jest przez sieć komputerową.

Bardziej szczegółowo

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

współbieżność - zdolność do przetwarzania wielu zadań jednocześnie Systemy rozproszone Wg Wikipedii: System rozproszony to zbiór niezależnych urządzeń (komputerów) połączonych w jedną, spójną logicznie całość. Połączenie najczęściej realizowane jest przez sieć komputerową.

Bardziej szczegółowo

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1 Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5) 60-965 Poznań Dariusz.Wawrzyniak@cs.put.poznan.pl poznan pl Dariusz.Wawrzyniak@put.edu.pl www.cs.put.poznan.pl/dwawrzyniak/middleware

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha

Bardziej szczegółowo

Projektowanie architektury systemu. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie architektury systemu. Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie architektury systemu Jarosław Kuchta Zagadnienia Typy architektury systemu Rozproszone przetwarzanie obiektowe Tworzenie modelu sieci Tworzenie specyfikacji sprzętowej i programowej Problemy

Bardziej szczegółowo

Bazy danych 2. Wykład 1

Bazy danych 2. Wykład 1 Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu

Bardziej szczegółowo

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

Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego. Przetwarzanie współbieżne, równoległe i rozproszone Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego 1 Historia i pojęcia wstępne Przetwarzanie współbieżne realizacja wielu programów (procesów) w taki sposób, że ich

Bardziej szczegółowo

Zaawansowane narzędzia programowania rozproszonego

Zaawansowane narzędzia programowania rozproszonego 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:

Bardziej szczegółowo

Programowanie obiektowe - 1.

Programowanie obiektowe - 1. Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która

Bardziej szczegółowo

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium

Bardziej szczegółowo

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi Jerzy Brzeziński, Anna Kobusińska, Dariusz Wawrzyniak Instytut Informatyki Politechnika Poznańska Plan prezentacji 1 Architektura

Bardziej szczegółowo

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Akademia Techniczno-Humanistyczna w Bielsku-Białej Akademia Techniczno-Humanistyczna w Bielsku-Białej Wydział Budowy Maszyn i Informatyki Laboratorium z sieci komputerowych Ćwiczenie numer: 9 Temat ćwiczenia: Aplikacje klient-serwer. 1. Wstęp teoretyczny.

Bardziej szczegółowo

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. 2/34 Modelowanie CRC Modelowanie CRC (class-responsibility-collaborator) Metoda identyfikowania poszczególnych

Bardziej szczegółowo

Pojęcie bazy danych. Funkcje i możliwości.

Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych Baza danych to: zbiór informacji zapisanych według ściśle określonych reguł, w strukturach odpowiadających założonemu modelowi danych, zbiór

Bardziej szczegółowo

Komunikacja i wymiana danych

Komunikacja i wymiana danych Budowa i oprogramowanie komputerowych systemów sterowania Wykład 10 Komunikacja i wymiana danych Metody wymiany danych Lokalne Pliki txt, csv, xls, xml Biblioteki LIB / DLL DDE, FastDDE OLE, COM, ActiveX

Bardziej szczegółowo

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source Dr inż. Michał Bednarczyk Uniwersytet Warmińsko-Mazurski w Olsztynie Wydział Geodezji i Gospodarki Przestrzennej Katedra Geodezji

Bardziej szczegółowo

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7 I Wprowadzenie (wersja 0906) Kurs OPC S7 Spis treści Dzień 1 I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami automatyki I-6 Cechy podejścia dedykowanego

Bardziej szczegółowo

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone Typy przetwarzania Przetwarzanie zcentralizowane Systemy typu mainfame Przetwarzanie rozproszone Architektura klient serwer Architektura jednowarstwowa Architektura dwuwarstwowa Architektura trójwarstwowa

Bardziej szczegółowo

Inżynieria Programowania - Projektowanie architektoniczne

Inżynieria Programowania - Projektowanie architektoniczne Inżynieria Programowania - Projektowanie architektoniczne Katedra Informatyki, Politechnika Świętokrzyska w Kielcach Kielce, 22 października 2016 1 2 3 4 5 Architektury charakterystyczne dla różnych dziedzin

Bardziej szczegółowo

SiR_13 Systemy SCADA: sterowanie nadrzędne; wizualizacja procesów. MES - Manufacturing Execution System System Realizacji Produkcji

SiR_13 Systemy SCADA: sterowanie nadrzędne; wizualizacja procesów. MES - Manufacturing Execution System System Realizacji Produkcji System informatyczny na produkcji: Umożliwi stopniowe, ale jednocześnie ekonomiczne i bezpieczne wdrażanie i rozwój aplikacji przemysłowych w miarę zmiany potrzeb firmy. Może adoptować się do istniejącej

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

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

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

SYSTEMY OPERACYJNE. kik.pcz.czest.pl/so. (C) KIK PCz 2009. Materiały pomocnicze 1 PROWADZI: PODSTAWOWA LITERATURA: ZAJĘCIA: STRONA

SYSTEMY OPERACYJNE. kik.pcz.czest.pl/so. (C) KIK PCz 2009. Materiały pomocnicze 1 PROWADZI: PODSTAWOWA LITERATURA: ZAJĘCIA: STRONA SYSTEMY OPERACYJNE PROWADZI: dr inż. Jarosław Bilski Katedra Inżynierii Komputerowej Politechnika Częstochowska Wykład dla kierunku Informatyka 2 ZAJĘCIA: Obowiązkowe Wykład Laboratorium 2 godziny tygodniowo

Bardziej szczegółowo

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501) Spis treści Dzień 1 I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501) I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami

Bardziej szczegółowo

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie System komputerowy System komputerowy (ang. computer system) to układ współdziałaniadwóch składowych: sprzętu komputerowegooraz oprogramowania, działających coraz częściej również w ramach sieci komputerowej.

Bardziej szczegółowo

Wykład 1 Inżynieria Oprogramowania

Wykład 1 Inżynieria Oprogramowania Wykład 1 Inżynieria Oprogramowania Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowaniaiteracyjno-rozwojowy cykl oprogramowania Autor: Zofia Kruczkiewicz System Informacyjny =Techniczny SI

Bardziej szczegółowo

Pojęcie systemu baz danych

Pojęcie systemu baz danych Pojęcie systemu baz danych System baz danych- skomputeryzowany system przechowywania danych/informacji zorganizowanych w pliki. Składa się z zasadniczych elementów: 1) Danych 2) Sprzętu 3) Programów 4)

Bardziej szczegółowo

System Kancelaris. Zdalny dostęp do danych

System Kancelaris. Zdalny dostęp do danych Kancelaris krok po kroku System Kancelaris Zdalny dostęp do danych Data modyfikacji: 2008-07-10 Z czego składaj adają się systemy informatyczne? System Kancelaris składa się z dwóch części: danych oprogramowania,

Bardziej szczegółowo

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017 Wykład 12 7 czerwca 2017 Czym jest UML? UML składa się z dwóch podstawowych elementów: notacja: elementy graficzne, składnia języka modelowania, metamodel: definicje pojęć języka i powiazania pomiędzy

Bardziej szczegółowo

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

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie

Bardziej szczegółowo

Programowanie Komponentowe WebAPI

Programowanie Komponentowe WebAPI Programowanie Komponentowe WebAPI dr inż. Ireneusz Szcześniak jesień 2016 roku WebAPI - interfejs webowy WebAPI to interfejs aplikacji (usługi, komponentu, serwisu) dostępnej najczęściej przez Internet,

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

EXSO-CORE - specyfikacja

EXSO-CORE - specyfikacja EXSO-CORE - specyfikacja System bazowy dla aplikacji EXSO. Elementy tego systemu występują we wszystkich programach EXSO. Może on ponadto stanowić podstawę do opracowania nowych, dedykowanych systemów.

Bardziej szczegółowo

Spis treści. 1 Wprowadzenie. 1.1 Podstawowe pojęcia. 1 Wprowadzenie Podstawowe pojęcia Sieci komunikacyjne... 3

Spis treści. 1 Wprowadzenie. 1.1 Podstawowe pojęcia. 1 Wprowadzenie Podstawowe pojęcia Sieci komunikacyjne... 3 Spis treści 1 Wprowadzenie 1 1.1 Podstawowe pojęcia............................................ 1 1.2 Sieci komunikacyjne........................................... 3 2 Problemy systemów rozproszonych

Bardziej szczegółowo

World Wide Web? rkijanka

World Wide Web? rkijanka World Wide Web? rkijanka World Wide Web? globalny, interaktywny, dynamiczny, wieloplatformowy, rozproszony, graficzny, hipertekstowy - system informacyjny, działający na bazie Internetu. 1.Sieć WWW jest

Bardziej szczegółowo

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy Systemy operacyjne Systemy operacyjne Dr inż. Ignacy Pardyka Literatura Siberschatz A. i inn. Podstawy systemów operacyjnych, WNT, Warszawa Skorupski A. Podstawy budowy i działania komputerów, WKiŁ, Warszawa

Bardziej szczegółowo

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie architektury systemu rozproszonego Jarosław Kuchta Zagadnienia Typy architektury systemu Rozproszone przetwarzanie obiektowe Problemy globalizacji Problemy ochrony Projektowanie architektury

Bardziej szczegółowo

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie informatycznej. Zadaniem systemu jest rejestracja i przechowywanie

Bardziej szczegółowo

156.17.4.13. Adres IP

156.17.4.13. Adres IP Adres IP 156.17.4.13. Adres komputera w sieci Internet. Każdy komputer przyłączony do sieci ma inny adres IP. Adres ten jest liczbą, która w postaci binarnej zajmuje 4 bajty, czyli 32 bity. W postaci dziesiętnej

Bardziej szczegółowo

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

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski Struktura systemu operacyjnego Schemat budowy systemu operacyjnego model warstwowy Schemat budowy systemu operacyjnego części składowe Większość systemów operacyjnych opiera się o koncepcję jądra, która

Bardziej szczegółowo

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

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ (INT) Inżynieria internetowa 1. Tryby komunikacji między procesami w standardzie Message Passing Interface 2. HTML DOM i XHTML cel i charakterystyka 3. Asynchroniczna komunikacja serwerem HTTP w technologii

Bardziej szczegółowo

Referat pracy dyplomowej

Referat pracy dyplomowej Referat pracy dyplomowej Temat pracy: Wdrożenie intranetowej platformy zapewniającej organizację danych w dużej firmie na bazie oprogramowania Microsoft SharePoint Autor: Bartosz Lipiec Promotor: dr inż.

Bardziej szczegółowo

problem w określonym kontekście siły istotę jego rozwiązania

problem w określonym kontekście siły istotę jego rozwiązania Wzorzec projektowy Christopher Alexander: Wzorzec to sprawdzona koncepcja, która opisuje problem powtarzający się wielokrotnie w określonym kontekście, działające na niego siły, oraz podaje istotę jego

Bardziej szczegółowo

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

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. Warstwa integracji wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. 1. Ukrycie logiki dostępu do danych w osobnej warstwie 2. Oddzielenie mechanizmów trwałości od modelu obiektowego Pięciowarstwowy

Bardziej szczegółowo

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

Bardziej szczegółowo

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

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language) Zagadnienia (1/3) Rola modelu systemu w procesie analizy wymagań (inżynierii wymagań) Prezentacja różnego rodzaju informacji o systemie w zależności od rodzaju modelu. Budowanie pełnego obrazu systemu

Bardziej szczegółowo

PROGRAM PRAKTYKI ZAWODOWEJ. Technikum Zawód: technik informatyk

PROGRAM PRAKTYKI ZAWODOWEJ. Technikum Zawód: technik informatyk PROGRAM PRAKTYKI ZAWODOWEJ Technikum Zawód: technik informatyk 351203 Lp. Temat 1 Zajęcia wprowadzające. Zapoznanie z zakładem, regulaminem pracy, przepisami BHP oraz instruktaż bhp. 2 Montaż i eksploatacja

Bardziej szczegółowo

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

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz Programowanie równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 23 października 2009 Spis treści Przedmowa...................................................

Bardziej szczegółowo

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1 Zdalne wywołanie procedur Krzysztof Banaś Systemy rozproszone 1 RPC Komunikacja za pomocą gniazd jest wydajna, gdyż korzystamy z funkcji systemowych niewygodna, gdyż musimy wyrażać ją za pomocą jawnego

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Java Enterprise Edition WebServices Serwer aplikacji GlassFish Dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki Aplikacje

Bardziej szczegółowo

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

Automatyzacja procesów biznesowych Andrzej Sobecki. ESB Enterprise service bus Automatyzacja procesów biznesowych Andrzej Sobecki ESB Enterprise service bus Plan prezentacji Zdefiniowanie problemu Możliwe rozwiązania Cechy ESB JBI Normalizacja wiadomości w JBI Agile ESB Apache ServiceMix

Bardziej szczegółowo

Nowe aplikacje i usługi w środowisku Grid

Nowe aplikacje i usługi w środowisku Grid Nowe aplikacje i usługi w środowisku Grid Wstęp Pojęcie GRID Aplikacje/Usługi Laboratorium Wirtualne Krajowy Magazyn Danych Zastosowanie Skala i zasięg Użytkownik końcowy Uwarunkowania ekonomiczne Laboratorium

Bardziej szczegółowo

InPro BMS InPro BMS SIEMENS

InPro BMS InPro BMS SIEMENS InPro Siemens OPC InPro BMS Produkt InPro BMS jest w sprzedaży od 2000 roku. W ostatnich kilku latach staliśmy się liderem wśród dostawców informatycznych rozwiązań dla systemów bezpieczeństwa. Oferowane

Bardziej szczegółowo

DLA SEKTORA INFORMATYCZNEGO W POLSCE

DLA SEKTORA INFORMATYCZNEGO W POLSCE DLA SEKTORA INFORMATYCZNEGO W POLSCE SRK IT obejmuje kompetencje najważniejsze i specyficzne dla samego IT są: programowanie i zarządzanie systemami informatycznymi. Z rozwiązań IT korzysta się w każdej

Bardziej szczegółowo

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

Architektury usług internetowych. Tomasz Boiński Mariusz Matuszek Architektury usług internetowych 2016 Tomasz Boiński Mariusz Matuszek Organizacja przedmiotu 1. Wykład 2 kolokwia po 25 punktów (23 listopada i 27 stycznia) 2. 6 zadań laboratoryjnych, zadania 1-5 po 8

Bardziej szczegółowo

7. zainstalowane oprogramowanie. 8. 9. 10. zarządzane stacje robocze

7. zainstalowane oprogramowanie. 8. 9. 10. zarządzane stacje robocze Specyfikacja oprogramowania do Opis zarządzania przedmiotu i monitorowania zamówienia środowiska Załącznik nr informatycznego 1 do specyfikacji Lp. 1. a) 1. Oprogramowanie oprogramowania i do systemów

Bardziej szczegółowo

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy Dokumentacja techniczna Młodzieżowe Pośrednictwo Pracy Spis Treści 1. Widok ogólny architektury MPP... 3 2. Warstwy systemu... 5 3. Struktura systemu/komponentów... 7 3.1 Aplikacje... 7 3.2 Biblioteki...

Bardziej szczegółowo

Dokumentacja aplikacji Szachy online

Dokumentacja aplikacji Szachy online Projekt z przedmiotu Technologie Internetowe Autorzy: Jakub Białas i Jarosław Tyma grupa II, Automatyka i Robotyka sem. V, Politechnika Śląska Przedmiot projektu: Aplikacja internetowa w języku Java Dokumentacja

Bardziej szczegółowo

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL Podstawy baz danych: Rysunek 1. Tradycyjne systemy danych 1- Obsługa wejścia 2- Przechowywanie danych 3- Funkcje użytkowe 4- Obsługa wyjścia Ewolucja baz danych: Fragment świata rzeczywistego System przetwarzania

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki 2017 APLIKACJE SIECIOWE Definicja Architektura aplikacji sieciowych Programowanie

Bardziej szczegółowo

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

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone Plan wykładu CORBA Wprowadzenie Architektura CORBA IDL język definicji interfejsów ORB Object Request Broker Usługi i POA Aplikacje CORBA tworzenie serwera tworzenie klienta Aplikacje rozproszone Cechy

Bardziej szczegółowo

Odniesienie do efektów kształcenia dla obszaru nauk EFEKTY KSZTAŁCENIA Symbol

Odniesienie do efektów kształcenia dla obszaru nauk EFEKTY KSZTAŁCENIA Symbol KIERUNKOWE EFEKTY KSZTAŁCENIA Wydział Informatyki i Zarządzania Kierunek studiów INFORMATYKA (INF) Stopień studiów - pierwszy Profil studiów - ogólnoakademicki Projekt v1.0 z 18.02.2015 Odniesienie do

Bardziej szczegółowo

Sieci komputerowe. Jerzy Skurczyński Instytut Matematyki Uniwersytetu Gdańskiego Gdańsk, 2002 r.

Sieci komputerowe. Jerzy Skurczyński Instytut Matematyki Uniwersytetu Gdańskiego Gdańsk, 2002 r. Sieci komputerowe Jerzy Skurczyński Instytut Matematyki Uniwersytetu Gdańskiego Gdańsk, 2002 r. 1 Literatura: 1. M.J. Bach, Budowa systemu operacyjnego UNIX, WNT, 1995. 2. Ch. Brenton, Projektowanie sieci

Bardziej szczegółowo

Wypożyczalnia VIDEO. Technologie obiektowe

Wypożyczalnia VIDEO. Technologie obiektowe Wypożyczalnia VIDEO Jest to program do obsługi wypożyczalni i wypożyczeń klientów. Głównym zadaniem programu jest zarządzanie wypożyczeniami i drukowanie potwierdzenia wypożyczenia oraz naliczenie punktów

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Wywoływanie metod zdalnych model systemu obiekt aplikacja kliencka interfejs serwer proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką? ROZDZIAŁ1 Podstawy inżynierii oprogramowania: - Cele 2 - Zawartość 3 - Inżynieria oprogramowania 4 - Koszty oprogramowania 5 - FAQ o inżynierii oprogramowania: Co to jest jest oprogramowanie? 8 Co to jest

Bardziej szczegółowo

1 Wprowadzenie do J2EE

1 Wprowadzenie do J2EE Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2

Bardziej szczegółowo

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

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7 AUREA BPM Oracle TECNA Sp. z o.o. Strona 1 z 7 ORACLE DATABASE System zarządzania bazą danych firmy Oracle jest jednym z najlepszych i najpopularniejszych rozwiązań tego typu na rynku. Oracle Database

Bardziej szczegółowo

Projektowanie logiki aplikacji

Projektowanie logiki aplikacji Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie logiki aplikacji Zagadnienia Rozproszone przetwarzanie obiektowe (DOC) Model klas w projektowaniu logiki aplikacji Klasy encyjne a klasy

Bardziej szczegółowo

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Definicja systemu operacyjnego (1) Miejsce,

Bardziej szczegółowo

Middleware wprowadzenie października Dariusz Wawrzyniak. Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5)

Middleware wprowadzenie października Dariusz Wawrzyniak. Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5) Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5) 60-965 Poznańń Dariusz.Wawrzyniak@cs.put.poznan.pl Dariusz.Wawrzyniak@put.edu.pl i www.cs.put.poznan.pl/dwawrzyniak/middleware

Bardziej szczegółowo

UML w Visual Studio. Michał Ciećwierz

UML w Visual Studio. Michał Ciećwierz UML w Visual Studio Michał Ciećwierz UNIFIED MODELING LANGUAGE (Zunifikowany język modelowania) Pozwala tworzyć wiele systemów (np. informatycznych) Pozwala obrazować, specyfikować, tworzyć i dokumentować

Bardziej szczegółowo

Serwery Aplikacji "CC" Grzegorz Blinowski. Grzegorz.Blinowski@cc.com.pl http://www.cc.com.pl/ tel (22) 646-68-73; faks (22) 606-37-80

Serwery Aplikacji CC Grzegorz Blinowski. Grzegorz.Blinowski@cc.com.pl http://www.cc.com.pl/ tel (22) 646-68-73; faks (22) 606-37-80 Serwery Aplikacji Grzegorz Blinowski "CC" Grzegorz.Blinowski@cc.com.pl http://www.cc.com.pl/ tel (22) 646-68-73; faks (22) 606-37-80 Aplikacje Web Aplikacje Web - nowe wcielenie modelu klientserwer: przeglądarka

Bardziej szczegółowo

2013-04-25. Czujniki obiektowe Sterowniki przemysłowe

2013-04-25. Czujniki obiektowe Sterowniki przemysłowe Ogólne informacje o systemach komputerowych stosowanych w sterowaniu ruchem funkcje, właściwości Sieci komputerowe w sterowaniu informacje ogólne, model TCP/IP, protokoły warstwy internetowej i transportowej

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Java Enterprise Edition. WebServices. Język XML. Serwer aplikacji GlassFish. Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki

Bardziej szczegółowo

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Miejsce, rola i zadania systemu operacyjnego

Bardziej szczegółowo

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

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

Multi-wyszukiwarki. Mediacyjne Systemy Zapytań wprowadzenie. Architektury i technologie integracji danych Systemy Mediacyjne

Multi-wyszukiwarki. Mediacyjne Systemy Zapytań wprowadzenie. Architektury i technologie integracji danych Systemy Mediacyjne Architektury i technologie integracji danych Systemy Mediacyjne Multi-wyszukiwarki Wprowadzenie do Mediacyjnych Systemów Zapytań (MQS) Architektura MQS Cechy funkcjonalne MQS Cechy implementacyjne MQS

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Wprowadzenie Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego

Bardziej szczegółowo

1.2 SYSTEMY WIZUALIZACJI I NADZORU PROCESU HMI/SCADA

1.2 SYSTEMY WIZUALIZACJI I NADZORU PROCESU HMI/SCADA 1.2 SYSTEMY WIZUALIZACJI I NADZORU PROCESU HMI/SCADA WONDERWARE INTOUCH przemysłowe oprogramowanie klasy HMI/SCADA zaprojektowane do wizualizacji oraz kontroli procesów produkcyjnych. Pozwala na szybkie

Bardziej szczegółowo

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu. Technologie cyfrowe Artur Kalinowski Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.pl Semestr letni 2014/2015 Usługi internetowe usługa internetowa (ang.

Bardziej szczegółowo

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

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Grażyna Koba MIGRA 2019 Spis treści (propozycja na 2*32 = 64 godziny lekcyjne) Moduł A. Wokół komputera i sieci komputerowych

Bardziej szczegółowo

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Systemy baz danych w zarządzaniu przedsiębiorstwem W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Proces zarządzania danymi Zarządzanie danymi obejmuje czynności: gromadzenie

Bardziej szczegółowo

Podstawy Systemów Zarządzania Baz Danych

Podstawy Systemów Zarządzania Baz Danych Podstawy Systemów Zarządzania Baz Danych 1. System Zarządzania Bazą Danych (SZBD) System Zarządzania Bazą Danych to zorganizowany zbiorem narzędzi umożliwiających definiowanie i konstruowanie bazy danych,

Bardziej szczegółowo

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW WYDZIAŁ KIERUNEK z obszaru nauk POZIOM KSZTAŁCENIA FORMA STUDIÓW PROFIL JĘZYK STUDIÓW Podstawowych Problemów Techniki Informatyka technicznych 6 poziom, studia inżynierskie

Bardziej szczegółowo

Relacyjne, a obiektowe bazy danych. Bazy rozproszone

Relacyjne, a obiektowe bazy danych. Bazy rozproszone 2 Relacyjne, a obiektowe bazy danych. Bazy rozproszone Zastosowania baz danych systemy bankowe (bankomat) systemy masowej obsługi (hipermarket) rezerwacja biletów lotniczych telefonia komórkowa (sms) Dziekanat

Bardziej szczegółowo

Systemy GIS Systemy baz danych

Systemy GIS Systemy baz danych Systemy GIS Systemy baz danych Wykład nr 5 System baz danych Skomputeryzowany system przechowywania danych/informacji zorganizowanych w pliki Użytkownik ma do dyspozycji narzędzia do wykonywania różnych

Bardziej szczegółowo

INFORMATYKA Pytania ogólne na egzamin dyplomowy

INFORMATYKA Pytania ogólne na egzamin dyplomowy INFORMATYKA Pytania ogólne na egzamin dyplomowy 1. Wyjaśnić pojęcia problem, algorytm. 2. Podać definicję złożoności czasowej. 3. Podać definicję złożoności pamięciowej. 4. Typy danych w języku C. 5. Instrukcja

Bardziej szczegółowo

Wstęp do Informatyki. Klasyfikacja oprogramowania

Wstęp do Informatyki. Klasyfikacja oprogramowania Wstęp do Informatyki Klasyfikacja oprogramowania Oprogramowanie komputerowe Funkcjonalność komputera jest wynikiem zarówno jego budowy, jak i zainstalowanego oprogramowania Komputer danej klasy znajduje

Bardziej szczegółowo

TWÓJ BIZNES. Nasz Obieg Dokumentów

TWÓJ BIZNES. Nasz Obieg Dokumentów 1 Innowacyjny System Elektronicznego Obiegu Dokumentów i Spraw opracowany przez firmę WASKO S.A., na podstawie wieloletnich doświadczeń zdobytych na rynku systemów teleinformatycznych. TWÓJ BIZNES Nasz

Bardziej szczegółowo