Architektury systemów rozproszonego przetwarzania danych
|
|
- Katarzyna Tomczak
- 6 lat temu
- Przeglądów:
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 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ą
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)
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ą..
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
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
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ą.
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ą.
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
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
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
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
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
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
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:
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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)
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,
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
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
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,
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
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.
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
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
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
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
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
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
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
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
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
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ż.
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
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
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
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
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
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...................................................
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
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
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
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
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
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
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
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
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...
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
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
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
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
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
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
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
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
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
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
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
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
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
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,
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
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ć
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
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
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
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
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:
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
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
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
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
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.
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
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
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,
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
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
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
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
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
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