04.11.2014 Views

elektronická verzia publikácie - FIIT STU - Slovenská technická ...

elektronická verzia publikácie - FIIT STU - Slovenská technická ...

elektronická verzia publikácie - FIIT STU - Slovenská technická ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

108 Štúdie vybraných tém programových a informaných systémov<br />

Veký poet rôznych opisných jazykov je spôsobený tým, že jednotlivé tímy vytvárali<br />

jazyk pre uritú sadu architektúr avšak nikdy sa nepodarilo dostatone pokry všetky<br />

architektúry. Preto bolo potrebné vytvori alší opisný jazyk, ktorý by bol vhodný pre<br />

konkrétnu architektúru.<br />

Ako to bude vidie na konkrétnom príklade opisného jazyka, v niektorých prípadoch<br />

sa opisný jazyk v znanej miere podobá na programovací jazyk. S tým súvisí problémovos<br />

štandardizácie a kombinovania výsledkov. Bolo teda vytvorené veké množstvo<br />

opisných jazykov, ktoré nie je možné vzájomne prepoji.<br />

3.8.3 Príklad opisného jazyka architektúry<br />

V tejto kapitole uvedieme jednoduchý príklad jazyka pre opis architektúry klient-server.<br />

Najprv opíšeme rozhrania servera, potom rozhrania klienta a nakoniec prepojenia medzi<br />

nimi.<br />

Server<br />

V opisnom jazyku je najprv uvedený opis rozhraní, potom opis obmedzení a nakoniec opis<br />

správania. Opis servera obsahuje žiadosti o inicializáciu, ktorú je možné prija prostredníctvom<br />

operácie Initialize(). Prijatie žiadosti o výpoet je zrealizovatené prostredníctvom<br />

operácie Compute(). Súiastka server vráti výsledok prostredníctvom operácie<br />

Result(). Server má definované jedno obmedzenie a na konci v rámci príkladu 3-4 je<br />

opis správania. Pri inicializácii sa vytvorí príslušný objekt. Pri žiadosti o výpoet server<br />

vráti výsledok.<br />

type Server is interface<br />

action in Initialize();<br />

in Compute(Value: Float);<br />

out Result(Value: Float);<br />

constraint<br />

match Start -> Initialize’Call -> (Compute’Call *);<br />

behavior<br />

NewValue : var Float;<br />

begin<br />

(?x in Float) Compute(?x) => Result($NewValue);;<br />

end Server;<br />

Príklad 3-4. Príklad ADL kódu pre server.<br />

Klient<br />

Klient má rozhranie na prijatie výsledku Result(). Klient dokáže inicializova pripojenú<br />

súiastku a zárove môže požiada o vykonanie výpotu Calculate(). Správanie klienta<br />

je definované ako žiados o výpoet.<br />

type Client is interface<br />

action in Result(Value: Float);<br />

out Initialize();<br />

out Calculate(Value: Float);

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!