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



Podobne dokumenty
Wykład 1 Inżynieria Oprogramowania

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Modelowanie i analiza. warstwy biznesowej aplikacji

Zagadnienia projektowania aplikacji J2EE

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

EJB 3.0 (Enterprise JavaBeans 3.0)

1 Wprowadzenie do J2EE

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

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

Wybrane działy Informatyki Stosowanej

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

Wzorce projektowe warstwy danych

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

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

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

Wybrane aspekty projektowania - budowa wielowarstwowego modelu implementacji, zastosowanie wzorców projektowych Wykład 7 część 2

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

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

Analiza i projektowanie aplikacji Java

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

Literatura. J. Nilsson: Applying Domain-Driven Design and Patterns,With Examples in C# and.net, Addison-Wesley Professional, 2006

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

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

Aplikacje Internetowe, Servlety, JSP i JDBC

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

Enterprise Java Beans wykład 7 i 8

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Wprowadzenie do programowania aplikacji mobilnych

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Wybrane działy Informatyki Stosowanej

Projektowanie logiki aplikacji

Wzorce logiki dziedziny

Programowanie obiektowe

Wypożyczalnia VIDEO. Technologie obiektowe

Programowanie obiektowe

Oracle11g: Wprowadzenie do SQL

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

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

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

Wzorce projektowe Java EE

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

Enterprise JavaBeans

Programowanie komponentowe 5

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Modelowanie systemów w architekturze J2EE z wykorzystaniem notacji UML

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

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

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Wzorce projektowe. dr inż. Marcin Pietroo

Programowanie MorphX Ax

edziennik Ustaw Opis architektury

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

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

Zasady generowania kluczy głównych Język Java Persistence Podstawowa architektura wielowarstwowych aplikacji w oparciu o wzorce oprogramowania

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

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

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016

Diagram wdrożenia. Rys. 5.1 Diagram wdrożenia.

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

Podstawowe informacje o technologii Java EE 7

Zaawansowane aplikacje internetowe. Projektowanie. wykład prowadzi Mikołaj Morzy. Projektowanie

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

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

Wprowadzenie, podstawowe pojęcia, projekt a produkt Wykład1

Wprowadzenie, podstawowe pojęcia, projekt a produkt Wykład1

Wzorce projektowe. dr inż. Marcin Pietroo

Forum Client - Spring in Swing

Projektowanie Aplikacji Internetowych Jarosław Kuchta. Wzorce projektowe warstwy biznesowej

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

STUDIA STACJONARNE I STOPNIA Przedmioty kierunkowe

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

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

Programowanie w języku Java WYKŁAD

Projektowanie Aplikacji Internetowych. Wzorce projektowe warstwy usług

Tworzenie warstwy prezentacji w wielowarstwowej aplikacji Przykład w środowisku Visual Web JSP

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce odpowiedzialności

Database Connectivity

Web frameworks do budowy aplikacji zgodnych z J2EE

Metody dostępu do danych

Język Java i technologie Web - opis przedmiotu

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss.

Java Persistence API - zagadnienia zaawansowane

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Referat pracy dyplomowej

Tworzenie systemów informatycznych. Inżynieria oprogramowania Zofia Kruczkiewicz

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008

Oracle PL/SQL. Paweł Rajba.

Technologie obiektowe

Bazy danych 2. Wykład 1

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Hurtownie danych - przegląd technologii

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

Architektura nowoczesnych aplikacji internetowych

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

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Transkrypt:

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 model logicznego rozdzielania zadań (wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.) Warstwa klienta Klienci aplikacji, aplety, aplikacje i inne elementy z graficznym interfejsem użytkownika Interakcja z użytkownikiem, urządzenia i prezentacja interfejsu użytkownika Warstwa prezentacji Strony JSP, serwlety i inne elementy interfejsu użytkownika Warstwa biznesowa Komponenty EJB i inne obiekty biznesowe Logowanie, zarządzanie sesją, tworzenie zawartości, formatowania i dostarczanie Logika biznesowa, transakcje, dane i usługi Warstwa integracji JMS, JDBC, konektory i połączenia z systemami zewnetrznymi Adaptery zasobów, systemy zewnętrzne, mechanizmy zasobów, przepływ sterowania Warstwa zasobów Bazy danych, systemy zewnętrzne i pozostałe zasoby Zasoby, dane i usługi zewnętrzne

Problem 1 ukrycie logiki dostępu do danych w osobnej warstwie 1. Aplikacje o mniejszych rozmiarach nie używają obiektów typu entity, natomiast w fasadowych obiektach sesyjnych zawarta jest logika biznesowa, a przetwarzanie danych odbywa się bezpośrednio w trwałym magazynie. 2. Większość aplikacji biznesowych używa jako trwałych magazynów relacyjnych baz danych (RDBMS), zewnętrznych systemów mainframe, repozytoriów, obiektowych baz danych (OODB), zwykłych plików, usług zewnętrznych systemów np.. B2B lub usług kart kredytowych. Każdy z tych systemów używa innych mechanizmów dostępu obsługiwanymi za pomocą API oraz posiada inną funkcjonalność

Architektura systemu informatycznego Servlety lub JSP zawierają logikę prezentacyjną oraz fasadę rozdzielającą warstwy Komponent sesyjny zawiera logikę biznesową Logika dostępu do danych Klient Servlety, JSP Business Delegate 1 Komponent sesyjny typu fasada Kod dostępu do danych Baza danych Warstwa klienta Warstwa prezentacji Warstwa biznesowa Warstwa integracji Warstwa zasobów

Wymagania mechanizmu trwałości znajdującego się w osobnej warstwie : 1. Należy zaimplementować mechanizmy dostępu do danych, aby pobierać i modyfikować dane znajdujące się w trwałym magazynie 2. Należy oddzielić implementacje trwałego magazynu od reszty systemu 3. Należy stworzyć jednolity interfejs dostępu do danych, znajdujących się w różnych źródłach np.. w RDBMS, LDAP, OODB, repozytoriach XML, zwykłych plikach 4. Należy dokonać organizacji logiki dostępu do danych i ukryć w jednym miejscu specyficzne funkcje w celu osiągnięcia lepszej przenośności i ułatwienia konserwacji kodu

Baza danych

Obiekty warstwy integracji Client jest obiektem żądającym dostępu do danych w celu pobrania lub zapisania danych. Klientem może być obiekt biznesowy (obiekt modelu obiektowego), komponent SessionFacade, Application Service lub dowolny inny obiekt pomocniczy wymagający dostępu do trwałych danych DataAccessObject jest głównym elementem wzorca. Ukrywa on przez klientem rzeczywistą implementację dostępu do danych, aby zapewnić jednakowy dostęp, niezależny od typu DataSource. Obiekt ten implementuje operacje CRUD (Create, Read, Update, Delete). DataSource - dowolna usługa zarządzająca danymi. Może to być relacyjna lub obiektowa baza danych itp. ResultSet reprezentuje wynik zapytania. Dla sterowników JDBC jest to instancja typu java.sql.resultset Data reprezentuje obiekt transferowy, wykorzystywany do przenoszenia danych.

Strategia własnego obiektu dostępu do danych

Pobranie danych

Wstawienie danych

Aktualizacja danych

Usuwanie danych

Problem 2 oddzielenie mechanizmów trwałości od modelu obiektowego 1. Wiele systemów posiada złożony model obiektowy zbudowany ze zwykłych obiektów typu entity lub komponentów typu Entity ). Wymaga on wyrafinowanych strategii utrwalania w trwałych magazynach. 2. Alternatywna 1 - kontenery warstw biznesowych zarządzają trwałością obiektów typu entity 3. Alternatywna 2 - obiekty typu entity zarządzają trwałością, co może być wykorzystane w implementacji trwałości modelu obiektowego 4. Alternatywna 3 uruchamianie aplikacji w warstwie prezentacji i oddzielenie mechanizmów trwałości od modelu obiektowego. Modele obiektowe można oprzeć na tzw. niewidocznej trwałości, czyli obiekty biznesowe modelu obiektowego nie odpowiadają za implementację mechanizmów trwałości.

Model warstwy biznesowej odwołującej się do pięciu typów trwałości 1. Brak modelu obiektowego (brak obiektów typu entity ) - rozwiązanie problemu 1 2. Mechanizm trwałości jest zaimplementowany w kontenerach, w których znajdują się obiekty typu entity (strategia CMP Container-managed Persistence)- brak dziedziczenia w modelu obiektowym 3. Mechanizm trwałości jest zaimplementowany w obiektach typu entity (strategia BMP - Bean-managed Persistence) kod trwałości wymieszany z modelem obiektowym )- brak dziedziczenia w modelu obiektowym 4. Mechanizm trwałości jest umieszczony w modelu obiektów typu entity kod trwałości wymieszany z modelem obiektowym 5. Mechanizm trwałości jest oddzielony od modelu obiektów typu entity opartego analiza na systemów wszystkich informatycznych wzorcach 7 obiektowości

Model warstwy biznesowej odwołującej się do typów trwałości: 2, 3, 5 Klient Warstwa prezentacji lub klienta Komponent sesyjny typu fasada Logika biznesowa Logika transakcyjna zarządzająca przez komponent lub zarządzana przez kontener lub zarządzana przez specjalizowane komponenty Warstwa biznesowa Entity A Entity B Entity C

Architektura 5-warstwowego systemu informatycznego Servlety lub JSP zawierają logikę prezentacyjną oraz fasadę rozdzielającą warstwy Komponent sesyjny zawiera logikę biznesową, komponenty Entity stanowią model trwałych danych Logika dostępu do danych Klient Servlety, JSP Business Delegate 1 Komponent sesyjny typu fasada Obiekty Entity Kod dostępu do danych Baza danych Warstwa klienta Warstwa prezentacji Warstwa biznesowa Warstwa integracji Warstwa zasobów

Wymagania mechanizmu trwałości oddzielonego od modelu obiektów typu entity : 1. Należy uniknąć implementacji mechanizmów trwałości w obiektach biznesowych typu entity. 2. Należy zrezygnować z obiektów typu entity, które korzystają z mechanizmów trwałości kontenera. 3. Aplikacja może działać w kontenerze web. 4. Model obiektowy używa dziedziczenia i złożonych relacji. 5. Mechanizm trwałości można rozwiązać dwoma sposobami: wykonać własny szkielet trwałości lub zastosować gotowe rozwiązania oparte na JDO lub własnych rozwiązaniach O-R

Warstwa biznesowa Model obiektowy warstwa biznesowa

Opis głównych obiektów warstwy integracji Application Service obiekt usług wykorzystujący obiektu modelu obiektowego Persistable interfejs lub klasa bazowa dla wszystkich trwałych obiektów biznesowych PersitenceManagerFactory tworzy obiekty PersistenceManager i zarządza nimi PersistenceManager zarządza trwałością i zapytaniami modelu obiektowego. Obiekt PersistenceManager zarządza obiektami modelu obiektowego za pośrednictwem obiektu StateManager StateManager - zarządza stanem obiektów modelu obiektowego. Wymusza on transakcyjny zapis i pobieranie stanu obiektów z DataResource StoreManager (DAO) współdziała z DataResource, w celu przeprowadzania operacji CRUD (Create, Read, Update, Delete). Obiekt StoreManager jest obiektem DAO i zawiera wszystkie mechanizmy dostępu do danych. DataResource dowolna usługa zarządzająca danymi. Może to być relacyjna lub obiektowa baza danych itp..

Dodatkowe obiekty warstwy integracji SessionFacade punkt dostępu do warstwy biznesowej. Współpracuje ona z jednym lub kilkoma obiektami ApplicatopnService PersistMap zawiera definicje realacji miedzy obiektami, a także odwzorowanie między trwałymi obiektami a źródłem danych Transaction - jest związany z obiektem PersistenceManager. Służy on do definiowania reguł transakcji oraz do samodzielnego zarządzania transakcjami w środowiskach bez takiego wsparcia Query hermetyzuje zapytanie, kryteria filtrowania, porządkowania i deklaracji parametrów

Tworzenie i utrwalanie obiektu biznesowego

Pobieranie danych

Tworzenie i wykonanie zapytania