pátek 18. června 2004

ORM letem světem

Do základní architektury správné webové aplikace patří persistence vrstva. Záměrně používám anglického výrazu neboť označení datová vrstva mi přijde trochu zavádějící v souvislosti s třívrstvým modelem.

Proč persistence vrstva a ORM

Základní vlastností persitence vrstvy je odstínit vyšší vrstvy, především business vrstvu, od konkrétního datového zdroje. To má půvab v jednoduché změně backendu (datového zdroje) v pozadí, bez nutnosti změny v aplikačním kódu.

Způsobů jak výše uvedeného dosáhnout je několik, ale troufám si tvrdit, že ten nejpoužívanější je mapování objektu na relace tzv. ORM. Mapování je způsob jakým vyjadřujeme relace pomocí objektů.

Představme si případ kdy máme v relační databázi tabulku pro zaměstnance a tabulku pro jejich telefonní čísla. Při mapování nám v takovém případě vzniknou dva objekty, jeden odpovídá tabulce zaměstnanec (sloupečky tabulky odpovídají rozhraní objektu) a druhý tabulce telefonních čísel. Zároveň při mapování vyjádříme relaci 1:n mezi zaměstnancem a telefonním číslem, mezi objekty je tento vztah realizován pomocí vnořených kolekcí.

V aplikační logice pak nepíšeme SQL dotazy, ale jejich obdoby pro daný OR framework např. Hibernate má jazyk HQL (Hibernate Query Language). Výsledkem takového dotazu je pak objekt nebo kolekce objektů, v našem fiktivním případě by dotaz select z from Zamestnanec z where z.prijmeni = ? vrátil objekt nebo kolekci objektů Zamestnanec.

OR frameworky nabízejí báječné rozhraní pro objekty. Představme si, že máme formulář pro zadávání nových zaměstnanců, odesláním takového formuláře můžeme vytvořit v aplikační logice objekt Zamestnanec, který díky namapování (objektu Zamestanec odpovída tabulka zamestnanec) a provolání specifické metody frameworku pro ukládání objektu, tohoto zaměstnance uložíme.

Nutnost specifikace persistence vrstvy vedla k vytvoření rozhraní JDO (Java Data Objects), které unifikuje jednotlivé aspekty, které byly proprietárně řešeny jednotlivými frameworky. Pro další studium bych doporučoval článek Scotta W. Amblera The Fundamentals of Mapping Objects to Relational Databases a Richarda Hightowera Object-relation mapping without the container nebo porovnání jednotlivých ORM frameworku.

pondělí 14. června 2004

Spuštěn český server DocBook.cz

Jiří Kosek je nejen uznávaná autorita v oblasti XML, ale i pěkný tajnůstkář. Během minulého týdne pustil do kuloáru, jen tak mezi řečí, informace o tom, že "něco" chystá a máme se těšit.

Dnes přišlo oficiální oznámeni o spuštění českého serveru DocBook.cz, který by měl přiblížit systém DocBook určený nejen pro tvorbu dokumentace.

Oficiální zpráva

Na adrese http://docbook.cz

byl právě spuštěn nový web věnovaný dokumentačnímu formátu DocBook zaměřený na české uživatele.

DocBook je systém založený na XML určený především pro tvorbu dokumentace k softwaru a hardwaru. Lze jej však využít i pro mnoho dalších účelů jako psaní knih, článků, tvorbu prezentací nebo přípravu celých webů. Největší výhodou DocBooku je možnost snadné konverze dokumentů do dalších formátů jako HTML, PDF, RTF, HTML Help a dalších. Z jedné předlohy tak můžete zcela automaticky s využitím nástrojů, které jsou většinou zdarma, vytvořit několik výstupních podob dokumentu.

Autorem projektu DocBook.cz je Jirka Kosek uznávaný český odborník na technologie XML.

Související články