Programiranje

Jini: Nova tehnologija za mrežni svet

Prejšnja 1 2 Stran 2 Stran 2 od 2

Jini v kontekstu

Tradicionalno so bili operacijski sistemi zasnovani tako, da imajo računalnik procesor, nekaj pomnilnika in disk. Ko zaženete računalnik, najprej poišče disk. Če ne najde diska, ne more delovati kot računalnik. Vendar se računalniki vse pogosteje pojavljajo v drugačni preobleki: kot vdelane naprave, ki imajo procesor, nekaj pomnilnika in omrežno povezavo - vendar brez diska. Prva stvar, ki jo na primer naredi mobilni telefon, ko ga zaženete, je iskanje telefonskega omrežja. Če omrežja ne najde, ne more delovati kot mobilni telefon. Ta trend v okolju strojne opreme, od diska do omrežja, bo vplival na organizacijo naše programske opreme - in tu nastopi Jini.

Jini je poskus ponovnega premisleka o računalniški arhitekturi, glede na naraščajoč pomen omrežja in širjenje procesorjev v napravah, ki nimajo diskovnega pogona. Te naprave, ki jih prihaja iz različnih ponudnikov, bodo morale delovati prek omrežja. Samo omrežje bo zelo dinamično - naprave in storitve se bodo redno dodajale in odstranjevale. Jini ponuja mehanizme, ki omogočajo nemoteno dodajanje, odstranjevanje in iskanje naprav in storitev v omrežju. Poleg tega Jini ponuja programski model, ki programerjem olajša doseganje pogovorov med napravami.

Jini poskuša na omrežje razširiti prednosti objektno usmerjenega programiranja, ki temelji na Javi, serializaciji objektov in RMI, ki omogočajo premikanje predmetov po omrežju z navideznega računalnika na navidezni stroj. Namesto da od prodajalcev naprav zahteva, da se dogovorijo o omrežnih protokolih, prek katerih lahko njihove naprave komunicirajo, Jini omogoča, da se naprave med seboj pogovarjajo prek vmesnikov do predmetov.

Kaj je Jini?

Jini je nabor API-jev in omrežnih protokolov, ki vam lahko pomagajo zgraditi in uvesti porazdeljene sisteme, ki so organizirani kot zveze storitev. A storitev je lahko vse, kar sedi v omrežju in je pripravljeno za izvajanje koristne funkcije. Strojne naprave, programska oprema, komunikacijski kanali - tudi sami človeški uporabniki - so lahko storitve. Diskovni pogon, ki podpira Jini, bi na primer lahko ponudil storitev "shranjevanja". Tiskalnik, ki podpira Jini, lahko ponudi storitev "tiskanja". A zveza storitev, Potem je nabor storitev, ki so trenutno na voljo v omrežju in jih lahko odjemalec (kar pomeni program, storitev ali uporabnik) združi, da mu pomaga doseči neki cilj.

Za izvajanje naloge odjemalec zaprosi za pomoč storitve. Na primer, odjemalski program lahko naloži slike iz storitve za shranjevanje slik v digitalni fotoaparat, prenese slike v trajno storitev shranjevanja, ki jo ponuja diskovni pogon, in stran z majhnimi različicami slik pošlje v tiskalniško službo barvni tiskalnik. V tem primeru odjemalski program gradi porazdeljeni sistem, ki je sestavljen iz sebe, storitve za shranjevanje slik, storitve trajnega shranjevanja in storitve barvnega tiskanja. Naročnik in storitve tega porazdeljenega sistema sodelujejo pri izvajanju naloge: razstavljanje in shranjevanje slik iz digitalnega fotoaparata ter izpis strani sličic.

Ideja za besedo zveze temelji na pogledu na omrežje Jini - ni centralnega nadzornega organa. Ker nobena storitev ni odgovorna, nabor vseh storitev, ki so na voljo v omrežju, tvori zvezo - skupino, sestavljeno iz enakih vrstnikov. Namesto osrednjega organa Jinijeva runtime infrastruktura zgolj omogoča, da se stranke in storitve medsebojno najdejo (prek iskalne storitve, ki hrani imenik trenutno razpoložljivih storitev). Ko se službe med seboj locirajo, so same. Naročnik in storitve, ki so mu dodeljene, opravljajo svojo nalogo neodvisno od izvajalne infrastrukture Jini. Če se storitev iskanja Jini zruši, lahko vsi distribuirani sistemi, zbrani prek storitve iskanja, preden se je zrušila, nadaljujejo svoje delo. Jini vključuje celo omrežni protokol, ki ga lahko stranke uporabljajo za iskanje storitev, če ni iskalne storitve.

Kako deluje Jini

Jini definira a runtime infrastruktura ki je v omrežju in ponuja mehanizme, ki omogočajo dodajanje, odstranjevanje, iskanje in dostop do storitev. Izvajalna infrastruktura je v omrežju na treh mestih: v iskalnih storitvah, ki ležijo v omrežju; pri ponudnikih storitev (kot so naprave, ki podpirajo Jini); in pri strankah. Iskalne storitve so osrednji organizacijski mehanizem za sisteme, ki temeljijo na Jiniju. Ko so v omrežju na voljo nove storitve, se registrirajo pri iskanju. Ko želijo stranke poiskati storitev za pomoč pri nekem opravilu, se posvetujejo s službo za iskanje.

Izvajalna infrastruktura uporablja en protokol, imenovan odkritjein dva protokola na ravni objekta, imenovana pridruži se in Poglej gor. Discovery strankam in storitvam omogoča iskanje iskalnih storitev. Pridružite se storitvi omogoča, da se sama registrira v iskalni storitvi. Iskanje stranki omogoča, da poišče storitev iskanja za storitve, ki ji lahko pomagajo doseči cilje.

Postopek odkritja

Discovery deluje tako: Predstavljajte si, da imate diskovni pogon, ki podpira Jini, in ponuja trajno storitev shranjevanja. Takoj, ko pogon povežete z omrežjem, ta odda obvestilo o prisotnosti tako, da paket multicast spusti na dobro znana vrata. V obvestilo o prisotnosti sta vključena naslov IP in številka vrat, kjer lahko storitev iskanja pokliče na diskovni pogon.

Iskalne storitve nadzirajo dobro znana vrata za pakete z obvestili o prisotnosti. Ko storitev iskanja prejme obvestilo o prisotnosti, odpre in pregleda paket. Paket vsebuje informacije, ki storitvi iskanja omogočajo, da ugotovi, ali naj se obrne na pošiljatelja paketa ali ne. V tem primeru se s pošiljateljem obrne neposredno tako, da vzpostavi povezavo TCP z naslovom IP in številko vrat, izvlečeno iz paketa. Z uporabo RMI storitev iskanja pošlje predmet, imenovan a registrar storitve, po omrežju do povzročitelja paketa. Namen predmeta registrarja storitve je olajšati nadaljnjo komunikacijo s storitvijo iskanja. S klicanjem metod na tem objektu lahko pošiljatelj paketa obvestil izvede storitev združevanja in iskanja v storitvi iskanja. V primeru diskovnega pogona bi iskalna storitev vzpostavila TCP povezavo z diskovnim pogonom in mu poslala objekt registrarja storitve, prek katerega bi nato diskovni pogon s postopkom združevanja registriral svojo trajno storitev shranjevanja.

Postopek združevanja

Ko ima ponudnik storitev objekt registrarja storitve, končni izdelek odkritja, je pripravljen na pridružitev - da postane del zveze storitev, ki so registrirane v iskalni storitvi. Za pridružitev ponudnik storitve prikliče register () metoda na predmetu registrarja storitve, ki kot parameter posreduje objekt, imenovan a storitev, sveženj predmetov, ki opisujejo storitev. The register () metoda pošlje kopijo elementa storitve do iskalne storitve, kjer je element storitve shranjen. Ko je to končano, je ponudnik storitev zaključil postopek združevanja: njegova storitev se je registrirala v iskalni storitvi.

Element storitve je vsebnik za več predmetov, vključno s predmetom, imenovanim a objekt storitve, ki jih lahko stranke uporabljajo za interakcijo s storitvijo. Postavka storitve lahko vključuje tudi poljubno število lastnosti, ki je lahko kateri koli predmet. Nekateri potencialni atributi so ikone, razredi, ki ponujajo GUI za storitev, in predmeti, ki dajejo več informacij o storitvi.

Objekti storitve običajno izvajajo enega ali več vmesnikov, prek katerih odjemalci komunicirajo s storitvijo. Storitev iskanja je na primer storitev Jini, njen predmet storitve pa je registrator storitve. The register () metoda, ki jo ponudniki storitev prikličejo med pridružitvijo, je navedena v ServiceRegistrar vmesnik, ki ga izvajajo vsi objekti registra. Stranke in ponudniki storitev se s storitvijo iskanja pogovarjajo prek predmeta registrarja storitev s sklicevanjem na metode, deklarirane v ServiceRegistrar vmesnik. Podobno bi diskovni pogon zagotovil servisni objekt, ki je implementiral nekaj znanega vmesnika storitve za shranjevanje. Ta vmesnik storitve za shranjevanje bi odjemalce iskal in z diskovnim pogonom komuniciral.

Postopek iskanja

Ko se storitev s postopkom združevanja registrira pri iskalni storitvi, je ta storitev na voljo strankam, ki poiščejo to iskalno storitev. Za izdelavo porazdeljenega sistema storitev, ki bo sodeloval pri izvajanju nekaterih nalog, mora stranka poiskati in pridobiti pomoč posameznih storitev. Če želite poiskati storitev, stranke poiščejo storitve iskanja po postopku, imenovanem Poglej gor.

Za izvajanje iskanja odjemalec prikliče datoteko Poglej gor() metoda na predmetu registrarja storitve. (Naročnik, tako kot ponudnik storitev, pridobi registratorja storitve s postopkom odkrivanja, kot je opisano prej v tem članku.) Naročnik posreduje kot argument Poglej gor() a predloga storitve, predmet, ki služi kot iskalno merilo za poizvedbo. Predloga storitve lahko vključuje sklic na matriko Razred predmetov. Te Razred predmeti v iskalni storitvi označujejo vrsto (ali tipe) Java storitvenega predmeta, ki ga želi odjemalec. Predloga storitve lahko vključuje tudi a ID storitve, ki enolično identificira storitev in atribute, ki se morajo natančno ujemati z atributi, ki jih je ponudnik storitve naložil v element storitve. Predloga storitve lahko vsebuje tudi nadomestne znake za katero koli od teh polj. Nadomestni znak v polju ID storitve se bo na primer ujemal s katerim koli ID storitve. The Poglej gor() metoda pošlje predlogo storitve iskalni storitvi, ki izvede poizvedbo in vrne ničlo številnim ujemajočim se objektom storitve. Naročnik dobi referenco na ujemajoče se storitvene predmete kot vrnjeno vrednost Poglej gor() metoda.

Na splošno odjemalec išče storitev po tipu Java, običajno vmesniku. Na primer, če bi odjemalec potreboval tiskalnik, bi sestavil predlogo storitve, ki bi vključevala Razred predmet za dobro znan vmesnik za tiskalniške storitve. Vse tiskalniške storitve bi uvedle ta dobro znani vmesnik. Storitev iskanja bi vrnila objekt storitve (ali objekte), ki je implementiral ta vmesnik. Atribute lahko vključite v predlogo storitve, da zožite število zadetkov za takšno iskanje na podlagi tipa. Naročnik bi storitev tiskalnika uporabljal tako, da bi se skliceval na metode storitvenih objektov, ki so deklarirane v znanem vmesniku storitve tiskalnika.

Ločevanje vmesnika in izvedba

Jinijeva arhitektura v omrežje prinaša objektno usmerjeno programiranje, tako da omrežnim storitvam omogoča, da izkoristijo eno od temeljev objektno usmerjenega programiranja: ločitev vmesnika in izvedbe. Na primer, objekt storitve lahko odjemalcem na več načinov omogoči dostop do storitve. Predmet lahko dejansko predstavlja celotno storitev, ki se med iskanjem prenese na odjemalca in nato izvede lokalno. Storitveni objekt lahko služi le kot posrednik oddaljenega strežnika. Ko odjemalec prikliče metode za objekt storitve, pošlje zahteve po omrežju strežniku, ki resnično opravi svoje delo. Lokalni servisni objekt in oddaljeni strežnik lahko vsak del dela tudi opravita.

Ena pomembnih posledic Jinijeve arhitekture je, da odjemalcu ni treba poznati omrežnega protokola, ki se uporablja za komunikacijo med objektom proxy storitve in oddaljenim strežnikom. Kot je prikazano na spodnji sliki, je omrežni protokol del izvajanja storitve. Ta protokol je zasebna zadeva, za katero se je odločil razvijalec storitve. Naročnik lahko komunicira s storitvijo po tem zasebnem protokolu, ker storitev v strankin naslovni prostor vbrizga nekaj lastne kode (objekt storitve). Vbrizgani objekt storitve bi lahko komuniciral s storitvijo prek RMI, CORBA, DCOM, nekega domačega protokola, zgrajenega na vrhu vtičnic in tokov, ali kar koli drugega. Naročnika preprosto ni treba skrbeti za omrežne protokole, ker se lahko pogovarja z dobro znanim vmesnikom, ki ga izvaja objekt storitve. Objekt storitve skrbi za vso potrebno komunikacijo v omrežju.

Različne izvedbe istega vmesnika storitve lahko uporabljajo popolnoma različne izvedbene pristope in popolnoma različne omrežne protokole. Storitev lahko za izpolnjevanje zahtev strank uporablja specializirano strojno opremo ali pa vse svoje delo opravi v programski opremi. Pravzaprav se lahko izvedbeni pristop ene same službe sčasoma razvije. Naročnik je lahko prepričan, da ima objekt storitve, ki razume trenutno izvajanje storitve, ker odjemalec prejme objekt storitve (s pomočjo storitve iskanja) od samega ponudnika storitve. Naročniku je storitev videti kot dobro znan vmesnik, ne glede na to, kako se storitev izvaja.

Zaključek

Kot smo videli v tem uvodnem stolpcu, Jini poskuša dvigniti raven abstrakcije za programiranje porazdeljenih sistemov, od ravni omrežnega protokola do ravni objektnega vmesnika. V nastajajočem širjenju vgrajenih naprav, povezanih z omrežji, lahko veliko kosov distribuiranega sistema prihaja od različnih ponudnikov. Zaradi Jini se prodajalcem naprav ni treba dogovarjati o protokolih na omrežni ravni, ki njihovim napravam omogočajo interakcijo. Namesto tega se morajo prodajalci dogovoriti o vmesnikih Java, prek katerih lahko njihove naprave komunicirajo. Postopki odkrivanja, združevanja in iskanja, ki jih zagotavlja izvajalna infrastruktura Jini, bodo napravam omogočili, da se medsebojno poiščejo v omrežju. Ko se locirajo, bodo lahko naprave komunicirale med seboj prek vmesnikov Java.

Naslednji mesec

Čeprav se bo ta stolpec osredotočil predvsem na to, kako rešiti določene programske težave z uporabo Jinija, na primer dodati GUI storitvi ali narediti storitev dostopno za upravljanje, bom naslednji mesec razpravljala o Jinijevih resničnih težavah in možnostih.

Razprava o Jiniju

Če želite razpravljati o gradivu, predstavljenem v tem članku, obiščite: //www.artima.com/jini/jf/intro/index.html

Bill Venners že 14 let profesionalno piše programsko opremo. S sedežem v Silicijevi dolini ponuja svetovanje in izobraževanje o programski opremi ter vzdržuje spletno mesto za razvijalce Java in Jini artima.com. Je avtor knjige Inside the Java Virtual Machine, ki jo je izdala McGraw-Hill.

Preberite več o tej temi

  • Obiščite skupnost Jini za informacije o postopku, po katerem bodo opredeljeni dobro znani vmesniki

    //www.jini.org

  • Stran za prenos trenutne izdaje Jini (na povezavi Java Developer Connection)

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

  • Stran za prenos za izdajo JDK 1.2 FCS, na kateri teče trenutna izdaja Jini

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

  • Spletna vadnica za Jini

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

  • Spletni zapiski predavanj za tečaj o RMI in Jini

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

  • "The Network Revolution," Clyde Higaki in Bill Venners (Sun's Jini Technology Homepage, 1999). Avtorja Clyde Higaki in Bill Venners ponujata številne scenarije, ki opisujejo, kako bi lahko Jini uporabili v resničnem svetu

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

  • Povezave do virov Jini

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

  • Glavna stran Jini na Sun

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

  • Skupnost Jini, osrednje mesto za interakcijo med podpisniki izvorne licence skupnosti Jini Sun

    //www.jini.org

  • Prenesite stran za vse specifikacije za Jini

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

  • Arhivi poštnih seznamov JINI-USERS. Če se želite naročiti na poštni seznam JINI-USERS, pošljite e-pošto na [email protected]. Vnesite besedilo sporočila naročite jini-uporabnike

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

  • Pogosta vprašanja o Jiniju za poštni seznam JINI-USERS

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

To zgodbo z naslovom "Jini: Nova tehnologija za omrežni svet" je prvotno objavil JavaWorld.

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