Architektura nowoczesnych aplikacji internetowych



Podobne dokumenty
Rozdział. Architektura nowoczesnych aplikacji internetowych. 1. Wprowadzenie

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Rozdział. Architektura nowoczesnych aplikacji internetowych. 1. Wprowadzenie

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

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

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

Wzorce architektoniczne

Forum Client - Spring in Swing

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

SOA Web Services in Java

Analiza i projektowanie aplikacji Java

Web frameworks do budowy aplikacji zgodnych z J2EE

EJB 3.0 (Enterprise JavaBeans 3.0)

OSGi Agata Hejmej

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

Aplikacja inteligentnego zarządzania energią w środowisku domowym jako usługa Internetu Przyszłości

Wybrane działy Informatyki Stosowanej

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Aplikacje WWW Wprowadzenie

Web Services. Wojciech Mazur. 17 marca Politechnika Wrocławska Wydział Informatyki i Zarządzania

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

Tomasz Grześ. Systemy zarządzania treścią

Programowanie Komponentowe WebAPI

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

1 Wprowadzenie do J2EE

Zagadnienia projektowania aplikacji J2EE

Programowanie obiektowe

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

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

ZARZĄDZANIE WYMAGANIAMI ARCHITEKTONICZNYMI

Projektowanie obiektowe Wzorce projektowe. Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów)

Zdalna edycja i przeglądanie dokumentacji medycznej.

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Język Java i technologie Web - opis przedmiotu

Wybrane działy Informatyki Stosowanej

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

EXSO-CORE - specyfikacja

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Specyfikowanie wymagań przypadki użycia

Szkolenie wycofane z oferty

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2011/2012. Architektura zorientowana na usługi

Dokumentacja kompilacji źródeł aplikacji 1.0

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

PRZEWODNIK PO PRZEDMIOCIE

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

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

Open Source na Uniwersytecie Łódzkim

Projekt współfinansowany przez Unię Europejską z Programu Operacyjnego Innowacyjna Gospodarka na lata ZAMAWIAJĄCY:

Zaawansowane programowanie obiektowe - wykład 5

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

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

Wprowadzenie do programowania aplikacji mobilnych

Virtual Grid Resource Management System with Virtualization Technology

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

Aplikacje internetowe. Wprowadzenie

Programowanie sieciowe Network programming PRZEWODNIK PO PRZEDMIOCIE

ZAPYTANIE OFERTOWE. nr 1/UE/2014. z dnia r. w związku z realizacją projektu pn.

HP Service Anywhere Uproszczenie zarządzania usługami IT

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Pakiet webmathematica jako narzędzie wspomagające proces dydaktyczny przedmiotu mechanika. Łukasz Maciejewski, Wojciech Myszka, Stanisław Piesiak

TECHNOLOGIA JSP W TWORZENIU APLIKACJI ROZPROSZONYCH NA PRZYKŁADZIE SYSTEMU ZARZĄDZANIA NIERUCHOMOŚCIAMI W GMINIE

JBPM [JUG] Tomasz Gratkowski [GRATKOWSKI SOFTWARE]

Architektura oprogramowania w praktyce. Wydanie II.

Ekspert MS SQL Server Oferta nr 00/08

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

OfficeObjects e-forms

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Architektura interfejsu użytkownika

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

Stan zaawansowania prac dotyczących zamówienia na opracowanie i wdrożenie rdzenia systemu e Urząd.

Integracja wirtualnego laboratorium z platformą e-learningową

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

Inżynieria oprogramowania - opis przedmiotu

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

Ankieta jednostki za lata

Wzorce projektowe cz. II. Wzorce projektowe cz. II 1/35

Metodyki i Narzędzia Wytwarzania Oprogramowania (propozycj

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

Szkolenie: Testowanie wydajności (Performance Testing)

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

Katedra Inżynierii Oprogramowania Tematy prac dyplomowych inżynierskich STUDIA NIESTACJONARNE (ZAOCZNE)

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

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Spring Web MVC, Spring DI

PomysL... i co dalej?

System INTEGRYB jako zintegrowane repozytorium danych umożliwiające zaawansowaną analitykę badawczą

Informatyczne fundamenty

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Sybase Professional Services

Techniki efektywnego testowania kodu dla programistów Java (Spock

WZORCE LOGIKI APLIKACJI Reużywalne składniki wymagań

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

Rozproszone systemy internetowe

Transkrypt:

Architektura nowoczesnych aplikacji internetowych Lech Madeyski Michał Stochmiałek Wydziałowy Zakład Informatyki Wydział Informatyki i Zarządzania Politechnika Wrocławska Krajowa Konferencja Inżynierii Oprogramowania 2004

Plan prezentacji 1 Wprowadzenie Motto i cel prezentacji Wyzwania związane z wyborem architektury 2 3 XWA a wyzwania architektoniczne Architektura e-informatyki 4

Plan prezentacji 1 Wprowadzenie Motto i cel prezentacji Wyzwania związane z wyborem architektury 2 3 XWA a wyzwania architektoniczne Architektura e-informatyki 4

Plan prezentacji 1 Wprowadzenie Motto i cel prezentacji Wyzwania związane z wyborem architektury 2 3 XWA a wyzwania architektoniczne Architektura e-informatyki 4

Plan prezentacji 1 Wprowadzenie Motto i cel prezentacji Wyzwania związane z wyborem architektury 2 3 XWA a wyzwania architektoniczne Architektura e-informatyki 4

Motto Wprowadzenie Motto i cel prezentacji Wyzwania związane z wyborem architektury Any technology distinguishable from magic is insufficiently advanced. so there is some space for improvement Gregory Benford

Motto Wprowadzenie Motto i cel prezentacji Wyzwania związane z wyborem architektury Any technology distinguishable from magic is insufficiently advanced. so there is some space for improvement Gregory Benford

Jaki jest cel prezentacji? Motto i cel prezentacji Wyzwania związane z wyborem architektury Przekonać Państwa do wykorzystania i wspólnego rozwijania szkieletu architektonicznego XWA, który (jak mamy zamiar pokazać) jest: dostosowany do specyfiki aplikacji internetowych odpowiada na trudne wyzwania architektoniczne stawiane nowoczesnym aplikacjom internetowym

Jaki jest cel prezentacji? Motto i cel prezentacji Wyzwania związane z wyborem architektury Przekonać Państwa do wykorzystania i wspólnego rozwijania szkieletu architektonicznego XWA, który (jak mamy zamiar pokazać) jest: dostosowany do specyfiki aplikacji internetowych odpowiada na trudne wyzwania architektoniczne stawiane nowoczesnym aplikacjom internetowym

Motto i cel prezentacji Wyzwania związane z wyborem architektury Niektóre wyzwania stojące przed wyborem architektury aplikacji internetowych łatwość pielęgnacji, utrzymywalność systemu możliwość obsługi szerokiego spektrum formatów publikacji integracja różnych źródeł danych i aplikacji umożliwienie efektywnej współpracy osób o różnych specjalizacjach (np. grafików, programistów, autorów treści) uwzględnienie specyfiki protokołu HTTP uproszczenie implementacji rozbudowanych interakcji użytkownika z systemem

Motto i cel prezentacji Wyzwania związane z wyborem architektury Niektóre wyzwania stojące przed wyborem architektury aplikacji internetowych łatwość pielęgnacji, utrzymywalność systemu możliwość obsługi szerokiego spektrum formatów publikacji integracja różnych źródeł danych i aplikacji umożliwienie efektywnej współpracy osób o różnych specjalizacjach (np. grafików, programistów, autorów treści) uwzględnienie specyfiki protokołu HTTP uproszczenie implementacji rozbudowanych interakcji użytkownika z systemem

Motto i cel prezentacji Wyzwania związane z wyborem architektury Niektóre wyzwania stojące przed wyborem architektury aplikacji internetowych łatwość pielęgnacji, utrzymywalność systemu możliwość obsługi szerokiego spektrum formatów publikacji integracja różnych źródeł danych i aplikacji umożliwienie efektywnej współpracy osób o różnych specjalizacjach (np. grafików, programistów, autorów treści) uwzględnienie specyfiki protokołu HTTP uproszczenie implementacji rozbudowanych interakcji użytkownika z systemem

Motto i cel prezentacji Wyzwania związane z wyborem architektury Niektóre wyzwania stojące przed wyborem architektury aplikacji internetowych łatwość pielęgnacji, utrzymywalność systemu możliwość obsługi szerokiego spektrum formatów publikacji integracja różnych źródeł danych i aplikacji umożliwienie efektywnej współpracy osób o różnych specjalizacjach (np. grafików, programistów, autorów treści) uwzględnienie specyfiki protokołu HTTP uproszczenie implementacji rozbudowanych interakcji użytkownika z systemem

Motto i cel prezentacji Wyzwania związane z wyborem architektury Niektóre wyzwania stojące przed wyborem architektury aplikacji internetowych łatwość pielęgnacji, utrzymywalność systemu możliwość obsługi szerokiego spektrum formatów publikacji integracja różnych źródeł danych i aplikacji umożliwienie efektywnej współpracy osób o różnych specjalizacjach (np. grafików, programistów, autorów treści) uwzględnienie specyfiki protokołu HTTP uproszczenie implementacji rozbudowanych interakcji użytkownika z systemem

Motto i cel prezentacji Wyzwania związane z wyborem architektury Niektóre wyzwania stojące przed wyborem architektury aplikacji internetowych łatwość pielęgnacji, utrzymywalność systemu możliwość obsługi szerokiego spektrum formatów publikacji integracja różnych źródeł danych i aplikacji umożliwienie efektywnej współpracy osób o różnych specjalizacjach (np. grafików, programistów, autorów treści) uwzględnienie specyfiki protokołu HTTP uproszczenie implementacji rozbudowanych interakcji użytkownika z systemem

Wybrane podejścia do architektury

Triada MVC Model rdzeń aplikacji Kontroler wejście interfejsu użytkownika Widok wyjście interfejsu użytkownika

Model w szkielecie MVC określa działanie aplikacji oraz przetwarzane dane jest niezależny od interfejsu użytkownika nic nie wie o widoku i kontrolerze powiadamia widok o zmianach (change notification), luźne powiązanie z widokiem (Obserwator, komunikaty)

Model w szkielecie MVC określa działanie aplikacji oraz przetwarzane dane jest niezależny od interfejsu użytkownika nic nie wie o widoku i kontrolerze powiadamia widok o zmianach (change notification), luźne powiązanie z widokiem (Obserwator, komunikaty)

Model w szkielecie MVC określa działanie aplikacji oraz przetwarzane dane jest niezależny od interfejsu użytkownika nic nie wie o widoku i kontrolerze powiadamia widok o zmianach (change notification), luźne powiązanie z widokiem (Obserwator, komunikaty)

Widok w szkielecie MVC zarządza prezentacją modelu jest ściśle powiązany z konkretnym modelem musi znać specyfikę danych oraz operacji pobiera informacje z modelu (state query)

Widok w szkielecie MVC zarządza prezentacją modelu jest ściśle powiązany z konkretnym modelem musi znać specyfikę danych oraz operacji pobiera informacje z modelu (state query)

Widok w szkielecie MVC zarządza prezentacją modelu jest ściśle powiązany z konkretnym modelem musi znać specyfikę danych oraz operacji pobiera informacje z modelu (state query)

Kontroler w szkielecie MVC odpowiedzialny za reagowanie na akcje użytkownika odwzorowuje akcje użytkownika na: operacje w modelu (state change) zmiany w widoku (view selection)

Kontroler w szkielecie MVC odpowiedzialny za reagowanie na akcje użytkownika odwzorowuje akcje użytkownika na: operacje w modelu (state change) zmiany w widoku (view selection)

Szkielet MVC a protokół HTTP pasywność HTTP (akcje są inicjowane przez użytkownika w cyklu żądanie-odpowiedź) wymusza modyfikację MVC niemożliwe jest automatyczne uaktualnianie widoku przy zmianach modelu Nie jest to wada MVC, lecz dostosowanie do specyfiki HTTP.

Szkielet MVC a protokół HTTP pasywność HTTP (akcje są inicjowane przez użytkownika w cyklu żądanie-odpowiedź) wymusza modyfikację MVC niemożliwe jest automatyczne uaktualnianie widoku przy zmianach modelu Nie jest to wada MVC, lecz dostosowanie do specyfiki HTTP.

Szkielet MVC a protokół HTTP pasywność HTTP (akcje są inicjowane przez użytkownika w cyklu żądanie-odpowiedź) wymusza modyfikację MVC niemożliwe jest automatyczne uaktualnianie widoku przy zmianach modelu Nie jest to wada MVC, lecz dostosowanie do specyfiki HTTP.

Wartość szkieletu MVC Wartość szkieletu MVC leży w dwóch zasadach: separacja prezentacji i modelu umożliwia zmianę interfejsu użytkownika bez potrzeby modyfikacji modelu np. udostępnienie interfejsu klasycznego oraz internetowego separacja widoku i kontrolera umożliwia zmianę kontrolera bez konieczności modyfikacji widoku np. użycie dwóch kontrolerów związanych z jednym widokiem, przy czym tylko jeden umożliwia edycję

Wartość szkieletu MVC Wartość szkieletu MVC leży w dwóch zasadach: separacja prezentacji i modelu umożliwia zmianę interfejsu użytkownika bez potrzeby modyfikacji modelu np. udostępnienie interfejsu klasycznego oraz internetowego separacja widoku i kontrolera umożliwia zmianę kontrolera bez konieczności modyfikacji widoku np. użycie dwóch kontrolerów związanych z jednym widokiem, przy czym tylko jeden umożliwia edycję

Możliwe zagrożenia i konsekwencje Zagrożenia: mylne rozumienie roli poszczególnych elementów triady złamanie zasad separacji widoku i kontrolera oraz prezentacji i modelu Konsekwencje: rosnące problemy z pielęgnacją systemu Przykład: kontroler bywa mylnie interpretowany jako element reprezentujący aspekt behawioralny (działanie aplikacji) podczas gdy model reprezentuje jedynie aspekt statyczny (dane) Rezultatem jest brak możliwości zmiany warstwy prezentacji bez modyfikacji logiki zawartej w tym przypadku w kontrolerze.

Możliwe zagrożenia i konsekwencje Zagrożenia: mylne rozumienie roli poszczególnych elementów triady złamanie zasad separacji widoku i kontrolera oraz prezentacji i modelu Konsekwencje: rosnące problemy z pielęgnacją systemu Przykład: kontroler bywa mylnie interpretowany jako element reprezentujący aspekt behawioralny (działanie aplikacji) podczas gdy model reprezentuje jedynie aspekt statyczny (dane) Rezultatem jest brak możliwości zmiany warstwy prezentacji bez modyfikacji logiki zawartej w tym przypadku w kontrolerze.

Możliwe zagrożenia i konsekwencje Zagrożenia: mylne rozumienie roli poszczególnych elementów triady złamanie zasad separacji widoku i kontrolera oraz prezentacji i modelu Konsekwencje: rosnące problemy z pielęgnacją systemu Przykład: kontroler bywa mylnie interpretowany jako element reprezentujący aspekt behawioralny (działanie aplikacji) podczas gdy model reprezentuje jedynie aspekt statyczny (dane) Rezultatem jest brak możliwości zmiany warstwy prezentacji bez modyfikacji logiki zawartej w tym przypadku w kontrolerze.

Możliwe zagrożenia i konsekwencje Zagrożenia: mylne rozumienie roli poszczególnych elementów triady złamanie zasad separacji widoku i kontrolera oraz prezentacji i modelu Konsekwencje: rosnące problemy z pielęgnacją systemu Przykład: kontroler bywa mylnie interpretowany jako element reprezentujący aspekt behawioralny (działanie aplikacji) podczas gdy model reprezentuje jedynie aspekt statyczny (dane) Rezultatem jest brak możliwości zmiany warstwy prezentacji bez modyfikacji logiki zawartej w tym przypadku w kontrolerze.

Możliwe zagrożenia i konsekwencje Zagrożenia: mylne rozumienie roli poszczególnych elementów triady złamanie zasad separacji widoku i kontrolera oraz prezentacji i modelu Konsekwencje: rosnące problemy z pielęgnacją systemu Przykład: kontroler bywa mylnie interpretowany jako element reprezentujący aspekt behawioralny (działanie aplikacji) podczas gdy model reprezentuje jedynie aspekt statyczny (dane) Rezultatem jest brak możliwości zmiany warstwy prezentacji bez modyfikacji logiki zawartej w tym przypadku w kontrolerze.

W jakim stopniu MVC odpowiada na wyzwania stawiane architekturze aplikacji internetowych? Zaleta: umożliwia klarowny podział odpowiedzialności pomiędzy osoby o różnych kompetencjach (graficy, programiści, projektanci stron WWW) Wada: brak wskazówek dotyczących zorganizowania modelu, a w szczególności: rozbudowanej logiki biznesowej, obsługi zewnętrznych źródeł danych czy usług sieciowych

W jakim stopniu MVC odpowiada na wyzwania stawiane architekturze aplikacji internetowych? Zaleta: umożliwia klarowny podział odpowiedzialności pomiędzy osoby o różnych kompetencjach (graficy, programiści, projektanci stron WWW) Wada: brak wskazówek dotyczących zorganizowania modelu, a w szczególności: rozbudowanej logiki biznesowej, obsługi zewnętrznych źródeł danych czy usług sieciowych

W jakim stopniu MVC odpowiada na wyzwania stawiane architekturze aplikacji internetowych? Zaleta: umożliwia klarowny podział odpowiedzialności pomiędzy osoby o różnych kompetencjach (graficy, programiści, projektanci stron WWW) Wada: brak wskazówek dotyczących zorganizowania modelu, a w szczególności: rozbudowanej logiki biznesowej, obsługi zewnętrznych źródeł danych czy usług sieciowych

Szkielet architektoniczny PCMEF architektura warstwowa pakiety składowe: presentation control mediator entity foundation źródło: Leszek Maciaszek, Professional Software Engineering, Addison-Wesley 2004

Pakiet presentation odpowiada za sposób prezentacji aplikacji oraz komunikację z użytkownikiem łączy w sobie Widok oraz Kontroler z MVC przykładem klas z pakietu presentation są klasy korzystające z biblioteki Java Swing

Pakiet presentation odpowiada za sposób prezentacji aplikacji oraz komunikację z użytkownikiem łączy w sobie Widok oraz Kontroler z MVC przykładem klas z pakietu presentation są klasy korzystające z biblioteki Java Swing

Pakiet presentation odpowiada za sposób prezentacji aplikacji oraz komunikację z użytkownikiem łączy w sobie Widok oraz Kontroler z MVC przykładem klas z pakietu presentation są klasy korzystające z biblioteki Java Swing

Pakiet control realizuje obsługę żądań użytkownika przekazywanych z warstwy presentation odpowiada za logikę programu, rozwiązania algorytmiczne, obliczenia oraz utrzymywanie stanu sesji użytkownika w MVC byłby elementem Modelu

Pakiet control realizuje obsługę żądań użytkownika przekazywanych z warstwy presentation odpowiada za logikę programu, rozwiązania algorytmiczne, obliczenia oraz utrzymywanie stanu sesji użytkownika w MVC byłby elementem Modelu

Pakiet control realizuje obsługę żądań użytkownika przekazywanych z warstwy presentation odpowiada za logikę programu, rozwiązania algorytmiczne, obliczenia oraz utrzymywanie stanu sesji użytkownika w MVC byłby elementem Modelu

Pakiet entity zawiera obiekty biznesowe, które posiadają odzwierciedlenie w zewnętrznych źródłach danych w MVC byłby elementem Modelu

Pakiet entity zawiera obiekty biznesowe, które posiadają odzwierciedlenie w zewnętrznych źródłach danych w MVC byłby elementem Modelu

Pakiet mediator Ma na celu usunięcie zależności: pakietu entity od foundation (likwiduje konieczność modyfikacji obiektów biznesowych przy zmianie mechanizmów trwałości danych) pakietu control od foundation (pozwala na enkapsulację konstrukcji zapytań do zewnętrznych źródeł danych, oddzielając je od logiki aplikacji zawartej w warstwie control) w MVC byłby elementem Modelu

Pakiet mediator Ma na celu usunięcie zależności: pakietu entity od foundation (likwiduje konieczność modyfikacji obiektów biznesowych przy zmianie mechanizmów trwałości danych) pakietu control od foundation (pozwala na enkapsulację konstrukcji zapytań do zewnętrznych źródeł danych, oddzielając je od logiki aplikacji zawartej w warstwie control) w MVC byłby elementem Modelu

Pakiet mediator Ma na celu usunięcie zależności: pakietu entity od foundation (likwiduje konieczność modyfikacji obiektów biznesowych przy zmianie mechanizmów trwałości danych) pakietu control od foundation (pozwala na enkapsulację konstrukcji zapytań do zewnętrznych źródeł danych, oddzielając je od logiki aplikacji zawartej w warstwie control) w MVC byłby elementem Modelu

Pakiet foundation Zawiera zazwyczaj gotowe implementacje odpowiadające za obsługę zewnętrznych źródeł danych: baz danych (np. Hibernate, JDBC, JDO) repozytoriów dokumentów (np. klient WebDAV z Jakarta Slide) usług sieciowych (ang.web services) (np. Apache Axis) systemów plików (np. java.io z J2SE)

Pakiet foundation Zawiera zazwyczaj gotowe implementacje odpowiadające za obsługę zewnętrznych źródeł danych: baz danych (np. Hibernate, JDBC, JDO) repozytoriów dokumentów (np. klient WebDAV z Jakarta Slide) usług sieciowych (ang.web services) (np. Apache Axis) systemów plików (np. java.io z J2SE)

Pakiet foundation Zawiera zazwyczaj gotowe implementacje odpowiadające za obsługę zewnętrznych źródeł danych: baz danych (np. Hibernate, JDBC, JDO) repozytoriów dokumentów (np. klient WebDAV z Jakarta Slide) usług sieciowych (ang.web services) (np. Apache Axis) systemów plików (np. java.io z J2SE)

Pakiet foundation Zawiera zazwyczaj gotowe implementacje odpowiadające za obsługę zewnętrznych źródeł danych: baz danych (np. Hibernate, JDBC, JDO) repozytoriów dokumentów (np. klient WebDAV z Jakarta Slide) usług sieciowych (ang.web services) (np. Apache Axis) systemów plików (np. java.io z J2SE)

W jakim stopniu PCMEF odpowiada na wyzwania stawiane architekturze aplikacji internetowych? Zalety: minimalizacja zależności pomiędzy pakietami zdefiniowana semantyka poszczególnych warstw modularyzacja ułatwiająca pielęgnację systemu Wada: mocno powiązany kontroler z widokiem w warstwie presentation W przypadku aplikacji internetowych oddzielenie kontrolera od widoku jest dobrą praktyką, która powinna znaleźć swoje odzwierciedlenie w architekturze.

W jakim stopniu PCMEF odpowiada na wyzwania stawiane architekturze aplikacji internetowych? Zalety: minimalizacja zależności pomiędzy pakietami zdefiniowana semantyka poszczególnych warstw modularyzacja ułatwiająca pielęgnację systemu Wada: mocno powiązany kontroler z widokiem w warstwie presentation W przypadku aplikacji internetowych oddzielenie kontrolera od widoku jest dobrą praktyką, która powinna znaleźć swoje odzwierciedlenie w architekturze.

W jakim stopniu PCMEF odpowiada na wyzwania stawiane architekturze aplikacji internetowych? Zalety: minimalizacja zależności pomiędzy pakietami zdefiniowana semantyka poszczególnych warstw modularyzacja ułatwiająca pielęgnację systemu Wada: mocno powiązany kontroler z widokiem w warstwie presentation W przypadku aplikacji internetowych oddzielenie kontrolera od widoku jest dobrą praktyką, która powinna znaleźć swoje odzwierciedlenie w architekturze.

W jakim stopniu PCMEF odpowiada na wyzwania stawiane architekturze aplikacji internetowych? Zalety: minimalizacja zależności pomiędzy pakietami zdefiniowana semantyka poszczególnych warstw modularyzacja ułatwiająca pielęgnację systemu Wada: mocno powiązany kontroler z widokiem w warstwie presentation W przypadku aplikacji internetowych oddzielenie kontrolera od widoku jest dobrą praktyką, która powinna znaleźć swoje odzwierciedlenie w architekturze.

XWA a wyzwania architektoniczne Architektura e-informatyki Propozycja szkieletu architektonicznego XWA

XWA a wyzwania architektoniczne Architektura e-informatyki Architektura XWA (ang. extensible Web Architecture) jest architekturą warstwową z wyraźnie wyodrębnioną triadą MVC. Łączy zalety: szkieletu MVC rozdzielając widok od kontrolera szkieletu PCMEF organizując model w architekturę warstwową Dodatkowo modyfikacji ulegnie kontroler.

XWA a wyzwania architektoniczne Architektura e-informatyki Architektura XWA (ang. extensible Web Architecture) jest architekturą warstwową z wyraźnie wyodrębnioną triadą MVC. Łączy zalety: szkieletu MVC rozdzielając widok od kontrolera szkieletu PCMEF organizując model w architekturę warstwową Dodatkowo modyfikacji ulegnie kontroler.

XWA a wyzwania architektoniczne Architektura e-informatyki Architektura XWA (ang. extensible Web Architecture) jest architekturą warstwową z wyraźnie wyodrębnioną triadą MVC. Łączy zalety: szkieletu MVC rozdzielając widok od kontrolera szkieletu PCMEF organizując model w architekturę warstwową Dodatkowo modyfikacji ulegnie kontroler.

Szkielet architektoniczny XWA XWA a wyzwania architektoniczne Architektura e-informatyki Składa się z sześciu pakietów: View Controller Service Bussiness Objects Mediator Resource Pakiety są zorganizowane w czteropoziomową hierarchię, w której warstwy wyższe zależą od niższych.

XWA a wyzwania architektoniczne Architektura e-informatyki XWA a wyzwania architektoniczne

XWA a pielęgnacja systemu XWA a wyzwania architektoniczne Architektura e-informatyki Jak XWA próbuje radzić sobie z problemem pielęgnacji systemu? organizuje system w hierarchię warstwową precyzyjnie specyfikuje semantykę poszczególnych pakietów i warstw w kontekście aplikacji internetowych zachowuje kluczowe zasady MVC: separacji modelu od prezentacji oraz separacji widoku od kontrolera sugeruje zastosowanie technologii komponentowych (np. kontenery obiektów Avalon czy Spring ładnie wpasowują się w model XWA)

XWA a pielęgnacja systemu XWA a wyzwania architektoniczne Architektura e-informatyki Jak XWA próbuje radzić sobie z problemem pielęgnacji systemu? organizuje system w hierarchię warstwową precyzyjnie specyfikuje semantykę poszczególnych pakietów i warstw w kontekście aplikacji internetowych zachowuje kluczowe zasady MVC: separacji modelu od prezentacji oraz separacji widoku od kontrolera sugeruje zastosowanie technologii komponentowych (np. kontenery obiektów Avalon czy Spring ładnie wpasowują się w model XWA)

XWA a pielęgnacja systemu XWA a wyzwania architektoniczne Architektura e-informatyki Jak XWA próbuje radzić sobie z problemem pielęgnacji systemu? organizuje system w hierarchię warstwową precyzyjnie specyfikuje semantykę poszczególnych pakietów i warstw w kontekście aplikacji internetowych zachowuje kluczowe zasady MVC: separacji modelu od prezentacji oraz separacji widoku od kontrolera sugeruje zastosowanie technologii komponentowych (np. kontenery obiektów Avalon czy Spring ładnie wpasowują się w model XWA)

XWA a pielęgnacja systemu XWA a wyzwania architektoniczne Architektura e-informatyki Jak XWA próbuje radzić sobie z problemem pielęgnacji systemu? organizuje system w hierarchię warstwową precyzyjnie specyfikuje semantykę poszczególnych pakietów i warstw w kontekście aplikacji internetowych zachowuje kluczowe zasady MVC: separacji modelu od prezentacji oraz separacji widoku od kontrolera sugeruje zastosowanie technologii komponentowych (np. kontenery obiektów Avalon czy Spring ładnie wpasowują się w model XWA)

XWA a wyzwania architektoniczne Architektura e-informatyki XWA a szerokie spektrum formatów publikacji Jak XWA próbuje radzić sobie z problemem obsługi szerokiego spektrum formatów publikacji? proponuje wykorzystanie XML jako interfejsu pomiędzy logiką aplikacji a prezentacją umożliwiając prostą rozbudowę systemu o obsługę szerokiego spektrum formatów prezentacji (np. HTML, PDF, PS, WML) czy urządzeń dostępowych po stronie użytkownika systemu

XWA a wyzwania architektoniczne Architektura e-informatyki XWA a integracja różnych źródeł danych i aplikacji Jak XWA próbuje radzić sobie z problemem integracji źródeł danych i aplikacji? wydzielenie pakietów Mediator i Resource znacznie ułatwia proces integracji zewnętrznych źródeł danych i aplikacji (np. obsługa zapytań do nowych źródeł danych oddzielona jest od logiki aplikacji i nie wymusza modyfikacji obiektów biznesowych).

XWA a wyzwania architektoniczne Architektura e-informatyki XWA a efektywna współpraca osób o różnych specjalizacjach W jaki sposób XWA umożliwia efektywną współpracę osób o różnych specjalizacjach? proponuje precyzyjny podział odpowiedzialności pomiędzy programistów logiki biznesowej, warstwy prezentacji, grafików a projektantów stron WWW, dzięki zachowaniu obu kluczowych zasad MVC

XWA a wyzwania architektoniczne Architektura e-informatyki Uwzględnienie specyfiki protokołu HTTP Jak XWA uwzględnia specyfikę protokołu HTTP? XWA proponuje wprowadzenie kontrolera kontynuacji, który: w sposób niewidoczny dla programisty utrzymuje stan interakcji użytkownika z systemem (rozwiązując problem bezstanowości protokołu HTTP) w momencie przyjścia kolejnego żądania automatycznie wznawia przerwaną interakcję (uwzględniając w ten sposób pasywność protokołu HTTP) znacznie upraszcza implementację rozbudowanych interakcji użytkownika z systemem (interakcja jest modelowana za pomocą sekwencyjnie realizowanych skryptów lub programów)

XWA a wyzwania architektoniczne Architektura e-informatyki Uwzględnienie specyfiki protokołu HTTP Jak XWA uwzględnia specyfikę protokołu HTTP? XWA proponuje wprowadzenie kontrolera kontynuacji, który: w sposób niewidoczny dla programisty utrzymuje stan interakcji użytkownika z systemem (rozwiązując problem bezstanowości protokołu HTTP) w momencie przyjścia kolejnego żądania automatycznie wznawia przerwaną interakcję (uwzględniając w ten sposób pasywność protokołu HTTP) znacznie upraszcza implementację rozbudowanych interakcji użytkownika z systemem (interakcja jest modelowana za pomocą sekwencyjnie realizowanych skryptów lub programów)

XWA a wyzwania architektoniczne Architektura e-informatyki Uwzględnienie specyfiki protokołu HTTP Jak XWA uwzględnia specyfikę protokołu HTTP? XWA proponuje wprowadzenie kontrolera kontynuacji, który: w sposób niewidoczny dla programisty utrzymuje stan interakcji użytkownika z systemem (rozwiązując problem bezstanowości protokołu HTTP) w momencie przyjścia kolejnego żądania automatycznie wznawia przerwaną interakcję (uwzględniając w ten sposób pasywność protokołu HTTP) znacznie upraszcza implementację rozbudowanych interakcji użytkownika z systemem (interakcja jest modelowana za pomocą sekwencyjnie realizowanych skryptów lub programów)

Projekt e-informatyka XWA a wyzwania architektoniczne Architektura e-informatyki Projekt akademicki realizowany przez studentów mający na celu: skupienie społeczności informatycznej stworzenie nowoczesnej platformy publikacji elektronicznych

Projekt e-informatyka XWA a wyzwania architektoniczne Architektura e-informatyki Projekt akademicki realizowany przez studentów mający na celu: skupienie społeczności informatycznej stworzenie nowoczesnej platformy publikacji elektronicznych

XWA a wyzwania architektoniczne Architektura e-informatyki Architektura e-informatyki implementacja XWA

Zaproponowaliśmy szkielet architektoniczny XWA uwzględniający specyfikę nowoczesnych aplikacji internetowych, a w szczególności: precyzyjnie wyspecyfikowaliśmy semantykę poszczególnych pakietów i warstw co ułatwi zastosowanie XWA w praktyce zapewniliśmy klarowną separację widoku, kontrolera i modelu, jednocześnie precyzując organizację modelu dostrzegając wyraźną potrzebę wyodrębniliśmy nowy element architektury kontroler kontynuacji, który znacznie upraszcza implementację skomplikowanych interakcji zaproponowaliśmy użycie interfejsu XML w warstwie prezentacji co pozwoli na prostą rozbudowę systemu o obsługę szerokiego spektrum formatów prezentacji

Zaproponowaliśmy szkielet architektoniczny XWA uwzględniający specyfikę nowoczesnych aplikacji internetowych, a w szczególności: precyzyjnie wyspecyfikowaliśmy semantykę poszczególnych pakietów i warstw co ułatwi zastosowanie XWA w praktyce zapewniliśmy klarowną separację widoku, kontrolera i modelu, jednocześnie precyzując organizację modelu dostrzegając wyraźną potrzebę wyodrębniliśmy nowy element architektury kontroler kontynuacji, który znacznie upraszcza implementację skomplikowanych interakcji zaproponowaliśmy użycie interfejsu XML w warstwie prezentacji co pozwoli na prostą rozbudowę systemu o obsługę szerokiego spektrum formatów prezentacji

Zaproponowaliśmy szkielet architektoniczny XWA uwzględniający specyfikę nowoczesnych aplikacji internetowych, a w szczególności: precyzyjnie wyspecyfikowaliśmy semantykę poszczególnych pakietów i warstw co ułatwi zastosowanie XWA w praktyce zapewniliśmy klarowną separację widoku, kontrolera i modelu, jednocześnie precyzując organizację modelu dostrzegając wyraźną potrzebę wyodrębniliśmy nowy element architektury kontroler kontynuacji, który znacznie upraszcza implementację skomplikowanych interakcji zaproponowaliśmy użycie interfejsu XML w warstwie prezentacji co pozwoli na prostą rozbudowę systemu o obsługę szerokiego spektrum formatów prezentacji

Zaproponowaliśmy szkielet architektoniczny XWA uwzględniający specyfikę nowoczesnych aplikacji internetowych, a w szczególności: precyzyjnie wyspecyfikowaliśmy semantykę poszczególnych pakietów i warstw co ułatwi zastosowanie XWA w praktyce zapewniliśmy klarowną separację widoku, kontrolera i modelu, jednocześnie precyzując organizację modelu dostrzegając wyraźną potrzebę wyodrębniliśmy nowy element architektury kontroler kontynuacji, który znacznie upraszcza implementację skomplikowanych interakcji zaproponowaliśmy użycie interfejsu XML w warstwie prezentacji co pozwoli na prostą rozbudowę systemu o obsługę szerokiego spektrum formatów prezentacji

Przetestujmy i wspólnie rozwijajmy zaproponowane rozwiązanie! Tym bardziej, że jest ono wciąż distinguishable from magic. Your improvements are welcome! Prezentacja i serwis e-informatyka powstały za pomocą narzędzi Open Source.