Bíró Szabolcs
V a n ú j a n a p a l a t t - X M L a l a p ú
w e b t a r t a l o m - g e n e r á l á s C o c o o n r e n d s z e r r e l *
Az XML és az XSL nyelvek világhálón való egyre szélesebb körű elterjedésével mára már lehetőség nyílt olyan - akár egyszerűnek is nevezhető - szerveroldali alkalmazásokra, amelyek magas szintű feldolgozásra képesek. Az említett nyelvek ingyenes hozzáférhető
ségéből és platformfüggetlenségéből adódóan ezek az alkalmazások egyrészt nem a web- kiszolgálók és különféle szkriptek (pl. CGI) összetételéből állnak, másrészt az olyan védjegyzett technológiákat is mellőzik, mint pl. a .Net vagy az Enterprise JavaBeans. A multinacionális cégek, kiadók vagy tartalomszolgáltatók - könyvtárak is! - a webre szánt tartalmakat egyre inkább olyan minden kétséget kizárónak tekintő hatékony („globális") adatstrukturálási és archiválási formátumokban szeretnék előállítani, mint az XML, hogy aztán ebből igénytől függően bármikor (X)HTML, PDF, WML stb. formátumokat tudjanak költséghatékonyan létrehozni. Az Apache projekt Cocoon terméke kísérlet egy olyan rend
szer előállítására, amely a felsorolt képességekkel rendelkezik.
Hangsúlyeltolódás a w e b e s tartalom leírásban
A l e g g y a k o r i b b p r o b l é m á k
A z o k , a k i k n a g y o b b h o n l a p o k k a r b a n t a r t á s á v a l f o g l a l k o z n a k , e g y e t é r t e n e k a b b a n , hogy a frissí
tés/átalakítás h a g y o m á n y o s m ó d j a n é h a kész r é m á l o m . 10 é v v e l ezelőtt, a m i k o r az első statikus H T M L o l d a l a k m e g j e l e n t e k a v i l á g h á l ó n , m é g s z i m p l a b ö n g é s z ö - w e b s z e r v e r k o m m u n i k á c i ó v a l m o d e l l e z h e t ő volt a k a p c s o l a t é s a t a r t a l o m s z o l g á l t a t á s m ó d j a , á m m a m á r k o r á n t s e m ilyen e g y s z e r ű a helyzet. E n n e k l e g f ő b b o k a , hogy sok o l y a n for
m á t u m o t h a s z n á l u n k , ahol a stílus és a k ö z l e n d ő i n f o r m á c i ó k e v e r e d i k . L e g j o b b és m i n d e n k i által ismert példa a H T M L , a h o l a w e b l a p tele v a n szór
va szint, m e g j e l e n é s t , f o r m á z á s t leíró p a r a m é t e rekkel - n e m b e s z é l v e az e s e t l e g e s s z k r i p t n y e l v e k kódjairól Egy s z é p w e b l a p o t e g y s z e r ö s s z e á l l í t a n i
„ k ö n n y ű " , d e u t á n a a t a r t a l o m és a stílus k ö v e t k e z e t e s v á l t o z t a t á s a i a k á r irdatlan m e n n y i s é g ű m u n k á v a l is j á r h a t n a k .
A f e j l e t t e b b t a r t a l o m s z o l g á l t a t ó k e z t r e n d s z e r i n t úgy oldják m e g , hogy a t a r t a l m a k a t d i n a m i k u s a n g e n e r á l j á k v a l a m i l y e n stylesheet a l a p j á n , az infor
m á c i ó t p e d i g , a m e l l y e l a lapot kitöltik, a d a t b á z i s b ó l veszik. A m e g o l d á s hátránya, hogy a területen m i n d m á i g n e m létezik e g y s é g e s s z a b v á n y , é s ez a m e g k ö z e l í t é s szinte mindig fejlesztői m u n k á v a l jár - p e d i g n e m l e n n e s z ü k s é g s z e r ű .
A másik g y a k r a n felmerülő g o n d a z , hogy a tartalom készítője és a megjelenésért felelős g y a k r a n egy és u g y a n a z a személy. A d o l o g e r e d m é n y e , hogy a w e b e s tartalmakat sokszor „webguruk" készítik, ami c s i n o s megjelenést, de g y e n g e információt e r e d m é nyez. M i n d e z n e m csoda, hiszen e g y é r t e l m ű e n m á s o k a kompetenciák, és világosan látszik, hogy ezt két olyan s z e m é l y n e k kellene v é g e z n i e , akik e g y m á s m u n k á j á r ó l nem is feltétlenül akarnak tudni.
Online publikálás e s e t é b e n a z o n b a n e két s z e r e p e t m e g l e h e t ő s e n nehéz elválasztani: a „tartalomgyár- tötól" g y a k r a n várják el, hogy értsen pl. a H T M L nyelvhez, pedig j ó z a n ésszel belegondolva a h h o z s e m m i köze. Bárhogy is v a n , látni fogjuk, hogy a C o c o o n m e g o l d á s t kínál erre a p r o b l é m á r a is.
A m e g o l d á s k e r e s é s útjai
Lépcsős stíluslapok - CSS
A t a r t a l o m é s a f o r m a s z é t v á l a s z t á s á n a k j e l e n t ő s é g é t l e g k o r á b b a n f e l i s m e r ő és azért l e g t ö b b e t tevő s z e r v e z e t a w e b e s a j á n l á s o k k i d o l g o z á s á é r t felelős World Wide Web Consortium (W3C) volt.
Első, m e g l e h e t ő s e n h a t é k o n y n a k b i z o n y u l ó és e g y r e g y a k r a b b a n használt m e g o l d á s i kísérletük a Cascading Style Sheets (CSS) s p e c i f i k á c i ó volt, amely a H T M L n y e l v h e z készült. S e g í t s é g é v e l b i z o n y o s fokig már s z é t v á l a s z t h a t ó a t a r t a l o m a ' A Networkshop 2005 konferencián (Szeged, 2005.
március 30—április 1.) elhangzott előadás alapján.
5 1 0
TMT 52. évf. 2005. 1 1 - 1 2 . sz.
f o r m á t ó l , á m m i v e l a „nyelv" l e g i n k á b b e l e m - , b e k e z d é s - é s k a r a k t e r f o r m á z á s i k é p e s s é g e k k e l r e n delkezik, r á a d á s u l i m p l e m e n t á c i ó j a a j e l e n t ő s e b b b ö n g é s z ő k b e n s e m m i n d i g k o n z i s z t e n s - bár ez u t ó b b i a g y á r t ó k hibája - , a l k a l m a z á s a e l s ő s o r b a n m u n k a c s ö k k e n é s t , m i n t s e m teljes körű m e g o l d á s t j e l e n t a t a r t a l o m é s a f o r m a g y o r s k a r b a n t a r t á s á b a n . Mi t e h á t a m e g o l d á s ?
Bővíthető jelölőnyelv - XML
A W 3 C m u n k a t á r s a i is e z e n a k é r d é s e n g o n d o l k o z h a t t a k e l , a m i k o r egy o l y a n nyelv - k e r e t r e n d szer - k i d o l g o z á s á b a k e z d t e k , a m e l y k i z á r ó l a g a t a r t a l o m leírására s z o l g á l . A m e g v a l ó s í t á s h o z per
s z e n e m kellett a nulláról indulniuk, h i s z e n k i i n d u lási a l a p n a k r e n d e l k e z é s r e állt a z a l a s s a n 2 0 é v e ISO s z a b v á n y k é n t e l f o g a d o t t m e t a n y e l v , a m e l y a Standard Generalized Markup Language (SGML) nevet v i s e l i . A z S G M L s z a b v á n y o s j e l ö l ö n y e l v d o k u m e n t u m o k belső s z e r k e z e t é n e k leírására, b e l e é r t v e a z e g y e s e l e m e k e t j e l ö l ő c í m k é k (tagek) d e f i n i á l á s á n a k m ó d j á t is. S e g í t s é g é v e l e l v b e n b á r m i l y e n d o k u m e n t u m leírható, f ü g g e t l e n ü l az a z t tároló és m e g j e l e n í t ő s z á m i t ó g é p e s k ö r n y e z e t t ő l . N a g y f o k ú b o n y o l u l t s á g a é s k e v é s b é k ö l t s é g h a t é kony a l k a l m a z h a t ó s á g a miatt a z o n b a n n e m terjedt el s e m E u r ó p á b a n , s e m v i l á g s z e r t e a várt m é r t é k b e n . A t e c h n o l ó g i a v i s z o n t a m a g a n e m é b e n n a g y s z e r ű és e g y e d ü l á l l ó , kár lett v o l n a k i a k n á z a t lanul h a g y n i . É p p e n e z é r t 1 9 9 8 - b a n , m i k ö z b e n a világ a H T M L ú j a b b é s ú j a b b r e i n k a r n á c i ó i r a f i gyelt, a W 3 C e g y g y ö k e r e s e n új t a r t a l o m l e í r ó m e t a n y e l v e t épített fel az SGML-bÖl - a z új jelölő¬
r e n d s z e r az eXtensible Markup Language (XML) nevet k a p t a . Ez a z a f o r m á t u m , a m e l y m e g fogja m e n t e n i a digitális világot - vallják s o k a n - , é s igazuk lehet, h i s z e n amellett, hogy az X M L levetet
te e l ő d j e h á t r á n y o s t u l a j d o n s á g a i t , é s m e g v a l ó s í totta a tárta lom leírás k ö v e t e l m é n y e i t , e g y ú t t a l a l k a l m a z á s o r i e n t á l t is lett - a m i a z S G M L - r e n e m volt igaz R e n d e l k e z é s r e állt t e h á t a nyelv, a m e l y a t a r t a l o m leírására é s t á r o l á s á r a s z o l g á l , u g y a n a k kor f e l v e t ő d i k a k é r d é s : Mi lesz a f o r m á v a l ?
Bővíthető stíluslapnyelv (transzfonnáció) - XSL(T)
A k é r d é s j o g o s , hiszen a C S S e l s ő s o r b a n a H T M L n y e l v h e z készült, a z X M L e s e t é b e n c s a k attól k e z d ve lett a l k a l m a z h a t ó , hogy a b ö n g é s z ő p r o g r a m o k a t felruházták a belső fastruktúra é r t e l m e z é s é r e k é p e s parserrel. A z ilyen m e g j e l e n í t é s n e k a z o n b a n t ö b b h á t r á n y a is v a n , n e m b e s z é l v e arról, hogy ez eset
ben t o v á b b r a is az X M L á l l o m á n y t szolgáltatjuk, c s a k l é p c s ő s stíluslappal „sminkelve".
Ennél a z o n b a n j ó v a l t ö b b r e v a n s z ü k s é g , o l y a n s t í l u s l a p r a , amely t r a n s z f o r m á c i ó r a is k é p e s . E n n e k f é n y é b e n született meg az eXtensible Stylesheet Language (XSL) specifikáció, a m e l y a z X M L d o k u m e n t u m o k stílusleírására v a l ó i s m e r t n y o m d a i l e í r ó n y e l v e k k é p e s s é g e i t a d t a a z X M L - nek. V é g ü l az e g é s z e t az eXtensible Stylesheet Language Transformations (XSLT)2 X S L - b ö v í t é s tette k e r e k k é . A z X S L T - v e l bővített s t í l u s l a p o k m e g t u d j á k m o n d a n i , h o g y a n alakuljon át a t a r t a l m a t m a g á b a n f o g l a l ó X M L d o k u m e n t u m o l y a n f o r m á t u m ú v á - X M L , ( X ) H T M L , P D F , W M L stb. - , a m e l y b ö n g é s z ő - v a g y m á s p r o g r a m o k k a l s z o l g á l t a t h a t ó . A t o v á b b l é p é s l e h e t ő s é g e
Sikerült tehát a tartalmat elválasztani a f o r m á t ó l - a m e g o l d á s r e n d e l k e z é s r e áll, kérdés, hogy m e n n y i r e alkalmazható. Az ilyen új dolgok j e l e n t ő s e g e t e r m é s z e t e s e n m i n d a d d i g teoretikus, a m í g a t e c h n o l ó g i á kat n e m lehet a gyakorlatban is k i h a s z n á l n i . A s z a k m a b e l i e k tudják, hogy X M L e l e m z ő k m á r „ r é g óta" léteznek, d e ezeket csak m a n a p s á g kezdik e g y r e s z é l e s e b b körben használni. Körülbelül 4 - 5 é v e fejlesztenek X S L T stíluslap-feldolgozókat - X e r c e s , X S L T p r o c , S a x o n , Xalan stb. - és o l y a n X S L - k o n v e r t e r e k e t , amik XSL-lel formázott d o k u m e n t u m o k a t a m á r említett megjelenítési f o r m á t u m o k k á k é p e s e k átalakítani. Az X M L A p a c h e projekt t ö b b ilyen szoftvert kapott m e g a fejlesztőktől t o v á b bi nyílt f o r r á s k ó d ú fejlesztésre, d e e z e k e d d i g n e m kavartak n a g y o b b v i h a r t - e g é s z e n m o s t a n á i g . . .
Az Apache C o c o o n
1A z e d d i g i m u n k á r a a C o c o o n P H P - s v á l t o z a t a , a Popoon projekt t e t t e fel a k o r o n á t , mert a z e l k é szített s z o f t v e r e l e m e k e t e g y s é g e s k e r e t r e n d s z e r b e foglalta, l e h e t ő v é t é v e , hogy teljes h o n l a p o k é p ü l j e n e k X M L - X S L t r a n s z f o r m á c i ó k r a . A z ilyen w e b o l d a l a k p e d i g n a g y o n j ó k é p e s s é g e k k e l r e n d e l k e z nek, és r á a d á s u l W 3 C a j á n l á s o k o n a l a p u l n a k . M i n d e n e k e l ő t t a stílus é s a t a r t a l o m t e l j e s e n s z e parált, a m i azt j e l e n t i , h o g y a k á r n a p o n t a á t a l a k u l h a t n a k , és t e l j e s e n új k e r e t b e n j e l e n í t h e t i k m e g az i n f o r m á c i ó k a t , d o k u m e n t u m o k a t . U g y a n a k k o r a t a r t a l o m k é s z í t ő i n e k a d o l g a n a g y b a n l e e g y s z e r ű södik, m e r t a w e b e s t a r t a l o m l e í r ó n y e l v e k „primiti
v i z m u s a i é s korlátai" t á v o l k e r ü l n e k tőlük.
A z o l y a n m e g j e l e n í t é s i f o r m á t u m o k , m i n t pl. a ( z ) ( X ) H T M L , P D F m á s a s p e k t u s b a kerülnek, m e r t X S L T s t í l u s l a p o k k a l u g y a n a z t az X M L d o k u m e n t u m o t e g é s z e n k ö n n y e d é n t e l j e s e n m á s f o r m á -
t u m m á lehet alakítani. B i z o n y o s s z e m p o n t b ó l m é g a b ö n g é s z ő p r o g r a m o k v e r s e n y e is j e l e n t é k t e l e n n é válik, hiszen a m e g j e l e n í t é s é r t felelős a k l i e n s o l d a lon t e l j e s e n e l e g e n d ő , a publikáló k e r e t r e n d s z e r ( C o c o o n ) v e s z i át a f o r m á z á s s a l és a stílus k e z e lésével k a p c s o l a t o s t e e n d ő k e t . V é g ü l , d e n e m u t o l s ó s o r b a n a t e c h n o l ó g i a s z a b v á n y o k r a é p ü l , k ö v e t k e z é s k é p p e n n e m kell a g y á r t ó f ü g g ő f o r m á t u m o k a t m e g t a n u l n i .
K ö z é p p o n t b a n a C o c o o n
E z u t á n a m e g l e h e t ő s e n h o s s z ú r a nyúlt, á m ko
r á n t s e m f e l e s l e g e s b e v e z e t ő után t e g y ü k fel v é g r e a kérdést: Mi is v a l ó j á b a n a C o c o o n ? Nos, n e m m á s , mint e g y s z a b a d f o r r á s ú , J a v a a l a p ú , az A p a c h e - b a é p ü l ő X M L publikáló t a r t a l o m s z o l g á l t a tási keretrendszer.
A Cocoon projekt 1 9 9 8 - b a n indult, u g y a n i s egy Stefano Mazzocchi nevü o l a s z d i á k o t n a g y o n z a v a r t á k a H T M L korlátai az A p a c h e h o n l a p j á n a k átalakítása s o r á n . E l h a t á r o z t a , hogy X M L és X S L a l a p o k o n e g y új szoftvert hoz létre, m e l y b e n e l k ü löníti a h o n l a p k é s z í t é s e g y e s részeit (tartalom, f o r m a , logika és site-a re hitektúra), h o g y a z o k k ü l ö n b ö z ő s z e m é l y e k által e g y m á s t ó l f ü g g e t l e n ü l is f e j l e s z t h e t ő k l e g y e n e k 5 A C o c o o n fejlesztői c s a p a t á b a n m e g k ö z e l í t ő l e g n y o l c a n v a n n a k . E z e k a fejlesztők az új k ó d o k h e l y e s s é g é t ellenőrzik, és a m e n n y i b e n s z ü k s é g v a n rá, a f o r r á s á n is változ
tatnak. N é h á n y „ k ü l s ő " p r o g r a m o z ó is t á m o g a t j a a projektet, m é g p e d i g az új k o m p o n e n s e k e l l e n ő r z é sével vagy h i b a k e r e s é s s e l . A z igy létrejött a l k a l m a z á s l e g f o n t o s a b b t u l a j d o n s á g a , hogy k é p e s e g y ü t t m ű k ö d n i a m e g l é v ő J 2 E E m e g o l d á s o k k a l , H T M L , W M L , P D F , S V G , R T F k i m e n e t e t t u d p r o d u k á l n i , é s n e m u t o l s ó s o r b a n t e l j e s e n i n g y e n e s t e c h n o l ó g i á k r a épül. A z pedig már c s a k h a b a tor
tán, hogy a C o c o o n r a e g y L e n y a nevü C M S r e n d s z e r t is felépítettek, X i n d i c e X M L a d a t b á z i s - k e z e l ö t t a r t a l m a z , beépített k e r e s ő k é n t pedig a L u c e n e - t használja.
A z architektúra logikai e l h e l y e z k e d é s é n e k m e g é r t é s é t e l ő s e g í t e n d ő , az 1. ábra a z t illusztrálja, h o g y a r e n d s z e r m i k é n t fér h o z z á az a d a t o k h o z eltérő r e n d s z e r e k b ő l , majd h o g y a n „ m o s s a ö s s z e " ő k e t a k ü l ö n b ö z ő f o r m á t u m o k b a n történő kliensoldali szolgáltatás c é l j á b ó l .
A r e n d s z e r m ű k ö d ( t e t ) é s é n e k logikája
A C o c o o n r e n d s z e r r e l a f e l d o l g o z a n d ó X M L d o k u m e n t u m o k a t , a rajtuk v é g r e h a j t o t t t r a n s z f o r m á c i ó -
5 1 2
Bíró Sz : Van új a nap alatt...
kat lehet m e g h a t á r o z n i , végül a f e l h a s z n á l ó k s z á m á r a a kívánt f o r m á t u m b a n megjeleníteni A szoft
ver arra is l e h e t ő s é g e t a d , hogy az X M L fájlok m a g u k is t a r t a l m a z h a s s á k a f e l d o l g o z á s a l g o r i t m u sát, m e l y n e k k ö v e t k e z t é b e n d i n a m i k u s a n g e n e r á l h a t ó v á válnak.
E I s i
PC Wo'Ksuaon Mot>« Phone
1. ábra A C o c o o n alapú, „hármas k ö t é s ű "
architektúra
M i n d e n C o c o o n o n a l a p u l ó w e b e s a l k a l m a z á s h á r o m fő f e l a d a t c s o p o r t b ó l áll:
• az a d a t t a r t a l o m r ó l való g o n d o s k o d á s ;
• a m ű k ö d é s i logika m e g v a l ó s í t á s a , k a r b a n t a r t á s a ;
• a m e g j e l e n í t é s m e g v a l ó s í t á s a , k a r b a n t a r t á s a . Amellett, hogy kizárólag e m e f e l a d a t c s o p o r t o k s z é t v á l a s z t á s á v a l biztosítható a s z o l g á l t a t a n d ó h o n l a p v a g y w e b e s a l k a l m a z á s stabilitása, n a p r a k é s z e n t a r t á s a és e r ő f o r r á s i g é n y é n e k m i n i m a l i z á lása, e g y é r t e l m ű e n k ö r v o n a l a z ó d i k az is, hogy a m ű k ö d t e t é s s o r á n s z é t v á l n a k a t a r t a l o m é r t é s a f o r m á é r t felelős k o m p e t e n c i á k . S z á m u n k r a p e d i g ez az e g y i k l e g f o n t o s a b b t é n y e z ő , u g y a n i s e z z e l a m ó d s z e r r e l v é g r e e l é r h e t ő , hogy a „ t a r t a l o m g y á r t ó "
s z e m é l y kizárólag a tartalmi részekért, a d e s i g n e r pedig a m e g j e l e n é s é é r t feleljen.
A „ h a g y o m á n y o s " w e b f e j l e s z t ö e s z k ö z ö k - P H P , A S P - a l k a l m a z á s a k o r a m e g j e l e n í t é s (arculat) é s a m ű k ö d é s i logika s z o r o s a n ö s s z e f o n ó d i k , e l s ő s o r b a n a nyelvi k ó d o k k e v e r e d é s e miatt. Ezáltal az a l k a l m a z á s k a r b a n t a r t á s a , a hibák j a v í t á s a n e h e z e b b és k ö l t s é g e s e b b . Az arculat m e g v á l t o z t a t á s a gyakorlatilag az e g é s z a l k a l m a z á s újraírását k ö v e teli m e g .
TMT 52. évf. 2 0 0 5 . 1 1 - 1 2 . sz.
1. táblázat
Feladatcsoportok szétválasztása C o c o o n esetén
Fejlesztő Rendszergazda Tervező Szerkesztő
A fejleszlök valósítják meg a működési logikái, és a webes alkalmazás mögött húzódó objektum modellt
Nem a weboldalak kinézetével, és nem is a képernyőn olvasható szöveggel van dolguk, hanem az alkalmazás funkcionalitásával
Kapcsolódó Cocoon- komponens: actions
A rendszergazda a felelős a webszerver által kiszolgált URI tér kiosztásáért: az URL-nek a megfelelő feldolgozási folya
matdefinícióval való megfe
leltetéséért
Dedikált rendszergazda hiányában egy fejlesztőnek kell ezt a szerepkört ellátnia
Kapcsolódó Cocoon- komponens: sitemap
A tervezők felelősek a honlap végső formájának kidolgozásáért
A tervezők készílik a grafikákat és a HTML kódot
Kapcsolódó Cocoon- komponens: transformers
A szerkesztők felelősek a képernyőn meg
jelenő szöveg tartalmáért, és részben a szerkezetéért
Általában ők használják fel a fejlesztők által elkészített eszközöket, és állítják elő azt az XML (ártalmat, amelyből a transzformációk végén megjelenik az eredmény
Kisebb webes alkalmazások esetén gyakran a fejlesztő látja el ezt a szerepkört is
Kapcsolódó Cocoon-komponens: generátora
A C o c o o n e l ő s e g í t i e z e k n e k a f e l a d a t c s o p o r t o k n a k a s z é t v á l a s z t á s á t a z á l t a l , hogy a w e b r e kerülő a l k a l m a z á s f e j l e s z t é s é b e n k ö z r e m ű k ö d ő s z e r e p l ö k a r e n d s z e r e n belül c s a k e g y - e g y k o m p o n e n s s e l t a l á l k o z n a k . Ideális e s e t b e n a z 1. táblázat szerinti a m u n k a m e g o s z t á s - p e r s z e kellő i n d o k k a l ö s s z e v o n á s o k a l k a l m a z h a t ó k .
A t á b l á z a t b a n m e g n e v e z e t t s z e r e p k ö r ö k k a p c s o l a tát a 2. ábra s z e m l é l t e t i .
Menedzsment
/ I \
Logika Tartalom Stílus
Logika Tartalom Stílus
2. ábra A f e l a d a t c s o p o r t o k közti s z e r e p k ö r ö k kapcsolata a C o c o o n b a n
C o c o o n a N e u m a n n - h á z b a n
A digitális k ö n y v t á r új h o n l a p j á n a k t e r v e z é s e k ö z b e n m á r e l ő r e k ö r v o n a l a z ó d o t t , hogy a h a g y o m á n y o s m ó d s z e r e k k e l h a t a l m a s m u n k á t i g é n y e l a site e l k é s z í t é s e . T e h á t v a l a m i o l y a n m e g o l d á s t kellett találni, a m i v e l - h a n e m is feltétlenül g y o r s a b b a n , d e - é s s z e r ű b b é s i d ö t á l l ó b b a l k a l m a z á s h o z h a t ó létre. F i g y e l e m b e v é v e , hogy az i n t é z m é n y irodal
mi m ü v e k w e b e s p u b l i k á l á s á r a m á r h é t é v e S G M L / X M L és t r a n s z f o r m á c i ó s s t í l u s l a p - t e c h n o l ó g i á k a t a l k a l m a z , e g y é r t e l m ű e n j ó d ö n t é s n e k b i z o n y u l t az e m l í t e t t n y e l v e k e t u g y a n c s a k h a s z n á l ó C o c o o n X M L p u b l i k á l ó k e r e t r e n d s z e r b e v e t é s e .
K é z e n f e k v ő volt a z is, h o g y az X M L t e c h n o l ó g i á r a v a l ó áttérés s o r á n b e f e k t e t e t t m u n k a a h o n l a p ü z e m e l t e t é s e , k a r b a n t a r t á s a s o r á n térül m e g . R á a d á s u l az e g y s z e r ű b b k e z e l h e t ő s é g e n felül a z X M L o l y a n t ö b b l e t l e h e t ő s é g e k e t is nyújt, m i n t a k l i e n s e s z k ö z m e g j e l e n í t é s i k é p e s s é g e i h e z v a l ó j o b b a l k a l m a z k o d ó k é p e s s é g , pl. a h o n l a p W A P f e l ü l e t ű m e g j e l e n í t é s e .
A C o c o o n r e n d s z e r r e l szállított é p í t ő e l e m e k e l é g r u g a l m a s a k a h h o z , h o g y e z e k n e k az e l e m e k n e k a h a s z n á l a t á v a l , p r o g r a m o z á s i m u n k a nélkül is m e g o l d h a t ó l e g y e n a w e b f e j l e s z t é s i f e l a d a t o k t ú l n y o m ó r é s z e E z e n t ú l m e n ő e n a b o n y o l u l t a b b a l k a l m a z á s o k n á l a m e n e t k ö z b e n J a v a k ó d r a f o r d u l ó , X M L s z i n t a k t i k á j ú X S P nyelvet l e h e t a l k a l m a z n i , s ő t a m e g l é v ő k m e l l é s a j á t é p í t ő e l e m e k e t is l e h e t fej
leszteni. M i n d e h h e z b ő s é g e s p é l d a a n y a g és d o k u m e n t á c i ó áll r e n d e l k e z é s r e , v a l a m i n t - l e g j o b b p é l d a k é n t - m a g a a C o c o o n f o r r á s k ó d .
A m e g v a l ó s í t á s b a n a l k a l m a z o t t a l k o t ó e l e m e k a 3. ébrén láthatók.
A z e l s ő látásra b o n y o l u l t n a k t ű n ő á b r a v a l ó j á b a n n a g y o n k ö n n y e n m e g f e j t h e t ő . A f e l s ő s z i n t e n a f e l d o l g o z ó k ö r n y e z e t ( s e r v l e t e n g i n e ) l á t h a t ó , m e l y n e k k o n f i g u r á l á s á t a w e b . x m l á l l o m á n y b a n l e h e t e l v é g e z n i . A l a t t a a C o c o o n F r a m e w o r k é s a h o z z á k a p c s o l ó d ó s i t e m a p . x m a p , a m e l y a r e n d s z e r m ű k ö d é s é t definiálja. E z e k e t p e d i g a z á l t a l á n o s és saját f e j l e s z t é s ű C o c o o n - k o m p o n e n s e k (az 1, t á b l á z a t b a n látható f e l a d a t c s o p o r t o k s z é t v á l a s z t á s a is r é s z b e n e z e k a l a p j á n történt) követik.
Bíró Sz.: Van új a nap a l a t t .
Operating E n v i r o n m e n t (Servlet Engine) Config urat ion web.xmi
C o c o o n Framework Config uration
Silemap xmap
Cocoon Components - Generators - Transformers - Serializers - etc.
C o m p o n e n t s Standard Components - XML Parser - XSLT Processor - etc.
Custom Components
A v a l o n
L o g g i n g Config uration
logkit.xconf A v a l o n C o m p o n e n t Management Config uration cocoon. xconf
3. ábra Az új Neumann-ház h o n lapkészítése s o r á n alkalmazott C o c o o n - k o m p o n e n s e k M i n d e g y i k k e l nincs l e h e t ő s é g ü n k f o g l a l k o z n i , d e
n é h á n y e g y s z e r ű f o r r á s k ó d d a l t á m o g a t o t t p é l d á n k e r e s z t ü l é r d e m e s egy pillantást v e t n i a k e r e t r e n d s z e r m ű k ö d é s é r e .
A sitemap
A s i t e m a p a C o c o o n s z i v e . T u l a j d o n k é p p e n ez h a t á r o z z a m e g a z e g é s z r e n d s z e r m ű k ö d é s é t , v i s e l k e d é s é t - e z e n áll vagy bukik m i n d e n . H a jól v a n beállítva, a k k o r a k i m e n e t i á l l o m á n y b a n m e g j e l e n n e k a k é p e k , m ű k ö d i k a külső C S S , h a s z n á l h a t u n k s c r i p t e k e t stb. A s i t e m a p az 1. forráskód szerinti globális s t r u k t ú r á t követi.
<map:sitemap xmlns:map-'http://xml.apache.org/
cocoon/sitemap/1,0">
<map:components/>
<map:views/>
<map:resources/>
<map:action-sets/>
<map:pipelines/>
</map:sitemap>
1. forráskód A globális s i t e m a p struktúra A m a p n é v t é r m i n d e n e g y e s r é s z é n e k m e g v a n a m a g a f u n k c i ó j a , á m e g y s z e r ű b b a l k a l m a z á s o k e s e t é n a p i p e l i n e s h a s z n á l a t a e l e g e n d ő . N é z z ü n k e g y n a g y o n e g y s z e r ű példát, a m e l l y e l a l e g t ö b b p r o g r a m o z á s i n y e l v k ö n y v indítani szokott. A „Hello W o r l d " s z ö v e g e t t a r t a l m a z ó X M L fájlból a C o c o o n s e g í t s é g é v e l írassuk ki egy kliensoldali b ö n g é s z ő be az e m l í t e t t ü z e n e t e t .
<?xml version="1.0"?>
<dokumentum>
<szoveg>Hello World </szoveg>
</dokumentum>
2. forráskód A helloworld.xml állomány tartalma A h h o z , h o g y e b b ő l H T M L k i m e n e t l e g y e n , k é s z í t e ni kell e g y stylesheetet, a m e l y n e k s e g í t s é g é v e l a C o c o o n e l v é g e z h e t i a t r a n s z f o r m á c i ó t (3. forrás
kód).
<7xm\
version="1.0" encoding="utf-8"?><xsl :stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform'' version="1.0">
<xsl;outputindent="yes"
method-'html"
encoding="utf-8"
doctype-public="-//W3C//DTD HTML 4.01 T ra n sitío na I//E N"
doctype-system-'http://www. w3.org/TR/html4/
loose.dtd"/>
<xsl:templatematch="dokumentum">
<html>
<head>
<ti tl e> <xsl: va I u e - of sel ect=" szo veg 7 > </titl e>
</head>
<body>
<h1><xsl:value-of select="szoveg'7></h1 >
</body>
</html>
</xsl:template>
</xsl:stylesheet>
A z X M L fájl f e l é p í t é s é t a 2. forráskód mutatja. 3. forráskód A helloworld2html.xsl állomány tartalma
5 1 4
TMT 52. évf. 2005. 1 1 - 1 2 . sz.
Request Response
Request Processing Pipeline inside Cocoon
4. ábra A kérést f e l d o l g o z ó pipeline felépítése A k ó d n e m tesz m á s t , m i n t s a b l o n t definiál a
d o k u m e n t e l e m r e , a m e l y n e k t a r t a l m á t H T M L v á z ba h e l y e z i . A z X M L á l l o m á n y szöveg e l e m é n e k t a r t a l m a <h1> e l e m e k k ö z ö t t íródik ki a b ö n g é s z ő b e n . V é g ü l nincs m á s h á t r a , m i n t a s i t e m a p b e n beállítani, h o g y mi is t ö r t é n j e n (4. forráskód).
<map:pipeline>
<map:match pattern="he!loworld">
<map:generate src="helloworld.xml7>
<map:transform src="helloworld2html.xsr7>
<map:serialize/>
</map:match>
</map:pipeline>
4. forráskód A sitemap xmap állomány tartalma
b e n igazuk v a n , á m e g y k o m p l e x , w e b p o r t á l s z e r - k e z e t h e z h a s o n l ó f e l é p í t é s ű h o n l a p e s e t é b e n - a m i l y e n a 6. ábrán látható új N e u m a n n - h á z site n y i t ó l a p j á n s z e r e p e l - , m i n d e z m á r n e m j e l e n t h e t ő ki ilyen e g y é r t e l m ű e n .
H e l l o W o r l d
A pipeline m e g m o n d j a a C o c o o n n a k , hogy a k i m e neti á l l o m á n y h e l l o w o r l d n é v e n s z e r e p e l j e n a z U R L - b e n , a h e l l o w o r l d xml-t h a s z n á l j a f o r r á s k é n t , a t r a n s z f o r m á c i ó t p e d i g a h e l l o w o r l d 2 h t m l . x s l s e g í t s é g é v e l v é g e z z e el. Egy á l l o m á n y o n t ö b b á t a l a k í t á s is e l v é g e z h e t ő , ilyenkor m i n d e n e g y e s t r a n s z f o r m á c i ó é r t f e l e l ő s stíluslapot k ü l ö n
< m a p : t r a n s f o r m s r c = " * . x s l " / > - b e kell e l h e l y e z n i . A pipeline m ű k ö d é s é t és a f e l d o l g o z á s i f o l y a m a t o t a 4. ábrán szemléltetjük.
A b ö n g é s z ő b e n látható k i m e n e t pedig a v á r t e r e d m é n y t h o z t a (5. ábra).
A kicsit h o z z á é r t ő b b e k r ö g t ö n m o n d h a t j á k , hogy a látottakat s z á m o s m á s úton u g y a n í g y el lehetett v o l n a é r n i , é s m é g s i t e m a p s e m kell h o z z á . R é s z -
5. ábra A HTML kimenet Mozilla 1.7.5-ben A 6. á b r á n k i t ű n ő e n látszik, h o g y a k e z d ő l a p 3 h a s á b o s s z e r k e z e t ű : m i n d e g y i k t a r t a l m a e g y - e g y X M L á l l o m á n y b a n v a n t á r o l v a - e z e k H T M L t r a n s z f o r m á c i ó j á t X S L T v é g z i . A bal oldali m e n ü s o r é s a k ö z é p e n e l h e l y e z k e d ő k i e m e l t s z o l g á l t a t á s o k e s e t é b e n saját t e r v e z é s ű X M L j e l ö l é s t h a s z n á l tunk, u g y a n a k k o r a j o b b o l d a l o n látható ú j d o n s á g o k n á l az R S S7 s z a b v á n y X M L S c h e m á j á t v e t t ü k a l a p u l a t a r t a l m a k k ó d o l á s a k o r . A z oldal t e t e j é n e l h e l y e z k e d ő f e j r é s z é s „lábléc" t a r t a l m a t r a n s z f o r m á c i ó s b ő v í t h e t ő s t í l u s l a p á l l o m á n y b a n t á r o l ó dik, és a b b ó l alakul át H T M L - l é , a létrejött o l d a l s z e l e t e k e t pedig a C o c o o n c i n c l u d e k o m p o n e n s e o l v a s z t j a e g y s é g e s , b ö n g é s z ő b e n m e g j e l e n í t h e t ő k i m e n e t i á l l o m á n n y á .
Bíró Sz.; Van új a nap alatt..
: Ü M M M l f a " - D*** Pn+ M i n 2
"3 o * [sr
ro Ml* IMifepM i - ..un, »mnl + d ,.Í ^ I •. k**ywiM'*l
" . . „ „ k i .1
... I- .1 .1- Mi Huh h. fiti-ift—
PiHhAfWii iÉ|rip»nv»SDi<
i-i •• ilit - H<ha Uattral i i •• i. i—i dvku m rrri umok
>U(HU>l»t
^••d taJliHfi
H Ü III r4.pl
• n
H i h l i n r h p f - i l l u n g i n r a liiTt»m.>rian*
[ i i £ i i a l » :•. . 1 . . : ,. ,! -í.r:. .
í E
Vúmuh* Di-jfilm LörfL-neN M ű f ű i n
K a l a i u I ulllil • U T i u l í v L . I . L U I L I »
iM»hn.*t*.i k^.povl Kit
• Üjffefttáf
r*,IHt, „M-*T*v»t i*li::•xtflH3••. u i-iT*r-rpi*ií
ii'- ni i' Fajért M-Moltoki-M • N J I . H . KH'Lírrwc 17 »'k,inyjrUiiÁ7Win
i ' W M t * m i t " »•
- i j l í í j l H í — l l í " f tt V í P'tJIJITl tl^'^llj
EJ * 6. ábra A Neumann-ház nyitólap szerkezeti felépítése Deer Park A l p h a 2-ben
K ü l ö n e m l í t é s r e m é l t ó , hogy a site aloldalainak X M L k ó d o l á s a s o r á n a T E I8 P 4 X M L a l a p ú D T D - j é t hívtuk s e g í t s é g ü l - e n n e k e r e d m é n y e k é n t tartal
maink n e m c s a k X M L a l a p ú a k , h a n e m n e m z e t k ö z i leg is elismert, e g y s é g e s j e l ö l é s r e n d s z e r t követ
nek. A T E I alapú j e l ö l é s s o r á n a l k a l m a z o t t fejlécet pedig - amely e g y é b k é n t a f e l d o l g o z o t t d o k u m e n t u m leírására szolgál - a H T M L o u t p u t < h e a d >
r é s z é n e k a l a p D C m e t a a d a t a i v a l való feltöltéséhez v e t t ü k i g é n y b e .
A C o c o o n é s az X M L t e c h n o l ó g i a a l k a l m a z á s á n a k e l ő n y e i t bizonyítja az is, hogy u g y a n a b b ó l a tárolá
si f o r m á t u m b a n rögzített t a r t a l o m b ó l egy másik s t y l e s h e e t s e g í t s é g é v e l k ö n n y e d é n előállítható a h o n l a p v a k o k é s g y e n g é n látók s z á m á r a is h a s z n á l h a t ó felülete (7. ábra).
Továbbfejlesztési lehetőségek
A z X M L t e c h n o l ó g i a é s a C o c o o n b e v e z e t é s é v e l az e l ő b b i e k b e n v á z o l t projekt célkitűzésein t ú l m e n ő e n s z á m o s új s z o l g á l t a t á s r a nyílik t e c h n i k a i le
h e t ő s é g . R ö v i d e n áttekintjük a z új l e h e t ő s é g e k e t ,
a m e l y e k k e l a j ö v ő b e n b ő v í t e n i lehet a N e u m a n n - ház honlapját.
Mobil s z o l g á l t a t á s
A kliensoldali b ö n g é s z ő (user a g e n t ) k é p e s s é g e i nek l e k é r d e z é s é v e l a C o c o o n l e h e t ő s é g e t a d az X M L f o r m á b a n tárolt t a r t a l m a k n a k a f e l h a s z n á l ó igényei szerinti f o r m á t u m r a k o n v e r t á l á s á r a . így u g y a n a z a t a r t a l o m m e g j e l e n í t h e t ő asztali s z á m í t ó g é p e n é s m o b i l t e l e f o n o n e g y a r á n t . E n n e k a l e h e t ő s é g n e k például az ú j d o n s á g o k , hírlevelek c é l b a j u t t a t á s a s z e m p o n t j á b ó l lehet nagy j e l e n t ő s é g e , d e
igényt tarthat a z o k n a k a f e l h a s z n á l ó k n a k az é r d e k l ő d é s é r e is, akik a s z a k i r o d a l o m i , o k t a t á s i a n y a g o k b a n s z e r e t n é n e k v a l a m i n e k u t á n a n é z n i , v a l a mit m e g k e r e s n i .
R e g i s z t r á c i ó h o z kötött s z o l g á l t a t á s o k
A C o c o o n hitelesítő k o m p o n e n s e l e h e t ő v é t e s z i , hogy csak a m e g f e l e l ő j o g o s u l t s á g g a l b e j e l e n t k e ző, regisztrált f e l h a s z n á l ó k f é r h e s s e n e k h o z z á a védett i n f o r m á c i ó k h o z . A regisztráció lehet i n g y e -
5 1 6
TMT 52. évf. 2005. 1 1 - 1 2 . sz.
Neumann-tia? l - D w Park Alpha 2
Neumann János Digitális Könyvtár
Keresés
Újdonság
05.08.21, Bánk eszi Katalin: A Neumann-hír irodaFrni
05.08.22. K le ü r í t é s a CD-FÖM diszkó grifláhor 05.08.1B. József Attila
v k ^ k ö l r o z ö t t a?
internetre 03.08.14. Pl port Bánké g i
h nlftlinrifll í r Aranyrüstben 03,08.10. Kultúrharc az
e-konyv-világban
WebKaUm
Magyar Internéi katalógus
Biblintheca Hungaaica Interneliana Magyar Szövegtár
Digitális Irodalmi Akadémia Kortárs magyar irodalom
Olvasni io!
Gyermeki ro d al o m
Virtuális Diafilm-tfineneti Múzeum DUflbMlí.
Keppk a m a g y a r irodalambnl Képek és diafilmek
Balassi Balint virtuális kiállítás Versek, versien/ételek, éne Kort versek
Nyitólap Magyar CD-ROM disikoerátia CD-ROM kiadványaWt Tanulmányok a dieitjiHt könyvtárról
Uhunkról
Kü htetesnyi [jtkozaf Névadónk, Neumann János Bc=id mólók
tevckanyseeünk föl Munkatársaink ElőadnsAink, fotó.itbum Publikációk, sajtóanyagok Educatto - onüno folyóirat TuvJarnánytortóriflH dokumentumok
Kapcsolat Vendégkönyv Hirlewíi Támogat ók Honlaptérkéc
English version Tor The BHnd | E-mall | W3C CSS
© 1 9 9 8 - 2 0 0 5 N e u m a n n János Digitális K ö n y v t á r és Multimédia K ö z p o n t K h t . < N e u m a n n - h d z )
"3 o * fcT
L l
7 ábra A Neumann-ház nyitólapja - vakok és gyengén látók számára készített felület szerkezeti felépítése Deer Park A l p h a 2-ben
nes, d e t ö r t é n h e t díjfizetési k ö t e l e z e t t s é g mellett is.
A f e l h a s z n á l ó i a z o n o s í t ó a d a t o k a t a C o c o o n fájl
ból, a d a t b á z i s b ó l v a g y s z á m o s e g y é b a d a t f o r r á s ból, pl. az L D A P9 kiszolgálótól l e k é r d e z v e ellenőrzi.
A s i k e r e s b e j e l e n t k e z é s után a C o c o o n s e s s i o n - k e z e l ö k o m p o n e n s e biztosítja, hogy m i n d e n a z o nosított f e l h a s z n á l ó k i z á r ó l a g a saját t r a n z a k c i ó i v a l k a p c s o l a t o s k o m m u n i k á c i ó t v é g e z h e s s e .
S z i n d i k á l á s
A C o c o o n szindikálási f u n k c i ó j a t ö b b - a k á r külső - kiszolgálótól bekért X M L 7 X H T M L / H T M L t a r t a l o m k ö z ö s f e l ü l e t e n , e g y e t l e n o l d a l o n v a l ó m e g j e l e n í t é s é t j e l e n t i , így ö s s z e f ü g g é s e i b e n m u t a t h a t ó k be az a d a t o k : ö s s z e h a s o n l í t h a t ó k , ö s s z e r e n d e z h e t e k . H í r c s a t o r n á k
K ü l s ő hírszolgáltatók X M L f o r m á t u m b a n - például az R S S s z a b v á n y szerint - szolgáltatott online híreit a C o c o o n f o g a d j a , é s a h o n l a p hírblokkjába
integrálva m e g j e l e n í t h e t i . S a j á t h í r c s a t o r n á t is le
het i n d í t a n i ,1 0 a m e l y r e m á s s z o l g á l t a t ó k f e l h a s z n á l h a t n a k , p u b l i k á l h a t n a k .
Porta I s z o l g á Itatások
A C o c o o n beépített portál k o m p o n e n s s e l r e n d e l kezik, a m e l y integrálja é s kibővíti a t ö b b i C o c o o n - f u n k c i ó t (hitelesítés, s z i n d i k á l á s s t b ). A portálra b e j e l e n t k e z e t t f e l h a s z n á l ó k é r d e k l ő d é s i k ö r ü k n e k m e g f e l e l ő e n a l a k í t h a t j á k ki a s z e m é l y e s p o r t á l f e l ü letet: e g y e s e l e m e k e t k i k a p c s o l h a t n a k , e l r e j t h e t nek, m i n i m a l i z á l h a t n a k . A h a g y o m á n y o s m e n ü s o l d a l s z e r k e z e t mellett a C o c o o n t á m o g a t j a a f ü l e k kel (tab) való n a v i g á c i ó t is.
A d a t b á z i s h á t t é r - X i n d i c e
.Az Xindice a Cocoon rendszer része, igy külön telepítést nem igényel, a meglévő Cocoon környezetben közvetlenül használható. Valójában egy nativ XML adatbázis kezelő, vagyis közvetlenül képes XML
B í r ó S z . : V a n ú j a n a p a l a t t . .
a d a t o k a t t á r o l n i é s v i s s z a k e r e s n i . M i g a r e l á c i ó s a d a t b á z i s k e z e l ö k a z X M L a d a t o k a t c s a k k o n v e r z i ó , a d a t - o b j e k t u m m e g f e l e l t e t é s ( m a p p i n g ) s e g í t s é g é v e l t u d j á k k e z e l n i - a m i a l a z á n s t r u k t u r á l t , s z ö v e g e s X M L d o k u m e n t u m o k e s e t é n e r ő f o r r á s - i g é n y e s é s n e m h a t é k o n y - , a d d i g a n a t i v X M L a d a t b á z i s o k k ö z v e t l e n , k o n v e r z i ó n é l k ü l i X M L a d a t k e z e l é s r e a l k a l m a s a k . A z X M L fájlokat a z a d a t b á z i s b a n l o g i k a i c s o p o r t o k b a , ú n . c o l l e c t i o n - o k b a r e n d e z v e t á r o l h a t j u k , igy u g y a n a z a z a d a t b á z i s p é l d á n y t ö b b f é l e t í p u s ú é s t a r t a l m ú d o k u m e n t u m - h a l m a z t á r o l á s á r a é s v i s s z a k e r e s é s é r e h a s z n á l h a t ó . A c o l l e c t i o n - o k a z o p e r á c i ó s r e n d s z e r e k f á j l r e n d s z e r e i h e z h a s o n l ó a n h i e r a r c h i k u s r e n d s z e r t a l k o t n a k , t e t s z ő l e g e s e n e g y m á s b a á g y a z h a t o k .
A z X i n d i c e a k e r e s é s s z i n t a k t i k á j a k é n t a W 3 k o n z o r c i u m X P a t h s z a b v á n y á t h a s z n á l j a . A k e r e s é s t n e m c s a k d o k u m e n t u m o n b e l ü l , h a n e m b á r m e l y i k c o l l e c t i o n - s z i n t e n , a c o l l e c t i o n - b a t a r t o z ó ö s s z e s d o k u m e n t u m b a n e g y s z e r r e hajtja v é g r e . E r e d m é n y k é n t azt a z e l e m h a l m a z t ( n o d e s e t ) k a p j u k v i s s z a , a m e l y teljesíti a z X P a t h k e r e s é s b e n m e g h a t á r o z o t t feltételt, A k a p o t t X M L d o k u m e n t u m a z e r e d e t i d o k u m e n t u m r ó l is t a r t a l m a z a z o n o s í t ó i n f o r m á c i ó t , igy k ö n n y e n ö s s z e k a p c s o l h a t ó a m e g t a l á l t e l e m a h o z z á t a r t o z ó g a z d a d o k u m e n l u m m a l . A k e r e s é s h a t é k o n y s á g á n a k f o k o z á s á r a i n d e x e k e t lehet k é s z í t e n i a g y a k r a n h a s z n á l t k e r e s é s i s z e m p o n t o k a l a p j á n .
A z X P a t h n y e l v s e g í t s é g é v e l a d o k u m e n t u m t e t s z ő l e g e s r é s z é t ki l e h e t v á l a s z t a n i , Így a z a d a t b á z i s b a n , e g y e t l e n p é l d á n y b a n tárolt m ü b ö l p é l d á u l t ö b b f é l e i d é z e t e t lehet l e k é r d e z n i " (Szálai Attila: J e l e s n a p o k ) .
H a például e g y Juhász Gyula-versei t a r t a l m a z ó X M L á l l o m á n y t töltünk a p r ó b a n e v ü collectionbe, az első két v e r s s z a k így k é r d e z h e t ő le: http://
iocaihost:8888/samples/blocks/xmidb/db/proba/
juhaszgy?xpath =//lg[position()<3]
A l e k é r d e z é s e r e d m é n y é n e k forrása p e d i g a k ö v e t k e z ő f o r m á t ölti:
< d b : r e s u l t s q u e r y - V / l g j p o s i t i o n ( ) < 3 ] " r e s o u r c e s - ' 2 " >
< d b : r e s u l t d o c i d = " j u h a s z g y " >
<lg s r c : c o l = " / d b / p r o b a " s r c : k e y = " j u h a s z g y " >
< l > G o n d o l j el n e m m ú l ó z e n é k r e l e l k e m , < / l >
< l > S z ü z c s i l l a g o k o n f ö n n a z é g i k e r t b e n . < / l >
</lg>
< / d b : r e s u l t >
< d b : r e s u l t d o c i d = " j u h a s z g y " >
<lg s r c : c o l = 7 d b / p r o b a " s r c : k e y = ' j u h a s z g y " >
< l > É s é j s z a k á r a , m e l y n e k t ü k ö r é b e n < / l >
< l > E l s á p a d m i n d e n á r n y é k f ö l d ö n , é g e n . < / l >
< f l g >
< / d b : r e s u l t >
< / d b : r e s u l t s >
Konklúzió
A C o c o o n é s a h o z z á k a p c s o l ó d ó t e c h n o l ó g i á k á t t e k i n t é s e után felmerülhet a k é r d é s : miért j ó m i n d e z a t a r t a l o m s z o l g á l t a t ó k , k ö n y v t á r a k s z á m á ra? Első látásra bonyolultnak tűnik, v i s z o n y l a g nagy s z a k é r t e l m e t igényel, és r e n g e t e g t e r ü l e t e n kell o t t h o n o s a n m o z o g n i . T e r v e z n i , k ó d o l n i , p r o g r a m o z n i kell, é s emellett s z á m o s szoftver h a s z n á latát k é n y t e l e n elsajátítani, aki a l k a l m a z z a . A f e l adat n e m e g y s z e r ű , de kihívást jelent, h i s z e n a b b a n a v i l á g b a n , a h o l piaci erők d o m i n á l n a k , á l d á s , h a r e n d e l k e z é s r e állnak o l y a n i n g y e n e s t e c h n o l ó giák, a m e l y e k k e l kifogástalan m u n k á t lehet v é g e z ni.
Napjaink k ö n y v t á r a i n a k - ha úgy tetszik, i n f o r m á ciós k ö z p o n t j a i n a k - is m e g kell felelniük a 2 1 . s z á z a d e m b e r e által t á m a s z t o t t i g é n y e k n e k , és a z e g y r e g y o r s a b b a n változó technológiai k ö v e t e l m é n y e k n e k . A m i n d e n n a p j a i n k a t b e h á l ó z ó o n l i n e k o m m u n i k á c i ó é s az e g y r e f o n t o s a b b á v á l ó digitalizáció v i l á g á b a n m i n d e n k é t s é g e t k i z á r ó a n l é n y e g e s s é válik az a d a t o k , i n f o r m á c i ó k h o r d o z h a t ó s á g a . A k ü l ö n b ö z ő o p e r á c i ó s r e n d s z e r e k e t é s b ö n g é s z ő p r o g r a m o k a t a l k a l m a z ó és futtató asztali, illetve h o r d o z h a t ó s z á m í t ó g é p e k , o k o s t e l e f o n o k és P D A - k , n e m u t o l s ó s o r b a n p e d i g a z o k f e l h a s z nálói e g y r e j o b b a n „ m e g k ö v e t e l i k " , hogy digitalizált és w e b e n szolgáltatott d o k u m e n t u m a i n k t ö b b f é l e f o r m á t u m b a n e l é r h e t ő v é v á l j a n a k s z á m u k r a . E n nek h a t é k o n y , g y o r s és időtálló m e g v a l ó s í t á s a a z o n b a n t ö b b o k b ó l s e m e g y s z e r ű feladat, á m a C o c o o n k é t s é g k í v ü l az egyik l e g h a t é k o n y a b b út.
Mi s e m bizonyítja ezt j o b b a n , mint a z o n k é p e s s é gei, a m e l y e k a k á r a „profi" f e j l e s z t ő k e t is h a m a r m e g g y ő z h e t i k . H o g y miről is v a n s z ó ?
• A d a t o k k ü l ö n b ö z ő f o r m á t u m ú r u g a l m a s p u b l i k á lása.
• K ü l ö n b ö z ő a d a t f o r r á s o k integrációja.
• T a r t a l m a k s z e m é l y r e s z a b h a t ó s á g a .
• A l k a l m a z á s o k integrációja.
• P l a t f o r m f ü g g e t l e n s é g
• R u g a l m a s a r c h i t e k t ú r a .
• Nyílt f o r r á s k ó d és I N G Y E N E S S É G .
Úgy v é l e m , nyilvánvaló, h o g y m i n d e g y i k s z e m p o n t k i e m e l k e d ő e n f o n t o s , d e a k o r á n t s e m t ú l f i n a n s z i - r o z o t t s á g u k r ó l híres k ö n y v t á r a k , kulturális intéz
m é n y e k s z á m á r a e g y é r t e l m ű e n a l e g u t ó b b i n a k v a n a l e g n a g y o b b j e l e n t ő s é g e . M o n d o m e z t e g y d i g i t á lis k ö n y v t á r m u n k a t á r s a k é n t , a h o l rövid é s h o s s z ú t á v o n e g y a r á n t milliós ö s s z e g e k e t s p ó r o l t u n k m e g a z z a l , hogy új h o n l a p u n k a t a W 3 C a j á n l á s a i r a é s az A p a c h e Project C o c o o n t e r m é k é r e a l a p o z t u k .
5 1 8
TMT 52. évf. 2 0 0 5 . 1 1 - 1 2 . sz.
B e kell látnia m i n d e n k i n e k , hogy w e b e s r e n d s z e r e k e t é p í t e n i e g y r e n e h e z e b b lesz, m i v e l többfajta e s z k ö z z e l és k ö r n y e z e t b ő l érik e l ő k e t a f e l h a s z n á lók. M e g f e l e l ő t e c h n o l ó g i a nélkül m á r m a is n e h é z kezelni a d o l o g b o n y o l u l t s á g á t , és a helyzet e g y r e ö s s z e t e t t e b b lesz. Ideje e l k e z d e n i t a n u l n i - és m i é r t ne k e z d h e t n é n k a C o c o o n n a l ? !
J e g y z e t e k
1 A C S S o l y a n s t í l u s l a p - m e g v a l ó s í t á s , a m e l y l e h e t ő v é t e s z i , h o g y a H T M L , X H T M L , X M L á l l o m á n y o k tar
t a l m á h o z e g y e d i s t í l u s t r e n d e l h e s s ü n k h o z z á . W 3 C a j á n l á s , a m e l y n e k j e l e n l e g két é r v é n y b e n l é v ő k i a d á s a l é t e z i k . A l é p c s ő s s t í l u s l a p o k h a s z n á l a t a e g y r e n é p s z e r ű b b a p r o g r a m o z ó k k ö r é b e n - a t e c h n o l ó g i á t a t v é s m o b i l e s z k ö z ö k h a s z n á l a t á h o z is f o l y a m a t o
s a n f e j l e s z t i k . T o v á b b i i n f o r m á c i ó : http://www.w3.org/
TR/REC-CSS1-961217.html, http://www.w3.org/TR/
CSS21/ é s http://wwww3.org/Style/CSS/cunent- work
7 A z X S L T v a l ó j á b a n , n o h a s t í l u s l a p , s o k k a l i n k á b b t e k i n t h e t ő e g y f a j t a s a j á t o s p r o g r a m o z á s i m ó d s z e r n e k , n y e l v n e k , a m e l y b e é p í t e t t v e z é r l é s i s t r u k t ú r á k a t , n y e l v i e l e m e k e t , p a r a m é t e r e k e t , v á l t o z ó k a t t a r t a l m a z , c s a k é p p e n a z X M L s z a b á l y a i n a k m e g f e l e l ő e n , X M L d o k u m e n t u m k é n t l e i r v a - s z i n t é n W 3 C a j á n l á s T o v á b b i i n f o r m á c i ó : http://www.w3.org/TR/xslt é s http://www. w3. org/TR/xslt20/
3 T h e A p a c h e C o c o o n P r o j e c t . http://cocoon.
apache.org
A P o p o o n r e n d s z e r t a C o c o o n m i n t á j á r a v a l ó s í t o t t á k m e g , a z o n b a n t e l j e s e n P H P a l a p o n . K a p c s o l ó d i k h o z z á m é g a Bitflux E d i t o r , a m e l y e g y o n l i n e X M L s z e r k e s z t ő , illetve e g y t e l j e s C M S r e n d s z e r is, a Bitflux C M S . Ez a m e g o l d á s is s z a b a d f o r r á s ú . T o v á b b i i n f o r m á c i ó : http://popoon.org/
5 2 0 0 1 - r e m á r 2 0 0 0 e m b e r i r a t k o z o t t fel a C o c o o n l e v e l e z ő l i s t á j á r a , é s s z á m o s n a g y c é g is t á m o g a t t a a s z o f t v e r f e j l e s z t é s é t .
6 A z X S L T k ó d a l a p j á n W 3 C k o n f o r m á l l o m á n y j ö n létre, h i s z e n D O C T Y P E is s z e r e p e l a f o r r á s b a n .
7 R e a l l y S i m p l e S y n d i c a t i o n v a g y R i c h S i t e S u m m a r y - X M L a l a p ú s z o l g á l t a t á s , w e b s i t e - o n m e g j e l e n t a k t u á l i s h i r e k v a g y c i k k e k t o v á b b í t á s á r a ( c í m , s z e r z ő ,
k a t e g ó r i a , r ö v i d t a r t a l o m é s u g r ó p o n t ) . T o v á b b i in
f o r m á c i ó : http://rss.lap.hu
8 T e x t E n c o d i n g Initiative - f o n t o s n e m z e t k ö z i p r o j e k t , a m e l y n e k f e l a d a t a i r á n y v o n a l a k k i f e j l e s z t é s e , t e r j e s z t é s e a g é p p e l o l v a s h a t ó s z ö v e g e k k ó d o l á s á r a , k ö z - v e t i t h e t ő s é g é r e é s c s e r é l h e t ő s é g é r e , v a l a m i n t j a v a s latok t é t e l e új s z ö v e g e k k ó d o l á s á r a . T o v á b b i infor
m á c i ó : http://www.tei-c.org/
9 L i g h t w e i g h t D i r e c t o r y A c c e s s P r o t o c o g - k ü l ö n b ö z ő p l a t f o r m o k o n m e g v a l ó s í t o t t c i m t á r a k , a d a t t á r a k s z a b v á n y o s k ö z ö s k e z e l ő j e .
, D 2 0 0 5 s z e p t e m b e r é b e n a N e u m a n n - h á z is e l i n d í t o t t a s a j á t R S S s z o l g á l t a t á s á t .
I r o d a l o m
B A T E S , C h r i s : X M L : e l m é l e t é s g y a k o r l a t . B p . : P a n e m K i a d ó , 2 0 0 4 . 5 4 2 p. I S B N 9 6 3 5 4 5 3 9 3 0
B Í R Ó S z a b o l c s : S z ö v e g f e l d o l g o z á s X M L a l a p o k o n . B p . : N e u m a n n Kht., 2 0 0 5 . 2 0 8 p. I S B N 9 6 3 2 1 8 7 4 0 7 B R A D L E Y , N e i l : A z X M L - k é z i k ö n y v . B p . : S z a k K i a d ó ,
2 0 0 5 . 7 5 8 p.
L A N G H A M , M a t t h e w - Z I E G E L E R , C a r s t e n : C o c o o n : B u i l d i n g X M L A p p l i c a t i o n s . N e w R i d e r s P u b l i s h i n g , 2 0 0 2 . 5 0 4 p. I S B N 0 - 7 3 5 7 - 1 2 3 5 - 2
S Z Á L A I A t t i l a - N É M E T H K r i s z t i á n - B Í R Ó S z a b o l c s : A N e u m a n n - h á z h o n l a p j á n a k t o v á b b f e j l e s z t é s e : r e n d s z e r t e r v . B p . : N e u m a n n Kht., 2 0 0 5 . 3 6 p. ( b e l s ő a n y a g )
S Z Á L A I A t t i l a : J e l e s n a p o k : r e n d s z e r t e r v . B p . : N e u m a n n K h t . , 2 0 0 5 . p. 1 5 - 1 6 . ( b e l s ő a n y a g )
B e é r k e z e t t : 2 0 0 5 . o k t ó b e r 1 7 - é n .
Bíró Szabolcs
a N e u m a n n J á n o s D i g i t á l i s K ö n y v t á r é s M u l t i m é d i a K ö z p o n t K h t . k ö n y v t á r - i n f o r m a t i k a i o s z t á l y á n
o s z t á l y v e z e t ő - h e l y e t t e s . A B e r z s e n y e i D á n i e l F ő i s k o l a k ö n y v t á r - é s i n f o r m á c i ó t u d o m á n y i t a n s z é k é n ó r a a d ó t a n á r .
E - m a i l : biro.szabolcs@neumann-haz.hu