home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 August / Chip_2000-08_cd1.bin / obsahy / Chip_txt / TXT / 128-130.TXT < prev    next >
Encoding:
Text File  |  2000-06-29  |  12.8 KB  |  44 lines

  1. Inprise Application Server verze 4
  2. Je o co se op°φt
  3. V minul²ch dvou Φφslech jsme si vysv∞tlili p°φΦiny souΦasnΘho rozmachu distribuovan²ch technologiφ a v²hody sestavovßnφ aplikacφ z komponent. V nßsledujφcφm Φlßnku se pro zφskßnφ konkrΘtn∞jÜφ p°edstavy o mo₧nostech middlewaru, kter² je dnes na trhu, seznßmφme s jednφm konkrΘtnφm °eÜenφm pro podporu tvorby distribuovan²ch aplikacφ û aplikaΦnφm serverem firmy Inprise (IAS). 
  4.  
  5. Inprise Application Server verze 4 (IAS4) je dobr²m p°φkladem prost°edφ pro podporu aplikacφ slo₧en²ch z komponent zalo₧enΘho na jazyce Java. Jako ukßzku mo₧nostφ jsem jej z °ady alternativnφch aplikaΦnφch server∙ (nap°. IBM WebSphere nebo Oracle Application Server) zvolil proto, ₧e firma Inprise d∙sledn∞ respektuje formßlnφ i de facto standardy, a to v nejnov∞jÜφch verzφch, vyh²bß se °eÜenφm proprietßrnφm a na mφstech, kde svß vlastnφ nestandardnφ °eÜenφ poskytuje, dodßvß v₧dy takΘ alternativnφ °eÜenφ, formßln∞ zcela odpovφdajφcφ souΦasnΘ verzi p°φsluÜnΘho standardu. A prßv∞ proto se jednß o softwarovΘ prost°edφ ideßln∞ vhodnΘ ke tvorb∞ distribuovan²ch aplikacφ, jeliko₧ podpora standard∙ je zßrukou kompatibility se systΘmy jin²ch v²robc∙ a nestavφ jejich u₧ivatele (v tomto p°φpad∞ nßvrhß°e architektury aplikace) do pozice zßvislosti na dalÜφ strategii firmy poskytujφcφ infrastrukturu (middleware) softwarov²ch komponent. Vyvinutß aplikace by toti₧ m∞la b²t beze zm∞n p°enositelnß do libovolnΘho jinΘho prost°edφ, podporujφcφho odpovφdajφcφ verze standardu CORBA, Java Φi EJB. 
  6. DalÜφ p°φΦinou, kterß vedal k volb∞ IAS jako ukßzkovΘho p°edstavitele tΘto t°φdy produkt∙, je jeho dobrß dokumentace, kterß je v produktech firmy Borland ji₧ tradicφ (vzpome≥me zde nap°. na p°φruΦku sta°iΦkΘho Turbo Assembleru, kterß je dodnes pou₧itelnß jako zßkladnφ uΦebnice assembleru 8086, nebo na dobrou uΦebnici objektovΘho programovßnφ, kterou byla nap°. p°φruΦka Turbo C++ v prvnφch verzφch). SrozumitelnΘ, struΦnΘ, a p°itom technicky sprßvnΘ vysv∞tlenφ princip∙ systΘmu CORBA a EJB, kterΘ manußly IAS podßvajφ, je toti₧ s ohledem na doposud nep°φliÜ velk² v²b∞r kvalitnφ literatury pro programßtory nezbytnou podmφnkou pro rychl² zaΦßtek p°i tvorb∞ distribuovan²ch aplikacφ. 
  7.  
  8. Vnit°nφ architektura a podporovanΘ platformy 
  9. IAS je °eÜenφm charakteristick²m pou₧itφm ΦistΘ Javy. To znamenß, ₧e je cel² napsßn v jazyce Java a jeho k≤d neobsahuje tzv. nativnφ metody specifickΘ pro danou platformu. Je tedy alespo≥ teoreticky p°enositeln² na jakoukoli platformu podporujφcφ p°φsluÜnou verzi virtußlnφho stroje Java. V souΦasnΘ dob∞ oficißln∞ poskytuje firma Inprise IAS4 pro platformy Linux, Win32 (Windows 95/98/NT), Solaris, AIX a HP-UX. 
  10. Jßdrem a komunikaΦnφ vrstvou IAS4 je ORB VisiBroker for Java 4.0, op∞t zalo₧en² na ΦistΘ Jav∞. Jednß se o jeden z nejkvalitn∞jÜφch ORB, kterΘ jsou v souΦasnΘ dob∞ na trhu. Je charakteristick² podporou vÜech rys∙ po₧adovan²ch specifikacφ CORBA 2.3, jako je zejmΘna POA (Portable Object Adapter), p°enositelnΘ interceptory (Portable Interceptors) a RMI over IIOP. Ji₧ v perspektiv∞ samotnΘho vyu₧itφ tohoto ORB pro v²voj aplikacφ se orientace na IAS jevφ jako zajφmavß. 
  11. Technologicky IAS vychßzφ ze specifikace J2EE, co₧ je univerzßln∞ koncipovanΘ prost°edφ navr₧enΘ firmou Sun pro b∞h vφcevrstv²ch aplikacφ zalo₧en²ch na jazyku Java (filozofie "Write Once, Run Everywhere"). Z nov²ch vlastnostφ, kterΘ architektura J2EE definuje, stavφ IAS4 zejmΘna na integraci Javy se standardem CORBA, novΘm bezpeΦnostφm modelu Javy a architektu°e JDBC na platform∞ nezßvisl²ch ovladaΦ∙ pro p°φstup k databßzφm. Graficky je architektura IAS znßzorn∞na na obr.1. 
  12.  
  13. Jak to funguje dohromady 
  14. Z pohledu spoluprßce distribuovan²ch komponent a p°φstupu k nim poskytuje IAS t°i mo₧nΘ metody, kterΘ se vzßjemn∞ dopl≥ujφ a prolφnajφ. Je jimi technologie CORBA, vhodnß zejmΘna pro heterogennφ °eÜenφ zalo₧enΘ na spoluprßci komponent v nejr∙zn∞jÜφch programovacφch jazycφch, technologie Enterprise JavaBeans z dφlny Sun Microsystems, vyu₧itelnß v prost°edφ Java, a koneΦn∞ mo₧nost integrace do prost°edφ WWW, jeliko₧ WWW server podporujφcφ Javu je nedφlnou souΦßstφ aplikaΦnφho serveru IAS. 
  15.  
  16. IAS a CORBA 
  17. Se zßkladnφmi principy a urΦenφm standardu Common Object Request Broker Architecture (CORBA) konsorcia Object Management Group (OMG) jsme se ji₧ seznßmili v Φlßnku v p°edchozφm Φφsle. IAS se na CORBA napojuje prost°ednictvφm ORB VisiBroker. Komponenty (objekty) CORBA tak mohou b²t provozovßny na IAS jako serverovΘ aplikace vytvo°enΘ v Jav∞ a poskytujφcφ slu₧by klient∙m CORBA, krom∞ toho vÜak tyto komponenty mohou vyu₧φvat slu₧eb libovoln²ch jin²ch objekt∙ CORBA rozmφst∞n²ch v poΦφtaΦovΘ sφti (a¥ ji₧ jsou provozovßny jako aplikace b∞₧n²ch poΦφtaΦ∙, Φi jsou integrovßny do libovoln²ch jin²ch elektronick²ch za°φzenφ p°ipojen²ch k sφti, kup°. k internetu). 
  18. Dφky pou₧itφ VisiBrokeru verze 4 mohou programßto°i komponent CORBA vyu₧φvat veÜkerΘ prvky nejnov∞jÜφ verze standardu CORBA 2.3. 
  19.  
  20. IAS a Enterprise JavaBeans (EJB) 
  21. Enterprise JavaBeans je standard navr₧en² firmou Sun Microsystems v rßmci technologie Java pro tvorbu spolupracujφcφch distribuovan²ch komponent. Komponenta je zde naz²vßna komponentou Enterprise JavaBean. V souΦasnΘ verzi standardu (1.1) jsou definovßny t°i typy takov²chto komponent: Stateless a Stateful Session Beans a Entity Beans. Ob∞ verze Session Bean majφ reprezentovat komponentu schopnou poskytovat slu₧by, zatφmco Entity Beans reprezentujφ urΦitou perzistentnφ entitu systΘmu (nap°. °ßdek v databßzi). 
  22. Komponenta EJB je urΦena pro b∞h v urΦitΘm, p°esn∞ definovanΘm prost°edφ. TakovΘmuto prost°edφ se °φkß kontejner. V jednom kontejneru m∙₧e b²t umφst∞na jedna nebo vφce EJB komponent. Kontejner napojuje komponenty na ostatnφ Φßsti distribuovanΘho systΘmu a poskytuje jim systΘmovΘ slu₧by (nap° transakΦnφ nebo bezpeΦnostnφ slu₧bu). KonkrΘtnφ implementace p°φsluÜn²ch systΘmov²ch slu₧eb tak nenφ starostφ samotnΘho beanu, ale kontejneru, kter² je p°φsluÜn²m zp∙sobem u₧ivatelsky nakonfigurovßn. M∙₧e b²t nap°φklad stanoveno, do kterΘ databßze se mß implicitn∞ uklßdat vnit°nφ stav jednotliv²ch komponent p°i jejich deaktivaci, aby mohl b²t p°i op∞tovnΘ aktivaci znovu obnoven. U n∞kter²ch slu₧eb je jejich vyu₧φvßnφ zcela °φzeno kontejnerem, u jin²ch m∙₧e programßtor komponenty jejφ implicitnφ chovßnφ modifikovat (nap°. u transakΦnφ slu₧by). 
  23. P°enechßnφ implementace podp∙rn²ch slu₧eb kontejneru aplikaΦnφho serveru mß dv∞ v²hody. ZaprvΘ se programßtor nemusφ starat o (z technickΘho pohledu znaΦn∞ komplikovanΘ) Φinnosti, kterΘ mu implicitn∞ poskytne aplikaΦnφ server. ZadruhΘ je mo₧nΘ mnohem obecn∞jÜφ pou₧φvßnφ komponent, jeliko₧ konkrΘtnφ chovßnφ komponenty v danΘm systΘmu ji₧ neurΦuje jen jejφ programßtor, ale sprßvce aplikace, kter² komponentu do systΘmu zaΦle≥uje. P°ed zaΦlen∞nφm komponenty popφÜe sprßvce nejprve oΦekßvanΘ chovßnφ komponenty vzhledem k systΘmov²m slu₧bßm pomocφ tzv. deployment descriptoru. Tento deployment descriptor pak p°edß p°φsluÜnΘmu kontejneru aplikaΦnφho serveru spolu s komponentou jako konfiguraΦnφ informaci. 
  24. Na IAS m∙₧e b²t souΦasn∞ spuÜt∞no vφce kontejner∙, z nich₧ ka₧d² lze nakonfigurovat jin²m zp∙sobem. Komponenty jsou pak vklßdßny do kontejneru nakonfigurovanΘho tak, jak to vyhovuje jejich bezpeΦnostnφm a transakΦnφm charakteristikßm a po₧adavk∙m na p°φstup k datov²m zdroj∙m. 
  25.  
  26. AS a WWW 
  27. Pro ·Φely zp°φstupn∞nφ aplikacφ be₧φcφch na aplikaΦnφm serveru prost°ednictvφm WWW strßnek je jako souΦßst aplikaΦnφho serveru zaΦlen∞n WWW server. Jednß se o WWW server, jeho₧ mo₧nosti jsou srovnatelnΘ nap°. se serverem JavaServer firmy Sun Microsystems nebo s mno₧inou nejpou₧φvan∞jÜφch funkcφ poskytovanou oblφben²m serverem Apache. Sprßvu WWW serveru je mo₧nΘ provßd∞t na dßlku prost°ednictvφm WWW prohlφ₧eΦe. WWW server podporuje provoz p°es SSL (Secure Socket Layer, bezpeΦnostnφ vrstva, zajiÜ¥ujφcφ kryptovßnφ provozu), na dobrΘ ·rovni je takΘ mo₧nost zabezpeΦenφ p°φstupu k jednotliv²m WWW strßnkßm. Sympatickß je mo₧nost sledovßnφ vÜestrann²ch statistik serveru. 
  28. Z naÜeho pohledu je zajφmavß podpora pro technologie servlet∙ a JSP (Java Servlet Pages), kterΘ umo₧≥ujφ integrovat komponenty EJB i CORBA do prost°edφ WWW. 
  29. Aplikace jazyka Java jsou do WWW serveru zaΦlen∞ny dnes ji₧ dosti znßm²m a v₧it²m zp∙sobem û pomocφ tzv. servlet∙. Servlety jsou t°φdy v Jav∞ s definovan²m rozhranφm a jsou spouÜt∞ny v JVM b∞₧φcφ jako souΦßst WWW serveru. Servlety jsou (podobn∞ jako CGI skripty) spouÜt∞ny WWW serverem jako reakce na po₧adavek na urΦit² URL. K≤d HTML zaslan² prohlφ₧eΦi je pak generovßn programov∞ p°φsluÜn²m servletem. Servlety tak tvo°φ zßklad pro tvorbu dynamick²ch WWW strßnek prost°ednictvφm aplikacφ v Jav∞ na stran∞ serveru. 
  30. Pro integraci komponent zapouzd°en²ch podle standardu JavaBean podporuje WWW server dalÜφ z technologiφ firmy Sun: Java Server Pages (JSP). JSP m∙₧e b²t vyu₧φvßna dv∞ma zp∙soby, z nich₧ prvnφ je bli₧Üφ klasickΘmu programovßnφ, zatφmco druh² p°φstup je spφÜe u₧ivatelsk² a nevy₧aduje prakticky ₧ßdnou znalost programßtorsk²ch technik. Programßtorsk² p°φstup je zalo₧en na vklßdßnφ k≤du p°φmo do WWW strßnek a na jeho interpretaci na stran∞ WWW serveru (podobn∞ jako nap°. u technologiφ PHP). Ze skriptu je mo₧nΘ takΘ vyu₧φvat komponenty JavaBeans. D∙le₧itΘ je poznamenat, ₧e v²sledn² k≤d HTML, kter² bude na zßklad∞ b∞hu skriptu zaslßn prohlφ₧eΦi, je vytvß°en v rßmci tohoto skriptu programov∞. Pro urychlenφ generovßnφ strßnek pro prohlφ₧eΦ je zdrojov² k≤d v Jav∞, uveden² na strßnce p°i prvnφm p°φstupu, nejprve zkompilovßn do bytecodu v podob∞ servletu a jako b∞₧n² servlet je pak dßle pou₧φvßn. 
  31. Druh² p°φstup ocenφ zejmΘna nßvrhß°i WWW strßnek, jejich₧ specializacφ je spφÜe grafick² nßvrh a kte°φ se programßtorsk²mi detaily necht∞jφ zab²vat. Ti mohou jednoduch²m p°φkazem v HTML k≤du spustit zadanou metodu urΦitΘ komponenty a v²sledky jejφho b∞hu vlo₧it pomocφ specißlnφch znaΦek na po₧adovanΘ mφsto HTML strßnky. Princip tohoto mechanismu spoΦφvß v tom, ₧e komponenta po spuÜt∞nφ vygeneruje v²sledky ve tvaru pole polo₧ek < jmΘno, hodnota > a ty p°i zpracovßvßnφ p°φsluÜnΘ znaΦky HTML pro vlo₧enφ hodnoty urΦitΘho jmΘna vlo₧φ do dynamicky generovanΘ strßnky. 
  32. K dispozici je samoz°ejm∞ i podpora klasickΘho CGI, avÜak vyu₧itφ servlet∙ je v²razn∞ zajφmav∞jÜφ jak z hlediska v²slednΘho v²konu, tak bezpeΦnosti a v neposlednφ °ad∞ i z hlediska rychlosti tvorby serverov²ch aplikacφ. 
  33. VzßjemnΘ propojenφ diskutovan²ch architektur a jejich vyu₧itφ z klientsk²ch aplikacφ (v tomto p°φpad∞ t°φvrstvΘ architektury) je patrnΘ z obr. 2. 
  34.  
  35. Administrace 
  36. Administrace IAS je provßd∞na pomocφ p°φjemnΘ grafickΘ aplikace v Jav∞ (Inprise Application Server Console). Je zde mo₧nΘ monitorovat a ovlßdat b∞h jednotliv²ch komponent aplikaΦnφho serveru: kontejner∙ EJB, jmennΘ slu₧by JNDI, transakΦnφ slu₧by a registrovan²ch CORBA server∙. Jsou zde takΘ k dispozici funkce pro ovlßdßnφ a sledovßnφ Φinnosti ORB VisiBroker a jeho podp∙rn²ch komponent (Interface Repository, Implementation Repository, Location Service atd.). Konfigurovat a administrovat WWW server lze pomocφ libovolnΘho prohlφ₧eΦe WWW podporujφcφho applety. SystΘm sprßvy WWW serveru je p°ehledn² a p°φjemn², integrace sprßvy IAS a jeho WWW serveru do jednoho prost°edφ by vÜak byla u₧ivatelsky jist∞ p°φjemn∞jÜφ. 
  37. Jeliko₧ jsou komponenty distribuovanΘ aplikace Φasto rozmis¥ovßny na °adu spolupracujφcφch aplikaΦnφch server∙, pamatuje konzola IAS i na mo₧nost sprßvy klastru aplikaΦnφch server∙ spoleΦn∞ z jednoho prost°edφ. 
  38. Vzhled prost°edφ administraΦnφ konzoly ukazuje obr.3. 
  39.  
  40. BezpeΦnost aplikacφ
  41. Architektura komponent EJB implementuje sv∙j vlastnφ bezpeΦnostnφ model zalo₧en² na princip∙ rolφ, kterΘ stanovujφ jednotliv²m u₧ivatel∙m prßva pracovat s jednotliv²mi instancemi EJB komponent a volat jejich metody. Navφc je mo₧nΘ jako zvlßÜtnφ Φßst dokoupit k IAS mnohem propracovan∞jÜφ bezpeΦnostnφ slu₧bu, kterß m∙₧e b²t pou₧φvßna jak v prost°edφ kontejner∙ EJB, tak v nßvaznosti na standardizovanou slu₧bu COS Security systΘmu CORBA. Zde je k dispozici vrstva SSL, vzßjemnß autentizace klient∙ a server∙ certifikßty X.509, nßvaznost systΘmu u₧ivatel∙ a jejich hesel na systΘmy NIS (Network Information System) a mechanismus domΘn v prost°edφ Windows NT. 
  42. Zajφmavß je podpora IAS4 pro b∞h v prost°edφ internetu, kde je spoluprßce aplikacφ omezovßna bezpeΦnostnφ politikou firewall∙. Jako souΦßst IAS je toti₧ dodßvßna aplikace Gatekeeper, co₧ je v podstat∞ GIOP gateway mezi klienty a servery urΦenß pro p°ekonßnφ firewall∙ a omezenφ uklßdan²ch WWW prohlφ₧eΦi na Φinnosti dovolenΘ applet∙m. K dispozici je podpora tunelovßnφ protokolu GIOP (komunikaΦnφ protokol CORBA) v protokolu HTTP (ve standardu CORBA oznaΦovanΘ jako HIOP) a podpora obvykle problematickΘho provozu protokolu GIOP v prost°edφ s p°ekladem adres (NAT). GateKeeper tak Φinφ z IAS prost°edek pro provozovßnφ bezpeΦn²ch aplikacφ nejen ve firemnφch intranetech, ale i v prost°edφ dneÜnφho internetu, plnΘho bezpeΦnostnφch rizik a komplikovan²ch mechanism∙, kterΘ majφ tato rizika omezovat. 
  43. Petr Grygßrek, http://www.cs.vsb.cz/grygarek 
  44.