návrh rozhraní a komponent

Transkript

návrh rozhraní a komponent
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é

Podobné dokumenty

sylabus_2015_05 (967450) - Petra Marikova Vlckova

sylabus_2015_05 (967450) - Petra Marikova Vlckova Vývoj nekrálovských hrobek ve Staré říši (OK) vychází ze stavebních tradic Raně dynastického období (EDP): mastaby a skalní hrobky – oba typy hrobek se používaly současně. Mastaba (obr. 1) = hrobka...

Více

High Tech Aquarium Ecology

High Tech Aquarium Ecology spínací zásuvky a ventily TUNZE®. Dále pak měří a reguluje teplotu a hodnotu pH. Poskytuje komfortní nastavení prostřednictvím webového rozhraní a pomocí jakéhokoliv koncového zařízení umožňujícího...

Více

podzim zima fall winter w arm peace.cz w a r m p e a c e . c z

podzim zima fall winter w arm peace.cz w a r m p e a c e . c z Naší planety se bohužel žádná záruka netýká a  tak se řada z nás snaží nezadržitelný odklon lidského života od přírodního chodu světa alespoň zpomalit. Proto v  naší kolekci již čtvrtou sezonu nach...

Více

Prezentace_Modernizace ODok

Prezentace_Modernizace ODok Od vzniku ODok nastala řada změn Ne všechny procesy byly pokryty IT službami Revize existujících IT služeb na základě nového modelu legislativních procesů

Více

1 - Gigabyte

1 - Gigabyte Varování ●● Můžete využít této zálohy pomocí této aplikace v případě ztráty nebo poškození zařízení ●● Můžete si nástroj pro obnovení systému přehrát na USB disk a obnovit si takto jakékoliv zaříze...

Více

Sexuální dysfunkce u českých žen

Sexuální dysfunkce u českých žen Nové pojetí vychází ze čtyř kategorií vymezených v DSM-IV: poruchy touhy, vzrušení, orgasmu a bolesti, nicméně k těmto kategoriím jsou nově přiřazeny dimenze subjektivní spokojenosti, stresu a přít...

Více