Vývojové nástroje pro Internet

Internetové aplikace již dávno nejsou jen doménou nadšených programátorů, ale stávají se na straně jedné důležit...


Internetové aplikace již dávno nejsou jen doménou nadšených programátorů, ale
stávají se na straně jedné důležitou součástí podnikových informačních systémů
a na straně druhé základním prostředkem pro realizaci elektronické komerce.
S rychlým rozvojem Internetu proto také přichází rychlý rozvoj vývojových
nástrojů pro internetové aplikace. Zvyšují se také nároky kladené na vlastní
vývoj, programátory a samozřejmě také na vlastní aplikace. Současně dochází ke
stále většímu propojování se stávajícími systémy, a proto řada klasických
vývojových nástrojů obsahuje podporu pro vývoj internetových součástí.
Trendy
Se stále se rozšiřujícím využitím Internetu se rozšiřuje rozmanitost a počet
produktů, které jsou určeny pro vývoj internetových aplikací. Internetové
aplikace mohou ovšem nabývat nejrůznějších podob od klasické HTML stránky s
vloženým kódem, přes javový applet až po speciální propojení s databází nebo
komunikační aplikací. Často dochází ke kombinaci několika typů aplikací
dohromady, ale i k propojení s dalšími částmi informačních systémů firem.
Cílem tohoto článku je především ukázat, že vývoj internetových aplikací je
komplexní záležitostí, která vyžaduje úvodní dostatečnou přípravu a výběr
vhodných technologií. Současně by měl sloužit i jako přehled jednotlivých
technologií a trendů; naproti tomu výčet produktů si přirozeně neklade nároky
na úplnost.
Typy internetových aplikací
Internetové aplikace můžeme rozdělit do dvou základních skupin: klientské a
serverové. Webový klient ovšem využívá standardní prostředí prohlížeče místo
specializované aplikace, jak tomu je u klasického modelu klient/server. To
přináší určité výhody na straně jedné (platformová nezávislost, standardizace,
robustnost) a některé nevýhody na straně druhé (komplikace s transakčním
zpracováním, bezpečnost), které jsou stále více snižovány díky novým
technologiím a produktům (dynamické stránky apod.).
Naše pozornost je věnována aplikacím, které využívají webové rozhraní. To ovšem
neznamená, že na Internetu se můžeme setkat pouze s nimi. Další velkou skupinou
jsou nejrůznější komunikační, specializované a podobné aplikace, využívající
především protokolu TCP/IP. Jsou vytvářeny v klasických programovacích
jazycích, jako je Visual Basic, C/C++ atd. Příkladem může být např. známý
RealAudio systém pro streamové přehrávání zvukovým záznamů.
Současně většina "balíkových" podnikových informač-ních systémů, jako je např.
SAP R/3, Baan, PeopleSoft a mnoho dalších, obsahuje v nejnovějších verzích
rozšíření o internetové moduly, řada dalších tuto podporu přidává. Ty většinou
využívají komplementárního webového modelu jako doplňujícího (ale v některých
případech již dominujícího) uživatelského prostředí.
Vlastní výběr technologií musí proto sledovat nejen nejvýkonnější a
nejmodernější technologie, ale současně brát v úvahu stávající vybavení.
Samozřejmě, že v některých případech se může ukázat výhodnější variantou
nahrazení "zastaralých" aplikací naprosto novým internetovým vybavením.
Klientské aplikace
Protože již při použití standardního modelu, kdy jako základní server slouží
webový server, lze řadu požadavků vyřešit pouze klientskými aplikacemi, jsou
tyto vývojové nástroje daleko používanější než aplikace serverové. Dalším
důvodem je, že klientské aplikace jsou často daleko jednodušší, a lze je
vytvářet pomocí dostupných (freeware, shareware) programů. Serverové aplikace
mohou vyžadovat podstatně vyšší úroveň znalostí, ačkoli ani to není pravidlem
(např. CGI skripty).
Použitelnost dále popsaných technologií může být vázána na konkrétní typ
webového prohlížeče nebo dokonce jeho verzi. Pro účely tohoto článku jsou tyto
skutečnosti nevýznamné, ale při vlastním plánování vývoje jsou jedním ze
zásadních výchozích bodů.
Proto je nutné při vývoji klientských aplikací uvažovat, jakým vybavením
(softwarovým i hardwarovým) budou klienti disponovat. Často je nutné využívat
duplicity aplikací, aby bylo možné využít nejmodernější technologie při
zachování dostupnosti služeb i uživatelům s horším vybavením. Což ovšem zároveň
může znamenat problematickou otázku ohledně bezpečnosti, robustnosti řešení,
případně výkonu. Obecně se dá říci, že při vývoji internetových aplikací platí
"něco za něco", tedy při zlepšení některé stránky (např. rychlosti aplikací)
dochází ke zhoršení jiné (např. nekompatibilita).
HTML stránky
Jednou z nejdůležitějších součástí všech aplikací (jako jejich klientské
rozhraní) jsou vlastní HTML stránky, které mohou být buď statické, dynamické,
nebo dynamicky generované pomocí serverové aplikace. Jazyk HTML, který je
prajazykem pro jejich vytváření, se během posledních 5 let rozšířil o celou
řadu možností, a podle současného vývoje bude postupně nahrazen lépe a volněji
definovaným jazykem XML, který přináší řadu novinek, především ucelenější
koncepci (HTML je díky své historii poměrně nekonzistentní).
Pro vytváření statických HTML stránek (ale i částí dynamických a templatů
dynamicky generovaných) může posloužit jakýkoli ASCII editor, nicméně stále
více je využíváno specializovaných editorů, které dovolují pracovat v téměř
WYSIWYG modu a umožňují též vkládat dynamický kód.
Dynamické HTML stránky
Dynamické HTML stránky přinesly významné možnosti pro vývojáře internetových
aplikací a zásadním způsobem změnily využívání Internetu. Na rozdíl od
dynamicky generovaných stránek umožňují off-line (tedy bez zatížení zpožděním
při komunikaci se serverem) práci uživatele, grafické kreace apod. Jednou z
nejčastějších oblastí použití je vytváření "inteligentních" formulářů, tedy
takových, které dokáží dynamicky měnit svou podobu podle akcí uživatele (bez
reloadu stránky), kontrolovat zadávané údaje...
Pro dynamické stránky je využíváno především tří nejdůležitějších technologií,
jimiž jsou ActiveX od Microsoftu, JavaScript Netscapu a samozřejmě také Java. K
těmto je nutné přidat DHTML, neboli dynamický HTML kód, který využívá kombinace
CSS (Cascading Style Sheets), DOM (Documents Object Model) a JavaScriptu.
Do této skupiny také spadá VBScript, což je speciální odrůda Visual Basic kódu,
který je opět součástí HTML stránky. Díky tomu, že je možné VBScript vyvíjet v
prostředí Visual Basicu, získal si poměrně velkou oblibu. Nicméně je samozřejmě
možné jej použít pouze pro Internet Explorer.
ActiveX Controls
ActiveX Controls jsou jako mateřská technologie Microsoftu využitelná pouze v
prohlížeči Internet Explorer. Nicméně používání této technologie se značně
rozšířilo, a to zejména díky možnosti použít pro její vývoj standardních
nástrojů, jako je Visual Basic nebo Visual C++. Nelze také opomenout možnosti
automatické instalace v prostředí prohlížeče, silnou podporu ze strany
Microsoftu atd.
Vlastní ActiveX je z pohledu Microsoftu vlastně zastřešením všech používaných
částí pro vytváření distribuovaných aplikací (ActiveX je vlastně COM Components
Objects Model), proto sem spadají kromě ActiveX Controls také JavaScript, ale i
Java, HTML neboli všechny části, které jsou zakomponované do modelu internetové
aplikace. ActiveX přináší určité rozšíření bezpečnosti, kdy objekty, které jsou
nahrávány do prohlížeče, podléhají zvolenému bezpečnostnímu režimu, mohou být
certifikovány a jejich běh izolován od ostatních částí prohlížeče nebo dalších
ActiveX komponent.
JavaScript
JavaScript byl vlastně první skriptový jazyk pro klientské aplikace. Dnes je
součástí DHTML a je velmi hojně využíván jako základ dynamických HTML aplikací.
Patří mezi nejstarší představitele dynamických technologií vůbec, a díky své
jednoduchosti umožňuje rychlé vytváření prvních aplikací, kdy zároveň nabízí
poměrně rozsáhlé možnosti. Tam, kde již nestačí, navazují svými možnostmi Java
applety.
Klientské plug-iny
Pro téměř libovolné rozšiřování možností internetového prohlížeče je možné
použít specializovaného API (platí pro Netscape, u Microsoftu se používá
ActiveX). Díky své provázanosti s webovským prohlížečem umožňuje plug-in
poměrně velkou flexibilitu a také vytváření propojení se serverovými
rozšířeními. Takto jsou řešeny nejrůznější multimediální nadstavby, ale obecně
může být takto řešena jakákoli aplikace. Značnou nevýhodou je nutnost manuální
instalace těchto plug-inů, malá robustnost prostředí a také závislost na
platformě, kde je plug-in provozován. Pro vývoj internetových aplikací lze
plug-iny doporučit pouze pokud je tato aplikace určena omezenému a
kontrolovanému počtu uživatelů, kterým bude nainstalován.
Ostatní
Vývojáři mají k dispozici řadu dalších rozšíření možností klientského
uživatelského rozhraní. Mezi ně patří např. VRML pro realizaci 3D prostředí,
nebo multimediální nadstavby jako je ShockWave, Director (které jsou řešeny
jako plug-iny nebo ActiveX moduly, ale zároveň slouží jako prostředí pro provoz
vlastních aplikací). Všechna tato rozšíření vyžadují instalaci patřičných
programů na straně klienta, aby je bylo možné využívat. To také znamená určitou
komplikaci v případě vývoje veřejné služby, neboť v takovém případě musí každý
uživatel tato rozšíření na svém systému instalovat.
Java
Java je komplexní programovací jazyk, jehož jednou možností je využití jako
tzv. appletů v rámci webového prohlížeče. Java aplikace ovšem může být
samostatnou entitou bez využití prostředí prohlížeče. Java je stále častěji
využívána pro vytváření samostatných aplikací nejrůznějšího použití, ale nejen
pro klientské aplikace, ale i na straně serveru.
Navíc, díky neustálému rozšiřování podpory Javy ze strany mnoha organizací a
rozšiřování vlastní technologie, jsou nyní k dispozici nástroje pro
komponentový vývoj (JavaBeans), databázové nástroje, možnosti propojování s
dalšími komponenty na jiných platformách (především pomocí DCOM, CORBA) atd.
Velkou předností Javy je relativní nezávislost na platformě, robustnost a
bezpečnost a v současné době také nepřeberné množství aplikací vytvořené v
tomto jazyce. O Javě toho bylo již napsáno mnoho, a díky své komplexnosti si
zaslouží samostatnou pozornost. Ostatně řada vývojových nástrojů pro Javu je
napsána přímo v Javě. Java se sice potýká s určitými výkonnostními problémy,
ale objevují se specializované nástroje, které umožňují až desetinásobné
zrychlení chodu aplikací.
Serverové aplikace
Serverové aplikace slouží pro obsluhu požadavků klientských aplikací, které
mohou mít podobu "pouhé" HTML stránky. Výsledkem je potom dynamicky generovaná
stránka. Samozřejmě, že základní a nejznámější serverovou aplikací je vlastní
webový server. Ale mezi "generické" internetovské serverové aplikace počítáme
poštovní servery, FTP servery a mnoho dalších. Na serverové aplikace jsme se
podívali v seriálu Aplikace na Webu a v minulém Tématu týdne, věnovaném webovým
serverům, proto se jim nyní věnovat nebudeme.
Typy vývojových
nástrojů
Následující krátký přehled uvádí jednotlivé typy vývojových nástrojů, které
jsou využívány pro tvorbu internetových aplikací.
HTML Editory
Jako základní HTML editor může sice posloužit jakýkoli ASCII editor, ale za
cenu nízkého komfortu. Proto existují desítky nejrůznějších HTML editorů, které
většinou umožňují také vkládání určitých dynamických komponent, jako např.
JavaScriptu nebo DHTML. Liší se zejména komfortem, podporovanými funkcemi a
samozřejmě výsledkem, který produkují. Důležitou součástí nejmodernějších HTML
editorů bývá komplexní nástroj pro správu webových stránek, kdy má vývojář k
dispozici přehledný grafický nástroj, utility pro kontrolu konzistence,
případně testování vlastních stránek. Některé tyto nástroje umožňují
automatizovaný update mezi pracovní a běžící verzí atd.
Obecné vývojové nástroje
Velmi často je možné pro vývoj internetových aplikací použít obecné vývojové
nástroje, např. pro vytváření klientských dynamických aplikací, ale i součástí
serverů (např. pro CGI, NSAPI, ISAPI). Většina výrobců vývojářských nástrojů
již podporu Internetu do svých produktů přidala a vývojáři mají tedy k
dispozici veškerý dostupný komfort, až používají Visual C++ nebo Delphi.
Samostatnou kapitolou je Microsoft Visual Basic, jenž slouží pro vytváření
aplikací ve VBScriptu, ale i k vývoji ActiveX komponent. Microsoft navíc
integroval nejvýznačnější ze svých nástrojů (včetně Javy, C/C++ a dalších) do
balíku Visual Studio.
Vývojové nástroje pro Javu
Existuje již celá řada vývojových nástrojů pro Javu od nejrůznějších producentů
od SUNu přes Microsoft až po Inprise (dříve Borland). Kromě nástrojů pro obecný
vývoj Java aplikací existují desítky prostředí, resp. nadstaveb, pro tvoření
Java appletů nebo např. pro vývoj komponent (JavaBeans). Současně jsou k
dispozici komplementární nástroje a doplňky, jako je JDBC pro propojení s
databázemi. Speciální kapitolou jsou pak prostředí směrovaná do sféry
enterprise (JBuilder Client/Server, Apptivity od Progressu, Symantec Visual
Cafe for Enterprise); nástroji pro vývoj rozsáhlých distribuovaných aplikací se
však v tomto článku zabývat nebudeme.
Databáze
Pro efektivní propojení databází a webovského serveru byla vytvořena řádka
specializovaných produktů, které přemosťují pomocí dynamicky generovaných HTML
stránek cestu uživatele do databázových aplikací. Tyto produkty jsou buď přímo
součástí známých databází, nebo jsou samostatné a dovolují propojovat téměř
libovolné webové servery a databázové stroje.
Specializovaná prostředí
Stále více se rozvíjí oblast specializovaných nástrojů pro vytváření určitých
aplikací, jako např. internetových obchodů, elektronického publikování apod.
Tyto nástroje kombinují klientskou i serverovou část za použití některé z dříve
popsaných technologií (často Java). Zrychlují a zjednodušují vlastní vývoj nebo
dovolují implementovat komplexnější a licencované technologie (SET, SSL apod.).
Produkty
Na následujících řádcích naleznete představení některých významných produktů z
několika rozličných oblastí, které slouží pro vývoj internetových aplikací.
Tento přehled není rozhodně vyčerpávající, a klade důraz zejména na produkty
využívané v ČR tedy na produkty s dostatečnou technickou podporou a také
programátorskou základnou.
FrontPage je asi nejznámějším představitelem moderních WYSIWYG HTML editorů.
Obsahuje správce celých webových struktur, umožňuje přímé propojení s webovým
serverem, grafickým editorem s možností vkládat dynamické součásti. Jeho
určitou nevýhodou je nepříliš kvalitní kód, který generuje a u starších verzí
problémy s podporou češtiny.
NetBeans je představitelem prostředí pro vývoj javových aplikací. Je napsán
kompletně v Javě, využívá nejnovějších technologií (jako JavaBeans pro tvorbu
komponent), a proto je možné jeho vlastnosti rozšiřovat vlastními nadstavbami.
Nabízí vizuální nástroje pro tvorbu aplikací, a bez zajímavosti není, že za
jeho vývojem stojí čeští programátoři.
NetObjects Fusion je představitelem komplexního prostředí pro vývoj
internetových aplikací za využití kombinace několika technologií. Kromě HTML
Editoru jsou k dispozici nástroje pro využití potenciálu DHTML aplika-cí s
podporou některých dalších technologií, jako je Shockwave, ActiveX apod.
Současně tu jsou nástroje pro propojení s databázemi a konečně otevřené
prostředí pro vývoj a využívání rozšiřujících komponent.
InterDev je integrované grafické prostředí podporující týmovou spolupráci pro
vývoj internetových aplikací založených na využívání databázových zdrojů.
Obsahuje samozřejmě možnost vývoje dynamického HTML, využití ASP, ActiveX a
dalších technologií společnosti Microsoft.
Jedná se o prostředí pro provozování serverových skriptů na bázi CGI pro
prostředí Windows 95/98 a Windows NT. Umožňuje vytvářet nejrůznější aplikace
založené na stále nejrozšířenějším skriptovém jazyku Perl. Je možné jej využít
v kombinaci s prakticky libovolným webovým serverem.
SQW je produkt pro propojení databází s webovým serverem. Pomocí
specializovaného jazyka SQW a definovaných HTML stránek je možné vytvářet
aplikace, které jsou založené na komunikaci s databázovým systémem. Obsahuje
silné možnosti zabezpečení a také možnosti transakčního zpracování.
SilverStream je příkladem specializovaného prostředí pro vývoj určitého typu
aplikací, v tomto případě zaměřené do oblasti využívání dat v podnikových
informačních systémech. Skládá se z vlastní serverové aplikační platformy
umožňující kombinovat Javu, HTML a propojení na celou řadu datových zdrojů a
vizuálního vývojového prostředí pro tvorbu aplikací pro tuto platformu.
JDK (Java Development Kit) je generickým prostředím pro vývoj javových aplikací
a appletů. Neobsahuje grafické prostředí, ale vlastní překladač, knihovny,
zdrojové kódy a podpůrné nástroje. Vlastní editaci kódu je proto nutné provádět
ve vlastním editoru. Je využíván celou řadou různých IDE prostředí, javových
nástrojů apod., a proto by měl patřit k základní výbavě každého vývojáře
javových aplikací.

8 2217 / pah









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