COMPUTERWORLD
Specializovan² t²denφk o v²poΦetnφ technice
o Internetu
(CW 12/96)

Stane se Java aplikaΦnφm jazykem pro IS ?

Petr Strßnsk²

"Internetovsk²" programovacφ jazyk Java od spoleΦnosti Sun nemusφm snad ani p°edstavovat. Ohlas, kter² vyvolßvß, je obrovsk² a to zdaleka nejen na Internetu. Samotnß spoleΦnost Sun oznaΦuje Javu jako revoluΦnφ krok, kter² p°inese neb²val² rozvoj aplikacφ, a¥ u₧ pro ve°ejnΘ pou₧itφ nebo v prost°edφ podnikov²ch sφtφ.

Podφvejme se na Javu pon∞kud blφ₧e. Je z°ejmΘ, a n∞kdy to i SUN p°iznßvß, ₧e v Jav∞ je pouze obsa₧eno to "dobrΘ" z jazyka C++. Pro n∞kterΘ programßtory to p°inßÜφ ohromnou ·levu, proto₧e se nemusφ v podstat∞ uΦit nic novΘho. Ale na druhou stranu podobenstvφ s C++ p°inßÜφ i problΘmy. Programßtor∙, kte°φ zvlßdli objektovou problematiku, toti₧ nenφ mnoho a jejich prßce je pom∞rn∞ dob°e honorovßna. Pro v²voj drobn²ch aplikacφ se nevyplatφ najφmat "drahΘho" programßtora a v²voj vlastnφmi prost°edky nemusφ b²t nejlepÜφ cestou. Java je toti₧ sice jednoduchß, ale rozhodn∞ ne pro Φlov∞ka, kter² nem∞l s programovanφm a s Internetem co do Φin∞nφ. A to je druh² zßdrhel. Programßtor, kter² mß v Java tvo°it kvalitnφ aplikace, musφ znßt sφ¥ovou problematiku, pota₧mo Internet. A takov²ch lidφ je opravdu mßlo.

Java tady, Java tam

Aby bylo mo₧nΘ Javu masov∞ pou₧φvat, musφ b²t provozovatelnß na co nejÜirÜφm spektru v²poΦetnφ techniky. To neznamenß pouze p°enositelnost, ale takΘ nenßroΦnost na pou₧it² hardware. Zde je nejv∞tÜφ kßmen ·razu. Jak se budou Java applety chovat, zßle₧φ na interpreteru jazyku Java. A na n∞m zßvisφ i dalÜφ aspekty provozu Java aplikacφ.

Nap°. pro PC sice existuje mo₧nost provozu Java applet∙ v rßmci rozÜφ°enΘho Netscape Navigatoru, ale nenφ to tak skv∞lΘ, jak by se zdßlo na prvnφ pohled. Navigator vy₧aduje pom∞rn∞ siln² hardware (ani 8 MB pam∞ti nenφ p°φliÜ mnoho) a Javu podporuje pouze pod Windows 95 a Windows NT. A byl jsem sv∞dkem zhroucenφ Netscapu po nata₧enφ n∞kter²ch applet∙. Prohlφ₧eΦ∙, kterΘ budou podporovat applety, bude stßle vφce, ale nezdß se, ₧e by m∞ly menÜφ nßroky na hardware.

Java nebezpeΦnß

Hlavnφ d∙raz na aplikaΦnφ jazyk v podnikovΘm IS je kladen v oblasti bezpeΦnosti. Pro kritickΘ aplikace musφ b²t jazyk ne skoro, ale stoprocentn∞ bezpeΦn² a robustnφ. BezpeΦnostφ nemyslφm pouze nemo₧nost poÜkozenφ dat nebo pr∙niku do systΘmu, ale takΘ vlastnφ stabilitu systΘmu. A ta nenφ v souΦasnΘ dob∞ u Javy stoprocentn∞ dosa₧ena. Je to prßv∞ p°edevÜφm dφky tomu, ₧e vlastnφ provoz aplikacφ v Jav∞ je p°enechßn nezßvislΘmu programu, kter² musφ zajistit dostateΦnou bezpeΦnost, robustnost a rychlost.

To, ₧e Sun p°enechßvß tvorbu t∞chto interpreter∙ z v∞tÜφ Φßsti nezßvisl²m firmßm, je sice dobrΘ pro masivnφ rozÜφ°enφ Javy, ale ne pro jejφ kvalitu. Pokud se toti₧ nebude interpreter chovat korektn∞ potom, m∙₧e dojφt k velmi nemil²m nßsledk∙m. SpoleΦnost Sun zd∙raz≥uje, ₧e applety nemohou poÜkodit systΘm, ba ₧e dokonce nemohou zapisovat na disk. Toho je vÜak dosa₧eno pouze ve dvou p°φpadech. A to kdy₧ se interpreter chovß p°edpoklßdan²m zp∙sobem a stejn∞ tak kdy₧ pou₧φvanΘ t°φdy pracujφ, tak jak majφ.

Ov∞°enφ, zda se dotyΦn² interpreter chovß korektn∞, je teoreticky sice mo₧nΘ, ale v d∙sledku to nelze zaruΦit. Tak₧e k zhroucenφ systΘm∙ dojφt m∙₧e, stejn∞ tak k poÜkozenφ dat. V²Üe uvedenΘ tvrzenφ platφ teoreticky, neznamenß to tedy, ₧e musφ k uveden²m problΘm∙m dojφt. Ale ta mo₧nost existuje, a to je velmi nep°φjemnΘ.

Jak z toho ven ? Pou₧φvat ov∞°enΘ interpretery. To znamenß pou₧φvat ov∞°enΘ prohlφ₧eΦe. To sice nenφ a₧ tak problematickΘ, na druhou stranu to pro podnik znamenß urΦitΘ omezenφ. A urΦenφ, kter² software je spolehliv² a kter² ne, nenφ rozhodn∞ snadnΘ.

T°φdy aneb objektovΘ programovßnφ

Java je d∙sledn∞ objektovß. Z toho vypl²vajφ v²hody, ale i nev²hody. V²hodou jsou d∙slednß logickß stavba aplikacφ, jejich p°ehlednost, mo₧nost znovuu₧φvßnφ k≤du atd. Nev²hodou je pomalost aplikacφ a p°edevÜφm urΦitß mo₧nost naprostΘ zm∞ny chovßnφ jednotliv²ch t°φd. Proto₧e i samotn² p°eklad pro Javu byl napsßn pomocφ Java applet∙, lze bez velk²ch obtφ₧φ zm∞nit jeho chovßnφ, tak aby se choval podle po₧adavk∙ u₧ivatele. Pro ochranu u₧ivatele proti zm∞n∞ chovßnφ systΘmov²ch t°φd interpreter kontroluje p°ed vlastnφm provedenφm k≤d Javy tak, aby nedoÜlo k provßd∞nφ k≤du, kter² by mohl poÜkodit data.

S tφmto rysem souvisφ i nev²hoda Javy. V jejφm souΦasnΘm provedenφ nenφ mo₧nΘ pracovat rozumn∞ s lokßlnφmi daty (R∙znφ tv∙rci nabφzejφ p°φdavnΘ t°φdy, kterΘ urΦitou spoluprßci s lokßlnφmi daty nabφzejφ). Samotnß spoleΦnost Sun p°ipravuje JDBC, co₧ je interface pro prßci s databßzov²mi daty. Prßv∞ nemo₧nost spoluprßce s databßzov²mi systΘmy je velkou p°ekß₧kou pro nasazenφ Javy v podnikov²ch informaΦnφch systΘmech. Jak ji₧ bylo zmφn∞no, n∞kte°φ dodovatelΘ nabφzejφ mo₧nost rozÜφ°enφ Javy pro prßci s r∙zn²mi typy dat, ale ta nenφ jednak dokonalß a jednak za nimi v₧dy nestojφ d∙v∞ryhodnΘ firmy. Technickß podpora, kterß je pro IS d∙le₧itß, nenφ tφm pßdem p°φliÜ zajiÜt∞na.

Po programovΘ strßnce je dosa₧eno robustnosti Javy tφm, ₧e neobsahuje ₧ßdnΘ prost°edky pro prßci s pam∞tφ. P°id∞lovßnφ a uvol≥ovßnφ systΘmov²ch prost°edk∙ obecn∞ je pouze na interpreteru. Programßtor se proto nemusφ obßvat, ₧e by sv²m programem naruÜil pam∞¥ov² subsystΘm. Co vÜak ji₧ Sun nezd∙raz≥uje, je okolnosti, ₧e pam∞¥ovß alokace je zßle₧itostφ interpreteru. Pokud je v jeho prßci n∞jakß chyba, potom je s bezpeΦnostφ Javy amen.

Nasazenφ Javy v IS

AΦkoli applet∙ potkßte na sφti ji₧ obrovskΘ mno₧stvφ, zatφm se nezdß, ₧e by Java p°φliÜ pronikla do podnikov²ch informaΦnφch systΘm∙. P°ekß₧ek je hned n∞kolik.

Mana₧e°i IS nev∞°φ proklamovanΘ bezpeΦnosti Javy a neodva₧ujφ se ji nasadit na kritickΘ ·koly. Navφc si nejsou jisti, zda Java na tyto ·koly staΦφ. S tφm souvisφ kritick² nedostatek programßtor∙, kte°φ by byli schopni v Jav∞ efektivn∞ programovat a znali ji natolik dokonale, aby psali ty "sprßvnΘ" aplikace. SouΦasn² nedostatek v²vojov²ch prost°edk∙ tento stav jeÜt∞ zhorÜuje.

Java nenφ sice propojena s Internetem a p∙vodn∞ pro n∞j nebyla v∙bec vytvo°ena, ale pro mnoho lidφ se Java automaticky rovnß Internet. Proto se o ni ti, kte°φ pro svΘ podnikovΘ servery nepou₧φvajφ internetovskΘ technologie, ani p°φliÜ nezajφmajφ.

Java je freeware ?

Proto₧e je Java voln∞ dostupnß, stejn∞ jako sada zßkladnφch v²vojov²ch prost°edk∙, je k dispozici velkΘmu poΦtu v²vojß°∙. Ale takΘ to znamenß, ₧e technickß podpora nenφ v takovΘm stavu jako u velk²ch komerΦnφch balφk∙. TakΘ to znamenß, ₧e na rozdφl od specißln∞jÜφch °eÜenφ, kterß nejsou obecn∞ znßma, budou existovat lidΘ, kte°φ budou znßt Javu do nejhlubÜφch podrobnostφ. Pro sprßvce IS to znamenß, ₧e se m∙₧e stßt, ₧e n∞kter² z hloubav²ch hacker∙ si dß tu prßci a odhalφ slabiny jeho systΘmu. A p°i pou₧itφ obecn∞ dostupnΘ technologie to nemusφ b²t a₧ tak velk² problΘm.

Postaru ?

Proto se v podnikov²ch sφtφch, a to i t∞ch, kterΘ vyu₧φvajφ WWW, pou₧φvß kombinace HTML s n∞jak²m pomocn²m prost°edkem. Tento prost°edek je propojen s internφmi databßzemi a aplikacemi a s u₧ivatelem komunikuje pouze pomocφ klasickΘho HTML jazyka. V²vojß°i nemajφ sice k dispozici siln² nßstroj, ale odd∞lenost u₧ivatele a mo₧nΘho naruÜitele je z°ejmß a nep°ekonatelnß. A navφc pro velmi velkou mno₧inu aplikacφ jsou tyto prost°edky naprosto dostateΦnΘ.

S tφm souvisφ rozÜi°ovßnφ velkΘho poΦtu klasick²ch v²vojov²ch prost°edk∙ pro IS o mo₧nosti prßce s Internetem a WWW. Oracle, Informix a mnoho dalÜφch producent∙ t∞chto nßstroj∙ se rychle sna₧φ tyto vlastnosti do sv²ch produkt∙ dodat. Mana₧ery IS, kte°φ ji₧ majφ postaveny svΘ aplikace na n∞kterΘm z t∞chto systΘm∙, nemusφ kompletn∞ p°epracovßvat svΘ aplikace, staΦφ pouze dodat dalÜφ funkΦnost.

Budoucnost Javy

V souΦasnΘ dob∞ se zdß, ₧e Java nemß konkurenci. Ale ji₧ n∞kolik firem, vΦetn∞ Microsoftu, ohlßsilo svß °eÜenφ. Ta majφ p°inΘst podobnΘ vlastnosti, jako mß Java a samoz°ejm∞ takΘ n∞co navφc. Nejv∞tÜφ nad∞je jsou vklßdßny do rozÜφ°enφ Visual Basicu o sφ¥ovΘ mo₧nosti a provoz distribuovan²ch aplikacφ. Obrovskou v²hodou VB jsou velkΘ zßstupy v²vojß°∙, kte°φ mohou "z fleku" programovat aplikace pro Internet bez nutnosti se uΦit mnoho novΘho. Pro Visual Basic existuje standardnφ grafickΘ v²vojovΘ prost°edφ, kterΘ je pro u₧ivatele ji₧ dostateΦn∞ znßmΘ.

To, ₧e Java nezapadne, je tΘm∞° jistΘ. Ale jestli se prosadφ do prost°edφ podnikov²ch sφtφ, ji₧ jistΘ zdaleka nenφ. Proto₧e mnoho v²robc∙ v²vojov²ch prost°edk∙ slibuje podporu Javy ve sv²ch produktech, bude k dispozici brzo i odpovφdajφcφ v²vojß°sk² nßstroj. Potom bude Üance, ₧e se Java nestane supernovou, ale stßlicφ na nebi programovacφch jazyk∙. Pokud, a v to jß doufßm, se Φasem vy°eÜφ i problΘmy souvisejφcφ s rychlostφ interpretace a s interpretery v∙bec, bude Java vhodnß i pro kritickΘ aplikace.

Ale t∞₧iÜt∞ mnoha informaΦnφch systΘm∙ z∙stane zalo₧eno na klasick²ch programov²ch nßstrojφch obohacen²ch o internetovskou komunikaci.

V²hody Javy pro informaΦnφ systΘmy :

* P°enositelnost a mo₧nost provozu na vφce platformßch bez nutnosti zm∞n v k≤du. * Relativnφ bezpeΦnost, kterΘ je dosa₧eno nemo₧nostφ prßce s lokßlnφmi disky. * Plnß objektovost, kterß p°inßÜφ mo₧nost znovupou₧itφ k≤du a sdφlenφ k≤du mezi vφce v²vojß°i a projekty.

Nev²hody Javy pro informaΦnφ systΘmy :

* Zßvislost na t°etφch v²robcφch, kte°φ poskytujφ interpretery pro Javu. V jednotliv²ch implementacφch na r∙zn²ch systΘmech mohou existovat urΦitΘ odchylky. * Relativnφ nebezpeΦnost Javy, kterß nenφ sama o sob∞ bezpeΦnß, ale spolΘhß na urΦitou kontrolu interpreteru. * SouΦasnß nemo₧nost rozumnΘ prßce s lokßlnφmi daty. Java neobsahuje z d∙vodu bezpeΦnosti prost°edky pro prßci s diskov²mi systΘmy na lokßlnφm poΦφtaΦi. To by se m∞lo zm∞nit, ale pak m∙₧e dojφt k problΘm∙m s bezpeΦnostφ applet∙. * ProblΘmy s rychlostφ aplikacφ v Jav∞ a nßroΦnostφ na hardware.


| CW o Internetu | COMPUTERWORLD | IDG CZ homepage |