Programavimas

Jini: Nauja technologija tinklui tinklui

Ankstesnis 1 2 2 puslapis 2 puslapis iš 2

Jini kontekste

Tradiciškai operacinės sistemos buvo kuriamos darant prielaidą, kad kompiuteris turės procesorių, šiek tiek atminties ir diską. Paleidus kompiuterį pirmiausia reikia ieškoti disko. Jei jis neranda disko, jis negali veikti kaip kompiuteris. Tačiau vis dažniau kompiuteriai rodomi kitokiu pavidalu: kaip įterptieji įrenginiai, turintys procesorių, šiek tiek atminties ir tinklo ryšį, bet neturintys disko. Pirmas dalykas, kurį mobilusis telefonas daro, kai, pavyzdžiui, įkeliate, yra telefono tinklo ieškojimas. Jei jis neranda tinklo, jis negali veikti kaip mobilusis telefonas. Ši aparatinės įrangos tendencija, nuo disko orientuoto į tinklą, paveiks tai, kaip mes tvarkome savo programinę įrangą, ir būtent čia atsiranda „Jini“.

„Jini“ yra bandymas permąstyti kompiuterio architektūrą, atsižvelgiant į didėjančią tinklo svarbą ir procesorių gausėjimą įrenginiuose, kuriuose nėra disko. Šie įrenginiai, kuriuos gaus daugybė skirtingų tiekėjų, turės sąveikauti tinkle. Pats tinklas bus labai dinamiškas - įrenginiai ir paslaugos bus reguliariai pridedami ir pašalinami. „Jini“ pateikia mechanizmus, leidžiančius sklandžiai pridėti, pašalinti ir rasti prietaisus ir paslaugas tinkle. Be to, „Jini“ pateikia programavimo modelį, kuris palengvina programuotojams, kad jų prietaisai kalbėtų tarpusavyje.

Remdamasis „Java“, objektų nuoseklinimo ir RMI, leidžiančiais objektais judėti tinkle iš virtualios mašinos į virtualią mašiną, „Jini“ bando išplėsti objektinio programavimo pranašumus į tinklą. Užuot reikalavęs įrenginių pardavėjų susitarti dėl tinklo protokolų, per kuriuos jų įrenginiai gali sąveikauti, Jini leidžia prietaisams kalbėtis tarpusavyje per sąsajas su objektais.

Kas yra Jini?

„Jini“ yra API ir tinklo protokolų rinkinys, kuris gali padėti sukurti ir įdiegti paskirstytas sistemas, kurios yra sutvarkytos kaip paslaugų federacijos. A paslaugą gali būti viskas, kas yra tinkle ir yra pasirengusi atlikti naudingą funkciją. Aparatinė įranga, programinė įranga, ryšių kanalai - net ir patys žmonių vartotojai - gali būti paslaugos. Pavyzdžiui, „Jini“ įgalintas diskų įrenginys gali pasiūlyti „saugojimo“ paslaugą. „Jini“ palaikantis spausdintuvas galėtų pasiūlyti „spausdinimo“ paslaugą. A paslaugų federacija, tada yra paslaugų rinkinys, šiuo metu prieinamas tinkle, kurį klientas (turint omenyje programą, paslaugą ar vartotoją) gali sujungti, kad padėtų jam pasiekti kokį nors tikslą.

Norėdami atlikti užduotį, klientas kreipiasi į paslaugų pagalbą. Pvz., Kliento programa gali įkelti paveikslėlius iš vaizdų saugojimo paslaugos į skaitmeninį fotoaparatą, atsisiųsti paveikslėlius į nuolatinę saugojimo paslaugą, kurią siūlo disko įrenginys, ir nusiųsti vaizdų miniatiūrų dydžio puslapį į spausdinimo tarnybą. spalvotas spausdintuvas. Šiame pavyzdyje kliento programa sukuria paskirstytą sistemą, susidedančią iš savęs, vaizdų saugojimo paslaugos, nuolatinės saugojimo paslaugos ir spalvų spausdinimo paslaugos. Šios paskirstytos sistemos klientas ir paslaugos kartu atlieka užduotį: iškrauna ir saugo vaizdus iš skaitmeninio fotoaparato ir atsispausdina miniatiūrų puslapį.

Žodžio idėja federacija yra pagrįstas tinklo „Jini“ vaizdu - nėra centrinės kontroliuojančios institucijos. Kadangi nė viena paslauga nėra atsakinga, visų tinkle prieinamų paslaugų rinkinys sudaro federaciją - grupę, sudarytą iš vienodų bendraamžių. Vietoj centrinės institucijos „Jini“ vykdymo laiko infrastruktūra tik suteikia galimybę klientams ir tarnyboms rasti vienas kitą (per paieškos paslaugą, kurioje saugomas šiuo metu galimų paslaugų katalogas). Po to, kai tarnybos suranda viena kitą, jos yra savarankiškos. Klientas ir jo teikiamos paslaugos atlieka savo užduotį nepriklausomai nuo „Jini“ vykdymo laiko infrastruktūros. Jei „Jini“ paieškos tarnyba užstringa, bet kurios paskirstytos sistemos, sujungtos per paieškos tarnybą, kol ji užstrigo, gali tęsti savo darbą. „Jini“ apima net tinklo protokolą, kurį klientai gali naudoti ieškodami paslaugų, jei nėra paieškos paslaugos.

Kaip veikia Jini

Jini apibrėžia a vykdymo laiko infrastruktūra tinkle esantis mechanizmas, leidžiantis pridėti, pašalinti, rasti ir pasiekti paslaugas. Vykdymo infrastruktūra yra tinkle trijose vietose: tinkle esančiose paieškos tarnybose; paslaugų teikėjams (pvz., „Jini“ įgalintuose įrenginiuose); ir klientuose. Paieškos paslaugos yra pagrindinis „Jini“ sistemų organizavimo mechanizmas. Kai tinkle tampa prieinamos naujos paslaugos, jos registruojasi per paieškos paslaugą. Kai klientai nori rasti paslaugą, kuri padėtų atlikti kokią nors užduotį, jie kreipiasi į paieškos tarnybą.

Vykdymo infrastruktūra naudoja vieną tinklo lygio protokolą, vadinamą atradimasir du objekto lygio protokolai, vadinami prisijungti ir peržiūra. „Discovery“ leidžia klientams ir tarnyboms rasti paieškos paslaugas. Prisijungimas suteikia paslaugai galimybę užregistruoti save paieškos tarnyboje. „Lookup“ leidžia klientui pateikti užklausą dėl paslaugų, kurios gali padėti klientui pasiekti savo tikslus, paieškos paslaugos.

Atradimo procesas

„Discovery“ veikia taip: įsivaizduokite, kad turite „Jini“ suderinamą diskų įrenginį, kuris siūlo nuolatinę saugojimo paslaugą. Kai tik prijungiate diską prie tinklo, jis transliuoja a pranešimas apie dalyvavimą numetant daugiaadresį paketą į gerai žinomą uostą. Pranešime apie dalyvavimą yra IP adresas ir prievado numeris, kur su disko įrenginiu galima susisiekti per paieškos tarnybą.

Paieškos paslaugos stebi gerai žinomą uosto buvimo pranešimų paketus. Kai paieškos tarnyba gauna pranešimą apie dalyvavimą, ji atidaro ir tikrina paketą. Pakete yra informacijos, leidžiančios paieškos tarnybai nustatyti, ar ji turėtų susisiekti su paketo siuntėju. Jei taip, jis susisiekia tiesiogiai su siuntėju, užmegzdamas TCP ryšį su iš paketo ištrauktu IP adresu ir prievado numeriu. Naudodama RMI, paieškos tarnyba siunčia objektą, vadinamą a paslaugų registratorius, tinkle iki paketo siuntėjo. Paslaugų registratoriaus objekto tikslas - palengvinti tolesnį bendravimą su paieškos tarnyba. Remdamasis šio objekto metodais, pranešimų paketo siuntėjas gali atlikti prisijungimą ir paiešką per paieškos paslaugą. Diskų įrenginio atveju, paieškos tarnyba užmegs TCP ryšį su diskų įrenginiu ir išsiųs jam paslaugos registratoriaus objektą, per kurį diskų įrenginys per prisijungimo procesą užregistruos savo nuolatinę saugojimo paslaugą.

Prisijungimo procesas

Kai paslaugų teikėjas turi paslaugų registratoriaus objektą, galutinį atradimo produktą, jis yra pasirengęs prisijungti - tapti paslaugų, kurios yra registruotos paieškos tarnyboje, federacijos dalimi. Norėdami atlikti prisijungimą, paslaugų teikėjas iškviečia Registruotis() metodas paslaugų registravimo objekte, kaip parametrą perduodamas objektą, vadinamą a paslaugos elementas, pluoštas objektų, apibūdinančių paslaugą. Registruotis() metodas siunčia paslaugos elemento kopiją iki paieškos tarnybos, kur saugomas paslaugos elementas. Tai atlikus, paslaugų teikėjas baigė prisijungimo procesą: jo paslauga tapo užregistruota peržvalgos tarnyboje.

Paslaugos elementas yra kelių objektų konteineris, įskaitant objektą, vadinamą a paslaugų objektas, kuriuos klientai gali naudoti sąveikai su paslauga. Paslaugos elemente taip pat gali būti bet koks skaičius atributai, kuris gali būti bet koks objektas. Kai kurie galimi atributai yra piktogramos, klasės, teikiančios paslaugos GUI, ir objektai, suteikiantys daugiau informacijos apie paslaugą.

Tarnybos objektuose paprastai įdiegiama viena ar daugiau sąsajų, per kurias klientai sąveikauja su paslauga. Pavyzdžiui, paieškos paslauga yra „Jini“ paslauga, o jos paslaugų objektas yra paslaugų registratorius. Registruotis() metodas, kuriuo paslaugų teikėjai pasinaudojo prisijungdami, yra deklaruojamas „ServiceRegistrar“ sąsaja, kurią įgyvendina visi paslaugų registratoriaus objektai. Klientai ir paslaugų teikėjai kalbasi su paieškos paslauga per paslaugų registravimo objektą, remdamiesi metodais, deklaruotais „ServiceRegistrar“ sąsaja. Taip pat diskinis įrenginys suteiktų paslaugos objektą, kuris įdiegtų gerai žinomą saugyklos paslaugų sąsają. Naudodamiesi šia saugojimo paslaugos sąsaja, klientai ieškotų ir sąveikautų su disko įrenginiu.

Paieškos procesas

Kai paslauga užregistruojama per paieškos paslaugą per prisijungimo procesą, ta paslauga gali naudotis klientai, kurie pateikia užklausą ta peržvalgos paslauga. Norėdami sukurti paskirstytą paslaugų sistemą, kuri kartu atliktų tam tikrą užduotį, klientas turi surasti ir pasitelkti atskirų paslaugų pagalbą. Norėdami rasti paslaugą, klientai pateikia užklausas apie paieškos paslaugas naudodamiesi procesu peržiūra.

Norėdami atlikti paiešką, klientas iškviečia ieškoti () metodas paslaugų registravimo objekte. (Klientas, kaip ir paslaugų teikėjas, aptikimo metu gauna paslaugų registratorių, kaip aprašyta anksčiau šiame straipsnyje.) Klientas kaip argumentą perduoda ieškoti () a paslaugos šablonas, objektas, kuris naudojamas kaip užklausos paieškos kriterijus. Paslaugos šablone gali būti nuoroda į masyvą Klasė objektai. Šie Klasė objektai paieškos tarnybai nurodo kliento pageidaujamo paslaugos objekto „Java“ tipą (ar tipus). Paslaugos šablone taip pat gali būti a paslaugos ID, kuris unikaliai identifikuoja paslaugą, ir atributus, kurie turi tiksliai atitikti atributus, kuriuos paslaugos teikėjas įkėlė į paslaugos elementą. Paslaugos šablone taip pat gali būti pakaitalai bet kuriam iš šių laukų. Pavyzdžiui, pakaitos simbolis paslaugos ID lauke atitiks bet kurį paslaugos ID. ieškoti () metodas siunčia paslaugos šabloną paieškos tarnybai, kuri atlieka užklausą ir nusiunčia atgal nulio daugeliui atitinkančių paslaugų objektų. Klientas gauna nuorodą į atitinkančius paslaugų objektus kaip į grąžinimo vertę ieškoti () metodas.

Paprastai klientas ieško paslaugos pagal „Java“ tipą, dažniausiai sąsają. Pvz., Jei klientui reikia naudoti spausdintuvą, jis sudarytų paslaugos šabloną, kuriame būtų a Klasė objektas gerai žinomai spausdintuvo paslaugų sąsajai. Visos spausdintuvo paslaugos įdiegtų šią gerai žinomą sąsają. Paieškos paslauga grąžins paslaugos objektą (ar objektus), įdiegusius šią sąsają. Atributus galima įtraukti į paslaugų šabloną, kad būtų sumažintas tokios tipo paieškos atitikčių skaičius. Klientas naudosis spausdintuvo paslauga pasinaudodamas paslaugos objekto metodais, deklaruotais gerai žinomoje spausdintuvo paslaugų sąsajoje.

Sąsajos ir įgyvendinimo atskyrimas

„Jini“ architektūra į objektą nukreipia programavimą į tinklą, suteikdama tinklo paslaugoms galimybę pasinaudoti vienu iš objektyvaus programavimo pagrindų: sąsajos ir įgyvendinimo atskyrimu. Pavyzdžiui, paslaugų objektas gali suteikti klientams prieigą prie paslaugos įvairiais būdais. Objektas iš tikrųjų gali atspindėti visą paslaugą, kuri atsisiunčiama klientui per paiešką ir tada vykdoma vietoje. Arba paslaugos objektas gali tarnauti tik kaip nuotolinio serverio tarpinis serveris. Kai klientas iškviečia paslaugų objekto metodus, jis per tinklą siunčia užklausas serveriui, kuris atlieka realų darbą. Vietinis paslaugos objektas ir nuotolinis serveris taip pat gali atlikti dalį darbo.

Viena svarbių „Jini“ architektūros pasekmių yra ta, kad tinklo protokolo, naudojamo bendraujant tarpinio serverio objekto ir nuotolinio serverio, klientui nereikia žinoti. Kaip parodyta toliau pateiktame paveikslėlyje, tinklo protokolas yra paslaugos įgyvendinimo dalis. Šis protokolas yra privatus dalykas, kurį sprendžia paslaugos kūrėjas. Klientas gali bendrauti su paslauga per šį privatų protokolą, nes paslauga į kliento adresų erdvę įterpia tam tikrą savo kodą (paslaugos objektą). Švirkščiamas paslaugos objektas galėjo susisiekti su tarnyba per RMI, CORBA, DCOM, kokį nors namuose paruoštą protokolą, pastatytą ant lizdų ir srautų, ar dar ką nors. Klientui paprasčiausiai nereikia rūpintis tinklo protokolais, nes jis gali kalbėti su gerai žinoma sąsaja, kurią įdiegia paslaugos objektas. Aptarnavimo objektas rūpinasi bet kokiu būtinu ryšiu tinkle.

Skirtingai įgyvendinant tą pačią paslaugų sąsają, gali būti naudojami visiškai skirtingi įgyvendinimo metodai ir visiškai skirtingi tinklo protokolai. Paslauga gali naudoti specializuotą techninę įrangą kliento užklausoms patenkinti arba visą savo darbą atlikti programinėje įrangoje. Tiesą sakant, vienos tarnybos pasirinktas įgyvendinimo metodas laikui bėgant gali keistis. Klientas gali būti tikras, kad turi paslaugos objektą, kuris supranta dabartinį paslaugos įgyvendinimą, nes klientas gauna paslaugos objektą (per paieškos paslaugą) iš paties paslaugų teikėjo. Klientui paslauga atrodo kaip gerai žinoma sąsaja, neatsižvelgiant į tai, kaip paslauga įgyvendinama.

Išvada

Kaip matėme šiame įvadiniame stulpelyje, Jini bando pakelti paskirstytų sistemų programavimo abstrakcijos lygį nuo tinklo protokolo lygio iki objekto sąsajos lygio. Vis labiau plintant į tinklus sujungtų įtaisų daugeliui paskirstytos sistemos dalių gali būti skirtingi pardavėjai. „Jini“ nereikalauja, kad įrenginių pardavėjai susitartų dėl tinklo lygio protokolų, leidžiančių jų įrenginiams sąveikauti. Vietoj to, pardavėjai turi susitarti dėl „Java“ sąsajų, per kurias jų įrenginiai galėtų sąveikauti. Atradimo, prisijungimo ir paieškos procesai, kuriuos teikia „Jini“ vykdymo laiko infrastruktūra, leis įrenginiams rasti vienas kitą tinkle. Suradę vienas kitą, įrenginiai galės bendrauti tarpusavyje per „Java“ sąsajas.

Kitą mėnesį

Nors šiame stulpelyje daugiausia dėmesio bus skiriama tam, kaip išspręsti konkrečias programavimo problemas naudojant „Jini“, pvz., Pridėti GUI prie paslaugos ar padaryti paslaugą administruojama, kitą mėnesį aptarsiu Jini realias problemas ir perspektyvas.

Aptariant Jini

Norėdami aptarti šiame straipsnyje pateiktą medžiagą, apsilankykite: //www.artima.com/jini/jf/intro/index.html

Billas Vennersas profesionaliai rašė programinę įrangą 14 metų. Įsikūręs Silicio slėnyje, jis teikia programinės įrangos konsultavimo ir mokymo paslaugas bei palaiko „Java“ ir „Jini“ kūrėjų svetainę artima.com. Jis yra knygos „Inside the Java Virtual Machine“, kurią išleido McGraw-Hill, autorius.

Sužinokite daugiau apie šią temą

  • Apsilankykite „Jini“ bendruomenėje, kad gautumėte informacijos apie procesą, kuriuo bus apibrėžtos žinomos sąsajos

    //www.jini.org

  • Dabartinio „Jini“ leidimo atsisiuntimo puslapis („Java Developer Connection“)

    //developer.java.sun.com/developer/products/jini

  • „JDK 1.2 FCS Release“, kuriame veikia dabartinis „Jini“ leidimas, atsisiuntimo puslapis

    //java.sun.com/products/jdk/1.2/

  • Internetinė „Jini“ pamoka

    //pandonia.canberra.edu.au/java/jini/tutorial/Jini.xml

  • Internetinės paskaitos užrašai apie kursą apie RMI ir Jini

    //www.eli.sdsu.edu/courses/spring99/cs696/notes/index.html

  • „Tinklo revoliucija“, Clyde Higaki ir Billas Vennersas („Sun's Jini Technology Homepage“, 1999). Autoriai Clyde Higaki ir Billas Vennersas siūlo keletą scenarijų, apibūdinančių, kaip Jini gali būti naudojamas realiame pasaulyje

    //java.sun.com/features/1999/01/jini_scenario.html

  • Nuorodos į „Jini“ išteklius

    //www.artima.com/jini/resources/index.html

  • Pagrindinis „Jini“ puslapis „Sun“

    //java.sun.com/products/jini/

  • „Jini“ bendruomenė, pagrindinė „Jini Sun“ bendruomenės šaltinio licencijos pasirašytojų sąveikos vieta

    //www.jini.org

  • Atsisiųskite visų „Jini“ specifikacijų puslapį

    //java.sun.com/products/jini/specs/

  • JINI-USERS pašto adresų sąrašų archyvai. Norėdami užsiprenumeruoti JINI-USERS pašto adresų sąrašą, siųskite el [email protected]. Pranešimo tekste įveskite užsiprenumeruokite „jini“ vartotojus

    //archives.java.sun.com/archives/jini-users.html

  • „Jini“ DUK JINI-USERS pašto adresų sąrašui

    //www.artima.com/jini/faq.html

Šią istoriją „Jini: nauja technologija tinkliniam pasauliui“ iš pradžių išleido „JavaWorld“.

$config[zx-auto] not found$config[zx-overlay] not found