DistribuovanΘ aplikace a technologie pro jejich v²voj
Programovß stavebnice
P°inßÜφme dokonΦenφ p°φsp∞vku o softwarov²ch technologiφch , je₧ v souΦasnosti pomßhajφ vytvß°et distribuovanΘ aplikace schopnΘ provozu v heterogennφm prost°edφ.
Za °adu produkt∙ nekomerΦnφch jmenujme kup°φkladu ORB Orbacus firmy OOC, se kterou jsou rovn∞₧ pozitivnφ zkuÜenosti (avÜak implementace n∞kter²ch v²znamn²ch rys∙ CORBA 2.3 je podobn∞ jako u v∞tÜiny nekomerΦnφch ORB doposud ve stavu beta verze). Implementace ORB jednotliv²ch v²robc∙ se liÜφ zejmΘna verzφ standardu CORBA, jejφ₧ po₧adavky spl≥ujφ, rozsahem dodßvan²ch podp∙rn²ch slu₧eb z kategorie CORBA Services, sadou podporovan²ch programovacφch jazyk∙ a platforem, na nich₧ m∙₧e b²t produkt provozovßn. Implementace vÜech rys∙ po₧adovan²ch specifikacφ CORBA 2.3, pop°. jednotliv²ch CORBA Services vÜak rozhodn∞ nenφ snadnou zßle₧itostφ, proto si je dobrΘ uv∞domit, ₧e na prvnφ pohled vysokΘ ceny tΘto kategorie produkt∙ nejsou s ohledem na nßroΦnost jejich v²voje nikterak nadhodnocenΘ.
SouΦasnß verze standardu CORBA 2.3 (b°ezen 2000), podporujφcφ nap°. velmi d∙le₧itΘ °φzenφ ₧ivotnφho cyklu objekt∙, interceptory po₧adavk∙ a jinΘ rysy stavφ CORBA do pozice efektivnφho a prakticky velmi dob°e pou₧itelnΘho prost°edku tvorby distribuovan²ch aplikacφ. Vytvß°enΘ systΘmy ji₧ dnes b∞₧n∞ zahrnujφ nejen poΦφtaΦe, ale kup°φkladu i spot°ebnφ elektroniku nebo m∞°icφ p°φstroje. CORBA se tak stßvß univerzßlnφm prost°edkem spoluprßce softwar∙ r∙zn²ch elektronick²ch systΘm∙ a jejφ implementace se ji₧ pomalu zaΦφnajφ objevovat nap°. v prvcφch sφ¥ovΘ infrastruktury (sm∞rovaΦ∙), v za°φzenφch pr∙myslovΘ automatizace nebo v domßcφch spot°ebiΦφch.
Technologie Java
DalÜφm v²razn²m trendem, kter² m∙₧eme v dneÜnφch distribuovan²ch softwarov²ch systΘmech pozorovat, je stßle v²razn∞jÜφ p°echod na jazyk Java. Jazyk Java je interpretovan², tedy p°enositeln², bezpeΦn², s p°irozenou podporou prßce v sφti a dob°e se hodφ na tvorbu distribuovan²ch aplikacφ. Je zalo₧en na technologii objektov∞ orientovanΘho programovßnφ a syntakticky vychßzφ z jazyka C++, co₧ usnad≥uje p°echod na n∞j programßtor∙m, kte°φ pov∞tÜinou jeÜt∞ donedßvna pou₧φvali jazyk C++.
Je d∙le₧itΘ poznamenat, ₧e Java nenφ pouh² programovacφ jazyk, ale celß novß technologie, umo₧≥ujφcφ vytvß°et aplikace spustitelnΘ na jakΘmkoli poΦφtaΦi a operaΦnφm systΘmu, pro kter² mßme k dispozici virtußlnφ stroj (interpreter) Javy. B∞₧nou souΦßstφ t∞chto aplikacφ je mo₧nost dynamickΘho zavßd∞nφ k≤du ze sφt∞ a mo₧nost prßce s k≤dem, o jeho₧ existenci nebylo v dob∞ vzniku aplikace nic znßmo. Brzy po vzniku Javy se rozÜφ°ila i technologie transparentnφho pou₧φvßnφ distribuovan²ch objekt∙ RMI (Remote Method Invocation). V souΦasnΘ dob∞ Java b∞₧n∞ podporuje i v²voj aplikacφ slo₧en²ch z komponent (s vyu₧itφm technologie Enterprise JavaBeans) a samoz°ejmostφ je i integrace se standardem CORBA.
S jazykem Java se dnes b∞₧n∞ setkßvßme v prost°edφ WWW, kde technologie applet∙ dovoluje dynamicky rozÜi°ovat mo₧nosti WWW prohlφ₧eΦ∙ formou specißlnφch program∙ v Jav∞, b∞₧φcφch v prost°edφ samotnΘho WWW prohlφ₧eΦe. Applety dnes ji₧ dßvno nejsou jen pom∙ckou pro zatraktivn∞nφ vzhledu WWW strßnek animacemi a p°ehrßvßnφm zvuku, ale samoz°ejmou souΦßstφ vφcevrstvΘ architektury aplikacφ, kterß navφc minimalizuje nßklady na instalaci a sprßvu klientskΘho softwaru dynamick²m zavßd∞nφm program∙ p°φmo ze sφt∞. Takov²to zp∙sob navφc umo₧≥uje prodejc∙m softwaru jednoduchΘ poskytovßnφ upgradu, snadnou sprßvu licencφ a prodej jednotliv²ch softwarov²ch modul∙ v reßlnΘm Φase za pou₧itφ prost°edk∙ elektronickΘho obchodovßnφ. Dß se uva₧ovat i o pronßjmu p°φsluÜn²ch softwarov²ch modul∙ na urΦitou dobu.
Na stran∞ WWW server∙ se s Javou setkßvßme ve form∞ technologiφ servlet∙ (komponenty rozÜi°ujφcφ funkΦnost WWW server∙ podobn∞ jako CGI) a JSP (Java Server Pages), umo₧≥ujφcφ dynamicky integrovat informace zφskßvanΘ z distribuovan²ch komponent do WWW strßnek.
╚asto pou₧φvan² argument odp∙rc∙ Javy o jejφ pomalosti Φφm dßl vφce ustupuje do pozadφ s nßstupem JIT (Just-in-Time) p°ekladaΦ∙, kterΘ za b∞hu dynamicky p°eklßdajφ instrukce programu v Jav∞ do strojovΘho k≤du p°φsluÜnΘ platformy. N∞kte°φ v²robci jdou i dßl a provedou p°eklad programu v Jav∞ do strojovΘho k≤du jeÜt∞ p°ed jeho prvnφm spuÜt∞nφm (obvykle s pou₧itφm jazyka C jako mezik≤du a optimalizujφcφho p°ekladaΦe C, kter² je pro danou platformu obvykle k dispozici u samotnΘho u₧ivatele). Takov²to zp∙sob se pou₧φvß zejmΘna u program∙ b∞₧φcφch na stran∞ serveru, kde mφrnΘ pozdr₧enφ p°i startu programu nenφ na zßvadu a obsluha jednotliv²ch po₧adavk∙ klient∙ ji₧ probφhß rychlostφ odpovφdajφcφ b∞₧n²m kompilovan²m program∙m. ÄßdnΘ z t∞chto °eÜenφ vÜak nenφ na ·kor p°enositelnosti program∙, jeliko₧ instrukce virtußlnφho stroje a formßt souboru obsahujφcφ program v Jav∞ jsou od prvnφ verze Javy stßle stejnΘ, dob°e zdokumentovanΘ, a tudφ₧ p°enositelnΘ. V brzkΘ dob∞ m∙₧eme rovn∞₧ oΦekßvat nßstup specißlnφch procesor∙ (picoJava, MAJC), kterΘ budou instrukce Javy vykonßvat p°φmo na ·rovni hardwaru.
Nikoli bez zajφmavosti je skuteΦnost, ₧e zßkladnφ (°ßdkovΘ verze) v²vojovΘ prost°edky pro technologii Java poskytuje jejφ tv∙rce firma Sun zdarma. Pro profesionßlnφ prßci je mo₧nΘ zakoupit °adu v²vojov²ch prost°edφ, nap°. JBuilder firmy Inprise nebo VisualAge for Java od IBM.
Konkurence, nebo spoluprßce ?
Plejßda technologiφ prosazujφcφch se v souΦasnΘ dob∞ p°i tvorb∞ distribuovan²ch aplikacφ m∙₧e na prvnφ pohled budit dojem zmatku a vyvolßvat ·vahy o nutnosti strategickΘho rozhodnutφ, na kterou z nich se orientovat. Ve skuteΦnosti vÜak otßzka takto postavena v∙bec nenφ û v∞tÜina zmφn∞n²ch technologiφ nemß za cφl si konkurovat, ale navzßjem se dopl≥ovat. Orientace na binßrnφ kompatibilitu a ·zkß nßvaznost na jedinou platformu, kterΘ mnozφ dneÜnφ v²vojß°i Φasto podlΘhajφ, se tedy v kontextu oΦekßvßnφ masovΘho nasazovßnφ technologiφ pro heterogennφ prost°edφ m∙₧e jevit jako krßtkozrakß.