2.2 Model MVC

Byl poprvé uveden v objektově orientovaném programovém prostředí Smalltalk. Díky tomuto modelu je aplikace dělena na tři vrstvy a múžeme tak dosáhnout větší flexibility a vícenásobné použitelnosti kódu.

Byl poprvé uveden v objektově orientovaném programovém prostředí Smalltalk. Díky tomuto modelu je aplikace dělena na tři vrstvy a múžeme tak dosáhnout větší flexibility a vícenásobné použitelnosti kódu.

Obr.1:Model MVC

2.2.1 Vrstva Model

Tato vrstva obsahuje data, s nimiž aplikace pracuje a funkce pro operaci nad těmito daty. Objekt Model je nezávislý na vstupním a výstupním chováním aplikace. Objektů Model může aplikace obsahovat i více (v praxi se může jednat například o několik tabulek v databázi, otevřené soubory, nebo služby jiných aplikací).

2.2.2 Vrstva View

Tato vrstva je interpretující – zobrazující – data uživateli. Neobsahuje vlastní data, ani logiku práce s nimi. Objektů view může být v aplikace více, protože můžeme chtít zobrazit více různých údajů o modelu, nebo požadovat výstup konkrétně optimalizovaný (např. Bez grafiky, čistě textově, v XML…). Každý objekt View je asociovaný k objektu Controller.

2.2.3 Vrstva Controller

Kód zpracovávající uživatelský vstup. Přijímá události vyvolané objekty ve vrstvě view, které transformuje jako požadavky na službu pro View, nebo Model. Zajišťuje logiku chování celého systému.

2.1 Základní principy JSF

Java Server Faces je systém pro tvorbu uživatelského rozhraní v jazyce Java, běžící jako servlet na straně serveru v tzv. webovém kontejneru (např. Apache Tomcat). Základní myšlenkou bylo oddělit aplikační logiku od zobrazovací části. Díky tomu by bylo možné tvořit design stránek bez znalosti pozadí celé aplikace a stejně tak, aby bylo možné tvořit funkční aplikační logiku bez nutnosti zabývat se optimalizací pro konkrétní zobrazovací zařízení.

Java Server Faces je systém pro tvorbu uživatelského rozhraní v jazyce Java, běžící jako servlet na straně serveru v tzv. webovém kontejneru (např. Apache Tomcat). Základní myšlenkou bylo oddělit aplikační logiku od zobrazovací části. Díky tomu by bylo možné tvořit design stránek bez znalosti pozadí celé aplikace a stejně tak, aby bylo možné tvořit funkční aplikační logiku bez nutnosti zabývat se optimalizací pro konkrétní zobrazovací zařízení. V praxi to vypadá tak, že existuje jakési rozhraní, které generuje data a rozhraní, které tato data interpretuje – zobrazuje – na dané platformě (v této práci se budu zabývat webovými službami, čili o konkrétní interpretaci optimalizovaného HTML kódu – např. pro PDA, mobilní telefon, počítačový webový prohlížeč…) pomocí stránek Java Server Pages (JSP).

Tento základní model přístupu byl dále ještě rozšířen v modelu MVC (Model – View – Controller), který samotnou aplikaci rozděluje na tři části. Díky tomu je celý životní cyklus řízen událostmi, které generuje uživatel. Tyto události dále volají konkrétní akce (např. při stisku tlačítka), případně ověřují (validují) zadané hodnoty ve formuláři, případně tyto hodnoty konvertují na datové typy, se kterými dále pracují (např. při změně pole formuláře).

Další velkou výhodou systému JSF je, že dokáže importovat knihovny tagů, což mohou být výše uvedené konvertory a validátory, nebo přímo konkrétní komponenty. Díky tomu není potřeba vytvářet JSP stránky ručně, ale použít některý vizuální (WYSIWYG) editor – NetBeans, Sun Java Studio Creator… Tyto knihovny je samozřejmě možné upravovat, nebo vytvářet zcela nové, čímž mohou vzniknout zcela nové balíčky komponent (ICE Faces).

Fleck

Opoznámkovat si stránky? Dobře, použiju Google notes. Ale opoznámkovat si stránky "bublinama" přímo mezi obsahem na stránce a navíc tyto poznámky ještě sdílet s dalšími lidmi? Jde to!

Opoznámkovat si stránky? Dobře, použiju Google notes. Ale opoznámkovat si stránky "bublinama" přímo mezi obsahem na stránce a navíc tyto poznámky ještě sdílet s dalšími lidmi? Jde to!

Protože mi doma z neznámých důvodů umřela jedničková verze Firefoxu a já docela spíchal, tak jsem nainstalil dvojku. Hned po instalaci mi byla nabídnutá stránka s rozšířeními. Protože jedničku jsem měl prolezlou všemi možnými vylepšeními, které byly většinou nekompatibilní s dvojkovou verzí (což byl taky důvod, proč jsem doma setrvával s Firefoxem 1) a v práci se spokojím s rozšířeními společnosti Google, nedalo mi to a prolezl jsem si pár pro mě potenciálně zajímavých kategorií a mimo jiné narazil na rozšíření Fleck.

bublina flecku

 

Ovšem zřejmě největší výhodou je fakt, že Fleck nevyžaduje instalaci žádného modulu (modul jako takový existuje pro zpříjemnění přístupu a zjednodušení přidávání), nevyžaduje ani registraci a přihlašování na účet při přidávání poznámek.

Jak to teda vlastně funguje? Majitel stránek může mít zaintegrovaný Fleck ve stránkách. To je asi nejméně pravděpodobné. Další možností je plugin v prohlížeči (na stránkách Flecku je nabízen pro MSIE a pro Firefox), čili stačí stisknout tlačítko "Annotate this page…", nebo jako poslední možnost je zkopírovat adresu stránky a vložit ji do pole na stránkách Fleck.com.

V každém případě je daná stránka načtena jako obsah stránky "extension.fleck.com" a je přidán plovoucí panel s možnostmi přidání poznámky (editovatelné), bubliny, sdílení (mailem), možnost odeslání do blogu a dokonce i verzování uložených poznámek, čili jakási historie změn, dále je tu možnost učinit změny v poznámkách jako veřejné, nebo je nechat jen pro svou soukromou potřebu.

Image Hosted by ImageShack.us

Po uložení je hotovo a pokud kdokoliv, kdykoliv otevře danou stránku jedním z předchozích způsobů, zobrazí se mu poznámky a bubliny příslušné k danému datu.

Z mého pohledu je Fleck rozhodně zajímavá aplikace, která by ovšem bez existence pluginu do prohlížeče byla ne zrovna jednoduše použitelná, ovšem díky integraci do prohlížeče (a na druhou stranu i možnosti použití bez pluginu) a nevyžadované registraci na rozdíl od služeb trails nebo stickis, která stojí nejenom za vyzkoušení.

Moderní webové aplikace: 1. Úvod

Vývoj internetových služeb prodělal zejména v poslední době zásadní vývoj. Doba BBS (Bulletin Board systém), nepřehledných Telnetových terminálů, FidoNetu a potažmo i statických HTML stránek je dávno za námi. Dnešku vévodí zejména multimedia a interaktivní služby v podobě webových aplikací – webová aplikace je aplikace, která je přístupná pomocí webového prohlížeče.

Vývoj internetových služeb prodělal zejména v poslední době zásadní vývoj. Doba BBS (Bulletin Board systém), nepřehledných Telnetových terminálů, FidoNetu a potažmo i statických HTML stránek je dávno za námi. Dnešku vévodí zejména multimedia a interaktivní služby v podobě webových aplikací – webová aplikace je aplikace, která je přístupná pomocí webového prohlížeče.

Prohlížeč v tomto případě vystupuje v roli tenkého klienta (řekněme klient, který si nikde neukládá data ani stavy – ty jsou uloženy výhradně na straně serveru). Doslova boom služeb typu Flickr, Last.Fm, YouTube a aplikací společnosti Google spolu s bezpečným internetovým bankovnictvím a online nákupy žádají nové technologie a metody přístupu k tvorbě takovýchto aplikací. Z počátku se jednalo o tvorbu dynamicky generovaných stránek pomocí některého z mnoha skriptovacích jazyků (především Personal Home Pages čí Active Server Pages) umožňujících připojení na databázi s přemírou funkcí napsaných v Java Scriptu a spouštěných v prohlížeči na straně uživatele, později Adobe Flash (Macromedia Flash, původně FutureSplash Animator) s vlastním jazykem – Action Script, Javové applety běžící v prohlížeči a další více či méně známá řešení různých tvůrců.

Zejména v poslední době nastala potřeba shrnout používané technologie do jednoho celku a tento celek nějak vhodně označit, proto vzniklo označení Web 2.0 (nutno podotknout, že tato nálepka vznikla především z marketingových důvodů – technologiemi nabitý web potřebuje nějaký název, který bude znít moderně, aby přitáhl pozornost potenciálních zákazníků).

Cílem této práce je přinést informace o moderních webových aplikacích, především technologii AJAX (Asynchronous JavaScript and XML – aplikace běžící v prohlížeči, která dokáže sama zavolat aplikační logiku serveru) a to především z pohledu vývojáře. V první části se pokusím shrnout základní principy technologie Java Server Faces, komponenty a prostředky pro ověřování uživatelského vstupu. Ve druhé části se pokusím nastínit teoretické informace o pojmu AJAX, „nálepce“ Web 2.0 a to především v návaznosti na technologii Java Server Faces, v závěrečné části uvedu některé zajímávé části aplikace, na jejímž vývoji se podílím – jedná se o „Výzkum a ověření systému pro záznam a dlouhodobou archivaci multimediálních dat s inteligentním vyhledáváním“ řešený ve firmě GiTy, a.s., jako projekt podporovaný MPO ČR (evid. č. FT-TA3/121).