PNtalk manifest
PNtalk je koncipován jako systém pro modelování, simulaci a prototypování komplexních paralelních
systémů. Primárním vyjadřovacím prostředkem byly zvoleny Objektově orientované Petriho sítě (OOPN),
které kombinují výhody objektové orientace a Petriho sítí. Základní formalismus paradigmatu OOPN je
tvořen vysokoúrovňovou variantou Petriho sítí, které umožňují přirozeným způsobem popsat tok řízení
modelu a paralelismus. Objektová orientace přináší především strukturovanost modelů a možnost vytvářet
jednoduchým způsobem kopie existujících struktur. OOPN přistupují k objektu podobným způsobem jako
v jiných objektově orientovaných paradigmatech s jedním podstatným rozdílem – metoda není popsána
jako sekvence příkazů, ale prostřednictvím vysokoúrovňových Petriho sítí. Při vyvolání metody dojde
k vytvoření instance příslušné sítě, tzn. že se vytvoří její kopie, nad kterou pak probíhá evoluce
dané sítě. OOPN jsou založeny na stejném chápání objektu jako systém Smalltalk. Každý objekt je spojen
instanční vazbou se svou třídou, která může být tvořena inkrementálně s chápáním metody jako
nejmenší kompilační jednotkou. Tento přístup znamená, že chování či struktura třídy může být vytvářena
a modifikována za běhu změnou nebo přídáním metody. Současně s tím, že metodu chápeme jako vzor
struktury a vyvolanou metodu jako kopii této struktury, můžeme uvažovat o dynamických změnách
těchto struktur, ať vzoru či kopie vzoru. Změnou vzoru dosáhneme toho, že kdykoliv v budoucnu dojde
k vyvolání změněné metody, vytvoří se kopie nového vzoru. Již vytvořené kopie zůstanou beze změny.
Kopie vzoru je otevřená podobným dynamickým změnám, tedy může dojít ke změně sémantiky vyvolané metody
za jejího běhu. Změna struktury se nemusí týkat pouze OOPN – zajímavým případem změny struktury je
možnost nahrazení paradigmatu, např. jinou variantou Petriho sítí či sekvenčním výpočtem ve Smalltalku.
Pro architekturu systému s dynamickými změnami struktur se jako jeden z vhodných přístupů jeví
principy otevřených implementací, zejména pak principy reflektivních a metaúrovňových architektur.
Základní ideou otevřené implementace je, že umožňuje aplikaci (v našem pojetí budeme používat pojem
model) nahlížet do vnitřních aspektů objektů, tedy nahlížet za poskytované rozhraní, a ovlivňovat
podle jasného klíče tyto aspekty. Přirozeným prostředím pro aplikaci těchto principů jsou objektově
orientovaná prostředí, protože ta s sebou nesou jasně definovanou strukturu a jasně definované hranice
mezi těmito strukturami. Struktury jsou zapouzdřeny v objektech, které mohou ovlivňovat struktury jiným
objektů pouze prostřednictvím daného a jasného rozhraní (rozhraní bývá někdy označováno také jako protokol).
Metaúrovňové architektury si můžeme představit tak, že ke každému klasickému objektu existuje nějaký
jiný metaobjekt, který poskytuje protokol pro inspekci a změnu vybraných aspektů klasického objektu.
Obecně v metaúrovňových architekturách existují různé úrovně, kde vždy je jedna úroveň řízená jinou
úrovní (tedy metaúrovní z pohledu řízené úrovně). Principy otevřených implementací umožňují nejen
ovlivňovat vlastní struktury objektů, ale i jejich výpočetní chování, tedy jak reagují na zprávy,
jaké další operace se vykonají v důsledku zaslání či přijetí zprávy apod. Možnosti otevřených
implementací závisí na stupni jejich implementace a paradigmatu, nad kterým jsou implementovány.
Architektura systému PNtalk je založena na myšlence co největší otevřenosti s využitím reflektivních
vlastností principů metaúrovňových architektur.
Cílem výzkumu OOPN není pouze vytvořit nástroj pro modelování a simulaci, ale nástroj umožňující
vyvíjený model začlenit do reálného prostředí. Takto pojatý model pak může sloužit jako část prototypu
či přímo aplikace. S využitím vlastnosti dynamických struktur pak lze tento systém chápat jako
platformu (či framework) pro tvorbu modelů a prototypů aplikací s možností vyvíjet vlastní paradigmata
a jednoduchým způsobem je začleňovat do systému. Pak můžeme na takto pojatý systém pohlížet jako
na odlehčenou formu operačního systému (odlehčenou ve smyslu bezpečnosti). Diskutované vlastnosti
otevřených systémů jsou ověřovány v aplikačních doménách modelování a prototypování agentů, umělé
inteligence či softwarového inženýrství při návrhu komplexních systémů.
Link to this Page