Paweł Rajba

Podobne dokumenty
Wykład 4. Projektowanie. MIS n Inżynieria oprogramowania Październik 2014

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

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

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

Analiza i projektowanie aplikacji Java

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

Program szkolenia: Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów

Programowanie Zespołowe

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Programowanie komponentowe 5

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

Program szkolenia: Wzorce projektowe w C++

Spring Framework - wprowadzenie i zagadnienia zaawansowane

17-18 listopada, Warszawa

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

Paweł Rajba

Projektowanie architektury systemu internetowego

Application Layer Functionality and Protocols

1 Wprowadzenie do J2EE

Rozproszone systemy internetowe

Wybrane działy Informatyki Stosowanej

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

IBM Corporation IBM SOA Center of Excellence

Elektroniczny Dowód Osobisty w Hiszpanii Doświadczenia Software AG w realizacji projektu analiza przypadku

Wzorce projektowe i architektura dla platformy Java EE

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

Projektowanie obiektowe oprogramowania Wykład 4 - SOLID GRASP Wiktor Zychla 2012

Architektura bezpiecznych aplikacji internetowych na platformie Java Enterprise Edition. Jakub Grabowski Warszawa,

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

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

Program szkolenia: Zaawansowane programowanie w C++

ZARZĄDZANIE WYMAGANIAMI ARCHITEKTONICZNYMI

Projektowanie logiki aplikacji

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

Technologie Obiektowe PK WFMI 2010/2011

Zagadnienia projektowania aplikacji J2EE

Chmura zrzeszenia BPS jako centrum świadczenia usług biznesowych. Artur Powałka Microsoft Services

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Bazy danych 2. Wykład 1

Dobre praktyki w doborze technologii rozwiązań informatycznych realizujących usługi publiczne

Wzorce projektowe związane z warstwą danych

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

Projektowanie aplikacji JEE z użyciem wzorców projektowych i notacji UML

Pojęcie systemu baz danych

Audyt oprogramowania systemu B2B oprogramowanie umożliwiające zarządzanie informacjami o produktach:

III Edycja ITPro 16 maja 2011

Warstwa ozonowa bezpieczeństwo ponad chmurami

Projektowanie i architektura frameworka w języku PHP. Tomasz P.F. Kowalczyk

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

Korporacyjna Magistrala Usług na przykładzie Oracle Service Bus

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Wybrane działy Informatyki Stosowanej

Wzorce logiki dziedziny

ZAŁOŻENIA TECHNICZNO-TECHNOLOGICZNE SYSTEMU BUDOWANEGO W RAMACH PROJEKTU

Program szkolenia: Wzorce projektowe i architektoniczne oraz efektywne techniki Object Oriented Design dla projektantów systemów

Program szkolenia: Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów

Web Services. Bartłomiej Świercz. Łódź, 2 grudnia 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Web Services

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

OD MONOLITU DO MIKROUSŁUGI MICROSERVICES

Czy OMS Log Analytics potrafi mi pomóc?

Systemy wbudowane. Poziomy abstrakcji projektowania systemów HW/SW. Wykład 9: SystemC modelowanie na różnych poziomach abstrakcji

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Forum Client - Spring in Swing

Wybrane działy Informatyki Stosowanej

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Wprowadzenie do hurtowni danych

Instalacja SQL Server Konfiguracja SQL Server Logowanie - opcje SQL Server Management Studio. Microsoft Access Oracle Sybase DB2 MySQL

Receptury - niezbędnik projektanta i architekta

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design

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

SIMON SAYS ARCHITECTURE! Usługi zdalne. Technologie, techniki i praktyki implementacji

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

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

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

(argument dla męskiej m. ęści populacji)

Tworzenie wersji demonstracyjnych enova365 na potrzeby prezentacji u Klienta

SOA Web Services in Java

Popularne dostępne rozwiązania. Najpopularniejsze środowiska programistyczne:

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017

Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

Inżynieria Wytwarzania Systemów Wbudowanych

JAVA EE MODEL APLIKACJI. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

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

Przetwarzanie danych w chmurze

SAM-Insights ADVANCED CENTRAL DATA COLLECTOR (ACDC) Dane licencyjne nie mierzone przez skanowanie. Nowy moduł ACDC o unikalnej funkcjonalności

EJB 3.0 (Enterprise JavaBeans 3.0)

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

Marzena Kanclerz. Microsoft Channel Executive. Zachowanie ciągłości procesów biznesowych. z Windows Server 2012R2

System Kancelaris. Zdalny dostęp do danych

Wprowadzenie do programowania aplikacji mobilnych

Program szkolenia: Receptury testowania automatycznego - problemy, strategie, taktyki, techniki, narzędzia

Dobry start do profesjonalnego programowania w C++ dla. początkujących programistów

SNP SNP Business Partner Data Checker. Prezentacja produktu

Programowanie zorientowane obiektowo. Mateusz Kołecki

Zabbix -Monitoring IT bez taśmy klejącej. Paweł Tomala Barcamp 15 czerwca 2015

Zaawansowane Techniki WWW (HTML, CSS i NODE.JS)

Java Persistence API - zagadnienia zaawansowane

Transkrypt:

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Architektura Architectural styles Patterns of Enterprise Application Architecture Design Principles SOLID

Bass, Clements i Kazman, 2003: Architektura oprogramowania programu lub systemu informatycznego jest strukturą lub zbiorem struktur tego systemu, obejmującym elementy oprogramowania, widoczne dla pozostałych elementów oprogramowania oraz zależności między nimi. ISO/IEC 42010:2007: Architektura systemu informatycznego jest to podstawowa organizacja systemu wraz z jego komponentami, wzajemnymi powiązaniami, środowiskiem pracy i regułami ustanawiającymi sposób jej budowy i rozwoju

O architekturze systemu można mówić na różnym poziomie szczegółowości i różnych punktów widzenia Enterprise Information Integration Infrastructure Software Security https://en.wikipedia.org/wiki/nist_enterprise_architecture_model

Interakcja z danymi jest jednym z aspektów Dane przepływają przez wszystkie warstwy systemu Od bazy danych do interfejsu użytkownika (lub odwrotnie) Pomiędzy systemami Przepływy jest automatyczne lub manualne Dane wpisywane do Excela i wysyłane e-mailem

Dlaczego? Łatwiej zrozumieć całość rozwiązania W tym ułatwia zrozumienie, jak potencjalne zmiany wpłyną na rozwiązanie Ułatwia tworzenie komponentów wielokrotnego zastosowania Redukuje koszt utrzymania i rozwoju systemu Pozwala kontrolować wymagania niefunkcjonalne Jest niezbędna, aby zapewnić wysoką jakość oprogramowania

Dlaczego? https://en.wikipedia.org/wiki/non-functional_requirement

Bardzo ogólne podejście do architektury Opisują architekturę z różnych punktów widzenia Podział na kategorie Communication Service-Oriented Architecture (SOA), Message Bus Deployment Client/Server, N-Tier, 3-Tier Domain Domain Driven Design Structure Component-Based, Object-Oriented, Layered Architecture

Dwie strony komunikacji Klient strona żądająca dostępu do danych, usługi aktywny: wysyła żądanie do serwera i oczekuje odpowiedzi Serwer udostępnia dane i usługi pasywny: czeka na żądania od klientów w momencie otrzymania żądania, przetwarza je, a następnie wysyła odpowiedź Rodzaje architektury klient serwer dwuwarstwowa, trójwarstwowa, wielowarstwowa

Przetwarzanie i składowanie danych odbywa się w jednym module Dawniej bardzo popularny, obecnie wypierany przez model trójwarstwowy W tym modelu jest zapewniony wielodostęp Tańsze niż w modelu wielowarstwowym, ale Problem ze skalowalnością Gdzie logika biznesowa? Trudniej zapewnić różne sposoby prezentacji np. web client, mobile client

Przetwarzanie i składowanie danych następuje w dwóch osobnych modułach Występują następujące warstwy Prezentacji Logiki biznesowej Danych Skalowalne, łatwiej zapewnić różne formy prezentacji

Przetwarzanie, składowanie i inne operacje na danych odbywają się w wielu osobnych modułach Zwykle tworzy się hierarchie warstw, gdzie warstwa n komunikuje się z warstwami n-1 i n+1 Ważne cechy podejścia warstwowego Abstrakcja, enkapsulacja, podział funkcjonalności pomiędzy warstwy, reużywalność, luźne powiązania Główne zalety takiego podejścia Abstrakcja, izolacja, zarządzalność, wydajność, reużywalność, testowalność

Przykładowy podział na warstwy Warstwa interfejsu użytkownika np. web client, mobile client Warstwa zarządzania treścią, tzw. backend np. CMS Warstwa usług: web services & data services np. dostarczanie danych innym modułom Warstwa uwierzytelnienia i autoryzacji np. delegacja na zupełnie zewnętrzny serwer Warstwa pamięci masowej, czyli baza danych

W architekturze wielowarstwowej przetwarzanie może być Na serwerze bazy danych (funkcje i procedury) Na serwerze aplikacji Rola hurtowni danych Zalety i wady poszczególnych rozwiązań

Sporo różnych wzorców, część dotyczy danych Katalog wzorców wg. guru Martina Fowlera http://martinfowler.com/eaacatalog/ Przyjrzymy się chwilę dwóm kategoriom Domain Logic Patterns Data Source Architectural Patterns Pozostałe kategorie dot. będą omawiane przy okazji tematów, których dotyczą, np. przy omawianiu ORM

Domain Logic Patterns Transaction Script Organizes business logic by procedures where each procedure handles a single request from the presentation. Domain Model An object model of the domain that incorporates both behavior and data. Table Module A single instance that handles the business logic for all rows in a database table or view. Service Layer Defines an application's boundary with a layer of services that establishes a set of available operations and coordinates the application's response in each operation.

Data Source Architectural Patterns Table Data Gateway An object that acts as a Gateway (466) to a database table. One instance handles all the rows in the table. Row Data Gateway An object that acts as a Gateway (466) to a single record in a data source. There is one instance per row. Active Record An object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data. Data Mapper A layer of Mappers (473) that moves data between objects and a database while keeping them independent of each other and the mapper itself.

S: Single Responsibility Principle SRP says "Every software module should have only one reason to change".

O: Open/Closed Principle Tu klienta trzeba zmienić Tutaj można podmienić serwer bez zmiany klienta

L: Liskov substitution principle Przekazujemy Rectangle jako parametr Liczymy pole dla Rectangle https://mkatkoot.wordpress.com/2013/05/27/solid-liskovsubstitution-principle/

I: Interface Segregation Principle http://www.pzielinski.com/?p=424

D: Dependency Inversion Principle Other concepts: Dependency Injection Inversion of Control http://ricardodsanchez.com/tag/solid-principles/

SOLID http://www.oodesign.com/design-principles.html http://joelabrahamsson.com/a-simple-example-of-the-openclosedprinciple/ http://www.codeproject.com/articles/567768/object-oriented- Design-Principles KISS http://en.wikipedia.org/wiki/kiss_principle DRY http://en.wikipedia.org/wiki/don%27t_repeat_yourself SoC http://en.wikipedia.org/wiki/separation_of_concerns YAGNI http://en.wikipedia.org/wiki/you_aren%27t_gonna_need_it Law of Demeter http://pl.wikipedia.org/wiki/prawo_demeter

Software Architecture and Design http://msdn.microsoft.com/en-us/library/ee658093.aspx