nav line

Technologické roviny webové integrace

Technologická platforma zásadním způsobem ovlivňuje implementační možnosti projektu webové integrace.

V rámci webové integrace je nutné se zaobírat nikoliv pouze architekturou informační, nýbrž též systémovou, která vyústí v technický návrh řešení (technical design).

Z hlediska implementační fáze se obecně jeví být zásadní otázkou volba vhodné technologické platformy potažmo konkrétních softwarových produktů, obdobně jako je tomu v implementační fázi integrace systémové. V oblasti tradiční systémové integrace se uplatňují zejména tzv. middleware systémy dodávané v podobě aplikačního serveru. Tento typ standardizovaného softwarového produktu vychází z paradigmatu třívrstvé softwarové architektury, v níž se integrační vazby mezi systémy realizují pokud možno pouze ve střední, aplikační vrstvě, která je implementována nezávisle na vrstvě prezentační resp. ve smyslu server-klient architektury vrstvě klientské, ať už se zde jedná o přímo uživatelské rozhraní nebo jiný, integrující se systém, typicky prostřednictvím webových služeb (SOAP nebo RESTfull rozhraní) poskytovaných aplikačními komponentami jednotlivých systémů. Na bázi těchto implementačních vzorců se pak utváří SOA, neboli servisně orientovaná architektura.

V případě webové integrace, která se přímo opírá o webové technologie, se oproti systémové integraci dostává do popředí prezentační, případně též komunikační vrstva, přičemž v tomto prostředí kladoucím důraz na prezentační vrstvu a jejího provázání na vrstvu aplikační potažmo datovou ať už v rámci daného systému nebo na systémy související, které jsou v rámci řešení integrovány, je třeba technologii vnímat v několika rovinách.

Aplikační platforma

První technologickou rovinou webové integrace je aplikační platforma. Aplikační platformou se rozumí programovací jazyk, obvykle se silnou podporou objektového programování, doplněný základním (ideálně objektovým) rozhraním (API). V současné době existuje několik dominantních aplikačních platforem používaných pro implementaci webových řešení:

  • PHP
  • Java v edici Enteprise Edition – JEE (dříve J2EE)
  • Microsoft .NET

Z dalších uveďme

Jejich rozšíření je oproti výše uvedeným výrazně menší, představují však v případě některých typů webových řešení zajímavou, jakkoli více či méně exotickou alternativu.

Pro každou aplikační platformu existují aplikačními frameworky, které rozšiřují základní API platformy o funkcionality podporující efektivní vývoj řešení v té či oné specifické oblasti (v případě webové integrace tedy typicky webových řešení) v podobě opakovaně použitelných komponent.

V případě PHP se jedná celou škálu open source frameworků, z nichž v popularitě vynikají zejména Zend framework, Symfony a CakePHP, v českých vodách pak velmi populární framework Nette.  Pro webové PHP frameworky je typické silné zaměření na implementaci návrhové architektury MVC (model-view-controller) případně MVP (model-view-presenter), na kterou navazuje implementace dalších návrhových vzorů a implementačních principů (zejména v poslední době populární koncept Inversion of Control – IoC) v sadě hotových aplikačních komponent a pomocných tříd.

V případě Javy jako aplikační technologie jsou webové technologie zobecněny v Java Enterprise Edition (JEE), které navazují na fundamenty Java Standard Edition (JSE) určené pro obecnou implementaci desktop i server systémů a to na úrovni standardizovaných rozhraní a abstraktních tříd, jejichž konkrétní implementace přinášejí dodavatelé webových kontejnerů potažmo aplikačních serverů, které funkcionalitu webového kontejneru jakožto běhového prostředí pro webové Java aplikace integrují (často ve formě již existujícího samostatného produktu webového kontejneru) a rozšiřují ji o další kontejnery a knihovny implementující jiné JEE standardy, mezi nimiž vyniká zejména model aplikačních komponent EJB (Enteprise Java Beans). V posledním desetiletí zaznamenal též výrazný nástup Spring framework, který představuje zajímavé rozšíření fundamentů standardu JSE/JEE a náhradu za některé komplexnější v něm zahrnuté technologie (např. Managed beans namísto EJB). Java jako programovací jazyk se též v posledních letech prosazuje v alternativních aplikačních platformách nezávislých na J2EE standardech (Google Web Toolkit – GWT a mobilní platforma Android obsahující vlastní Java virtuální stroj a API). Java technologie jsou k dispozici v podobě jak open source i komerční softwarové produktů.

S ohledem na masivně se prosazující koncept webového tenkého klienta a jeho specifické formy RIA (Rich Internet Application), která využívá asynchronní interakce mezi webovým prohlížečem a webovým serverem (kontejnerem) za použití technologie AJAX (Asynchronous JavaScript and XML) se dostává kromě výše uvedených aplikačních platforem zaměřených na implementaci serverové části webových systémů do popředí též aplikační platforma pro vývoj UI funkcionality na straně prohlížeče. Oblast RIA front-endu byla řadu let obsluhována primárně technologií Flash, pro kterou posléze byla společností Adobe vyvinuta nadstavbová komponentová UI technologie Flex, v poslední době se však čím dál více prosazuje dodavateli prosazovaná implementace na bázi objektového modelu HTML(5) a událostmi řízeného kódu implementovaného v prohlížečích podporou Javascriptu 1.x, který díky tomu prožívá v posledních letech velkou renesanci a pro který existuje celá řada frameworků, které zaměřují primárně na manipulaci s objektovým modelem webového dokumentu (DOM) – např. jQuery, případně na implementaci MVC a komponentového modelu UI (Sencha ExtJS, jQuery UI). 

Portálová technologie

Druhou technologickou rovinou webové integrace je portálová technologie.

Portálem ve webové integraci rozumíme soubor technologických prostředků pro stavbu a provoz webového portálu jakožto webu strukturovaného z hlediska informačního (typicky stromovou hiearchii), vizuálního (s podporu definice opakujících se layoutů stránek a funkčních komponent v nich obsažených) a bezpečnostního (strukturovaným nastavením přístupových práv uživatelů resp. skupin jak na front-endu tak v administraci) umožňujícího centralizovaný a unifikovaný přístup k informacím či službám za použití webových technologií.

Z hlediska technologického je webový portál, v případě Javy, definován standardy Java Portlet technology (JSR-168 a JSR-286). Portlet je zde základní stavební jednotkou uživatelského rozhraní webového portálu s jasně definovaným životním cyklem, integračními vazbami na infrastrukturu portálu a balíčkovacím formátem pro distribuci a nasazení. Portál jako takový definuje dále informační strukturu v podobě jednotlivých stránek (pages) tvořených portlety a dále vizuální strukturu těchto stránek na základě šablon (templates).  Java portál neřeší správu obsahu, tato oblast je řešena samostatnými CMS systémy, opírajícími se obvykle o standard Java Content Repository (JSR-170), které se do portálu integrují.

V případě Microsoft .NET frameworku je toto pojetí portálu realizováno analogicky ve formě  tzv. web parts. Na rozdíl od Java světa se zde neuplatňují aplikační servery, neboť provoz webových .NETu aplikací je zajišťován v prostředí Microsoft Windows serverů službou Internet Information Services (IIS). Web parts se pak implementují zejména v prostředí portálového produktu Microsoft Sharepoint, který je faktický web aplikační platformou, která v návaznosti na API .NET frameworku utváří komplexní prostředí pro vývoj webových řešení.

Na rozdíl od prvních dvou výše jmenovaných platforem PHP samo o sobě nepřináší standardizovanou podporu pro implementaci webového portálu, tato oblast je v různé kvalitě pokrývána celou řadou nadstavbových aplikačních frameworků a softwarových produktů, které často sami o sobě fungují zároveň jako framework pro vývoj webových řešení. Ty vesměs neimplementují komponentový UI model s pevně definovaným životním cyklem jako je tomu v případě Java portletů resp. .NET web part a web form technologií, nýbrž se stále pohybují v intencích návrhového vzoru MVC, jehož implementace je zaměřena na generování stránek (obecně routování URL na komponenty MVC controlleru) a v tomto smyslu jsou PHP řešení stále více spojené s paradigmaty webu než je tomu v případě Javy a .NET. Tyto schopnosti pak v sobě mají až PHP systémy, které obvykle současně implementující funkcionalitu CMS (která není rovněž v PHP světě nijak standardizována). Ve světě PHP řešení tak obvykle není webový portál rozlišován od CMS systému, nýbrž se považují za jediný integrální produkt (obvykle označovaný apriori jako CMS, nikoliv portálový systém).

Content Management System

Třetí technologickou rovinou webové integrace jsou systémy pro správu (webového) obsahu – (Web) Content Management Systems – (W)CMS. K dispozici je v současné době velké množství WCMS produktů postavených na nejrůznějších aplikačních technologiích s různou mírou podpory pro integraci s jinými aplikačními platformami či webovými portály.

Z hlediska funkčního CMS systémy implementují obvykle minimálně

  • a) Úložiště obsahu (funkce storage) obvykle s podporou využití relačního databázového systému (RDBMS)
  • b) Rychlé prohledávání obsahu v úložišti (funkce fulltext) ať už za využití samostatného fulltext indexeru nebo s podporou fulltextu na úrovni implementace úložiště
  • c) Podporu pro export a import obsahu ze systému (rozhraní na výměnu obsahu, typicky kombinace webové služby nebo RESTful rozhraní s transportním XML-based protokolem)
  • d) Zabezpečení přístupu k obsahu formou strukturovaných přístupových oprávnění (access control lists – ACL)
  • e) Uživatelskou správu obsahu prostřednictvím administračního uživatelského rozhraní obvykle s využitím infrastruktury webového portálu

Nad rámec těchto základních funkcí implementují systémy z kategorie Enteprise Content Management (ECM) zaměřené na implementaci podnikových mission-critical portálů další funkce,  například:

  • a) workflow management,
  • b) document resp. asset management,
  • c) audit log (a vůbec strukturované logování aktivit probíhajících v CMS systému),
  • d) podporu pro distribuované nasazení (clustering umožňující load balacing, více instanční nasazení v infrastruktuře – typicky publikační versus prezentační instance systému),
  • e) implementace síťových souborových protokolů (např. WebDAV nebo SMB/CIFS) pro vzdálený přístup k úložišti obsahu.

Z hlediska standardizace výše uvedených funkcionalit existují standardy

  • a) Obecné tj. nezávislé na konkrétní aplikačních technologii
  • b) Specifické pro určitou aplikačních technologii

Z obecných standardů lze uvést např. Standard pro integraci systémů pro poskytování obsahu CMIS (Content Management Interoperability Services) nebo standardy pro publikování obsahu typu Atom resp. RSS. V případě specifických aplikačních technologií uveďme technologii Java Content Repository (JCR) standardizovanou JSR-170 a JSR-183. Obdobný standard jako JCR pro aplikační platformy PHP a .NET k dispozici není, obecně je standardizace v rovině CMS oproti aplikačním i portálovými technologiím na nízké úrovni, k čemuž přispívá obrovské množství open source i placených CMS produktů, které jsou  dnes k dispozici a které přistupují k problému implementace CMS záměrně specifickým způsobem a vymezují se proti konkurenčním systémům v duchu idiomu „reinventing the wheel“.

All-in-one systémy

Některé softwarové produkty v sobě implementují jak rovinu webového portálu, tak WCMS systému. Zároveň přitom vytvářejí silně specifické API, které navazuje na základní rozhraní použité aplikační platformy nebo použitého aplikačního frameworku a dále tak podporuje vývojáře webových řešení. Tento typ produktů je velmi rozšířen na aplikační platformě PHP, a to zejména díky absenci silných standardů ve všech popsaných technologických rovinách. V praxi většina těchto systému označuje sebe sama jako CMS, jakkoli zasahují jak do roviny portálu, tak velmi často i webového aplikačního frameworku/platformy. Ze světa PHP uveďme systémy Drupal, Joomla nebo Wordpress. Obdobná situace panuje v .NET světě, pro který existuje řada WCMS systémů, které si více či méně konkurují s portálovým systémem Microsoft Sharepoint, produktem původně zaměřeným na podnikovou kolaboraci, který funguje zároveň jako webová aplikační platforma a který se v posledních svých verzích snaží též o vyplnění roviny WCMS. V případě Javy patří mezi nejznámější zástupce tohoto typu systém Alfresco a zejména velmi úspěšný Liferay Portal.

All-in-one produkty často přinášejí další komplexní funkcionality za hranicí výše popsaných základních technologických rovin webové integrace, zejména se jedná o podporu kolaborace, social networkingu či rozšíření pro hromadné zpracování e-mailu (massmailing) či vlastnosti e-commerce platformy. Nasazení all-in-one systému do projektu webové integrace obvykle vytváří silnou závislost kódu řešení na daném produktu a omezuje možnosti pozdějších změn/přechodu na jiný produkt, což představuje výhodu jak pro dodavatele takového produktu, tak implementátora na něm založených řešení, pakliže má k dispozici dostatečně silný tým specialistů pro daný produkt.

V další části seriálu se zaměříme na další specifické typy technologických produktů a řešení, které jsou často také zapojovány do projektů webové integrace.

Ohodnoťte článek

Technologické roviny webové integrace

Související články

Vyhledávání na blogu

Webová integrace

Webová integrace jako nová oblast pro business „velkých" webových agentur.

o webové integraci

Profily blogujících