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 Úč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 3. Věda a umění návrhu architektury 2 systému Připravit se na změny požadavků nebo přístupů k implementaci Architektury informačních systémů 3 Architektury informačních systémů 4 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 1
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 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ů 5 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 Ú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ů 7 Architektury informačních systémů 8 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 2
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é 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ů 9 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 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ů 11 Architektury informačních systémů 12 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 3
Příklad kombinované architektury Architektura J2EE UI Framework UI Application User Interface Prohlížeč J2EE Server Servlet JSP Framework Database Framework Model Data Model Data Java Aplikace JRE/J2SE Web Container EJB EJB Container JDBC Database Zdroj: J. Šeda: J2EE,.NET a vývoj rozsáhlých systémů, www.interval.cz Databáze Architektury informačních systémů 13 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) Architektura.NET Common Language Specification (CLS) ASP.NET ADO.NET Windows Programovací jazyky VB C# C++ JScript Windows Forms XML Common Language Runtime (CLR) 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ů 15 Architektury informačních systémů 16 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 4
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 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ů 17 Architektury informačních systémů 18 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 5