A TTCN-3 programozási nyelv

Kommunikációs módszerek

A TTCN-3 támogatja az üzenet-alapú és eljárás-alapú üzenetküldés. Ezeket unicast, multicast és broadcast modon is használhatjuk. Továbbá a TTCN-3 megengedi a fogadó portokhoz tartazó verem felső elemének a vizsgálása valamint a portok hozzáférésenek szabályozása ellenőrző műveletekkel

Üzenet-alapú kommunikáció

A TTCN-3-ban az aszinkron kommunikáció üzenetküldések által valósul meg, így tehát az üzenet kiküldés azonnal tovább engedi a vezérlést, míg az üzenet fogadás blokkoló tevékenység.

Üzenetek küldésére a komponensek portjain meghívott send függvény használható, mely képes konstansok, változók valamint konkrét értékekkel rendelkező template-ek kiküldésére.

PCO1.send(<változó vagy konkrét értékű template>);

A komponensek portjain meghívott check, trigger és receive eljárások közül mindhárom blokkoló utasítás. A check megvizsgálja, hogy a sorban legelső üzenet illeszkedik-e a paraméterül megadott template-re, ugyanakkor a sorból nem távolítja el az üzenetet. A trigger ezzel szemben mindig kiveszi a sorból az első üzenetet, megvizsgálja, hogy illeszkedik-e a megadott template-re, amennyiben nem, úgy hibajelzés nélkül eldobja az üzenetet. A receive művelet a fenti két viselkedés ötvözete, megvizsgálja a sorban legelső üzenetet, de amennyiben az nem illeszkedik a megadott template-re úgy az üzenetet a sor elején hagyja.

PCO1.check(<template>); PCO1.trigger(<template>); PCO1.receive(<template>);

Üzenetek fogadásakor mind a beérkező üzenetet, mind pedig az üzenet küldőjét lementhetjük az úgynevezett value/sender redirect technika segítségével:

PCO1.receive(MyTemplate) from PTC1 -> value MsgVar sender Peer {<utasítások>}

Eljárás-alapú kommunikáció

Az eljárás-alapú kommunikáció alapelve, az eljárások hivása távoli entitásokban. A TTCN-3 támogatja a blokkoló és a nem blokkoló eljárás-alapú kommunikációt egyaránt. A blokkoló eljárás-alapú kommunikáció a hívó és a hívott oldalon is egyaránt blokkol, míg a nem blokkoló eljárás csak a hívott oldalon blokkol.

A kommunikációs séma a blokkoló eljárás-alapú kommunikáció esetén a következőkeppen alakul. A hivó egy távoli eljárást hiv a hivott oldalon a call művelet segitségével. A hivott fél elfogodja a hivást a getcall műveletet használva és eredményeképpen vagy valaszol egy reply-al vagy raise-el dob egy kivételt. A hivó normál valasz esetén a getreply művelettel tudja lekezelni a valaszt, kivétel esetén pedig egy catch művelettel.

A nem blokkoló eljárás-alapú kommunikáció esetén a séma annyiban valtozik hogy miután a hivó meghivja a távoli eljárást hiv a hivott oldalon a call művelet segitségével a végrehajtás folytatódik, és nem várja meg a válasz üzenetet vagy a kivételt.

Unicast, multicast és broadcast kommunikáció

TTCN-3 támogat:

Az unicast, multicast és broadcast kommunikáció kifejezések a port kommunikációhoz kapcsolódnak. Ez azt jelenti hogy lehetőség van egy, több, vagy az összes komponenst elérni ami egy adott porthoz csatlakoznak. Ezeket mappelt portok esetén és használhatók. Ebben az esetben a tesztelt rendszer egy, több vagy az összes entitása elérhető el a mappelt porton keresztül.