Programmēšana

Jini: Jauna tehnoloģija tīklam pieslēgtai pasaulei

Iepriekšējā 1 2 2. lapa 2. lapa no 2

Džini kontekstā

Tradicionāli operētājsistēmas tiek veidotas, pieņemot, ka datoram būs procesors, nedaudz atmiņas un disks. Sākot datoru, vispirms tiek meklēts disks. Ja tas neatrod disku, tas nevar darboties kā dators. Tomēr arvien biežāk datori parādās citā veidolā: kā iegultas ierīces, kurām ir procesors, nedaudz atmiņas un tīkla savienojums, bet bez diska. Pirmā lieta, ko mobilais tālrunis dara, piemēram, kad to sākat, ir tālruņa tīkla meklēšana. Ja tas neatrod tīklu, tas nevar darboties kā mobilais tālrunis. Šī tendence aparatūras vidē, sākot ar disku un tīklu, ietekmēs to, kā mēs organizējam programmatūru - un tur ienāk arī Jini.

Jini ir mēģinājums pārdomāt datora arhitektūru, ņemot vērā tīkla pieaugošo nozīmi un procesoru izplatīšanos ierīcēs, kurās nav diska diska. Šīm ierīcēm, kuras piegādās daudz dažādu piegādātāju, būs jāsadarbojas tīklā. Pats tīkls būs ļoti dinamisks - ierīces un pakalpojumi tiks regulāri pievienoti un noņemti. Jini nodrošina mehānismus, kas nodrošina vienmērīgu ierīču un pakalpojumu pievienošanu, noņemšanu un atrašanu tīklā. Turklāt Jini nodrošina programmēšanas modeli, kas ļauj programmētājiem vieglāk panākt, lai ierīces runātu savā starpā.

Pamatojoties uz Java, objektu serializāciju un RMI, kas ļauj objektiem pārvietoties tīklā no virtuālās mašīnas uz virtuālo mašīnu, Jini mēģina paplašināt objektorientētās programmēšanas priekšrocības tīklā. Tā vietā, lai pieprasītu ierīču piegādātājiem vienoties par tīkla protokoliem, caur kuriem viņu ierīces var mijiedarboties, Jini ļauj ierīcēm sarunāties savā starpā, izmantojot saskarnes ar objektiem.

Kas ir Jini?

Jini ir API un tīkla protokolu kopums, kas var palīdzēt izveidot un izvietot izplatītās sistēmas, kas ir sakārtotas kā dienestu federācijas. A apkalpošana var būt jebkas, kas atrodas tīklā un ir gatavs veikt noderīgu funkciju. Aparatūras ierīces, programmatūra, sakaru kanāli - pat paši lietotāji - var būt pakalpojumi. Piemēram, ar Jini iespējots diska disks varētu piedāvāt "uzglabāšanas" pakalpojumu. Jini iespējots printeris varētu piedāvāt "drukāšanas" pakalpojumu. A pakalpojumu federācija, tad ir pakalpojumu tīkls, kas pašlaik ir pieejams tīklā un ko klients (tas nozīmē, programma, pakalpojums vai lietotājs) var apvienot, lai palīdzētu tam sasniegt kādu mērķi.

Lai veiktu uzdevumu, klients lūdz pakalpojumu palīdzību. Piemēram, klienta programma var augšupielādēt attēlus no attēlu glabāšanas pakalpojuma digitālā fotokamerā, lejupielādēt attēlus pastāvīgā glabāšanas pakalpojumā, ko piedāvā diska disks, un nosūtīt attēlu sīktēlu formāta lapu uz drukas pakalpojumu krāsu printeris. Šajā piemērā klienta programma izveido sadalītu sistēmu, kas sastāv no sevis, attēlu glabāšanas pakalpojuma, pastāvīgās glabāšanas pakalpojuma un krāsu drukas pakalpojuma. Šīs sadalītās sistēmas klients un pakalpojumi sadarbojas, lai veiktu uzdevumu: izkraut un saglabāt attēlus no digitālās kameras un izdrukāt sīktēlu lapu.

Vārda ideja federācija ir balstīts uz tīkla Jini skatu - nav centrālās kontrolējošās iestādes. Tā kā neviens pakalpojums nav atbildīgs, visu tīklā pieejamo pakalpojumu kopums veido federāciju - grupu, kas sastāv no vienādiem vienaudžiem. Centrālās iestādes vietā Jini izpildlaika infrastruktūra tikai nodrošina veidu, kā klienti un pakalpojumi var atrast viens otru (izmantojot uzmeklēšanas pakalpojumu, kurā glabājas pašlaik pieejamo pakalpojumu direktorijs). Pēc tam, kad dienesti atrod viens otru, viņi ir paši. Klients un tā piesaistītie pakalpojumi savu uzdevumu veic neatkarīgi no Jini izpildlaika infrastruktūras. Ja avarē Jini uzmeklēšanas pakalpojums, visas izplatītās sistēmas, kuras pirms meklēšanas avārijas ir apvienojušas caur meklēšanas pakalpojumu, var turpināt darbu. Jini pat ietver tīkla protokolu, kuru klienti var izmantot, lai atrastu pakalpojumus, ja nav uzmeklēšanas pakalpojuma.

Kā darbojas Džini

Jini nosaka a izpildlaika infrastruktūra kas atrodas tīklā, un nodrošina mehānismus, kas ļauj pievienot, noņemt, atrast un piekļūt pakalpojumiem. Izpildlaika infrastruktūra tīklā atrodas trīs vietās: meklēšanas tīklos, kas atrodas tīklā; pakalpojumu sniedzējos (piemēram, ierīcēs, kurās iespējota Jini); un klientos. Uzmeklēšanas pakalpojumi ir Jini balstīto sistēmu centrālais organizēšanas mehānisms. Kad tīklā kļūst pieejami jauni pakalpojumi, viņi reģistrējas uzmeklēšanas pakalpojumā. Kad klienti vēlas atrast pakalpojumu, kas palīdzētu veikt kādu uzdevumu, viņi konsultējas ar uzmeklēšanas pakalpojumu.

Izpildlaika infrastruktūra izmanto vienu tīkla līmeņa protokolu, ko sauc atklājums, un divi objekta līmeņa protokoli, saukti pievienoties un uzmeklēšana. Atklāšana ļauj klientiem un pakalpojumiem atrast uzmeklēšanas pakalpojumus. Pievienošanās ļauj pakalpojumam reģistrēt sevi uzmeklēšanas pakalpojumā. Uzmeklēšana ļauj klientam vaicāt meklēšanas pakalpojumam par pakalpojumiem, kas var palīdzēt klientam sasniegt savus mērķus.

Atklāšanas process

Atklāšana darbojas šādi: iedomājieties, ka jums ir Jini iespējots diska disks, kas piedāvā pastāvīgu glabāšanas pakalpojumu. Tiklīdz jūs pievienojat disku tīklam, tas pārraida a paziņojums par klātbūtni nometot multiraides pakešu uz labi zināmu portu. Klātbūtnes paziņojumā ir iekļauta IP adrese un porta numurs, kur ar diska disku var sazināties, izmantojot uzmeklēšanas pakalpojumu.

Uzmeklēšanas pakalpojumi uzrauga labi zināmo portu par klātbūtnes paziņojumu paketēm. Kad uzmeklēšanas pakalpojums saņem paziņojumu par klātbūtni, tas tiek atvērts un pārbaudīts pakete. Paketē ir informācija, kas ļauj meklēšanas pakalpojumam noteikt, vai tai ir jāsazinās ar paketes sūtītāju. Ja tā, tas tieši sazinās ar sūtītāju, izveidojot TCP savienojumu ar IP adresi un porta numuru, kas iegūts no paketes. Izmantojot RMI, uzmeklēšanas pakalpojums nosūta objektu, ko sauc par a pakalpojumu reģistrators, visā tīklā līdz paketes ierosinātājam. Pakalpojuma reģistrētāja objekta mērķis ir veicināt turpmāku saziņu ar uzmeklēšanas pakalpojumu. Atsaucot metodes uz šo objektu, paziņojumu paketes sūtītājs var veikt pievienošanās un uzmeklēšanu uzmeklēšanas pakalpojumā. Diska diska gadījumā uzmeklēšanas pakalpojums izveido TCP savienojumu ar diska disku un nosūta tam pakalpojuma reģistrētāja objektu, caur kuru diska disks pēc pievienošanās procesa reģistrēs savu pastāvīgo glabāšanas pakalpojumu.

Pievienošanās process

Kad pakalpojumu sniedzējam ir pakalpojuma reģistrētāja objekts, atklāšanas galaprodukts, tas ir gatavs veikt pievienošanos - kļūt par daļu no to pakalpojumu federācijas, kuri ir reģistrēti uzmeklēšanas pakalpojumā. Lai veiktu pievienošanos, pakalpojumu sniedzējs izsauc reģistrēties () metodi pakalpojuma reģistrētāja objektā, kā parametru nododot objektu ar nosaukumu a pakalpojuma vienums, objektu saišķis, kas raksturo pakalpojumu. The reģistrēties () metode nosūta pakalpojuma vienuma kopiju uzmeklēšanas pakalpojumam, kur tiek glabāts pakalpojuma vienums. Kad tas ir pabeigts, pakalpojumu sniedzējs ir pabeidzis pievienošanās procesu: tā pakalpojums ir reģistrēts uzmeklēšanas pakalpojumā.

Pakalpojuma vienums ir konteiners vairākiem objektiem, ieskaitot objektu ar nosaukumu a pakalpojumu objekts, kuru klienti var izmantot, lai mijiedarbotos ar pakalpojumu. Pakalpojuma vienumā var būt arī jebkurš skaits atribūti, kas var būt jebkurš objekts. Daži potenciālie atribūti ir ikonas, klases, kas nodrošina GUI pakalpojumam, un objekti, kas sniedz vairāk informācijas par pakalpojumu.

Pakalpojuma objekti parasti ievieš vienu vai vairākas saskarnes, caur kurām klienti mijiedarbojas ar pakalpojumu. Piemēram, uzmeklēšanas pakalpojums ir Jini pakalpojums, un tā pakalpojumu objekts ir pakalpojumu reģistrators. The reģistrēties () metode, uz kuru pakalpojumu sniedzēji atsaucas pievienošanās laikā, ir deklarēta ServiceRegistrar saskarni, kuru īsteno visi pakalpojumu reģistrētāja objekti. Klienti un pakalpojumu sniedzēji runā ar uzmeklēšanas pakalpojumu, izmantojot pakalpojumu reģistrētāja objektu, izmantojot metodes, kas deklarētas ServiceRegistrar interfeiss. Tāpat diska disks nodrošinātu pakalpojuma objektu, kas ieviesa kādu plaši pazīstamu krātuves pakalpojumu saskarni. Izmantojot šo krātuves pakalpojumu saskarni, klienti meklētu un mijiedarbotos ar diska disku.

Uzmeklēšanas process

Kad pakalpojums ir reģistrējies uzmeklēšanas pakalpojumā, izmantojot pievienošanās procesu, šis pakalpojums ir pieejams lietošanai klientiem, kuri vaicā par šo uzmeklēšanas pakalpojumu. Lai izveidotu izplatītu pakalpojumu sistēmu, kas darbosies kopā, lai veiktu kādu uzdevumu, klientam jāatrod un jāpiesaista individuālo pakalpojumu palīdzība. Lai atrastu pakalpojumu, klienti pieprasa meklēšanas pakalpojumus, izmantojot procesu, ko sauc uzmeklēšana.

Lai veiktu uzmeklēšanu, klients izsauc uzmeklēšana () metode pakalpojuma reģistrētāja objektā. (Klients, tāpat kā pakalpojumu sniedzējs, atklāšanas procesā saņem pakalpojumu reģistratoru, kā aprakstīts iepriekš šajā rakstā.) Klients kā arguments nodod uzmeklēšana () a pakalpojumu veidne, objekts, kas kalpo kā meklēšanas kritērijs vaicājumam. Pakalpojuma veidnē var būt atsauce uz masīvu Klase objektiem. Šie Klase objekti uzmeklēšanas pakalpojumam norāda klienta vēlamo pakalpojuma objekta Java tipu (vai tipus). Pakalpojuma veidnē var būt arī a pakalpojuma ID, kas unikāli identificē pakalpojumu, un atribūti, kuriem precīzi jāatbilst atribūtiem, kurus pakalpojuma sniedzējs augšupielādējis pakalpojuma vienumā. Pakalpojuma veidnē var būt arī aizstājējzīmes jebkuram no šiem laukiem. Piemēram, aizstājējzīme laukā Service ID sakritīs ar jebkura pakalpojuma ID. The uzmeklēšana () metode nosūta pakalpojuma veidni uzmeklēšanas pakalpojumam, kurš veic vaicājumu un nosūta atpakaļ nulli daudziem atbilstošiem pakalpojuma objektiem. Klients saņem atsauci uz atbilstošajiem pakalpojuma objektiem kā uzmeklēšana () metodi.

Parasti klients meklē pakalpojumu pēc Java veida, parasti interfeisa. Piemēram, ja klientam ir nepieciešams izmantot printeri, tas sastāda pakalpojuma veidni, kurā iekļauta a Klase objekts labi pazīstamam printera pakalpojumu interfeisam. Visi printera pakalpojumi ieviesīs šo plaši pazīstamo saskarni. Uzmeklēšanas pakalpojums atgriezīs pakalpojuma objektu (vai objektus), kas ieviesa šo saskarni. Atribūtus var iekļaut pakalpojuma veidnē, lai sašaurinātu atbilstību skaitu šādai meklēšanai, kas balstīta uz tipu. Klients izmantotu printera pakalpojumu, izmantojot pakalpojumu objekta metodes, kas deklarētas plaši pazīstamajā printera pakalpojumu saskarnē.

Saskarnes un ieviešanas nodalīšana

Jini arhitektūra nodrošina objektorientētu programmēšanu tīklā, ļaujot tīkla pakalpojumiem izmantot vienu no objektorientētās programmēšanas pamatiem: saskarnes nodalīšanu un ieviešanu. Piemēram, pakalpojuma objekts var klientiem piešķirt piekļuvi pakalpojumam dažādos veidos. Objekts faktiski var reprezentēt visu pakalpojumu, kas uzmeklēšanas laikā tiek lejupielādēts klientam un pēc tam izpildīts lokāli. Pakalpojuma objekts var kalpot tikai kā attālināta servera starpniekserveris. Kad klients izsauc metodes pakalpojuma objektā, tas nosūta pieprasījumus visā tīklā serverim, kas veic reālo darbu. Vietējais pakalpojuma objekts un attālais serveris katrs var veikt arī daļu darba.

Viena no nozīmīgām Jini arhitektūras sekām ir tā, ka tīkla protokolam, ko izmanto saziņai starp starpniekservera pakalpojuma objektu un attālo serveri, klientam nav jāzina. Kā parādīts zemāk redzamajā attēlā, tīkla protokols ir daļa no pakalpojuma ieviešanas. Šis protokols ir privāts jautājums, par kuru izlemj pakalpojuma izstrādātājs. Klients var sazināties ar pakalpojumu, izmantojot šo privāto protokolu, jo pakalpojums klienta adrešu telpā ievieto daļu sava koda (pakalpojuma objekta). Injicētais pakalpojuma objekts varētu sazināties ar pakalpojumu, izmantojot RMI, CORBA, DCOM, kādu mājās gatavotu protokolu, kas izveidots virs kontaktligzdām un straumēm, vai jebko citu. Klientam vienkārši nav jāuztraucas par tīkla protokoliem, jo ​​tas var sarunāties ar labi zināmo saskarni, kuru ievieš pakalpojuma objekts. Pakalpojuma objekts rūpējas par visu nepieciešamo komunikāciju tīklā.

Dažādās vienas servisa saskarnes ieviešanās var izmantot pilnīgi atšķirīgas ieviešanas pieejas un pilnīgi atšķirīgus tīkla protokolus. Pakalpojums var izmantot specializētu aparatūru klientu pieprasījumu izpildei vai visu savu darbu programmatūrā. Faktiski viena pakalpojuma īstenošanas pieeja laika gaitā var attīstīties. Klients var būt pārliecināts, ka tam ir pakalpojuma objekts, kas saprot pašreizējo pakalpojuma ieviešanu, jo klients saņem pakalpojuma objektu (izmantojot uzmeklēšanas pakalpojumu) no paša pakalpojumu sniedzēja. Klientam pakalpojums izskatās kā labi pazīstams interfeiss neatkarīgi no tā, kā pakalpojums tiek ieviests.

Secinājums

Kā mēs redzējām šajā ievada slejā, Jini mēģina paaugstināt abstrakcijas līmeni izplatīto sistēmu programmēšanai, sākot no tīkla protokola līmeņa līdz objekta saskarnes līmenim. Jaunajā tīklos savienoto iegulto ierīču izplatībā daudzi izplatītās sistēmas gabali var nākt no dažādiem piegādātājiem. Jini liek ierīču pārdevējiem vienoties par tīkla līmeņa protokoliem, kas ļauj viņu ierīcēm mijiedarboties. Tā vietā pārdevējiem jāvienojas par Java saskarnēm, caur kurām viņu ierīces var mijiedarboties. Atklāšanas, pievienošanās un meklēšanas procesi, ko nodrošina Jini izpildlaika infrastruktūra, ļaus ierīcēm atrast viena otru tīklā. Kad ierīces atradīs viena otru, ierīces varēs sazināties savā starpā, izmantojot Java saskarnes.

Nākammēnes

Lai gan šajā slejā galvenā uzmanība tiks pievērsta tam, kā atrisināt īpašas programmēšanas problēmas, izmantojot Jini, piemēram, GUI pievienošana pakalpojumam vai pakalpojuma padarīšana par administrējamu, nākamajā mēnesī es apspriedīšu Jini reālās problēmas un izredzes.

Diskusija par Jini

Lai apspriestu šajā rakstā sniegto materiālu, apmeklējiet vietni //www.artima.com/jini/jf/intro/index.html

Bils Venners programmatūru profesionāli raksta 14 gadus. Atrodas Silīcija ielejā, viņš sniedz programmatūras konsultēšanas un apmācības pakalpojumus, kā arī uztur Java un Jini izstrādātāju vietni artima.com. Viņš ir grāmatas McGraw-Hill izdotās grāmatas: Inside the Java Virtual Machine autors.

Uzziniet vairāk par šo tēmu

  • Apmeklējiet Jini kopienu, lai iegūtu informāciju par procesu, kādā tiks definētas labi zināmas saskarnes

    //www.jini.org

  • Lejupielādes lapa pašreizējam Jini laidienam (vietnē Java Developer Connection)

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

  • Lejupielādes lapa JDK 1.2 FCS laidienam, kurā darbojas pašreizējais Jini izlaidums

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

  • Tiešsaistes Jini apmācība

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

  • Tiešsaistes lekciju piezīmes kursam par RMI un Jini

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

  • "Tīkla revolūcija", Clyde Higaki un Bill Venners (Sun's Jini Technology Homepage, 1999). Autori Klaids Higaki un Bils Venners piedāvā vairākus scenārijus, lai aprakstītu, kā Džini varētu izmantot reālajā pasaulē

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

  • Saites uz Jini resursiem

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

  • Galvenā Jini lapa vietnē Sun

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

  • Jini kopiena, centrālā vietne mijiedarbībai starp Jini Sun Kopienas avota licences parakstītājiem

    //www.jini.org

  • Lejupielādes lapa visām Jini specifikācijām

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

  • JINI-USERS adresātu sarakstu arhīvi. Lai abonētu JINI-USERS adresātu sarakstu, nosūtiet e-pastu uz [email protected]. Ziņojuma pamattekstā ierakstiet abonēt jini lietotājus

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

  • Jini FAQ JINI-USERS adresātu sarakstam

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

Šo stāstu “Jini: Jauna tehnoloģija tīklotā pasaulē” sākotnēji publicēja JavaWorld.

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