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



Podobne dokumenty
Projektowanie architektury systemu internetowego

Analiza i projektowanie aplikacji Java

Projektowanie architektury systemu. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie logiki aplikacji

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Pojęcie systemu baz danych

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Wybrane działy Informatyki Stosowanej

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

Projektowanie struktury danych

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Projektowanie warstwy danych

Modelowanie przypadków użycia. Jarosław Kuchta Projektowanie Aplikacji Internetowych

1 Wprowadzenie do J2EE

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

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

Wybrane działy Informatyki Stosowanej

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

Wprowadzenie SYSTEMY SIECIOWE. Michał Simiński

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

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

Karta (sylabus) modułu/przedmiotu Mechanika i Budowa Maszyn Studia I stopnia

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

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

EJB 3.0 (Enterprise JavaBeans 3.0)

Projektowanie interakcji. Jarosław Kuchta

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Dokumentacja aplikacji Szachy online

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie IU -nawigacja

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Sieci równorzędne, oraz klient - serwer

ORGANIZACJA ZAJĘĆ BAZY DANYCH PLAN WYKŁADU SCHEMAT SYSTEMU INFORMATYCZNEGO

SZKOLENIE: Administrator baz danych. Cel szkolenia

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

Inżynieria oprogramowania- Grupa dra inż. Leszka Grocholskiego II UWr 2009/2010. Aleksandra Kloc, Adam Grycner, Mateusz Łyczek. Wasza-fota.

Szczegółowy harmonogram rzeczowy realizacji prac systemu B2B

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

Bazy danych 2. Wykład 1

Programowanie obiektowe

Diagramy interakcji. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Tworzenie wersji demonstracyjnych enova365 na potrzeby prezentacji u Klienta

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Serwery Statefull i Stateless

Modelowanie klas i obiektów. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Modelowanie aktywności. Jarosław Kuchta Programowanie Współbieżne

Aplikacje webowe z wykorzystaniem Node.js oraz Express

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

Projektowanie interfejsu użytkownika (1) Jarosław Kuchta Projektowanie Aplikacji Internetowych

Paweł Rajba

Oracle11g: Wprowadzenie do SQL

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Bazy danych. Dr Henryk Telega. BD 10/11 Wykład 1 1

KURS ACCESS 2003 Wiadomości wstępne

Licencjonowanie serwerów do zarządzania wydajnością. Office Web Apps Server

Jarosław Kuchta. Projektowanie Aplikacji Internetowych. Wprowadzenie

Kopia zapasowa i analiza zagrożeń

Programowanie komponentowe 5

Systemy GIS Systemy baz danych

Wybrane działy Informatyki Stosowanej

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Programowanie Komponentowe WebAPI

Programowanie współbieżne i rozproszone

Diagramy stanów i aktywności. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie IU wejście/wyjście

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

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego radmat radmat@math.uni.lodz.

Red Hat Network Satellite Server

DIAGRAMY IMPLEMENTACYJNE

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Architektura i mechanizmy systemu

TIN Techniki Internetowe zima

WYKORZYSTANIE I ROZWÓJ WOLNEGO OPROGRAMOWANIA W WOJEWÓDZKIM WĘŹLE INFRASTRUKTURY INFORMACJI PRZESTRZENNEJ

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

PHP: bazy danych, SQL, AJAX i JSON

Opis Architektury Systemu Galileo

Przesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii

Projektowanie interfejsu użytkownika. Jarosław Kuchta Projektowanie Aplikacji Internetowych

PureSystems zautomatyzowane środowisko aplikacyjne. Emilia Smółko Software IT Architect

Wykład 1 Inżynieria Oprogramowania

76.Struktura oprogramowania rozproszonego.

Programowanie w Javie 2. Płock, 26 luty 2014 r.

Rozwiązania bazodanowe EnterpriseDB

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

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Krzysztof T. Psurek Politechnika Śląska Wydział Organizacji i Zarządzania

Oracle JDeveloper Suite 2.0 jako wydajne środowisko do tworzenia aplikacji intra- i internetowych, na przykładzie sklepu elektronicznego

Wybrane działy Informatyki Stosowanej

Transkrypt:

Projektowanie architektury systemu rozproszonego Jarosław Kuchta

Zagadnienia Typy architektury systemu Rozproszone przetwarzanie obiektowe Problemy globalizacji Problemy ochrony Projektowanie architektury systemu 2/20

Typy architektury systemowej Architektura bazująca na serwerze Architektura bazująca na kliencie Architektura klientserwer z "cienkim" klientem z "grubym" klientem Interfejs użytkownika Logika aplikacyjna Logika dostępu do danych Przechowywanie danych Klient Serwer Projektowanie architektury systemu 3/20

Architektura bazująca na serwerze Serwer mainframe przechowywanie danych, cała logika Klient terminal tylko interfejs użytkownika Komunikacja Remote Desktop Protocol Prosta w projektowaniu RDP Duże prawdopodobieństwo przeciążenia serwera Bardzo kosztowna Terminal modernizacja Interfejs użytkownika Serwer Logika aplikacyjna Logika dostępu do danych Przechowywanie danych Projektowanie architektury systemu 4/20

Architektura bazująca na kliencie Serwer tylko do pobierania aplikacji i ew. łączenia klientów Bezpośrednia wymiana danych między klientami (peer-to-peer) Łatwa aplikacja Problem z bezpieczeństwem klientów Serwer Klient Klient Interfejs użytkownika Logika aplikacyjna Logika dostępu do danych Przechowywanie danych Projektowanie architektury systemu 5/20

Architektura klient-serwer Logika aplikacyjna może być dzielona między klienta i serwer Łatwo skalowalna Możliwość stosowania różnych typów klientów i serwerów 1000 x niższy koszt niż architektury bazującej na serwerze przy tym samym poziomie wydajności Ograniczona złożoność aplikacji Odmiany: cienki klient gruby klient Klient Interfejs użytkownika Logika aplikacyjna Serwer Przechowywanie danych Logika dostępu do danych Projektowanie architektury systemu 6/20

Odmiany architektury klient-serwer Cienki klient Cała logika po stronie serwera Klient tylko korzysta z przeglądarki Logika aplikacji zazwyczaj prosta (aplikacje oparte na bazie danych) Zagrożenie przeciążenia serwera Gruby klient Logika aplikacyjna na kliencie Aplikacja pobierana z serwera Aplikacja wykonywana w: środowisku przeglądarki (ograniczenia środowiska) środowisku systemu operacyjnego Zaawansowana logika aplikacji (modelowanie, grafika, gry) Zagrożenie bezpieczeństwa klienta (trojany) Projektowanie architektury systemu 7/31

Podział logiki aplikacyjnej Architektura dwupienna (dwuwarstwowa) (two-tiered) cała logika aplikacyjna u klienta Architektura trójpienna (trójwarstwowa) (three-tiered) logika aplikacyjna na wydzielonym serwerze aplikacji Architektura wielopienna (wielowarstwowa) (n-tiered) wiele serwerów aplikacji i/lub wiele serwerów bazy danych Projektowanie architektury systemu 8/20

Architektura dwupienna (two-tiered) Cała logika na jednym serwerze Stosunkowo łatwe rozwiązanie Duże prawdopodobieństwo przeciążenia serwera Klient Interfejs użytkownika Serwer Logika aplikacyjna Logika dostępu do danych Przechowywanie danych Projektowanie architektury systemu 9/20

Architektura trójpienna (three-tiered) Logika aplikacyjna wydzielona do osobnego serwera Dane przechowywane na osobnym serwerze Możliwość skalowania (wiele serwerów aplikacji) Klient Interfejs użytkownika Serwer(y) aplikacji Logika aplikacyjna Serwer danych Logika dostępu do danych Przechowywanie danych Projektowanie architektury systemu 10/20

Architektura wielopienna (multitiered) Osobny serwer WWW obsługuje żądania HTTP na RPC Logika aplikacyjna wydzielona do osobnego serwera Dane przechowywane na osobnym serwerze Możliwość skalowania (wiele serwerów WWW i aplikacji) Zwiększone bezpieczeństwo Klient Interfejs użytkownika HTTP RPC Serwer(y) WWW Serwer(y) aplikacji Logika prezentacji Logika aplikacyjna Serwer danych Logika dostępu do danych Przechowywanie danych Projektowanie architektury systemu 11/20

Architektura wielowarstwowa (multilayered) Presentation Layer Application Logic Services Data Management Foundation Data Layer Projektowanie architektury systemu 12/20

Pakiet Foundation (pseudowarstwa) Pakiet Foundation obejmuje klasy wykorzystywane bezpośrednio we wszystkich innych warstwach: definicje podstawowych typów danych (np. typy wyliczeniowe), definicje podstawowych struktury danych (np. listy, drzewa, stosy), użyteczne typy abstrakcyjne (data, czas, waluta) operacje dodatkowe, które nie są dostarczane przez biblioteki Projektowanie architektury systemu 13/20

Data Layer Warstwa danych (Data) zawiera komponenty odpowiedzialne za przechowywanie (zapisywanie i odczytywanie) danych: bazy danych (tabele, kwerendy) repozytoria plików Wymaga określenia: które klasy są trwałe (dane przechowywane między sesjami) jaki sposób przechowywania będzie stosowany (baza danych, pliki) jaki format zapisu danych będzie stosowany (tekstowy, binarny) jaki typ bazy danych będzie stosowany (relacyjna, obiektowa) Projektowanie architektury systemu 14/20

Data Management Warstwa zarządzania danymi (Data Management) zawiera klasy odpowiedzialne za dostęp do przechowywanych danych. Umożliwia: ochronę danych przed nieupoważnionym dostępem współdzielenie danych między wieloma użytkownikami walidację wprowadzanych danych synchronizację baz danych (w przypadku rozproszonej b.d.) Projektowanie architektury systemu 15/20

Service Layer Warstwa usług (Services) jest typowa dla systemów rozproszonych, w których wiele różnych aplikacji może operować na tych samych danych. Zawiera klasy (funkcje) grupujące operacje biznesowe na danych Udostępnia jednolity interfejs dla aplikacji klienckich Projektowanie architektury systemu 16/20

Application Logic Warstwa logiki aplikacji (Application Logic) zwana również warstwą biznesową (Business Domain) zawiera klasy realizujące operacje wymagane w konkretnej aplikacji wynikające z analizy wymagań Może występować po stronie klienta Gdy występuje po stronie serwera, to zazwyczaj zintegrowana w warstwą usług Projektowanie architektury systemu 17/20

Presentation Logic Warstwa prezentacji (Presentation Layer) zawiera komponenty interfejsu użytkownika (okna, strony etc.): umożliwia użytkownikowi wydawanie poleceń dla systemu i wprowadzanie danych prezentuje dla użytkownika dane przetwarzane przez warstwę logiki aplikacji Projektowanie architektury systemu 18/20

Przykładowa struktura klas z podziałem na warstwy Presentation Layer «form» Customer «form» Order Application Logic Customer Order Services Authorization Sales Data Management Customers Orders Data Layer «table» Customers «table» Orders Projektowanie architektury systemu 19/20

Literatura Dennis A., Wixom B.H., Tegarden D., Systems Analysis & Design. An Object-Oriented Approach with UML, John Wiley and Sons, USA, 2002 Projektowanie architektury systemu 20/20