Jini buduje jinou architekturu systémů

Sean Dugan Společnost Sun Microsystems má od svého počátku vizi počítačů (ale nejen jich!) pracujících v sítíc...


Sean Dugan

Společnost Sun Microsystems má od svého počátku vizi počítačů (ale nejen jich!)
pracujících v sítích. Technologie, k níž firma nyní vzhlíží s velkou nadějí, se
jmenuje Jini.
Obecně řečeno, Jini je javovou architekturou, která přebírá služby operačního
systému a rozprostírá svou funkcionalitu napříč celou sítí. Vyjádříme-li se
prozaičtěji, Jini je kusem javového softwaru, jenž pracuje na vrcholu javových
virtuálních strojů (JVM) a poskytuje zařízením síťovou funkcionalitu
plug--and-play. Sun sní o budoucnosti, v níž bude každé zařízení, vybavené
procesorem a malou pamětí RAM, spolupracovat s dalšími, z hlediska architektury
v zásadě rovnocennými zařízeními. Pokud se tato vize alespoň zčásti naplní,
mohli bychom být o jeden krok blíže k situaci, v níž nebudou žádné potíže s
ovladači a zmizí komplikace s přihlašováním do sítě.
V tomto hypotetickém světě bude uživatel např. schopen zapojit PalmPilot do
síťové zásuvky. Síť tento přístroj okamžitě zaregistruje a učiní jej svojí
součástí. Se zařízením kapesního formátu bude uživatel ihned schopen
přistupovat k datům na serveru a využívat služeb jiných počítačů k převodu
těchto dat do jiného formátu. Uživatel pak bude schopen vytisknout data na
nejbližší tiskárně, aniž by do PalmPilotu musel napřed nahrát příslušný ovladač
Pilot si totiž automaticky natáhne (v Javě napsaný) ovladač tiskárny.
Automatická a snadná integrace do sítě, včetně jejích aplikací se bude přitom
týkat téměř jakýchkoliv elektronických zařízení, PC počínaje a mobilními
telefony konče.

Jak vše funguje?
Jini je javovou síťovou infrastrukturou, která umožňuje zařízením a aplikacím
automaticky se připojovat k síti a nabízet své služby napříč celou sítí.
Technologie neřeší detaily toho, jak ta která konkrétní aplikace bude v rámci
celé sítě fungovat, ale spíše poskytuje těmto službám základní schopnost umět
se identifikovat a propojit.
Jádrem Jini je javová třída RMI (Remote Method Invocation), která je odpovědná
za vzdálené vyvolávání procedur mimochodem, právě implementace této třídy je
jedním z bodů ve sporu Sunu a Microsoftu o Javu. RMI je součástí vývojového
prostředí JDK již od verze 1.2 a nechybí ani v Javě 2.

Orientální bazar na Javě
Síť založená na RMI se má podobat velkému orientálnímu trhu, kde obchodníci
nabízejí své zboží. Takovými obchodníky mohou být v síti Jini koncoví
uživatelé, zařízení či aplikace. Nový obchodník přijde na trh, ohlásí svůj
příchod a rychle postaví stánek. Pak sepíše seznam služeb a zboží, které chce
nabídnout, a vyvěsí jej na velkou nástěnku, spolu s tucty podobných nabídek
ostatních trhovců. Jini poskytuje mechanizmus, prostřednictvím něhož je
obchodníkům přidělován prostor na tržišti, a také umožňuje transport zpráv na
vývěsku.
Perspektivní zákazníci se podívají na vývěsku a najdou si lístek obsahující
služby, souhlasící s jejich potřebami. Pak si z tohoto lístku zkopírují
potřebné údaje o obchodníkovi. Každý zákazník si pak s obchodníkem dohodne
konkrétní podmínky služeb, např. "jak dlouho" a "za kolik". Pravidla, podle
nichž obchodník skutečně poskytuje své služby, jsou diktována jinou specifikací
firmy Sun, tzv. JavaSpaces.
Na tomto tržiš-ti mají obchodníci svobodu vzájemného obchodování. Zákazník,
jenž si chce koupit koňské podkovy, se nemusí starat o to, že podkovář
uskuteční obchodní transakci s kovářem, aby získal několik podkov, nebo že
kovář uskuteční obchod s horníkem, dobývajícím železnou rudu. Toto vše je pro
zákazníka, jehož přáním je pouze zajezdit si na svém koni, zcela neviditelné.
Jini je sice ještě mnohem více flexibilní, než vyplývá z tohoto přirovnání,
avšak i takový virtuální trh se potýká s řadou problémů. Obchodníci zde nemají
žádný úsudek a potřebují pravidla, pomocí nichž by určili, kdo může využít
jejich služby. Další pravidla jsou potřebná pro řešení situací, které mohou
nastat, když obchodník se svými službami a nástroji náhle přestane existovat,
např. díky poruše sítě.
Samotný trh, jakožto seskupení obchodníků a zákazníků, se v řeči Jini nazývá
"federací" (Federation). Jini přiděluje prostor ve federaci prostřednictvím své
služby Discovery and Join (Zaregistruj a připoj). Lookup Service (vyhledávací
služba) zasílá nabídky služeb a přijímá požadavky na transakce. O tom, kdo může
použít konkrétní službu, rozhoduje tzv. Access Control List (ovládací
přístupový seznam). O způsobu nabízení a poskytování služeb rozhodují
JavaSpaces spolu s aktuální aplikací. Společný jazyk, jejž obchodníci používají
ke vzájemné komunikaci, je pak definován specifikací Java RMI.
Jini a JavaSpaces dohromady reprezentují odklon od stávajících systémových
služeb. Ty vycházejí z centralizovaného modelu, kde jsou systémové služby
spravovány z jediného bodu, kterým je obvykle operační systém. Jakýkoliv
operační systém není nic jiného než sbírka menších dílčích funkcí jedna např.
pro odstraňování balastních informací, směrování provozu, přidělování úloh a
rozhodování o tom, kdo dostane vyšší prioritu než ostatní.
Jini v kombinaci s JavaSpaces rozbíjí tento monolitický model a mnoho služeb
distribuuje do různých částí sítě, čímž OS rozčleňuje do samostatných
subsystémů a následně jej rozptyluje napříč sítí, mezi jednotlivé klienty a
servery. Díky objektové povaze Javy a schopnosti vykonávat přenositelný kód,
Jini po celé síti distribuuje mnoho softwarových objektů. Tyto objekty lze
přirozeně přemisťovat po síti, aby na základě potřeb uživatelů působily na jiné
objekty.

Význam pro podnikové systémy
Jak Jini, tak i distribuované systémy obecně mnoho nabízejí zejména větším
podnikům, neboť významně redukují složitost síťových interakcí.
Mnoho organizací má problémy se sítěmi složenými z PC, tiskáren, kapesních
zařízení, mobilních telefonů a serverů, které oddělení správy způsobují velké
bolení hlavy. Když se odporoučí tiskárna, náhle všichni uživatelé sítě
potřebují změnit nastavení tisku na svých pracovních stanicích. Jini řeší
problém prostě tím, že automaticky rozpozná změny v síti a zařídí pro uživatele
neviditelné přesuny kódu de facto automaticky dodá nový ovladač tiskárny.
Jini rovněž vytváří možnost uskutečňování zcela nových druhů obchodních
transakcí, včetně pronájmu prostoru na velkých diskových polích. Sun doufá, že
v budoucnu kolem flexibility sítí podporovaných Jini vyrostou nové
podnikatelské modely. Poněvadž společnosti nepřestávají zkoumat nové zdroje
příjmů, Jini může poskytnout nezbytnou infrastrukturu pro takové využití
veškerých hardwarových zdrojů a výpočetního výkonu, jaké si zatím nikdo
nedovedl představit.

Jak jde čas
Existují určité pochybnosti, zda technologie podporující distribuované systémy
budou v příštím desetiletí hrát hlavní roli. Masivní šíření sítí nahrává
decentralizovaným službám. Myriády počítačů ve všech svých rozmanitých formách,
propojené přiměřeně rychlými sítěmi, poskytují distribuovaným systémům rozumnou
výpočetní sílu.
Konkrétní aplikace Jini jsou však stále ještě spíše fantazií než realitou.
Nemůžete očekávat, že zajdete do obchodu, koupíte si krabici zabalenou do fólie
a hodíte Jini do sítě. V současné době je Jini čímsi jen o málo přesahujícím
základní nástroj, který umožňuje vývojářům psát aplikace lépe využívající síť a
její prostředky.
Je proto třeba, aby vývojáři psali aplikace, které naplno využívají schopnosti
obsažené ve specifikaci Jini. Minimálně je potřeba, aby výrobci psali javové
ovladače nebo javová rozhraní k ovladačům pro všechna svá zařízení, která by
přinejmenším potenciálně mohla pracovat v takových sítích.
Zůstává otázkou, jak obtížné bude pro Jini vymanit se z výzkumného a vývojového
stadia a nabýt podoby reálně fungujících aplikací a zda se to v nejbližší
budoucnosti vůbec podaří...

Záleží na vývojářích
Základní infrastruktura Jini používá Java RMI a objektové programování. Ačkoliv
některé aspekty implementace Jini budou programátorům používajícím Javu (resp.
objektově-orientované programování obecně) jasné, psaní distribuované aplikace
zůstává stále mnohem komplikovanější než v případě "obyčejné" aplikace.
Vezměte si, například, stále se opakující začátečnickou aplikaci "Hello World"
(Program, kterým začínají příručky o programování v celé řadě jazyků. Jeho
jedinou funkcí je po spuštění napsat na obrazovku text "Hello World" poznámka
pah). V centralizovaném operačním systému a aplikačním modelu je napsáno asi
půl tuctu řádků kódu a na obrazovce se při spuštění aplikace objeví požadovaná
věta. I úplný začátečník dokáže takový program napsat za několik minut. Pokud
si vyberete takovou aplikaci a programujete ji pro distribuované prostředí,
složitost a délka kódu dramaticky vzrůstá. Vývojář musí brát v úvahu takové
problémy, jako jsou výpadky sítě, reakční doby a bezpečnostní aspekty. Ačkoliv
Jini a JavaSpaces umožňují pracovat s distribuovanými bezpečnostními modely a
používají objektové zpracování, bude pro dnešní vývojáře velkým problémem
osvojit si tvorbu distribuovaných aplikací a služeb v plné šíři budou se
zkrátka muset leccos naučit.
Na druhou stranu, existují již však i některá velmi povzbudivá znamení. Sun
uzavřel partnerství se společnostmi jako Quantum a Ericsson. O obou těchto
firmách se říká, že již Jini využívají. Rovněž se šíří zprávy, že se i Novell
zabývá myšlenkou vytvořit adresářové služby pro Jini. Společnost Datek (svět je
distribuován, Dateku tedy nevadí, že fyzicky sídlí v Malajsii) již pod názvem
Madura dodává soubor nástrojů pro plánování podnikových zdrojů právě na bázi
Jini.

Politika Sunu
Sun chce přirozeně co nejdříve dosáhnout všudypřítomnosti Jini. Proto slibuje,
že Jini bude softwarem s volně přístupným zdrojovým kódem (podobně, jako je
tomu v případě GNU Linuxu nebo serveru Apache). Slibuje si od toho samozřejmě
četná vylepšení a opravy stávajícíh chyb.
Technologie Jini (respektive Java vůbec) by mohla představovat nebezpečí pro
většinu tradičních operačních systémů. Nepřekvapuje proto, že společnosti jako
Microsoft pracují na svých vlastních distribuovaných systémech.
V současné době si zatím Jini zřejmě udržuje přední pozici. Spolu s šířením JVM
bude tato technologie moci pracovat ve velkém množství prostředí a integrovat
se do nich. A ačkoliv vývoj distribuovaných systémů není nikterak omezován, lze
s poměrně slušnou dávkou pravděpodobnosti vsadit na to, že standard pro
distribuované operační prostředí definuje buď Sun, nebo Microsoft. Jini staví
na přednostech Javy, zatímco Microsoft má pod kontrolou minimálně současný
standard operačních systémů.

Distribuované systémy pro příští století
Koncepce distribuované architektury je stěží něčím novým, či dokonce
originálním. Jini od firmy Sun Microsystems není rozhodně jedinou technologií,
která si činí nároky na kompletní přeměnu operačních systémů pro budoucí svět,
pracující především v prostředí Internetu.
David Gelernter, profesor na univerzitě v Yale, prorážel distribuovaným
architekturám cestu při řešení tzv. projektu Linda. Společnost Lucent
Technologies představila v roce 1997 svou technologii Inferno, snaha IBM se
jmenuje T Spaces, a Oak Ridge National Laboratory vyvinula technologii s názvem
PVM (Parallel Virtual Machine paralelní virtuální stroj). Na distribuovaném OS
pracuje v rámci výzkumného programu s názvem Project Millennium rovněž firma
Microsoft.
Naděje vzbuzované distribuovanými systémy jsou obrovské. Právě od těchto
systémů se čeká, že vyřeší řadu současných problémů. Představte si webový
server, jenž zakouší ohromný a nepředvídaný nárůst provozu. V případě
konvenčního OS tento náhlý vzestup jednoduše způsobí kolaps osamělého serveru.
Pokud je ale k dispozici distribuovaný OS, ke zhroucení nedojde, poněvadž OS
zaregistruje zvýšenou poptávku po zdrojích a začne data dočasně ukládat do
jiných počítačů. Tyto různé stroje pak začnou pracovat společně, aby se
vypořádaly s dodatečnou zátěží. A to vše se uskuteční zcela bez lidské
asistence a koncoví uživatelé si nevšimnou žádného zpoždění.

Sun není rozhodně jediný
Zatím jsme se věnovali pouze Jini, podívejme se i na zmíněná konkurenční
řešení. PVM firmy Oak Ridge je navržen pro vytváření levných superpočítačů
prostřednictvím propojování různorodých strojů připojených na síť tak, aby
spolupracovaly při řešení společného problému. Inferno společnosti Lucent je
uceleným systémem navrženým pro tvorbu vložených systémů. Inferno jaksi
kopíruje Javu např. použitím něčeho na způsob virtuálního stroje. T Spaces od
firmy IBM se nápadně podobají jak svou koncepcí, tak implementací (a dokonce i
názvem), JavaSpaces od firmy Sun.
Microsoft nastínil ve svém programovém prohlášení cíle distribuovaného OS
vyvíjeného pod názvem Project Millennium. Tento projekt je přirozeně velmi
ambiciózní. Microsoft doufá, že pomocí Millennia uskuteční dvě rozsáhlé a
vzájemně provázané akce provede kompletní a bezešvou distribuci operačního
systému do všech koutů celosvětové sítě a pozvedne programátory na vyšší úroveň
abstrakce, na níž budou odstíněni od většiny strojových detailů stojících v
pozadí vývoje. Tyto dva cíle, velmi důležité pro distribuovaný systém, jsou
samozřejmě neoddělitelně svázány dohromady. Prostřednictvím vysokého stupně
abstrahování od způsobu, jakým aplikace funguje, může světlo světa teoreticky
spatřit dokonalý distribuovaný systém.

Závěr
Pokud alespoň jedna ze zmíněných technologií uskuteční byť jen polovinu z toho,
co slibuje, budeme svědky tak dramatické změny využívání počítačů, jaká nastala
ve chvíli, když tyto stroje opustily klimatizované sály a přistály na našich
stolech. Celý Internet se prakticky promění v jeden obrovský superpočítač,
distribuující po síti požadavky na výpočetní výkon. Vliv na řadu oblastí (mj. i
oblast umělé inteligence) je nasnadě.
8 2790 / pah










Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.