TCL Labs: IBM Domino jako databáze pro webovou aplikaci psanou v jiném webovém prostředí - 1. část - data z LN zobrazujeme ve formě pohledu

David Marko  6 January 2010 09:02:12
Domino server už od verze 4.6 obsahuje integrovaný HTTP server. Od té doby se jeho možnosti moc nezměnily, proto stále hodně pokulhává za konkurencí. Od verze Domino 8.5 jsou součástí vlastností designera tzv. xPages, které možnosti LN rozšiřují (jedná se defacto o implementaci JSF do prostředí Domina), nicméně stále je to hodně uzavřené prostředí a nemusí všem vyhovovat.  Domino je v základu hlavně databázový server, ukládající nestrukturovaná data, jeho datový storage (NSF databáze) umožňuje replikace atp. Na data databází je možno přistupovat přes webový prohlížeč a nechat si je Dominem poskytovat v XML nebo JSON formátu. Tímto způsobem získáme data z LN databáze ve formátu, který jsme již schopni zpracovávat a dále zobrazovat.

Právě těchto vlastností je možno využít při psaní webových aplikací v prostředí PHP, ASP nebo v některém z Javových webových frameworků.

1. Přihlášení (autentizace)

- pokud budou do naší aplikace přistupovat uživatelé, kteří mají na Domino serveru účet, je výhodou autentizovat v naší aplikaci uživatele prostřednictvím jeho účtu na Domino serveru. Toho jednoduše docílíme tím, že na Dominu použijeme 'Basic Authentisation' a po zadání uživatelského jména a hesla se z naší aplikace pokusíme autentizovat vůči databázi na Domino serveru. Řízení přístupů tam bude v plné režii Domina a jeho adresní knihy, tudíž nebude docházet k duplicitám uživatelských účtů.

2. Zobrazování dat dle přihlášeného uživatele

- jak již bylo řečeno, HTTP server Domina dokáže zobrazovat pohledy z Lotus Notes databáze a poskytovat je i ve strukturovaných formátech. Na výběr jsou XML a JSON. Druhý jmenovaný je výbornou volbou, protože takto získaná data lze jednoduše zpracovávat pro účely zobrazování. Data z LN pohledů v JSON formátu lze získat prostřednictví URL, na jejímž konci je příkaz '?ReadViewEntries&OutputFormat=json', např. http://domino01/remote_access/adresar.nsf/firmy_dle_nazvu?ReadViewEntries&OutputFormat=json . Výsledek pak může vypadatat takto (samozřejmě v závislosti na obsažených datech):

Image:TCL Labs:  IBM Domino jako databáze pro webovou aplikaci psanou v jiném webovém prostředí - 1. část - data z LN zobrazujeme ve formě pohledu

Takto získaná data můžeme v naší aplikaci zpracovat a vytvořit z nich uživatelský výstup. Zmiňovaná URL poskytuje další parametry, pomocí kterých můžeme Dominu říci, že chceme vytáhnout např. jen 10 položek a to od položky dvacáté.  Můžeme tak z Domina získat jen určitá potřebná data. Vzhledem k tomu, že je uživatel autentizován a autentizaci přebíráme i při zpracovávání dat z Domina, uživatel  vidí jen ty položky, ke kterým má řádná přístupová práva, obdobně jako by přistupoval přes web na samotné Domino.

V Lotus Notes databázi můžeme mít data, která na LN klientovi v pohledu mohou vypadat například takto.
Image:TCL Labs:  IBM Domino jako databáze pro webovou aplikaci psanou v jiném webovém prostředí - 1. část - data z LN zobrazujeme ve formě pohledu

Jednoduchá webová aplikace napsaná mimo Domino, ale využívající Domino jako databázový server, pak vypadá v prohlížeči třeba takto. Pomocí tlačítek "předchozí/další" data z Domino serveru převíjíme. Pokud dojde ke změně dat v LN databázi, změny se projeví okamžitě i zde.
Image:TCL Labs:  IBM Domino jako databáze pro webovou aplikaci psanou v jiném webovém prostředí - 1. část - data z LN zobrazujeme ve formě pohledu

3. Výhody

Mohl bych zde vyjmenovat velké množství výhod, ale zmíním jen 3:

a) zabezpečení
HTTP server na Dominu nemusí být přístupný vnějšímu světu. Stačí jen, abychom se na něj dostali z naší aplikace. Přes HTTP tak nebudou vystaveny všechny aplikace, které na Dominu máme.

b) více možností daných použitým vývojovým prostředím
pokud jsme zvyklí na jiné webové vývojové prostředí, bude nám Domino sloužit  'jen' jako databáze, podobně jako se využívá MySQL, MS SQL atp.

c) integrace do existujících intranetů
pokud  používáte intranet založený na jiné než Domino platformě, podobným způsobem můžete do svého systému dotahovat data uložená v LN a pracovat s nimi jako s externí databází.
Comments
no comments availabe. Be the first!

Diskuse byla uzavřena.
TOPlist