Uvod u razvoj portala na dotcms platformi Introduction in portal development on dotcms platform Milan Krstin 1, Milan Radaković 2 1 MD&PROFY 2 Fakultet organizacionih nauka u Beogradu Sadržaj - U radu su navedeni osnovni pojmovi i karakteristike dotcms sistema. Drugi deo rada objašnjava interakciju korisnika kao i način na koji administratori upravljaju korisničkim nalozima. Na kraju navedena su zapažanja prilikom implementacije i administracije veb portala : najčešće korišćene strukture, stabilnost rada sistema, sistem privilegija i integracija sa drugim servisima. Abstract - This paper presents basic concepts and characteristics of the dotcms system and technologies on which is system based upon. Second part of the paper explains interaction of users, and the way that administrators manage user and customer accounts. At the end we presented findings during the implementation and administration of web portals: commonly used structures, system run stability, system of privileges and integration with other services. 1. UVOD U ovom trenutku postoji preko tri hiljade različitih sistema za upravljanje sadržajem (CMS) koji iza sebe imaju neku kompaniju koja ih razvija i promoviše kao svoj proizvod. Sistemi za upravljanje sadržajem koji su rađeni specijalno po narudžbini za potrebe određenog sajta se bukvalno ne mogu prebrojati. Samim tim i razlike između njih su relativno velike. Neki od ovih sistema su samo podsistemi velikih sistema moćnih softverskih kompanija, dok su drugi relativno jednostavni i mali te zadovoljavaju samo određene potrebe korisnika. Pored toga postoji i kategorija veb sistema za upravljanje sadržajem otvorenog koda koji polako, ali sigurno kroz doprinos zajednice programera koji se okupljaju oko njih postaju daleko složeniji od običnih veb sistema i zadiru u ostale kategorije sistema za upravljanje sadržajem. dotcms je open source sistem za upravljanje sadržajem, napisan u ava tehnologijama. Podržava sve relacione baze podataka, jedini uslov je odgovarajući C drajver. dotcms poseduje mnoge funkcije kao što su virtuelni hosting, grupisanja, strukturiran sadržaj, RSS feed, keširanje, šabloni, AJAX kalendar događaja, izveštaje, blog, forume i još mnogo toga. Nešto više od 5 godine razvijala ga je dotmarketing kompanija koja je takođe razvila i open source projekat za upravljanje poslovanjem nazvan dotproject. Oba projekta dotcms i dotproject osmišljeni su i potekli od strane Vilijama Ezela. U cilju postizanja usaglašenosti sa SR-168 specifikacijom portleta, dotcms je razvijen na osnovu Liferay portala. dotmarketing tim je forkovao Liferay verziju 3.2.2 i napravio dotcms 1.0. dotcms 1.0 je bio dostupan za preuzimanje 2005 godine pod dotmarketing Public Licencom. U 2006 godini dotcms je objavio verziju 1.2 koja je donela mehanizam za struktuiran sadržaj. U 2007 javnosti je bila dostupna verzija 1.5 sa novim korisničkim interfejsom i sistemom za privilegije. 2007, 2008 i 2009 dotcms dobija nagradu od strane Packt Publishinga za najbolji open source CMS na tržištu. Trenutna verzija dotcms je 2.2 objavljena u oktobru 2012. godine. Poslednja verzija donosi unapređen sistem pluginova sa podšrkom OSGi arhitekture, poboljšano povezivanje sadržaja, novi TinyMCE, Elastic Search, nove metode u RESTFul API-ju itd. 2. OSNOVNE KARAKTERISTIKE Osnovni pojmovi u dotcms sistemu su [1]: Šabloni (Templates) su predefinisani izgledi koji su dostupni korisnicima kada prave nove HTML strane. HTML kod od kojeg je sačinjen šablon izgleda kao i standardan HTML kod sa tom razlikom da se u samom šablonu uključuju i kontejneri koji su u stvari serverski pozivi delova stranice. Kontejneri (Containers) u dotcms sistemu imaju dve uloge. Pre svega to su serverski uključeni dokumenti koji mogu biti korišteni da se na njih postave HTML elementi koji mogu da se koriste više puta na stranama i šablonima. obra praksa za korišćenje kontejnera je na primer na globalnim delovima portala kao što su zaglavlje i futer. Takođe mogu da definišu gde može da se postavi sadržaj na šablonu i kako će on biti formatiran odnosno menjan. Strukture (Structures) služe da organizuju informacije u određenim poljima kreiranim kroz dotcms. Administratori koriste strukture da odrede određene tipove sadržaja koji će biti prikazani u kontejnerima. Polja koja se nalaze u strukturama su najčešće: Naziv, Podnaslov, Opis, Telo, itd. Neka ili sva polja se prikazuju kada se struktura poveže na prikaz neke strane. Sadržaj (Content) je deo portala koji se ponaša kao deo HTML koda na strani. Može biti postavljen na kontejner ili učitan pomoću sistema na neki vidžet. Vidžet (Widget) je sadržaj koji dinamički prikazuje druge sadržaje unutar sebe. 489
Tip Sadržaja (Content Type) je određena specifična struktura koja se postavlja na kontejner koji opet služi da prikaže određen tip sadržaja na jedinstven način dotcms kombinuje opcije enterprajz CMS sistema sa ecommerce i CRM alatima koji pomažu organizaciji da komunicira sa kupcima ili klijentima. Struktuiran sadržaj predstavlja jedan od najvažnijih elemenata enterprajz CMS platforme koji omogućava ponovnu upotrebu, pomaže sprovođenje globalnih stilova i može se koristiti za kreiranje bogatijih delova sadržaja. Korišćenjem CMSa koji ne koristi struktuiran sadržaj propuštaju se mnogi benefiti CMS-a. Struktuiranim mehanizmom za sadržaje, dotcms omogućava kreiranje i upravljanje različitim tipovima sadržaja na veb portalu, u toku rada (On the fly). Ovo je moćna opcija u suštini, moguće je kreirati jedinstven sadržaj u bazi, spreman za ponovno korišćenje. Kao baza podataka, različiti tipovi sadržaja mogu biti povezani putem eksplicitnih drugih vrsta odnosa ili taksonomijom /kategorijama. To znači da je sav sadržaj u dotcms-u smešten u struktuiran mehanizam za sadržaje a ne u neku posebnu stranicu, što omogućava njegovo lako ponovno korišćenje na sajtu čak i na različitim sajtovima. dotcms može da povuče i prikaže sadržaj na osnovu taksonomije, namenski (pdf, rss ) ili preko identifikatora. Da bi se brzo pokrenuo novi sajt u dotcms-u postoji mehanizam za uvoz/izvoz sadržaja u strukture i iz XML ili Excel datoteka. dotcms pomaže da pratite svoje korisnike portala i učite kako koriste Vaš portal. On automatski snima svaki klik i pretragu korisnika. Ako se korisnici ponovo vrate na portal sistem će prepoznati posetu od istog korisnika. Ukoliko korisnik izvrši konverziju radnji na portalu, svaka od tih radnji će biti jedinstveno označena (tagged). Sistem počinje da snima korisnika i ažurira onlajn (online) znanje o njemu, snima njegove posete i uči njegovo ponašanje. Administrator portala može da vidi te posete korisnika, stranice i sadržaj koji je korisnik čitao, koliko je dugo ostao na portalu itd. CMS može da koristi te informacije da adekvatno prilagodi korisničko iskustvo, npr: ako je korisnik potrošio 1 minut na priču o novom proizvodu, na njegovoj sledećoj stranici moguće je dozvoliti dotcms-u da mu pokaže proizvode koji su u korelaciji sa istim i pošalju link za kupovinu. 3. KORIŠĆENE J2EE TEHNOLOGIJE dotcms je proširiva platforma za upravljanje sadržajem. Osnovu sistema čine alati za administraciju. preko arhitekture za dodatke moguća su proširenja i prilagođavanje portala. Za funkcije administriranja, centralno mesto dotcms arhitekture predstavlja mehanizam za sadržaje (Contetent Engine) kojem se može pristupiti preko ContentAPI-ja ili preko mnogobrojnih restful/url interfejsa. Prilagođeni XML formati se mogu isporučiti preko šablona napisanih u Velocity kodu. Svi pristupi mehanizmu za sadržaje se baziraju na određenim dozvolama - svaki tip sadržaja je potvrđen od strane dozvola na objektnom nivou. ContentAPI obezbeđuje zamenu, objavljivanje i verifikaciju sadržaja. dotcms koristi Apache Struts i MVC patern za sistemske alate. Osnova dotcms arhitekture obezbeđuje administratorski prikaz interfejsa aplikacije, funkcionalnost upravljanja sadržajem, autorizaciju i privilegije, verzionisanja itd. Neka od osnovnih elemenenata arhitekture su: Fabrike (Factories) - preporučeni način u interakciji sa osnovnim funkcionalnostima dotcms-a. Konkretne fabrike sa mogu naći pomoću FactoryLocatora Keš (Caches) se uglavnom rukovodi od strane različitih fabrika. Međutim, važno je razumeti da keš i uvoz privilegija igraju važnu ulogu u dotcms-u, dakle podaci treba da budu samo u interakciji isključivo preko fabrika kako bi se sprečila nedoslednost u kešu. Trajnost (Persistance) baze podataka se uglavnom obavlja kroz Hibernate radni okvir, koristeći PO O. Ostali servisi koji se mogu koristiti tokom razvoja su: Usluga elektronske pošte (Mail services) Objedinjena autentifikacija (Unified logging) Servisi za konfiguracije (Configuration services) Upravljanje korisnicima (odnosi se i na krajnje korisnike i na administratore) S dotcms platforma poseduje CRM mogućnosti čime marketing odeljenje može da označava, grupiše korisnike portala po bilo kojem kriterijumu: pregledanim stranicama, provedenom vremenu od poslednje posete, demografskoj ingormaciji, itd. Koristeći menadžer online komunikacija moguće je poslati označene HTML poruke kampanje odabranoj grupi korisnika. 490
Lista korišćenih J2EE tehnlogija: Naziv tehnologije / radnog okvira Java Apache Tomcat Liferay Enterprise Portal Apache Struts DWR Spring Hibernate ORM Velocity Templating Laguage Velocity Tools Project Lucene Search Engine Značenje Programski jezik ne zavistan od platforme ЈSP/Servlet kontejner Portal baziran na otvorenom kodu Radni okvir web aplikacije JAVA AJAX radni okvir Spring radni okvir Hibernate radni okvir Velocity jezik za kreiranje šablona Alati i dodaci šablone Robustan JAVA mehanizam za pretragu Tabela 1. Lista tehnologija u dotcms-u dotcms podržava cluster okruženje. Svaki čvor u dotcms klaster okruženju predstavlja poseban Lucene sistem za pretragu, memorijski keš i keš na disku koji Sadržaj i keš se ažuriraju na svakom čvoru u klaster okruženju. 4. INTERAKCIJA KORISNIKA Front end deo je podeljen na dve glavne sekcije, prezentacioni sloj (Presentation Layer) i sloj aplikacije (Application Layer). Oba sloja koriste osnovne dotcms funkcionalnosti, direktno ili indirektno. Prezentacioni sloj su veb stranice koje koriste JSP (JavaServer Pages), Velocity kod, kontejnere, strukture sadržaja i statičke direktorijume. Sloj aplikacije obezbeđuju alate koji su neophodni prezentacionom sloju za kreiranje web stranica, npr: Struts modele i kontrole (koji su definisani u strutscms.xml datoteci) DWR kontrole, koje se koriste za AJAX pozive Velocity alate U zavisnosti od nivoa stručnosti korisnika, dotcms nudi različite pristupe za izgradnju sadržaja i aplikacija. Korisnici koji su zaduženi za sadržaj vrše interakciju sa dotcms-om preko alata za upravljanje sadržajima. Ovo omogućava autorima sadržaja da ažuriraju stranice, datoteke i objekte sadržaja koji se baziraju na Slika 1 dotcms arhitektura - klaster okruženje dotcms koristi kako bi izgradio i dostavio stranicu do krajnjeg korisnika. inamične stranice u dotcms-u se mogu izgraditi i dostaviti bez deljenja baze podataka. privilegijama i dozvolama pristupa. dotcms je sistem bogat alatima za pisanje skriptova gde korisnicima nije potrebno neko veliko znanje iz 491
programiranja. Ovakvi korisnici mogu da prave šablone, jedinstvene tipove sadržaja, prilagođene makroe i vidžete. Velocity skripting se može koristiti za integraciju sa drugim veb servisima, bazama podataka ili nekim XML baziranim tipovima podataka. ava programerima dotcms pruža mogućnost pisanja specifičnih dodataka zahvaljujući njegovoj arhitekturi. Pisanjem dodataka, programeri mogu da dodaju ili integrišu nove radne okvire u dotcms kao i da prilagode bilo koju klasu ili funkciju u dotcms izvornom kodu. pristup omogućava ograničenje korisnicima koji sadržaj mogu da vide kao i kakvi alati i sekcije portala su im dostupni. Takođe, ovakav pristup omogućava praćenje ponašanje specifičnog autorizovanog korisnika portala. Sa druge strane, ukoliko korisnik pristupa iz administratorskog okruženja, takvom korisniku su dostupni alati za kreiranje sajta (oni koji su mu dozvoljeni). Potrebno je imati ova dva scenarija na umu prilikom pravljenja grupa i uloga u slučaju da treba da pružite Slika 2. dotcms Arhitektura - Interakcija korisnika sa sistemom [2] dotcms poseduje kompleksan sistem privilegija koji omogućava administratorima portala da kontrolišu pristup korisnika nad strukturama, direktorijumima, stranicama, kategorijama svi objekti u dotcms-u se kontrolišu uz pomoć privilegija. Razumevanje kako su privilegije, grupe i uloge u interakciji sa korisnicima i sadržajem je od suštinskog značaja za uspešno i pravilno administriranje portala. Korisnici se u dotcms-u mogu autentifikovati na sistem iz dva načina: korisničkog okruženja portala (FrontEnd) i administratorskog okruženja ( ackend). Ako korisnik pristupa iz korisničkog okruženja portala to je pristup sličan tradicionalnim sistemima za prijavljivanje koji se mogu videti na mnogim drugim sajtovima. Ovakav različite mogućnosti u različitim delovima sajta. Dodatno, korisnici sistema mogu biti povezani sa mnogim drugim funkcijama kao što su: praćenje, liste elektronske pošte, beleške o korisnicima itd. Takođe, moguće je vrlo lako integrisati dotcms sa trenutnom bazom korisnika kao što je L AP i slično. 5. ZAKLJUČAK U Srbiji je trenutno implementirano više od 20 portala [2] na ovoj platformi među kojima se ističu sledeći portali: Medicinski fakultet, Univerzitet u Beogradu Služba za upravljanje kadrovima Metropolitan Univerzitet 492
MD&Profy d.o.o Informaciono ruštvo Srbije dotcms je jedna od najbrže rastućih enterprajz platformi otvorenog koda za upravljanjem sadržajem u svetu. Ova enterprajz 2EE uspešno se razvija već više od 10 godina. Sa preko 100.000 preuzimanja širom sveta, dotcms platforma je postala pravi izbor za velike kompanije kojima je potrebno više od upravljanja sadržajem internet portala. LITERATURA [1] Michael Fienen - dotcms From the Ground Up [2] Milan Krstin - Implementacija velikih portala na dotcms platformi [3] dotcms - Wiki 493