Programovanie

Jini: Nová technológia pre sieťový svet

Predchádzajúca 1 2 Strana 2 Strana 2 z 2

Jini v kontexte

Operačné systémy sa tradične navrhujú za predpokladu, že počítač bude mať procesor, časť pamäte a disk. Keď naštartujete počítač, prvá vec, ktorú urobíte, je vyhľadať disk. Ak nenájde disk, nemôže fungovať ako počítač. Počítače sa však čoraz častejšie javia v odlišných podobách: ako vložené zariadenia, ktoré majú procesor, časť pamäte a sieťové pripojenie - ale žiadny disk. Prvá vec, ktorú mobilný telefón urobí napríklad po zapnutí, je vyhľadanie telefónnej siete. Ak nenájde sieť, nemôže fungovať ako mobilný telefón. Tento trend v hardvérovom prostredí, od disku zameraného na sieť, bude mať vplyv na to, ako organizujeme náš softvér - a tam prichádza Jini.

Jini je pokusom o prehodnotenie počítačovej architektúry vzhľadom na rastúci význam siete a rozširovanie procesorov v zariadeniach, ktoré nemajú diskovú jednotku. Tieto zariadenia, ktoré pochádzajú od mnohých rôznych dodávateľov, budú musieť komunikovať prostredníctvom siete. Samotná sieť bude veľmi dynamická - zariadenia a služby budú pravidelne pridávané a odstraňované. Jini poskytuje mechanizmy, ktoré umožňujú plynulé pridávanie, odstraňovanie a hľadanie zariadení a služieb v sieti. Jini navyše poskytuje programovací model, ktorý programátorom uľahčuje vzájomné rozprávanie ich zariadení.

Na základe Javy, serializácie objektov a RMI, ktoré umožňujú objektom pohyb po sieti z virtuálneho stroja na virtuálny stroj, sa Jini pokúša rozšíriť výhody objektovo orientovaného programovania na sieť. Namiesto toho, aby Jini vyžadovalo od dodávateľov zariadení, aby sa dohodli na sieťových protokoloch, prostredníctvom ktorých môžu ich zariadenia interagovať, umožňuje Jini zariadeniam navzájom komunikovať prostredníctvom rozhraní k objektom.

Čo je Jini?

Jini je sada API a sieťových protokolov, ktoré vám môžu pomôcť vybudovať a nasadiť distribuované systémy, ktoré sú usporiadané ako federácie služieb. A služby môže byť čokoľvek, čo je v sieti a je pripravené na vykonávanie užitočnej funkcie. Služby môžu byť hardvérové ​​zariadenia, softvér, komunikačné kanály - dokonca aj samotní používatelia. Napríklad služba „storage“ by mohla ponúknuť diskovú jednotku s povoleným Jini. Tlačiareň podporujúca Jini môže ponúkať službu „tlače“. A federácia služieb, potom predstavuje súbor služieb, ktoré sú v súčasnosti k dispozícii v sieti a ktoré môže klient (tj. program, služba alebo používateľ) spojiť, aby mu pomohol dosiahnuť určitý cieľ.

Na vykonanie úlohy klient požiada o pomoc služby. Napríklad, klientsky program môže nahrať obrázky zo služby ukladania obrázkov do digitálneho fotoaparátu, stiahnuť obrázky do služby trvalého ukladania ponúkanej diskovou jednotkou a odoslať stránku s verziami obrázkov vo veľkosti miniatúry tlačovej službe farebná tlačiareň. V tomto príklade klientský program zostavuje distribuovaný systém pozostávajúci zo seba samej, služby ukladania obrázkov, služby trvalého ukladania a služby farebnej tlače. Klient a služby tohto distribuovaného systému spolupracujú na vykonaní úlohy: odložiť a uložiť obrázky z digitálneho fotoaparátu a vytlačiť stránku s miniatúrami.

Myšlienka slova federácia je založené na Jini pohľade na sieť - neexistuje centrálny riadiaci orgán. Pretože nie je zodpovedná žiadna služba, množina všetkých služieb dostupných v sieti vytvára federáciu - skupinu zloženú z rovnocenných partnerov. Namiesto centrálneho orgánu poskytuje runtime infraštruktúra Jini iba vzájomné vyhľadanie klientov a služieb (prostredníctvom vyhľadávacej služby, ktorá ukladá adresár momentálne dostupných služieb). Keď sa služby navzájom nájdu, sú samy od seba. Klient a jeho podriadené služby vykonávajú svoju úlohu nezávisle od runtime infraštruktúry Jini. Ak dôjde k zlyhaniu vyhľadávacej služby Jini, všetky distribuované systémy zhromaždené prostredníctvom vyhľadávacej služby pred jej zrútením môžu pokračovať v práci. Jini dokonca obsahuje sieťový protokol, ktorý môžu klienti použiť na vyhľadanie služieb v prípade absencie vyhľadávacej služby.

Ako Jini funguje

Jini definuje a runtime infraštruktúra ktorý sa nachádza v sieti a poskytuje mechanizmy, ktoré vám umožňujú pridávať, odstraňovať, vyhľadávať a pristupovať k službám. Runtime infraštruktúra sa nachádza v sieti na troch miestach: vo vyhľadávacích službách, ktoré sú umiestnené v sieti; v poskytovateľoch služieb (napríklad zariadenia podporujúce Jini); a v klientoch. Vyhľadávacie služby sú ústredným organizačným mechanizmom pre systémy založené na Jini. Keď budú v sieti k dispozícii nové služby, zaregistrujú sa do vyhľadávacej služby. Keď si klienti želajú vyhľadať službu, ktorá im pomôže s vykonaním niektorej úlohy, obrátia sa na vyhľadávaciu službu.

Runtime infraštruktúra používa jeden protokol na úrovni siete, tzv objava dva volané protokoly na úrovni objektov pripojiť sa a vyhľadať. Discovery umožňuje klientom a službám vyhľadať vyhľadávacie služby. Pripojenie umožňuje službe zaregistrovať sa vo vyhľadávacej službe. Vyhľadanie umožňuje klientovi dopytovať vyhľadávaciu službu po službách, ktoré mu môžu pomôcť dosiahnuť jeho ciele.

Proces objavovania

Discovery funguje takto: Predstavte si, že máte diskovú jednotku s povoleným Jini, ktorá ponúka službu trvalého úložiska. Hneď ako disk pripojíte k sieti, vysiela a oznam o prítomnosti umiestnením paketu multicast na známy port. V oznámení o prítomnosti je zahrnutá adresa IP a číslo portu, na ktorom je možné diskovú jednotku kontaktovať pomocou vyhľadávacej služby.

Vyhľadávacie služby monitorujú známy port pre pakety oznámení o prítomnosti. Keď vyhľadávacia služba prijme oznámenie o prítomnosti, otvorí sa a skontroluje paket. Paket obsahuje informácie, ktoré umožňujú vyhľadávacej službe určiť, či má alebo nemá kontaktovať odosielateľa paketu. Ak je to tak, kontaktuje odosielateľa priamo vytvorením TCP spojenia s IP adresou a číslom portu extrahovaným z paketu. Pomocou RMI vyhľadávacia služba odošle objekt s názvom a registrátor služieb, cez sieť k pôvodcovi paketu. Účelom objektu registrátora služieb je uľahčiť ďalšiu komunikáciu s vyhľadávacou službou. Pri vyvolaní metód na tomto objekte môže odosielateľ paketu oznámení vykonať spojenie a vyhľadávanie vo vyhľadávacej službe. V prípade diskovej jednotky by vyhľadávacia služba vytvorila TCP spojenie s diskovou jednotkou a poslala by jej objekt registrátora služieb, prostredníctvom ktorého by disková jednotka potom registrovala svoju službu trvalého úložiska prostredníctvom procesu spojenia.

Proces pripojenia

Keď má poskytovateľ služby objekt registrátora služieb, konečný produkt objavu, je pripravený vykonať spojenie - stať sa súčasťou federácie služieb, ktoré sú zaregistrované vo vyhľadávacej službe. Ak sa chcete pripojiť, poskytovateľ služieb vyvolá ikonu Registrovať() metóda na objekte registrátora služieb, ktorá odovzdáva ako parameter objekt nazývaný a položka služby, zväzok objektov, ktoré popisujú službu. The Registrovať() metóda odošle kópiu položky služby až do vyhľadávacej služby, kde je položka služby uložená. Po dokončení tohto procesu poskytovateľ služby dokončil proces pripojenia: jeho služba sa zaregistrovala vo vyhľadávacej službe.

Položka služby je kontajner pre niekoľko objektov vrátane objektu s názvom a obslužný objekt, ktoré môžu klienti použiť na interakciu so službou. Servisná položka môže obsahovať aj ľubovoľný počet atribúty, ktorým môže byť akýkoľvek objekt. Niektoré potenciálne atribúty sú ikony, triedy, ktoré poskytujú GUI pre službu, a objekty, ktoré poskytujú viac informácií o službe.

Servisné objekty zvyčajne implementujú jedno alebo viac rozhraní, prostredníctvom ktorých klienti interagujú so službou. Napríklad vyhľadávacia služba je službou Jini a jej objektom služby je registrátor služby. The Registrovať() Metóda vyvolaná poskytovateľmi služieb počas spojenia je deklarovaná v ServiceRegistrar rozhranie, ktoré implementujú všetky objekty registrátora služieb. Klienti a poskytovatelia služieb hovoria s vyhľadávacou službou prostredníctvom objektu registrátora služby tak, že sa odvolávajú na metódy deklarované v ServiceRegistrar rozhranie. Rovnako by disková jednotka poskytovala objekt služby, ktorý implementoval známe rozhranie služby úložiska. Klienti by vyhľadávali a interagovali s diskovou jednotkou pomocou tohto rozhrania úložnej služby.

Proces vyhľadávania

Po zaregistrovaní služby vo vyhľadávacej službe prostredníctvom procesu pripojenia je táto služba k dispozícii na použitie klientmi, ktorí sa pýtajú na túto vyhľadávaciu službu. Na vybudovanie distribuovaného systému služieb, ktoré budú spolupracovať na vykonaní určitej úlohy, musí klient vyhľadať a požiadať o pomoc jednotlivé služby. Na vyhľadanie služby klienti vyhľadávajú služby vyhľadávania prostredníctvom procesu s názvom vyhľadať.

Na vykonanie vyhľadávania klient vyvolá vyhľadať() metóda na objekte registrátora služieb. (Klient, podobne ako poskytovateľ služieb, získa registrátora služby prostredníctvom procesu zisťovania, ako je popísaný vyššie v tomto článku.) Klient odovzdá ako argument vyhľadať() a servisná šablóna, objekt, ktorý slúži ako kritériá vyhľadávania pre dopyt. Šablóna služby môže obsahovať odkaz na pole Trieda predmety. Títo Trieda objekty označujú vyhľadávacej službe typ Java (alebo typy) objektu služby požadovaný klientom. Šablóna služby môže obsahovať aj a ID služby, ktorá jedinečne identifikuje službu, a atribúty, ktoré sa musia presne zhodovať s atribútmi nahranými poskytovateľom služby v položke služby. Šablóna služby môže tiež obsahovať zástupné znaky pre ktorékoľvek z týchto polí. Zástupný znak v poli ID služby sa napríklad bude zhodovať s akýmkoľvek ID služby. The vyhľadať() metóda pošle šablónu služby vyhľadávacej službe, ktorá vykoná dotaz a odošle nulu mnohým zodpovedajúcim objektom služby. Klient získa odkaz na zodpovedajúce objekty služby ako návratovú hodnotu parametra vyhľadať() metóda.

Všeobecne platí, že klient vyhľadáva služby podľa typu Java, zvyčajne cez rozhranie. Napríklad, ak by klient potreboval používať tlačiareň, zostavil by šablónu služby, ktorá obsahovala a Trieda objekt známeho rozhrania so službami tlačiarne. Všetky známe tlačiarenské služby by implementovali toto známe rozhranie. Vyhľadávacia služba vráti objekt služby (alebo objekty), ktorý implementoval toto rozhranie. Atribúty môžu byť zahrnuté do šablóny služby na zúženie počtu zhôd pre také vyhľadávanie podľa typu. Klient by použil službu tlačiarní vyvolaním metód služby objektu deklarovaných v známom rozhraní služby tlačiarní.

Oddelenie rozhrania a implementácia

Architektúra Jini prináša objektovo orientované programovanie do siete tým, že umožňuje sieťovým službám využívať jeden zo základných princípov objektovo orientovaného programovania: oddelenie rozhrania a implementácie. Napríklad objekt služby môže klientom poskytnúť prístup k službe mnohými spôsobmi. Objekt môže skutočne predstavovať celú službu, ktorá sa stiahne klientovi počas vyhľadávania a potom sa vykoná lokálne. Alternatívne môže objekt služby slúžiť iba ako proxy na vzdialený server. Keď klient vyvolá metódy na objekte služby, odošle požiadavky cez sieť na server, ktorý vykoná skutočnú prácu. Časť práce môže vykonať aj objekt miestnej služby a vzdialený server.

Jedným z dôležitých dôsledkov architektúry Jini je, že sieťový protokol používaný na komunikáciu medzi objektom služby proxy a vzdialeným serverom nemusí byť klientovi známy. Ako je znázornené na obrázku nižšie, sieťový protokol je súčasťou implementácie služby. Tento protokol je súkromnou záležitosťou, o ktorej rozhodne vývojár služby. Klient môže so službou komunikovať prostredníctvom tohto súkromného protokolu, pretože služba vkladá do adresného priestoru klienta časť svojho vlastného kódu (objekt služby). Vložený objekt služby mohol so službou komunikovať prostredníctvom RMI, CORBA, DCOM, nejakého doma pripravovaného protokolu postaveného na zásuvkách a prúdoch alebo čokoľvek iného. Klient sa jednoducho nemusí starať o sieťové protokoly, pretože môže hovoriť so známym rozhraním, ktoré implementuje objekt služby. Objekt služby sa postará o všetku potrebnú komunikáciu v sieti.

Rôzne implementácie toho istého rozhrania služby môžu používať úplne odlišné implementačné prístupy a úplne odlišné sieťové protokoly. Služba môže na splnenie požiadaviek klienta používať špecializovaný hardvér alebo môže všetku svoju prácu vykonávať v softvéri. Prístup k implementácii, ktorý využíva jedna služba, sa môže časom vyvíjať. Klient si môže byť istý, že má objekt služby, ktorý rozumie súčasnej implementácii služby, pretože klient dostane objekt služby (prostredníctvom vyhľadávacej služby) od samotného poskytovateľa služby. Klientovi služba vyzerá ako známe rozhranie bez ohľadu na to, ako je služba implementovaná.

Záver

Ako sme videli v tomto úvodnom stĺpci, Jini sa pokúša zvýšiť úroveň abstrakcie pre programovanie distribuovaných systémov z úrovne sieťového protokolu na úroveň rozhrania objektu. Pri objavujúcom sa rozširovaní zabudovaných zariadení pripojených k sieťam môže mnoho častí distribuovaného systému pochádzať od rôznych dodávateľov. Vďaka Jini nie je potrebné, aby sa predajcovia zariadení dohodli na protokoloch na úrovni siete, ktoré umožňujú ich zariadeniam komunikovať. Namiesto toho sa musia predajcovia dohodnúť na rozhraniach Java, prostredníctvom ktorých môžu ich zariadenia interagovať. Procesy zisťovania, spájania a vyhľadávania poskytované runtime infraštruktúrou Jini umožnia zariadeniam navzájom sa lokalizovať v sieti. Len čo sa navzájom nájdu, budú zariadenia schopné navzájom komunikovať prostredníctvom rozhraní Java.

Ďalší mesiac

Aj keď sa tento stĺpec zameria hlavne na to, ako vyriešiť konkrétne problémy s programovaním pomocou Jini, ako napríklad pridanie grafického používateľského rozhrania k službe alebo zabezpečenie spravovateľnosti služby, budúci mesiac sa budem venovať problémom a vyhliadkam Jini v reálnom svete.

Diskutujeme o Jini

O materiáli predstavenom v tomto článku sa dozviete na stránke: //www.artima.com/jini/jf/intro/index.html

Bill Venners píše softvér profesionálne už 14 rokov. So sídlom v Silicon Valley poskytuje softvérové ​​konzultačné a školiace služby a udržiava web pre vývojárov Java a Jini, artima.com. Je autorom knihy: Inside the Java Virtual Machine, ktorú vydalo vydavateľstvo McGraw-Hill.

Získajte viac informácií o tejto téme

  • Navštívte komunitu Jini, kde získate informácie o procese, ktorým budú definované známe rozhrania

    //www.jini.org

  • Stránka na stiahnutie pre aktuálne vydanie Jini (na Java Developer Connection)

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

  • Stránka na stiahnutie pre vydanie JDK 1.2 FCS, na ktorej beží aktuálne vydanie Jini

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

  • Online výukový program Jini

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

  • Online skriptá týkajúce sa kurzu o RMI a Jini

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

  • „Sieťová revolúcia“, Clyde Higaki a Bill Venners (Sun's Jini Technology Homepage, 1999). Autori Clyde Higaki a Bill Venners ponúkajú niekoľko scenárov, ktoré popisujú, ako by sa Jini mohol použiť v skutočnom svete

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

  • Odkazy na zdroje Jini

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

  • Hlavná stránka Jini na Slnku

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

  • Komunita Jini, centrálna stránka pre interakciu medzi signatármi licencie zdroja Jini Sun Community

    //www.jini.org

  • Stránka na stiahnutie pre všetky technické parametre Jini

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

  • Archívy adresárov JINI-UŽÍVATELIA. Ak sa chcete prihlásiť na odber zoznamu adries JINI-USERS, pošlite e-mail na adresu [email protected]. Do tela správy zadajte prihlásiť sa na odber džin-používateľov

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

  • Časté otázky týkajúce sa adresára JINI-USERS pre zoznam adries

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

Tento príbeh „Jini: Nová technológia pre sieťový svet“ pôvodne publikoval server JavaWorld.

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