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 |