Komponentový návrh SW

Podobné dokumenty
1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Úvod do Web Services

Webové služby. Martin Sochor

Architektura orientovaná na služby Návrh orientovaný na služby. Ing. Petr Weiss. VUT v Brně,, FIT, UIFS

Pokročilé Webové služby a Caché security. Š. Havlíček

Požadavky pro výběrová řízení TerraBus ESB/G2x

SOAP & REST služby. Rozdíly, architektury, použití

Semináˇr Java X J2EE Semináˇr Java X p.1/23

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

Common Object Request Broker Architecture

WCF. IW5 - Programování v.net a C# WCF

Softwarové komponenty a Internet

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

TÉMATICKÝ OKRUH Softwarové inženýrství

Michal Krátký, Miroslav Beneš

Předmluva 11. Poděkování 11 O autorech 12 Úvodem 12 Komu je tato kniha určena 13 Jak byste měli tuto knihu číst 13 Web 14

RESTful API TAMZ 1. Cvičení 11

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Tvorba informačních systémů

Architektury informačních systémů

Architektury informačních systémů

Obsah. Zpracoval:

Analýza a Návrh. Analýza

InternetovéTechnologie

Webové služby a ontologie

Unifikovaný modelovací jazyk UML

Business Intelligence

SOA a Cloud Computing

Vnořený Ensemble nové integrované aplikace. Martin Zubek, Account manager

Architektury Informačních systémů. Jaroslav Žáček

Co je to Grid. Martin Kuba Superpočítačové Centrum Brno Seminář CESNET, Třešť

Dodávka systému pro Integrační server

(Enterprise) JavaBeans. Lekce 7

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Servisně orientovaná architektura a její aplikace v systémech sledování a řízení výroby

Tisková řešení. EIP přidaná hodnota, kterou přidáte Vy sami. Září Aleš Povolný, Xerox CZ

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

Referenční rozhraní. Jiří Kosek. Ministerstvo informatiky ČR. ISSS 25. března 2003

Service Component Architecture a komponenty Oracle SOA Suite

Tvorba informačních systémů

Využití JBoss Fuse ve skandinávské energetice

PODMÍNKY POSKYTOVÁNÍ PŘÍSTUPU K PORTÁLU NAMĚŘENÝCH DAT POMOCÍ WEBOVÝCH SLUŽEB SPOLEČNOSTI ČEZ DISTRIBUCE, A. S.

Web Services na SOAP

Platforma J2EE. Lukáš Zapletal liberix.cz. Platforma Java 2 Enterprise Edition

ATS Global B.V. ATS Bus.

ARCHITEKTURA ORIENTOVANÁ NA SLUŽBY

TÉMATICKÝ OKRUH Softwarové inženýrství

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

Architektury Informačních systémů. Jaroslav Žáček

RESTful web service v Javě

Microsoft Office 2003 Souhrnný technický dokument white paper

Vzdálený přístup k počítačům

EMBARCADERO TECHNOLOGIES. Jak na BYOD chytře? Možnosti zapojování různých mobilních zařízení do podnikových informačních systémů.

SYSTÉM PRO KONFIGURACI KOMUNIKAČNÍCH TERMINÁLŮ A VIZUALIZACI STAVOVÝCH DAT Z KOLEJOVÝCH VOZIDEL

Úvod do tvorby internetových aplikací

Nastavení provozního prostředí webového prohlížeče pro aplikaci

Orbit. Workflow a Docflow System

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Popis B2B rozhraní pro elektronickou neschopenku

PŘÍLOHA C Požadavky na Dokumentaci

PROPOJOVÁNÍ POČÍTAČOVÝCH APLIKACÍ

PODMÍNKY POSKYTOVÁNÍ PŘÍSTUPU K PORTÁLU NAMĚŘENÝCH DAT POMOCÍ WEBOVÝCH SLUŽEB SPOLEČNOSTI ČEZ DISTRIBUCE, A. S.

Vývoj Internetových Aplikací

MASSIV. Middleware pro tvorbu online her

Modelem řízený vývoj. SWI 1 Jan Kryštof

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

C# - Databáze úvod, ADO.NET. Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí

Příloha: Dodatečné informace, včetně přesného znění žádosti dodavatele o dodatečné informace

Vývoj SW pro mobilní zařízení s ios. Petr Hruška, Skymia s.r.o. Teorie a praxe IP telefonie,

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:

ÚVOD DO SOFTWAROVÉHO INŽENÝRSTVÍ

UAI/612 - Cloudová Řešení. Návrh aplikací pro cloud

Technologie Java. Jaroslav Žáček

Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU

Modelování webových služeb v UML

Petr Pavlinec, Kraj Vysočina Roman Kratochvíl, ICZ a. s. 2. dubna 2012 Konference ISSS 2012

STORK Secure Identity Across Borders Linked

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

KIV/PIA 2013 Jan Tichava

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz

UML. Unified Modeling Language. Součásti UML

WWW technologie. HTTP protokol

Systémy pro tvorbu digitálních knihoven

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

Zhodnocení architektury podniku. Jiří Mach

Tvorba informačních systémů

7 Jazyk UML (Unified Modeling Language)

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

SPRÁVA ZÁKLADNÍCH REGISTRŮ PODMÍNKY PRO PŘIPOJENÍ AGENDOVÝCH INFORMAČNÍCH SYSTÉMŮ DO ISZR. verze 2.00

Cloudová Řešení UAI/612

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

Případová studie O2 SVĚT. Microsoft Azure zefektivňuje řízení prodejní sítě v O2 Slovakia

Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging

Webové mapové služby. Lukáš Birka

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Lotus Quickr - ECM Integrace s LD/LN aplikacemi. Ing. Josef Homolka VUMS Legend

2 Životní cyklus programového díla

Specifikace rozhraní. Oznamovací povinnost podle zákona č. 307/2013 Sb., ve znění pozdějších předpisů. Martin Falc, SW architekt.

Nové vývojové nástroje i5/os Rational Developer for System i V7.1

Transkript:

Komponentový návrh SW

Komponentový návrh SW Komponenty jsou kompletně specifikované pomocí interface Jejich funkčnost je nezávislá na programovacím jazyku a mohou být integrované do toho samého systému Poskytují velké množství standartních služeb, tak aby další vývoj byl co nejvíc minimalizovaný Mnoho standartů podporující komponenty: EJB, COM,.NET, CORBA CCM V praxi těžko proveditelné aby např..net a J2EE spolupracovali dohromady => proto komponenta jako služba (SOA)

Charakteristiky komponent Standardized - musejí dodržovat standart (metadata, interfaces, dokumentace, nasazení) Independent - mělo by být možné sloučit a nasadit komponentu bez nutnosti dalších komponent Composable - interakce přes interface, externí přístup k informacím o sobě samém Deployable - operuje jako samostatná entita Documented musí být plně dokumentovaná

Komponenta jako service povider Komponenta je nezávislá funkční entita, nemusí být kompilovaná před tím, než je použitá Všechny služby komponenty jsou nabízené prostřednictvím interface a všechny interakce jsou prováděné pomocí interface Interface je realizované pomocí parametrizovaných operací a vnitřní stav není nikdy dostupný

Charakteristiky komponent Komponenty mají 2 interfacy: Provides - služby nabízené komponentou (API) Requires služby, které musí být poskytnuté jinými komponentami Komponenty jako služba jsou samostatné entity -> nemají required interface

Modely komponent Komponentový model je definice standartů pro implementaci komponenty, dokumentaci a nasazení INTERFACES - Model specifikuje jak mají být definované interfacy a elementy, které mají být součásti definice interface USAGE vzhledem k tomu, že komponenty budou distribuované a přístup vzdálený musejí mít unikátní název, definice poskytovaných služeb DEPLOYMENT specifikace jak mají být komponenty nasazené tak, aby byly nezávislé entity

Middleware Model komponent je základem pro middleware, který dodává veškerý support pro běh. Implementace komponentového modelu poskytuje: Služby dané platformy, které umožňují komponentám komunikovat Podpůrné služby využíváné různými komponentami Komponenty jsou nasazované v tzv.containeru to je množina interface

CBSE procesy Hlavní rozdělení: Vývoj pro znovupoužití (for reuse) vývoj komponent nebo služeb, které budou znovupoužité jinými systémy Vývoj s znovupoužitím (with reuse) vývoj nových aplikací s využitím existujících komponent a služeb

CBSE pro znovu-použití Vývoj komponent Komponenty pro specifické prostředí musejí být většinou zoobecněné, aby mohli být znovu-použíté Komponenty jsou znovu-použitelné většinou tehdy, když jsou asociované s nějakým stabilním business objektem Čím více je interface obecné, tím více se může znovupoužít, ale tím hůř je také použitelné

Změny pro znovupoužití Odstranit metody, které se příliš týkají dané aplikace Změnit názvy a udělat je více obecné Přidat metody, které rozšíří pokrytí jednotlivých použití Udělat konzistentní řešení vyjímek Přidat konfigurační rozhranní pro nastavení komponenty Integrovat vyžadované komponenty tak, aby se zredukovali závislosti

Řešení výjimek Komponenta by neměla zpracovávat výjimky sama, protože každá aplikace může mít jiné požadavky na jejich řešení Raději definovat jaké vyjímky mohou nastat a ty publikovat V praxi je potřeba najít rozumný kompromis, aby interface nebylo moc komplikované

Komponenty z původních systemů Existující systémy, které řeší nějaký problém nemusejí být nutně přepracovány, ale pokud dobře fungují mohou být využity jako komponenta Využití wraperu a implementování provides a requires interface => ušetření nákladů

Znovu-použitelné komponenty Vývoj -> dražší Mohou být větší, než specifická komponenta a také mohou spotřebovat více výpočetního času Správa komponent: Předem je potřeba se rozhodnou, zda komponenta má být ve formě služby nebo raději jako balíček Udržovat informace o použití komponenty a jejích verzích Certifikace komponent (někdo jiný, než vývojář ověří kvalitu)

CBSE s znovu-použitím Snaží se nalézt a integrovat znovupoužitelné komponenty Většinou hlédá kompromis mezi ideálním splněním požadavků a službami nabízenými komponentami Kroky: Obecné požadavky Hledání komponent a úprava požadavků podle dostupné funkcionality Znovu hledání, jestli neexistují lepší komponenty splňující upravené požadavky Spojování komponent tak aby vytvořili požadovaný systém

Identifikace vhodných komponent Důvěryhodnost důvěryhodný dodavatel Požadavky Validace specifikace komponenty nemusí být dostatečná Nechtěná funkcionalita Proto je potřeba vytvořit několik test case pro danou komponentu

Typy kompozice komponent Sekvenční komponenty pracují sekvenčeně využíváme provides interface každé komponenty Hierarchická jedna komponenta volá služby jiné využíváme requires interface Doplňková interfacy několika komponent jsou spojeny a je vytvořená nová komponenta využíváme provides i requires

Nekompatibilní interface Parametry - operace mají stejný název, ale jiné parametry Operace názvy operací v propojovaných interface jsou různé Nekompletnost operací provides interface jedné komponenty je podmnožinou requires interface jiné Problém nekompatibility zkoušíme vyřešit tak, že se pokusíme sladit jednotlivé interface komponent - adaptér

SOA Service oriented architecture Web services: Poskytovatel web.služby má možnost vyvinout specializované služby a ty nabízet různým uživatelům a organizacím Podstata je v nezávislosti aplikace a web.služby SOA Distribuované systémy, kde komponenty jsou samostatné služby Služby mohou pracovat na různých platformách u různých providerů Pro komunikaci slouží standartní protokoly

SOA Service oriented architecture

Výhody SOA Služby mohou být provozovaní lokálně nebo outsourcované externím providerům Služby jsou nezávislé na program.jazyku Je možné využít vyvinuté systémy a udělat z nich WS - $$$ a další

Důležité standardy SOA SOAP (Simple Object Access Protokol) Standard pro výměnu zpráv, který podporuje komunikaci služeb WSDL (Web Service Definition Language) Standard pro definovaní interface služeb a jejich bindování WS-BPEL (WS-Business Process Execution Language) Standard pro workflow jazyky používaný pro kompozici služeb

WSDL Které operace jsou poskytovány, formát jejich zpráv Přístup k službě mapování abstraktního interface na konkrétní protokol Kde se služba nachází, URI (Unified resource identifier)

RESTful web services Současné standardy pro web.služby jsou kritizované pro tězkopádnost REST (Representational State Transfer) je arch. styl založený na přenosu reprezentace zdrojů ze serveru na klienta GET, PUT, POST, DELETE Jednoduší než SOAP/WSDL, jediný standard je HTTP

Nalezení kandidáta na WS Je služba asociována s jednou logickou entitou, která je používaná ve více business procesech? Je úkol v rámci organizace vykonáván více lidmi? Je služba nezávislá? Udržuje služba svůj stav? Vyžaduje databázi? Může být služba využívaná mimo organizaci? Mají uživatelé služby různé nefunkční požadavky?

Problémy testování WS Externí služby mohou být modifikovány providerem -> nevalidní testy Ne-funkční chování služby se může lišit podle zátěže Pokud se platí za využití služby testování může být drahé