RINA
Toimintaperiaate

RINA pohjautuu periaatteeseen, että kaikki tietokoneiden tiedonsiirto on pohjimmiltaan aina ohjelmaprosessien välistä kommunikointia. Tämän IPC-mallin perusrakenne on hajautettu ohjelmapalvelu (Distributed Application Facility eli DAF), jonka rakenne esitetään kuvassa 1. Se koostuu kahdesta tai useammasta ohjelmaprosessista (Distributed Application Process, DAP) jotka yhteistyössä suorittavat jotakin tehtävää. Nämä prosessit kommunikoivat käyttäen sovellusprotokollaa (Common Distributed Application Protocol, CDAP), joka mahdollistaa kahden prosessin vaihtaa keskenään rakenteellista tietoa olioiden muodossa. CDAP tarjoaa prosesseille kuusi eri toimintoa etäprosessin olioiden käsittelemiseen (create, delete, read, write, start ja stop).
Voidakseen kommunikoida, DAF tarvitsee alleen kommunikaatiopalvelua tarjoavan ohjelmiston. Tämän palvelun tarjoaa toinen DAF, joka on erikoistunut IPC-palvelujen tarjoamiseen; siksi tätä erikoistunutta DAFiä kutsutaan nimellä DIF (Distributed IPC Facility, hajautettu IPC-palvelu). DIFin avulla DAP voi avata tietovirran (flow) toiseen DAPiin.
DIF voi kommunikoida suoraan laitteiston kautta, tai se voi käyttää siirtotienä toista, alemman tason DIFiä. Koska jokainen DIF sisältää saman toiminnallisuuden, ei arkkitehtuuri sanele sitä, montako kerrosta verkossa on. Kerrosten määrän valitsee verkon rakentaja, joka voi pinota päällekkäin niin monta kerrosta kuin tarvitsee. Tästä saman kerroksen käyttämisestä useampaan kertaan johtuu termi "rekursiivinen arkkitehtuuri". Alimman kerroksen DIFit kommunikoivat suoraan fyysisen laitteiston kautta, kaikki niiden yläpuolella olevat kerrokset käyttävät siirtotienä allaan olevia DIFejä. Yksi mahdollinen esimerkki RINA-verkon kerrosrakenteesta esitetään kuvassa 2, jossa näkyvät myös IPC-prosessin eri toiminnallisuudet.
Koska jokainen kerros liittyy ylä- ja alapuolellaan oleviin kerroksiin identtisten rajapintojen kautta, ei minkään kerroksen tarvitse olla tietoinen verkon koko rakenteesta. Yksi kerros näkee vain suoraan ylä- ja alapuolellaan olevat kerrokset. RINA-arkkitehtuurissa käytetään kolmenlaisia osoitteita: sovellusnimiä (Application Name), solmuosoitteita (Node Address) ja liityntäosoitteita (Point of Attachment Address). Kukin kerros osoittaa yläpuolellaan olevaa kerrosta sovellusnimellä, toisia saman kerroksen jäseniä solmuosoitteella ja alapuolella olevaa kerrosta liityntäosoitteella. Tietylle kerrokselle sen yläpuolella oleva kerros on siis aina sovellus, riippumatta siitä onko kyseessä käyttäjäsovellus vai toinen DIF. Alapuolella oleva kerros taas on aina liityntäpiste verkkoon, oli kyseessä sitten fyysinen liityntä tai alemman kerroksen DIF.
Käyttäjäsovelluksen pyytäessä tietovirtaa toiseen sovellukseen, kohde valitaan käyttämällä halutun kohdeprosessin sovellusnimeä, ei osoitetta kuten TCP/IP-verkossa. Osoitteet ja portit ovat DIFin sisäistä tietoa, jotka eivät näy sovellusohjelmalle. Uuden IPC-prosessin liittyessä DIFin jäseneksi, sille allokoidaan yleensä dynaaminen osoite. Myös staattisten osoitteiden käyttäminen on mahdollista, mutta se ei ole välttämätöntä edes palvelinkoneiden kohdalla. Portit puolestaan allokoidaan dynaamisesti tietovirran alustuksen yhteydessä. RINA-arkkitehtuurissa ei siis ole globaaleja osoitteita, eikä niin kutsuttuja "hyvin tunnettuja portteja". Ainoa tarvittava tieto yhteyden saamiseen on sovellusnimi, eikä senkään tarvitse olla globaali. Sovellusnimi voidaan julkaista rajoitetulla näkyvyysalueella, jos sovellus ei ole tarkoitettu kaikkien verkon käyttäjien käyttöön.
Voidakseen kommunikoida keskenään, sovellusten on oltava liittyneenä samaan DIFiin. Tietovirran avaavan sovelluksen on joko liityttävä johonkin DIFiin jossa kohdesovellus on rekisteröityneenä, tai muodostettava uusi DIF johon kohdesovellus myös suostuu liittymään.