Architektury informačních systémů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz
Obsah přednášky Co je to architektura systému? Používané přístupy Architektura J2EE Architektura.NET Co nás čeká (v TIS)? Architektury informačních systémů 2
Co je to architektura systému? 1. Soustava pojmů, prvků, struktur a interakcí systému z pohledu vnějšího pozorovatele 2. Popis požadované architektury 1 systému před jeho vytvořením 3. Věda a umění návrhu architektury 2 systému Architektury informačních systémů 3
Účel architektury Pochopit, co budujeme celkový obrázek, zodpovědnost podsystémů a návrhářů, jak zvládnout další růst systému, kde by se mohly vyskytnout problémy Připravit se na změny požadavků nebo přístupů k implementaci Architektury informačních systémů 4
Požadavky na dobrou architekturu Umožňuje vývojářům pochopit jejich úkol v kontextu celého systému Zachycuje současné potřeby projektu Je stabilní při dalším rozšiřování Izoluje zbytek systému od změn v některé z jeho částí Umožňuje opakovanou použitelnost konceptů, prvků a struktur při rozšiřování systému Architektury informačních systémů 5
Používané přístupy Metody a třídy Subsystémy Úlohy Aplikační rámce a knihovny Vrstvová struktura layers Hierarchická struktura - tiers Architektury informačních systémů 6
Subsystémy Balíky těsně vázaných tříd s dobře definovaným rozhraním Příklad: osoby, předměty, zkoušky Snížení složitosti oddělením rozhraní od implementace Správa jediným týmem Architektury informačních systémů 7
Úlohy Vertikální členění aplikace podle oblastí Příklad: věda a výzkum, studium, ekonomika Snižuje pravděpodobnost interakce mezi subsystémy Zjednodušuje komunikaci mezi týmy Mezi úlohami lze definovat formální rozhraní Architektury informačních systémů 8
Aplikační rámce a knihovny Aplikační rámec je množina abstraktních a konkrétních tříd tvořících dohromady generický softwarový systém. Umožňují se soustředit na specifické problémy aplikace Možné scénáře: rámce předcházejí vývoji aplikace rámce následují za vývojem aplikace (zobecnění) vývoj rámce současně s aplikací - nevhodné Architektury informačních systémů 9
Vrstvová struktura Logické členění subsystémů aplikace do vrstev (layers) Příklad: prezentace, ukládání dat, logika aplikace Každá vrstva představuje abstrakci s vlastní zodpovědností jednodušší pochopení a použití vrstvy jednodušší vývoj v rámci vrstvy Vyšší vrstvy jsou izolovány od změn v implementaci nižších vrstev Architektury informačních systémů 10
Hierarchická struktura Hierarchické členění aplikace mezi více procesů Nastává uvnitř vrstev Zvyšuje vnitřní složitost vrstev Příklad: J2EE Session Beans Entity Beans Architektury informačních systémů 11
Kombinace přístupů Nejčastější varianta vedoucí ke zjednodušení rozsáhlých a složitých systémů Návrh architektury systému musí předcházet návrhu subsystémů subsystémy se strukturalizují v souladu s architekturou náklady na přepracování aplikace a přeškolení vývojářů při změně architektury Architektury informačních systémů 12
Příklad kombinované architektury UI Framework UI Application User Interface Domain Framework Domain Model Domain Database Framework Data Model Data Database Architektury informačních systémů 13
Architektura J2EE Prohlížeč J2EE Server Servlet JSP Web Container Java Aplikace JRE/J2SE EJB EJB Container JDBC Zdroj: J. Šeda: J2EE,.NET a vývoj rozsáhlých systémů, www.interval.cz Databáze Architektury informačních systémů 14
Součásti J2EE Servlets + JSP webové komponenty a UI JDBC práce s databázemi EJB distribuované komponenty JAXP práce s XML, zasílání zpráv JNDI jmennéa adresářové služby RMI volání vzdálených metod JavaIDL distribuované objekty CORBA JMS asynchronní zpracování zpráv JavaMail zasílání zpráv e-mailem JTA distribuované transakce JCA připojení k jiným systémům (např. SAP) Architektury informačních systémů 15
Architektura.NET Programovací jazyky VB C# C++ JScript Common Language Specification (CLS) ASP.NET Windows Forms ADO.NET XML Common Language Runtime (CLR) Windows Služby COM+ Zdroj: J. Šeda: J2EE,.NET a vývoj rozsáhlých systémů, www.interval.cz Architektury informačních systémů 16
Součásti.NET Framework COM+ distribuované objekty CLR společné knihovny ADO.NET přístup k datům ASP.NET webové aplikace Windows Forms uživatelské rozhraní CLS společné vlastnosti jazyků Programovací jazyky - C#, zásadní změny Architektury informačních systémů 17
Co nás čeká? Prezentační vrstva JSP & Java Servlets ASP.NET Aplikační rámce a knihovny Jakarta Struts Komponenty Enterprise Java Beans Přístup k datům ODBC/JDBC ADO.NET Webové služby SOAP Programovací jazyky Java, C# Workflow, ORM Architektury informačních systémů 18