Formální sémantika komponentově orientovaných systémů Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Seminář UIFS 12. 3. 2007 Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 1 / 23
Obsah 1 Informační systémy Architektura Komponenty Evoluce architektury 2 3 Předpoklady Struktura Formalismus Plány a možnosti Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 2 / 23
Obsah Informační systémy Architektura Komponenty Evoluce architektury 1 Informační systémy Architektura Komponenty Evoluce architektury 2 3 Předpoklady Struktura Formalismus Plány a možnosti Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 3 / 23
Informační systémy Informační systémy Architektura Komponenty Evoluce architektury Současné ISs je většinou vhodné co nejvíce dekomponovat. vývoj systému (řízení projektu, inkrementální cyklus, FDD, testy, TDD, ale složitější integrace) struktura organizace (autonomní oddělení, fyzické rozmístění, postupné zavádění, vlastní IT) zavedené systémy (adaptace existujících systémů a procesů, daná rozhraní, externí systémy, více dodavatelů) technologie a bezpečnost (heterogenní prostředí, off-line části, vlastnosti sítě, zálohy a dostupnost) finance a marketing (prodej po modulech, customizace, delegace funkčnosti modulů, nákup řešení) Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 4 / 23
Softwarová architektura Informační systémy Architektura Komponenty Evoluce architektury Definice (Softwarová architektura, IEEE-Std-1471-2000) základní organizace SW systémů zahrnující popis jeho komponent, jejich chování, vztahů a vztahů s okolím (tj. rozhraní), a principů jejich návrhu a vývoje. SW systémy složené ze spolupracujících komponent, softwarové konfederace a aliance, části mezi sebou komunikují zasíláním zpráv (asynchronní) pomocí middle-ware, brány jako adaptéry připojující již existující (uzavřené) části. Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 5 / 23
Informační systémy Architektura Komponenty Evoluce architektury Architektura jako systém komponent Definice (Komponentový model) konkrétní metamodel komponentově-orientovaných softwarových architektur zahrnující pravidla pro chování komponent a konektorů, jejich vztahů (konfigurace), pravidla pro změny v rámci dynamické architektury (rekonfigurace), a definici jazyka pro popis takových architektur. komponenta je samostatná funkčně-orientovaná část systému s definovaným rozhraním (primitivní nebo složená), konektor je entita realizující komunikaci mezi dvěma a více spolupracujícími komponentami, konfigurace je konkrétní propojení komponent a konektorů, které tvoří daný SW systém. principy znovupoužitelnosti a rozložitelnosti (hierarchická kompozice) Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 6 / 23
Informační systémy Architektura Komponenty Evoluce architektury Komponenta vs. Objekt vs. Služba komponenta je abstrakce nad pojmenovanými částmi prostoru rozmístění prvků architektury (a deployment space) (má jméno, ale ne identitu, poskytuje stále stejné služby, nezávislá na umístění, nemá z vnějšku pozorovatelný stav, definuje poskytované a požadované vazby) objekt je abstrakce na identifikovatelnými částmi stavového prostoru (a state space) (má jedinečnou identitu, je instancí třídy, zapouzdřuje proměnné, tj. stav, a operace nad nimi) služba je abstrakce nad pojmenovanými funkčně orientovanými požadavky (business requirements) (založena na modelu poskytovatel-spotřebitel, aktivita souštěná jako odpověd na požadavek nebo událost a poskytující nějaký výsledek) společné vlastnosti: jsou to abstrakce, zapouzdřují, mají rozhraní Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 7 / 23
Informační systémy Architektura Komponenty Evoluce architektury Evoluce architektury a dynamické systémy statická architektura pevná struktura daná při návrhu systému, dynamická architektura struktura se vyvíjí za běhu, části systému vznikají a zanikají podle pravidel daných při návrhu systému, mobilní architektura části systému se přesouvají za běhu (mění vztahy s okolím) podle funkčních požadavků (plně dynamická architektura). V dynamických architekturách je důležitý middle-ware. Např. použití ve výpočetních a datových GRIDech, podpora komponentových trhů. Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 8 / 23
Obsah 1 Informační systémy Architektura Komponenty Evoluce architektury 2 3 Předpoklady Struktura Formalismus Plány a možnosti Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 9 / 23
Komponentové modely kompoentové modely definují syntaxi, sémantiku a kompozici komponent, existuje celá řada v současnosti používaných komponentových modelů, např. OMG: CORBA Component Model (CCM), Object Management Architecture (OMA) Sun: Enterprise JavaBeans (EJB) Microsoft: Component Object Model (COM) technologie zaměříme se na současné komponentové modely s formální sémantikou, konkrétně : platforma pro SW komponenty (Distributed Systems Research Group, MFF UK) : komponentový model, implementace, nástroje (France Telecom R&D, INRIA) Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 10 / 23
struktura komponenta (component) může být instance šablony (template), komponenta/šablona definována pomocí rozhraní, rámce (frame) a architektury, rámec je black-box pohled na komponentu (specifikace), architektura je grey-box pohled na komponentu (implementace), může být primitivní nebo složená, složená srchitektura je řízený systém sub-komponent (by controller), rozhraní komponent jsou typů poskytováno (provided) a požadováno (required), spojení komaptibilních rozhraní jsou typů binding (p2r), delegating (p2p), subsuming (r2r) nebo exempting (nepoužité), spojení realizováno přes implicitní nebo explicitní konektory, explicitní konektor je speciální komponenta s rámcem a architekturou. Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 11 / 23
formální popis component definition language (CDL) specifikace komponent, rozšíření OMG IDL, behaviour protocols (BP) chování komponent, volání metody vytváří událost (event), notace!m,?m,!m a?m, pro odeslání a příjem volání metody a jejího výsledku, sekvence událostí vytváří stopu (trace), např. <!m ;?m >, BP je rozšířený regulární výraz 1 definující určitou množinu stop, protocol conformance relation mezi protokoly rámce a architektury zajišt uje odpovídající chování, consent operator pro kompozici protokolů (spojených) komponent definuje stopy vedoucí k chybě. 1 asi 13 operátorů vč. prokládané a sekvenční paralelní kompozice, kompozice se synchronizací přes množinu událostí, omezení platnosti událostí, atd. Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 12 / 23
závěr /DCUP umožňuje zavedení nové verze implementace komponenty za běhu (dynamic update), kontrola kompatibility implementace se specifikací komponenty, 2.0 (od roku 2006) dynamická rekonfigurace, strukturované řídící části komponent, podpora různých komunikačních stylů, přizpůsobení formalismu? mobilita? ISIM 07 Hnětynka, P., Bureš, T.: Advanced Features of Hierarchical Component Models. Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 13 / 23
struktura komponenta tvořena řadičem (controller) a obsahem (content), obsahem složené komponenty je řízený systém sub-komponent, sub-komponenta může být sdílena několika komponentami, komponenta komunikuje pomocí operací na vnějších rozhraních (s okolím) a vnitřních rozhraních (se sub-komponentami), rozhraní jsou typů server/klient (poskytováno/požadováno) a řídící/funkční (podle účelu), řídící rozhraní slouží k introspekci, řízení konfigurace (atributů, spojení a obsahu) a řízení životního cyklu. spojení komaptibilních rozhraní jsou typů normální (c2s), export (s2s) a import (c2c), spojení realizováno přes primitivní nebo složené konektory, složený konektor je speciální komponenta. Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 14 / 23
formální popis (Fractive) parametrised labelled transition system (plts) chování primitivní komponenty, parametrised synchronisation network (pnet) chování složené komponenty, plts je LTS s akcemi s parametry na přechodech, množinou parametrů systému a proměnými pro každý stav, přechod obsahuje také stráž (výraz nad proměnými a parametry) a množinu výrazů modifikující proměnné cílového stavu, pnet je operátor paralelní kompozice komponent se synchronizací nad parametrizovanými sortami (parametrised sorts), množinami pozorovatelných akcí pltss sub-komponent, synchronizaci zajit uje transduktor (transducer) plts mající jako akce synchronizační vektory tvořeny akcemi pltss sub-komponent, na změnu stavu transduktoru pak lze navázat určitou dynamickou rekonfiguraci architektury systému. Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 15 / 23
závěr je rozsáhlý projekt založený na specifikaci komponentového modelu, 7 implementací (Java,.NET, SmallTalk, C,... ), 8 knihoven komponent, nástroje (ADL, BP checker, GUI,... ). formální popis pouze pro implementaci ProActive (distribuované asynchronní volání), striktní oddělení funkční a řídící části komponenty, nepopisuje mobilitu. Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 16 / 23
Obsah Předpoklady Struktura Formalismus Plány a možnosti 1 Informační systémy Architektura Komponenty Evoluce architektury 2 3 Předpoklady Struktura Formalismus Plány a možnosti Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 17 / 23
Předpoklady Struktura Formalismus Plány a možnosti Předpoklady pro mobilní architekturu dynamická rekonfigurace změna struktury systému komponent a konektorů, mobilita komponent možnost kopie a přesunu komponent do nových umístění, kombinace řídících a funkčních rozhraní zapojení rekonfigurace a mobility do výpočtu, vhodný formalismus podpora kompozice, rekonfigurace, mobility, nejlépe přímo vlastnostmi formalismu. Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 18 / 23
Předpoklady Struktura Formalismus Plány a možnosti Struktura komponentového modelu komponenta tvořena specifikací a implementací, implementace primitivní a složená ze specifikací sub-komponent, rozhraní poskytované a požadované, funkční a řídící, řídící rozhraní poskytuje introspekci, balení a rozbalení komponenty (mobilita), kontrolu životního cyklu, vznik komponenty kopií ze vzoru (šablony), dopravením do místa umístění a napojením na okolí, kopie komponenty zachová její implementaci, přenos komponenty je přenosem specifikace, tzn. přenosem reference na implementaci komponenty, spojení přímá nebo pomocí konektorů (speciálních komponent). Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 19 / 23
Předpoklady Struktura Formalismus Plány a možnosti Formalismus komponentového modelu π-kalkul (kalkul mobilních procesů) = procesy a jména, komponenta s rozhraním jako parametrický proces, paralelní kompozice funkční a řídící části, spojení je paralelní kompozice komponent přes proces konektoru (synchronizce komponent), mobilita komponent pomocí π-kalkulu vyššího řádu nebo napojením předávané komponenty do jiného kontextu (předáním jejích rozhraní), garance kompatibility implementace se specifikací pomocí relací bisimulace, návaznost na jazyk pro popis architektury π-adl z projektu ArchWare a jeho nástroje. Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 20 / 23
Další vývoj Předpoklady Struktura Formalismus Plány a možnosti přesná specifikace, vzorové řešení pro klíčové vlastnosti, uplatnění ve vývojových cykech, kompletní specifikace v π-adl a použítí jeho nástrojů, přenesení sémantiky na některou implementaci komponentového modelu. Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 21 / 23
komponentové modely poskytují rámce pro vývoj komopnentově orientovaných IS, velký počet různých komponentových modelů, metodika CBD hojně rozšířená, několik modelů s formální sémantikou, chybí podpora dynamických a mobilních architektur. Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 22 / 23
Dodatek Literatura Literatura Clemens Szyperski. Component Software: Beyond Object-Oriented Programming. Addison Wesley Professional, second edition, November 2002. Kung-Kiu Lau and Zheng Wang. A taxonomy of software component models. In Proceedings of the 31st EUROMICRO Conference on Software Engineering and Advanced Applications, pages 88 95. IEEE Computer Society, 2005. František Plášil, Dušan Bílek, and Radovan Janeček. /DCUP: Architecture for component trading and dynamic updating. In 4th International Conference on Configurable Distributed Systems, pages 43 51, Los Alamitos, CA, USA, May 1998. IEEE Computer Society. Tomáš Bureš, Petr Hnětynka, and František Plášil. 2.0: Balancing advanced features in a hierarchical component model. In Proceedings of SERA 2006, pages 40 48, Seattle, USA, August 2006. IEEE Computer Society. Tomás Barros. Formal specification and verification of distributed component systems. PhD thesis, Université de Nice INRIA Sophia Antipolis, November 2005. ArchWare project. http://www.arch-ware.org/, November 2006. Marek Rychlý Formální sémantika komponentově orientovaných systémů Seminář UIFS, 12. 3. 2007 23 / 23