České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačové grafiky a interakce
Bakalářská práce
Sémantická sociální síť – webový front-end Martin Fiala
Vedoucí práce: Ing. Martin Balík
Studijní program: Softwarové technologie a management, presenční, bakalářský Obor: Web a multimedia 26. 5. 2010
1
Poděkování Na tomto místě chci poděkovat vedoucímu mé práce Ing. Martinu Balíkovi, za veškerou pomoc, kterou mi věnoval při zpracování této bakalářské práce. Zejména oceňuji jeho vstřícnost a věcné a fundované rady, které mi pomohly řešit problémy s dokončením tohoto úkolu. 2
3
Prohlášení Prohlašuji, že jsem práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu § 60 zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Praze dne 26. 5. 2010
………………………
4
Abstract This project is considering of usage of semantic web technologies. The main part of this work solve analysis of social webs, their sorts and their significations. The goal of my work is to propose and create application social web and test it. This website will support some of the functions typical for social webs. And it can be connected to the other websites.
Abstrakt Tato práce se zabývá využitím technologií sémantického webu. Jádro práce je věnováno analýze sociálních sítí, jejich druhům a významu. Cílem práce je navrhnout a vytvořit aplikaci sociální sítě, včetně testování. Tento web bude zastávat některé funkce typické pro sociální sítě při jejich využívání s možností propojovat jednotlivé weby mezi sebou.
5
OBSAH 1. 1.1 1.2 2. 3. 3.1 3.2 3.3 3.4 3.5 4. 4.1 4.2 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 5. 5.1 5.2 5.2.1
Úvod Hledání cest v džungli internetu Obsah práce Systémy sociálních webů Prostředí sociálních sítí Jak fungují sociální sítě Rozdělení sociálních sítí Zaměření sociálních sítí Rozdělení podle předpokladu „reálné schůzky“ Sémantické technologie v sociálních sítích Adaptibilita na webu a další pojmy Adaptabilita na webu a adaptivní webové systémy Přehled užitých pojmů Sémantický web Resource Description Framework OWL (Web Ontology Language) Ontologie FOAF (Friend Of A Friend) SIOC (Semantically-Interlinked Online Communities) Požadavky aplikace Specifikace cíle Funkční požadavky aplikace Základní funkcionality
1 1 1 2 4 4 5 6 8 9 11 11 12 12 13 14 14 15 15 16 16 16 16 6
5.2.2 5.2.2.1 5.2.2.2 5.2.2.3 5.3 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.4 6. 6.1 6.1.1 6.2 6.2.1 7. 7.1 7.2 7.3 7.3.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.5 7.6 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.6.1 8.6.2 8.7 9. 10. 10.1 10.2
Funkce dostupné po přihlášení Vyhledávání uživatelů Seznam Přátel Fórum Nefunkční požadavky aplikace Podmínky obsluhy více uživatelů Zásady tvorby architektury a modularity Vizuální stránka aplikace Zajištění stability aplikace Zvolené technologie Datový obsah Zdůvodnění použitých technologií Analýza procesu a návrh řešení 21 Use case model Základní část Diagramy aktivit Editace osobních informací Technologie použité při implementace Tvorba webové vrstvy projektu Sociální síť sémantického webu MVC (Model, View, Controller) Struts Architektura Struts Struts action servlet Struts řadič Struts formulář Struts akce 28 JSP (Java Server Pages) CSS (Cascading Style Sheets) NetBeans Programová část Registrace Přihlášení 31 Osobní informace Hlavní stránka Seznam Přátel Fórum Přidání příspěvku 32 Vymazání příspěvku Mapa stránek Testování aplikace Závěr Splnění cílů práce Navázání na vytvořenou aplikaci
Seznam použité literatury
17 17 17 17 17 17 18 18 19 19 19 19 21 21 24 24 25 25 25 26 26 27 28 28 28 29 29 30 30 31 31 32 32 32 32 33 35 35 35
36
Přílohy: 7
A. B. B.1 B.1.1 B.1.2 B.2 B.2..1 B.2.2 B.2.3 C. C.1 C.2 C.3 D. E. E.1 E.2 E.3 E.4 F.
Slovník pojmů Doplňkové UML modely Use case diagramy Úprava Seznamu Přátel Fórum Diagramy aktivit Editace Seznamu Přátel Přihlášení uživatele Vytvoření příspěvku ve Fóru Instalační příručka Požadavky aplikace Instalace Spuštění aplikace Programátorská příručka Uživatelská příručka Registrace Přihlášení 47 Seznam Přátel Fórum Obsah CD
38 38 39 39 41 42 42 43 43 44 44 44 44 45 46 46 47 47 48
Seznam obrázků Obrázek 1: Ukázka stránky sociální sítě: Facebook
4
[online] Url: http://www.facebook.com/ Obrázek 2: Ukázková struktura pomocí RDF
13
[online] Url: http://www.semanticfocus.com/ Obrázek 3: Use case model - Základní část Obrázek 4: Diagram aktivity - Editace osobních informací Obrázek 5: Návrhový vzor MVC
19 22 24
[online] Url: http://www.semanticfocus.com/ Obrázek 6: Architektura frameworku Struts
25
8
[online] Url: http://www.jarvana.com/jarvana/ Obrázek 7: Ukázka vzniklé aplikace - Seznam Přátel Obrázek 8: Use case model - Úprava Seznamu Přátel Obrázek 9: Use case model – Fórum Obrázek 10: Diagram aktivity - Editace Seznamu Přátel Obrázek 11: Diagram aktivity – Přihlášení do systému Obrázek 12: Diagram aktivity - Vytvoření příspěvku ve Fóru Obrázek 13: Ukázka aplikace – Registrace Obrázek 14: Obsah přiloženého CD
31 36 37 39 40 40 43 45
9
1.Úvod 1.1 Hledání cest v džungli internetu Současný internet je doslova zahlcen informacemi a dá se na něm najít téměř cokoliv, co vás napadne. Hodnota získaných informací je však velmi kolísavá, některé informace jsou pravdivé, jiné smyšlené, mnohé jsou telegraficky stručné, jiné nadbytečně rozvláčné, pečlivě zpracované texty jsou vystřídány diletantismem a naivními výkřiky. Ale ať už jsou informace na internetu jakékoliv, je snadné se v nich ztratit. A to nejen pro hledajícího člověka ale i pro samotné počítače, v nichž jsou tyto informace uloženy, a které s nimi také pracují. Vyhledavače, databáze, různé sociální i jiné sítě na vámi zadaný dotaz vyhledají nepřeberné množství odkazů článků nebo jen zmínek o tématu, které jste zadali. A je na vás, abyste mezi nimi našli to, co skutečně hledáte. To je samozřejmě problém; samotný internet vás odrazuje svou zahlceností všemi možnými informacemi, zavádí vás do různých slepých uliček a lákavých pastí, v nichž ztrácíte spoustu času, než se vůbec někdy dostanete k informaci, za níž jste se od počátku vydali. Provádět kontrolu relevance informací a odkazů, které jsou na internet umisťovány, není v současné době dost dobře možné, protože posouzení, zda konkrétní informace je či není hodnotná a má být spojována s daným tématem, by vyžadovalo obrovskou mozkovou kapacitu, nemluvě o finančních a časových nárocích, pokud by vůbec něco takového bylo proveditelné. Řešením výše naznačených problémů by však mohla být cesta, kdy by si počítače a systémy, na nichž jsou provozovány, samy označovaly příslušné informace podle určitých pravidel, a tím rychle a účinně nabízely pro příjemce významné informace i jejich souvislosti. Tímto řešením může být technologie sémantického webu. Metoda sémantického webu umožňuje přenos dat mezi jednotlivými aplikacemi, přičemž tento koncept je založen na rozšíření dat o metadata, která vysvětlují, čeho se daná datová informace týká. Už dnes je však možno říci, že se tato metoda neuplatní jen ve výše zmíněné situaci, ale přináší i mnoho dalších výhod v aplikacích, jakými jsou sociální sítě; často se uvádí, že tato technologie je jedním z hlavních očekávaných prvků nové generace webu - takzvaného Webu 3.0. 10
Díky technologiím, které sémantický web používá, se jednotlivé webové aplikace budou schopny dorozumívat mezi sebou navzájem a předávat si informace o tom, kdo je právě využívá. Vytvoříte si například jeden internetový profil, přidáte do něj své přátele, kolegy, spolužáky, kteří mají svá založená fotoalba na jiném webu. Když si příště budete chtít prohlédnout jejich fotoalba na serveru a v aplikaci, která vůbec s aplikací prvního serveru zdánlivě nesouvisí, bude vás server ihned identifikovat a nabídne vám fotografie vašich přátel a vybraných uživatelů. Pokud však budete chtít vidět fotografie jiných uživatelů, musíte si je sami na internetu vyhledat. S trochu nadsázky se dá říci, že toto je počátek „všemocné univerzální sítě“, tak jak je známe z mnohých sci-fi, kdy nebude nutné se registrovat na desítkách serverů, zvlášť si vytvářet e-mail a zvlášť profil. Váš profil půjde internetem s vámi a díky němu vás každý server ihned pozná a nabídne vám všechno, co vás zajímá.
1.2 Obsah práce V této práci se zabývám využitím technologií sémantického webu. Zaměřím se na aplikace těchto technologií v prostředí sociálních sítí, které již tyto technologie implementovaly. Zmíním se i o technologiích pro vytváření databází sémantických sociálních sítí – tento úkol je v zadání bakalářské práce Martina Kaňáka. Pozornost budu věnovat zejména technologii používané pro tvorbu prezentační vrstvy webových aplikací v čele s technologií frameworku Struts. Konečným cílem práce je pod vedením Ing. Martina Balíka vytvořit fungující webovou aplikaci, na základě ontologií vytvořených v souběžně běžícím projektu. Tento web bude zastávat některé funkce typické pro sociální sítě. Web rovněž naplním daty, pro testování a předvedení jeho funkčnosti.
11
2. Systémy sociálních webů Sociální web [1] je pojem, který označuje webové aplikace, umožňující sdružování lidí na internetu. Tito lidé si spolu poté prostřednictvím sociálních webů mohou psát, sdílet informace, fotografie, nebo spolu jinak komunikovat. Jedná se tedy o weby, vytvořené za určitým účelem a na určité téma, sloužící ke kontaktu lidí. Úvodem krátce popíšu nejvýznamnější kategorie sociálního webu, kterými jsou blog, wiki, sociální bookmarking a sociální sítě. Blog [2] – tento typ webu vlastně rozvoj sociálních webů odstartoval. Přinesl ho pokrok v rozvoji internetu nazývaný web 2.0. Do té doby než web přešel do své druhé verze, byly rozšířeny pouze statické webové stránky. Tvůrce stránek vytvořil pomocí HTML a css kódu obsah stánek a ten umístil na web. A každý, kdo stránky vyhledal, si mohl přečíst vše, co na nich bylo. Pokud by se měl obsah webu změnit, musel přijít jejich tvůrce a ve zdrojovém kódu je předělat. Jednalo se o systém prezentace a čtenář neměl možnost do těchto webů zasahovat. Web 2.0 to vše změnil, přinesl formuláře, textová pole a další prvky, které umožňovaly, aby sám uživatel (čtenář) mohl na webové stránky něco přidat, komentovat je a zhodnotit pro další čtenáře, kteří přijdou po něm. Blog však přinesl nové možnosti nejen pro uživatele, ale i pro samotné tvůrce. Do té doby každý, kdo chtěl vytvořit webovou stránku, musel umět alespoň psát HTML kód. Díky novým technologiím však programátor vytvořil nástroj, do kterého mohl psát kdokoliv, pouze se znalostí vlastního jazyka, a to co vytvořil a napsal, se na webu objevilo. Jakmile dal programátor tuto možnost běžným uživatelům, zrodil se blog. Blog je tedy web, který pojednává o libovolném tématu a tvoří ho libovolný uživatel, který do něj postupně zaznamenává zapsané údaje. Nejsnadněji se dá blog popsat jako deník, do kterého si zapisujete své každodenní činnosti, a tento deník zobrazíte na internetu. Blog však není jen deník a nikdo vás nenutí do něj psát své osobní údaje, ale jedná se o prostor, kam můžete psát, co chcete, zejména své názory pro libovolného čtenáře. Zpočátku to tak skutečně i fungovalo. V době kdy se o blozích mluvilo, psalo a „blokovalo“, se skutečně psalo o všem možném. Ale jak prvotní popularita blogů opadla, objevily se blogy specializované. Lidé, kteří se zajímají o rychlá auta, se sejdou na fastcarsblog.com, kde se dočtou o nových i historických modelech sportovních vozů a podobně. Blogy vytvářejí hudebníci, aby představili své nové skladby, svoje specializované blogy mají firmy i různá sdružení. Existují i fiktivní blogy, jako je blog Barneyho Stinsona, postavy ze seriálu „Jak jsem potkal vaši matku“, kde tato postava zveřejňuje zprávy ze svého života. Je to zdroj reklamy pro seriál a objevují se zde vtipy, které pobaví fanoušky seriálu. Blog je tedy prostor, kde můžete prezentovat své nápady, výtvory, popřípadě ho tvořit jen pro zábavu. Wiki – toto původem havajské slovo, které znamená rychlý, označuje další produkt webu 2.0. Tak jako blog dal lidem možnost prezentovat své názory, wiki umožnila lidem možnost 12
vytvářet své vlastní weby. Wiki je nástroj, který zjednodušil psaní HTML kódu do několika značek, vytvořil jednoduše upravitelné menu a další prvky charakteristické pro webové stránky. A díky tomu se člověk nemusí učit celé HTML, ale stačí mu několik předem definovaných značek, lišících se podle typu wiki, a může si vytvořit svou vlastní stránku. Jednoduše vytvoří nadpisy, tučný text, rozvržení stránky nebo odrážky, body a další prvky, vloží obrázky a web je na světě. Některé wiki umožňují též práci v takzvaném WYSIWIG editoru (What You See Is What You Get), neboli „Co vidíš, to dostaneš“. Jedná se o editor, kde nemusíte psát žádné značky, ale vše upravujete jednoduchými volbami, většinou pomocí myši. Jedná se o podobné způsoby jako editace textu a obrázků ve Wordu. Je to jednoduché a mnoha uživatelům to dá velké možnost prezentovat svoje nápady a vize. Ale samozřejmě to neposkytuje takovou škálu možností, jako přímé editování HTML kódu Společné sdílení odkazů (social bookmarking) - Je to forma vyhledávání oblíbených položek na internetu, kterou používá mnoho stránek. Jedná se o texty, které jsou soustředěny do pole. Tyto texty reprezentují oblíbené položky vyhledávání nekonečného množství zájmových a odborných témat, jako je hudba, hry, geologie atd. Položky, které jsou častěji vyhledávány, se zvětšují, zvětšuje se jejich písmo, nebo se mění barva textu, nebo se jinak zvýrazňují. Tato metoda se uplatní v osobních prohlížečích, kam si uživatel může také nainstalovat doplňky, které toto zvýrazňování umožňují. Zmíněné zvýrazňování především používají vyhledavače a webové stránky pro zpřehlednění mnoha informací, které obsahují. Momentálně nejrozšířenější kategorií sociálních webů jsou sociální sítě, které budou také hlavním tématem mé práce.
Obrázek 1: Ukázka stránky sociální sítě: Facebook [online] Url: http://www.facebook.com/
13
3. Prostředí sociálních sítí Rozšířený bonmot říká, že „kdo dnes nemá profil na Facebooku jako by nežil“. Nikdo o něm nic neví, nikdo neví se co se s ním děje, co dělá, ani jak se mu daří. Je to naše virtuální identita, počítačová občanka. Facebook však nebyl první ani poslední, a už vůbec není jedinou sociální sítí. Jak nám říká definice [3]: sociální síť je komunita lidí, kteří navzájem komunikují. Webových aplikací, které fungují na tomto principu, je velké množství a jejich sociální význam je nepopiratelný a rozšíření obrovské. Existují sociální sítě zahraniční i ryze české. Mnohé z těchto sítí sdružují specializované skupiny uživatelů, nebo jsou zřízeny za určitým konkrétním účelem. Například český web, spoluzaci.cz, nabízí možnost připojit se do své bývalé i současné virtuální třídy a tak na internetu potkat své spolužáky. Dalšími podobnými českými sociálními sítěmi jsou například: Lide.cz, Libimseti.cz, Ukazse.cz, které pomáhají hledat nové kamarády, životní partnery, zábavu, chat a další možnosti. Sociální sítě s touto tématikou existují v mnoha jazykových mutacích a v mnoha zemích. Jiné zaměření mají sociální, sítě jako LinkedIn.com, naymz.com, které bývají charakterizovány jako profesní sítě. Dávají uživatelům možnost, vyplnit svůj profesní profil, a tento pak prezentovat na webu pro případné zájemce o nové pracovníky, nebo naopak pomáhají hledat práci a umožňují nová obchodní spojení. Z dalších sociálních sítí je možno uvést jednu z nejpopulárnějších – Myspace - která je do značné míry konkurentem Facebooku. Ten ale prozatím vyhrává svou popularitou. Vedle toho síť Orkut, provozovaná společností Google, umožňující sdílení nejrůznějších multimedií, chatování a hledání ztracených přátel, nebo Bebo, klasická sociální síť rozšířená především v Severní Americe. Od roku 1999 funguje sociální síť Blackplanet.com, která je určena pro Afroameričany a jejich, přátele a je jednou z nejdéle existujících sociálních sítí. Přestože se tyto sociální sítě svým zaměřením liší, všechny fungují v podstatě stejně. Lidé se na nich zaregistrují, vyplní požadované své základní údaje, popřípadě dobrovolně poskytnou další informace podle svého uvážení. Uživatelé se mezi sebou propojují různými vazbami, sympatiemi, přátelstvím nebo společnými zálibami. Touto cestou se vyhledávají lidé společných zájmů, podobných i protichůdných názorů, diskutují spolu, uzavírají obchody, hledají možnosti vzdělání i zaměstnání, vyměňují si fotografie, názory, zážitky, dokumenty a baví se. A přesně pro takový druh webu se hodí technologie sémantického webu.
3.1 Jak fungují sociální sítě Sociální síť je ve skutečnosti jen jakýsi souhrn jmen, zpráv, odkazů, obrázků, fotografií, webových stránek a dalších prvků. Poté někdo umístí svoje fotografií do složky „dovolená“, a na jednotlivých fotografiích označí sebe, svou rodinu, kamarády nebo místa, kde obrázky vznikly. Sám sebe označí například jako studenta Českého vysokého učení technického v Praze a tím se přidá do skupiny stovek dalších lidí ze stejné školy. Dále se zařadí jako fanoušek rychlých aut, příznivec skupiny Rammstein a za své oblíbené jídlo 14
prohlásí pizzu. Vytvoří tak svou síť, kdy se spojí například s dvaceti fanoušky Formule 1, jinde s padesáti fanoušky industrialu, a síť pomalu roste a z hromady odkazů a dat se stává organizovaný spletenec vztahů. A příště, až si někdo vyhledá na takové síti například slovo pizza, objeví se i náš uživatel jako člověk, který jí má rád. To vše se stane díky tomu, že metoda sémantického webu umožnila přenos dat mezi databázemi jednotlivých aplikací a všechny tyto výše popsané funkce byly realizovány pomocí meta tagů; malých informací, které označují daný objekt pro počítač a ten díky tomu „ví“, o co se jedná. Znamená to: informace, že náš uživatel má rád pizzu není srozumitelná jen pro člověka, ale „chápe“ ji i počítač. Přijde-li zpráva s receptem na pizzu, pošle ji počítač obratem našemu uživateli. Nebo když, náš uživatel bude chtít zaregistrovat na stránky fanklubu skupiny Rammstein, objeví se mu zpráva, že registrace si požadovaná data sama vyplní z jeho profilu na síti bez jeho přičinění. Jméno, příjmení a všechny další atributy bude mít označeny meta tagy, tak jak si je registrace sama vybere z jeho profilu. Je samozřejmé, že daná registrace bude muset být zapojena do systému jako sociální síť a bude muset podporovat funkce sémantického webu. Dá se říci, že díky tomu se další stránka připojí k dané sociální síti a vzniká a rozšiřuje se jedna velká „všemocná universální síť“.
3.2 Rozdělení sociálních sítí Sociální síť je pojem, který označuje mnoho podkategorií a skupin webů, umožňujících lidem socializovat se pomocí internetu, tedy začleňovat se do společnosti nebo komunity uživatelů již na webu připojených, nebo spolu nějakým způsobem interagovat. Existuje celá řada kritérií, podle nichž je možno tyto weby členit, ale pro účely této práce jsem zvolil následující kriteria: Nejprve rozdělím sociální sítě podle toho, zda jsou zaměřeny: a) na „sdružování lidi“ nebo b) na „aktivity“ (zájmy). Pokus o rozdělení sociálních sítí do uvedených kategorií však naráží na značné potíže. Při bližším zkoumání je jasné, že některé aplikace, které zde uvedu hranice, své kategorie přesahují a je proto těžké je zařadit. V takovém případě jsem se rozhodl sociální sítě zařadit podle toho, která složka sítě převažuje, nebo podle toho, která složka byla prvotním účelem té, které sociální sítě, nehledě na dodatečné modifikace. Dále budu rozlišovat sociální sítě podle toho, jestli jsou: a) určeny pouze ke komunikaci prostřednictvím webu nebo b) jestli předpokládají i osobní komunikací svých uživatelů.
15
3.3 Zaměření sociálních sítí a) Sociální sítě zaměřené na „sdružování lidí“ (osob, jedinců) Možná, že z názvu není zcela jasné, o co se v této kategorii jedná, ale můžeme si to objasnit třeba na příkladu Facebooku. Cílem tohoto typu sociálních sítí je, aby se zájemci stali členy určité skupiny uživatelů a zapojili se tak do komunity, s kterou mohou dále interagovat, chatovat, posílat si zprávy, vyměňovat názory a diskutovat. Prvotní podmínkou toho všeho je ale konkrétní zájemce o účast na této sociální síti. Každý uživatel si při registraci vytvoří svůj profil, svou internetovou „občanku“, zveřejní určité osobní údaje a podle těchto údajů ho pak mohou vyhledat jeho známí, nebo naopak on je. Samozřejmě si takto může najít i nové známé a přátele, přihlásit se ke skupinám, které se věnují jeho oblíbeným činnostem, nebo mají rádi stejné věci. Zejména v této kategorii však spousta sociálních sítí poskytuje i další možnosti; umožňuje například zveřejňovat fotografie, které sám pořídil, editovat je do alb, označovat na nich osoby, nebo místa, kde byly pořízeny. Stránka MySpace například umožňuje editovat si svou vlastní osobní stránku a vytvořit si tak vlastní jednoduchou webovou prezentaci. Kromě jednotlivců se mohou na takových stránkách sdružovat i hudební skupiny, školní třídy, zájmové kroužky a další. Některé stránky pak nabízí i webové hry. Příklady sociálních sítí zaměřených na sdružování lidi a vzájemné kontakty: Facebook [4] – byl zmíněn už výše a je to v současnosti asi nejznámější a nejrozšířenější sociální síť na světě, která eviduje více jak 400 miliónů uživatelů. Nabízí široké možnosti komunikace, sdílení názorů, fotografií, společné hraní her a interakce s ostatními uživateli. Byl spuštěn v roce 2004 jako školní projekt harvardského univerzitního studenta Marka Zuckerberga a měl sloužit jako komunikační portál pro tamější studenty. Dnes je společnost Facebook Inc. vlastnící tento portál jednou z největších internetových společností. Na Facebook se může zaregistrovat každý člověk starší 13 let s platnou emailovou adresou. MySpace [5] – je další z nejrozšířenějších světových sociálních sítí a je velkým konkurentem Facebooku. MySpace na rozdíl od Facebooku byl již během svého vzniku plně profesionálním projektem, oficiálně byl celosvětově spuštěn na adrese www.myspace.com v roce 2004 (ještě dříve než facebook) a vlastní ho společnost News Corp. Tento web nabízí kromě diskuzí a dalších komunikačních prostředků upravitelnou osobní stránku, včetně vzhledu fotografií, písma a dalších možností. Dále pak umožňuje stahování a nahrávání hudby, videoslužby podobné www.youtube.com, hry, možnost komunikovat přes stránky pomocí mobilu a mnoho dalších možností. Dolní věková hranice pro registrování do systému je 13 let. Problémy s ohrožením soukromí uživatele a citlivých informací, nízkým věkem uživatelů a další otázky bezpečnosti uživatelů byly v souvislosti s tímto webem často diskutovaným tématem. Případy podvodníků, kteří se vydávali za někoho jiného a uváděli falešné údaje o svém věku, což mělo za následek, že oklamané děti odjely za svými údajnými přáteli z webových stránek, nebyly ojedinělé.
16
Bebo [6] – sociální síť populární především v anglo-amerických zemích byla spuštěna v roce 2005. Nabízí většinu standardních funkcí jako ostatní sociální sítě: psaní zpráv, diskuze, fotogalerie a další. Poslední dobou se však šíří zprávy o jejím hrozícím zániku. V roce 2006 byla stránka odkoupena společností AOL za 850 milionů dolarů. Snaha zaměřit stránky na uživatele věkové kategorie 13 – 16 let se však nevyplácí a web Bebo.com čeká nejistá budoucnost.
b) Sociální sítě zaměřené na aktivity (zájmové weby) Také v této skupině sociálních sítí je nezbytné, aby se uživatel zaregistroval, ale primárním cílem služby není jeho začlenění do komunity uživatelů, ale především zájem o určitou činnost, hobby nebo zájmovou oblast. Při vstupu je vždy třeba nejprve vyplnit některé základní údaje, aby se uživatelé mohli rozeznávat, ale to, co zde chtějí prezentovat, nejsou v prvé řadě oni sami. Typickým příkladem tohoto typu webu jsou weby zaměřené na prezentaci fotografií. Uživatel, který se registruje, si může vytvořit jednu nebo více složek fotografií, libovolně si ji pojmenovat a zařadit si do nich fotografie, které vloží na server. Ostatní uživatelé, nebo jen ti vybraní, pak mají k takovým fotografiím přístup a mohou je posuzovat a komentovat. Následně si uživatelé vyměňují zkušenosti, rady a tipy o předmětu svého zájmu. Existují i jiné weby, např. zabývající se knihami, domácími mazlíčky, auty atd. K nejznámějším zájmovým webům patří: Flickr [7] – založený v roce 2004. Patří k největším webům, kde má uživatel možnost prezentovat fotografie. Podmínkou je jednoduchá registrace a už můžete sdílet své fotografie, s nimiž se chcete pochlubit ostatním uživatelům. Stránka nabízí možnosti zařadit fotografie do pojmenovaných složek a kategorií. V případě vyhledávání jsou k dispozici různé možnosti filtrování a také možnost ovlivňovat, kdo bude moci fotografie vidět. Zajímavou možností je opatřit své fotografie licencí, která bude chránit vaše autorská práva, pokud fotografii poskytnete k dalšímu užití. Goodreads [8] – stránka zaměřená na fanoušky čtení a knih. Po registraci si uživatel může sestavit svou virtuální knihovnu, podělí se s ostatními o to co četl a co má ve své knihovně. Může si také vyhledat knihy od autora, kterého má rád anebo díla podobného žánru. Ke knihám, nacházejícím se v databázi této stránky, jsou připojeny krátké recenze a popisky, a také komentáře uživatelů, kteří už danou knihu četli. Uživatel se také může připojit i do diskuse na fóru o všem co, se knih, třeba i jen vzdáleně, týká. Tyto stránky netrpí problémy sociálních sítí předchozí kategorie, tedy nebezpečím ohrožení soukromí, rizik spojených s nízkou věkovou hranicí uživatelů atd. Samozřejmě seznámení se s nebezpečným individuem nelze nikdy vyloučit, ale rizika jsou podstatně menší. Na druhé straně však nejsou tyto stránky zdaleka tak populární, mají méně uživatelů, a především bojují s jazykovými bariérami. Člověk registrovaný z Čech, si bude pravděpodobně chtít popovídat o knize v češtině, ale na světové stránce věnované knihám málokdy narazí na někoho, kdo mu rozumí. A všechno tohle závisí na penězích, zdrojích a především uživatelích, u kterých to vše i začalo.
17
3.4 Rozdělení podle předpokladu „reálné schůzky“ Jak již naznačuje nadpis této části, v pojmu „reálná schůzka“, se díky webu vytvořil „druhý svět“. Existuje svět reálný, ve kterém žijeme, studujeme, pracujeme a naplňujeme své životy, a svět virtuální, ve kterém jsme tím kým bychom si přáli být, ale nejlépe pořád sami sebou. Ten virtuální svět vytvořily počítačové hry, chaty, sociální sítě a internet jako takový. To, co o sobě v tomto virtuálním světě uvedeme, je v podstatě naše věc (ale i odpovědnost) a nemusíme přitom mluvit pravdu. Virtuální život přizpůsobujeme často svým snům a představám a limitováni jsme jen svou vlastní fantazií. Otázka jako: „Co děláš v RL?“ (RL – real life, skutečný život), již dnes není vůbec neobvyklá. Můžeme se s ní setkat na chatu, na sociální síti nebo v počítačové online hře, kde se nás na to zeptá například dvoumetrový zelený goblin válečník. A právě možností, zda se uživatelé socialních webů scházejí ve skutečném světě nebo ne, se budu zabývat v následující části. V podstatě každá déle fungující komunita po čase dojde stádia, kdy se uživatelé dohodnou, že se chtějí sejít, ať už při nějaké příležitosti, nebo jen tak a alespoň část z nich to také uskuteční. Proto by se dalo rovnou říci, že všechny sociální weby patří do skupiny těch, co pořádají reálná setkání, některé však k tomu více vybízejí, zatímco jiné podporují spíše jen virtuální kontakt.
a) Sociální sítě nepodporující skutečná setkání Jedná se především o weby zájmové, o fotografické weby, weby o knihách, autech, letadlech a další. Tyto weby se soustřeďují kolem hlavního zájmu komunity a pokud se vše, co se tohoto zájmu týká, dá sdělit po internetu, se zprávami, obrázky a dalšími funkcemi, není vůbec potřeba, aby se uživatelé scházeli. Z toho důvodu takové weby ani nějaké možnosti reálného setkání samy nenabízí. Koneckonců čím více uživatelů se sejde ve skutečnosti, tím méně se jich objeví na internetu a prohlédne si reklamu, z které tyto weby převážně žijí.
b) Sociální sítě podporující skutečná setkání Středem pozornosti na těchto webech jsou uživatelé a jejich osobní život. Skutečnost, že se uživatelé setkávají díky těmto webům, anebo naopak bez jejich přičinění, se pro tyto weby stalo principem. Jeden z příkladů je už zmíněný Facebook, který původně jako školní web předpokládal, že bude sdružovat studenty, kteří chodí na stejné předměty, nebo mají stejné zájmy. Na podobném principu fungují internetové seznamky a weby určené k poznávání lidí, přátel, životních partnerů, jako jsou české servery Lide.cz, Libimseti.cz a další. Stinnou stránkou tohoto typu webů je skutečnost zmíněná již v předchozím bodu, totiž problémy spojené s osobním stykem s lidmi, které na těchto webech potkáme. Nedá se například zabránit tomu, aby se pedofil vydávající se za milovníka psů, nesešel s malou holčičkou, kterou přemluví ke schůzce. S těmito, a další problémy, které tyto virtuální světy přinesly, se moderní společnost musí vypořádat. A musí se s nimi vypořádat i samy sociální sítě. Z toho důvodu se zavádějí kontroly věku uživatelů, zasílaných e-mailů, požaduje se přísnější rodičovský dohled atd. Před sociálními sítěmi však stojí ještě dlouhá cesta, kterou musí ještě ujít, než budou nejen zdrojem zábavy a poučení, ale také bezpečným místem. 18
3.5 Sémantické technologie v sociálních sítích Sociální sítě, vyjmenované výše, fungují už několik let a v době jejich vzniku se nepočítalo s jejich dnešním rozšířením, natož s implementací technologií sémantického webu. Proto ani ty nejrozšířenější stránky, jako je Facebook nebo MySpace, nepoužívají tyto technologie, a pokud ano, tak jen okrajově nebo v nově implementovaných funkcích. A právě o dvou z nejnovějších se nyní zmíním. Google friend connect [9] (síť Přátel Google) – Jedná o službu, kterou spustila společnost Google, a umožňuje registrace uživatele do systému s jednoduchým profilem. Poté si do svého Seznamu Přátel na této stránce můžete ukládat jiné uživatele jako své Přátele a každou stránku, kterou navštívíte můžete jednoduchým kliknutím označit jako stránku, která se vám líbí. Každou takovou stránku můžete dále hodnotit, vyplňovat různé ankety a zobrazovat si stránky oblíbené jinými uživateli, nebo pouze vašimi Přáteli. Je to jakýsi hodnotící systém celého internetu. Ale tak, jako každý dobrý nápad, který přináší popularitu, zisk a nové uživatele pro váš systém byl, i tento převzat jiným tvůrcem, a zrodil se konkurent, který pravděpodobně Google vyřadí ze hry. Budu o něm hovořit nyní. Facebook Open Graph – Nový projekt společnosti Facebook Inc. byl spuštěn asi před měsícem a je možno jej charakterizovat jako rozšíření funkcí Facebooku do celého internetu. Pokud jste měli profil na Facebooku, mohli jste si psát s kamarády, přidávat si je do Seznamu Přátel, psát příspěvky, posílat fotografie a hlavně vše z těchto věcí jste mohli označit tlačítkem „líbí se mi.“ Bylo tak například možné zjistit, že příspěvek napsaný na vaší Zdi se líbil celkem pěti lidem. Samo o sobě to nemělo příliš velký význam, ale autora takového příspěvku to mohlo potěšit a také to vyjadřovalo určitý názor na věc. Dalším prvkem, který jste na Facebooku mohli provádět, bylo hodnocení stránek, ne však přímo. Pokud jste chtěli, aby na Facebooku byla stránka, například o vaší oblíbené restauraci, museli jste založit novou stránku na Facebooku, a na ni umístit odkaz na stránku o výše zmíněné restauraci. Díky nové technologii Facebook Open Graph se funkce „líbí se mi“ a současně přidání webové stránky na Facebook spojí dohromady a vytvoří něco, co ovlivní doslova celý internet. Stačí, abyste na svou vlastní stránku přidali jen pár řádků kódu, který vám Facebook poskytne, a hned máte na své stránce tlačítko „líbí se mi“ nebo možnost stránku komentovat. A jakmile jeden z těchto kroků uděláte, stránka se automaticky přidá na vaši Zeď na Facebooku a všichni uvidí, že se vám stránka líbí, nebo co o ni píšete. V podstatě tak zmizel mezistupeň v podobě nově založené stránky a vazba se rovnou provede mezi vaším profilem a zmíněnou stránkou. Již dnes tuto možnost využilo více jak 100 000 webových stránek a jejich počet každou chvíli přibývá. Oba výše uvedené příklady se zakládají na stejném principu, ale řešení Facebooku bude jistě to, které se v budoucnosti prosadí. Proč vytvářet novou službu s novou registrací, když už je zde ta stávající na Facebooku. Jedna z prvních velkých stránek, která toto řešení přijala, byla stránka imdb.com, takže už můžete své oblíbené filmy a jejich hodnocení prezentovat na svém profilu. Přesto, že Facebook, ani Google v době svého vzniku s technologií sémantického webu nepočítaly, nastává doba, kdy se její nové prvky budou plně využívat. 19
Projekt vytvářený v naší práci bude těchto prvků využívat také. Nejde jen o možnosti sémantického webu tvořit adaptivní webové stránky, profily a další prvky, ale hlavně o to, propojovat jednotlivé weby mezi sebou. Proto se na náš projekt bude možno napojit, stáhnout si označené informace jako osobní profil a jednoduše ho dosadit do jiného projektu, který by je chtěl využit. „Všemocná univerzální síť“, jak jsem ji zmínil výše, tedy již začíná existovat. Ať už v malém pokusném výtvoru našeho projektu, nebo ve skutečném světě tak, jak ji předvádí Facebook. Nebude to dlouho trvat, a všechny webové stránky budou propojeny, a každý bude připojen.
20
4. Adaptibilita na webu a další pojmy 4.1 Adaptibilita na webu a adaptivní webové systémy Nyní definuji dva pojmy, kterými se budu zabývat v této kapitole, a poté je dále rozvedu. Tím prvním je: - adaptibilita [10] - ve webových technologiích je přístup, díky kterému si uživatel může přizpůsobovat obsah webových stránek. Tyto možnosti většinou aplikace zpřístupní až po registraci a přihlášení uživatele do systému. Například se může jednat o to, že si uživatel bude moci obarvit úvodní stránku na červeno. Bude si moci zvolit pořadí odkazů v menu, nebo některý odkaz z menu úplně vyhodit, pokud je nebude chtít používat. Většina sociálních sítí, zmíněná výše, má nějakým způsobem implementovánu adaptibilitu do svých stránek. Jedná se tedy o přizpůsobení webu uživateli, které si on sám definuje. A to je podstatný rozdíl od druhého pojmu, který zde definuji. - adaptivita [10] - shodné s předchozím pojmem má adaptivita to, že se webová stránka přizpůsobuje uživateli a mění svůj vzhled, nebo i obsah. Ale podstatný rozdíl je v tom, že v případě adaptibility, tak jedná výhradně na požádání uživatele. Zatímco v případě adaptivity se webová stránka upravuje sama. Samozřejmě se to neděje jen tak bez příčiny, ale stránka sbírá určité informace a vytváří si podle nich „model uživatele“. Model uživatele je soubor informací, které web nasbírá o člověku, který jej zrovna používá. Jedná se informace, kam uživatel kliknul, které produkty si obvykle prohlíží, pokud se jedná například o obchod, které zboží si zakoupil, nebo kolik utrácí obvykle peněz. Tyto informace se shromaždují a příště webová stránka svému uživateli již při příchodu nabídne například hudbu od stejné skupiny, jejichž CD si minule zakoupil, nebo mu zobrazí zboží z podobné cenové kategorie, jakou procházel minule. Jedná se tedy o to, že webový server zná svého uživatele. Nikdo však netvrdí, že ostatní informace jsou uživateli zapovězeny, pokud chce najít jiné nebo nové věci, samozřejmě má možnost. Sbírání informací o uživateli nemusí probíhat jen pomocí monitorování jeho kroků webem. Adaptivní prvky se mohou přizpůsobovat i po získání informací z dotazníku, při registraci a mnoha dalšími způsoby. Také nemusí existovat pouze cesta přímé adaptace, naopak webový server, může z nabitých informací vyvozovat další informace. Pokud se například systém z dotazníku dozví, že uživatel je muž, nebude mu nabízet dámské parfémy, ale systém „vydedukuje“, že uživatel bude mít zájem o auta. Způsobů jakými systém získá informace, anebo to, jak s nimi naloží je spousta. Stejně tak způsobů jak si informace uchovat. Proto, aby si webová aplikace mohla uchovávat informace o uživateli, musí je mít někde uloženy. Existují dva způsoby, jak si informace uložit. První - nést tyto informace s klientem a ukládat je u něj; například v podobě cookies. Tento způsob má tu výhodu, že uživatel se nemusí registrovat ani přihlašovat. Tak, jak přijde na server, automaticky se o něm začnou ukládat informace. Na druhou stranu tyto informace jsou podstatně omezeny velikostí, kterou můžete do cookies ukládat, jejich trvanlivostí - uživatel může cookies sám vymazat - a také jejich nepřenositelností mezi počítači. Svými výhodami převažuje druhý způsob, a to ukládání na serveru. Server si pravděpodobně po registraci začne ukládat informace o uživateli do své databáze, a z ní je v případě potřeby, také vyvolávat. Tento systém má jedinou nevýhodu a to potřebu registrace uživatele do systému. Výhody a nevýhody adaptivity a adaptibility: Všechno, co jsme si do teď o adaptivitě a adaptibilitě řekli, zní jistě skvěle. Systém se o nás učí, zkoumá nás a poté nám vhodně předkládá informace, které se nám hodí. Po přihlášení se na webu cítíme jako doma, web nás zná, a nejsme jen jedním uživatelem z mnoha. Ale samozřejmě se najdou i negativa. Systém, který se mění podle chování 21
uživatele, také pro každého uživatele zobrazuje jiné věci. Co když budete chtít poslat kamarádovi stránku s oblíbeními CD a jemu se zobrazí jiná? A to samé pokud provede stejné vyhledávací kroky jako vy. A co teprve pokud uděláte chybu: chcete si vybrat hudbu, spolehnete se na doporučení vašeho kolegy, koupíte si CD a doma zjistíte, že se vám hudba nelíbí, ale příště, když přijdete na stránky obchodu, na první straně uvidíte jen odkazy na vámi zakoupenou, ale naprosto nevhodnou hudbu. A v neposlední řadě je to samozřejmě zvyk - jste zvyklí, že webová stránka se zobrazí pokaždé stejně. Udělali jste nějaké kroky, a stránka zareagovala pokaždé stejně, ale teď již ne. Výsledky na zadaný dotaz se budou lišit a vy jste zmatení, co se to děje. Obchod změnil sortiment, nebo jste udělali překlep? Ne, to jen systém reaguje na vaše činy. Adaptibilita naproti tomu vždy dělá to, co chcete, zvolíte si barvy stránky a budete je mít pokaždé stejné, přehodíte si pořadí odkazů a ty se pokaždé zobrazí ve stejném pořadí. Systém jako vždy dělá jen to, co chcete. Můžete si ho přizpůsobit, ale vše co, chcete změnit, si sami do systému musíte zadat. Nyní jsme se seznámili s novými pojmy ve webovém světě; každý z nich přináší přizpůsobení se uživateli. Každý z těchto přístupů to dělá trochu jinak a každý také nabízí jiné možnosti. Jak s adaptibilitou, tak s adaptivitou, se dnes budeme na webu setkávat čím dál více, ale je jasné, že vše se musí používat s rozvahou a vždy je potřeba aby uživatel měl nad systémem kontrolu, protože nikdy není dobré, když systém dělá něco, co uživatel nechce, i když s dobrým „úmyslem“.
4.2 Přehled užitých pojmů 4.2.1 Sémantický web Sémantický web [11] je rozšířením současného webu, v němž každá informace má přidělen také popisek svého významu. Sémantika [12] je nauka o významu slov, morfémů a jiných znaků, případně též jejich vztahu ke skutečnosti, kterou označují. Tato definice dokonale charakterizuje i sémantický web a jeho funkci. Každá informace, která se s použitím této technologie do webu vloží, je označena dalšími informacemi, o tom, kdy byla vložena, kdo ji vložil, čeho se týká a s čím je spojena. Těmto dalším informacím se říká metadata, tedy data o datech. Uvedená metadata však nejsou srozumitelná pouze lidem, tak jak to u informací napsaných v běžném jazyce (čeština, angličtina) bývá, ale jsou srozumitelná i počítačům a dalším zařízením. Díky tomu, mohou počítače, takto označené informace, rychleji a především lépe zpracovávat, vyhodnocovat a poskytovat pro další práci. Mohou je tak relevantně předkládat nejen uživatelům, ale také dalším počítačům a jejich programům, které s nimi budou efektivně pracovat a využívat je k další činnosti (například k získání informací z profilu uživatele o tom jaké má rád hudební skupiny a poté mu nabídnou např. fotografie z jejich posledního turné).
4.2.2 Resource Description Framework Resource Description Framework [13] (RDF), tedy systém popisu zdrojů, je souborem specifikací vypracovaných konsorciem W3C pro reprezentaci struktury webových metadat. Tato metadata poté umožňuje počítačům registrovat význam a vztahy mezi prvky, které tato data označují a lépe s nimi pracovat.
22
Struktura popisovaná RDF, se skládá ze tří prvků, které tvoří takzvané tvrzení (statement). Každé z těchto tvrzení vyjadřuje určitou vlastnost prvku, který popisuje. Tato tvrzení můžeme rozdělit do tří částí: a) první částí je podmět (subject), to je prvek, který tvrzení označuje, b) další částí je predikát (predicate), což je vztah nebo vlastnost, kterou daný prvek má c) třetí částí je předmět (object), který určuje, čím daný prvek je, a co se s ním děje. Celá tato množina prvků se dá vyjádřit grafem, nebo modelem. Jako příklad můžeme uvést tvrzení „Auto je červené“. Podmět je: „auto“, predikát: „je“ a předmět: „červené“. Jazyk RDF je poměrně jednoduchý a stal se základem pro složitější jazyky jako je například OWL.
Obrázek 2: Ukázková struktura pomocí RDF
[online] Url: http://www.semanticfocus.com/
4.2.3 OWL (Web Ontology Language) Web Ontology Language (OWL) [14] je následníkem jazyka RDFSchema a je nejpoužívanějším jazykem pro psaní ontologií. Je založen na deskripční logice a díky tomu umožňuje psát složitější konstrukce. Díky němu je možno vyjadřovat kardinalitu vlastností, kardinalitu vztahů a disjunkci, či ekvivalenci tříd. V roce 2007 vyvinulo konsorcium W3C novou verzi jazyka OWL, a to verzi 2.0, která je používána v mnoha editorech a nástrojích, které jsou vytvořeny proto, aby návrháře od 23
faktického psaní v tomto jazyku odstínila. Mezi tyto editory patří i Protégé, který používáme při vytváření projektu pro naši práci.
4.2.4 Ontologie Podle encyklopedie Wikipedie [15] je ontologie výslovný popis určité problematiky. Je slovníkem, který slouží k uchování a předávání znalostí týkající se určité problematiky a zahrnuje glosář (definici pojmů) a tezaurus (definice vztahů mezi jednotlivými pojmy). Ontologie je základem pro vytváření sémantického webu. Je to takový slovník pojmů a označení, který obsahuje všechny prvky, které se na daném webu vyskytují a obsahuje také jejich vlastnosti a přirazení k těmto vlastnostem. Je to vlastně celý sborník tvrzení, tak, jak jsem je popsal výše. Datový model ontologie obsahuje čtyři typy prvků, kterými jsou: jedinec, třída, atribut a vazba. Základním prvkem ontologie jsou jedinci, což jsou samotné prvky, kterých se knihovna týká. Takovými jedinci mohou být lidé, fotografie, jména, věci a cokoliv jiného. Dalším prvkem je třída, která obsahuje jedince anebo podtřídy a sdružuje je navzájem. Můžeme tak označovat jednotlivé skupiny se stejnými vlastnostmi, nebo pojmenováním. Atribut je nějaká vlastnost nebo parametr jedince, který jej charakterizuje, a slouží k uložení hodnoty, kterou ho chceme charakterizovat. A nakonec vazba – může to být jednosměrné, či obousměrné propojení dvou jedinců, nebo takto můžeme propojit i jedince s atributem. Na tomto popisu je vidět, že ontologie je vlastně jen sdružením složitějšího modelu RDF.
4.2.5 FOAF (Friend Of A Friend) FOAF (Friend Of A Friend) [16] je ontologie, kterou budeme používat. Jedná se o jednu, z obecně známých ontologií. FOAF popisuje problematiku, která se týká sociálních sítí a podobných webů. Tvoří ji projekty profilů, nebo vizitek uživatelů, kteří mezi sebou komunikují, mají různé vazby, sdílejí různý obsah, od fotografií, po dokumenty, a píší si zprávy. Tato ontologie se požívá v mnoha projektech a existují pro ni rozšiřující moduly, například pro rozesílání elektronické pošty a další, které rozšiřují její funkčnost i pro další projekty. Není pro ni nutná centrální databáze. Každý profil je zde určen jednoznačným identifikátorem, jako je e-mail, ICQ, nebo třeba uměle vytvořené ID. Vše je založeno na definování vztahů mezi lidmi, takže můžeme lidi spojovat do skupin s různými zájmy, místy bydliště a podobně. A stejně jednoduše je poté vyhledávat, jako například všechny lidi z Prahy.
4.2.6 SIOC (Semantically-Interlinked Online Communities) SIOC [17], jedná se o projekt, který vytváří předem připravenou ontologii, mající zachytit většinu situací a možností, při vytváření sociálních sítí. Tato ontologie má poté usnadnit práci tvůrcům takových webů. Při tvorbě webů sociálních sítí se často kombinuje s ontologií FOAF, tak, jako v případě našeho projektu. Ontologie FOAF se však zaměřuje především na tvorbu osobních profilů, databázi informací a dalších charakteristik o samotných 24
uživatelích. Ontologie SIOC ji v tomto doplňuje především o definici vztahů a vazeb mezi uživateli a nejen jimi. Přidává definice pro vztahy uživatelů k firmám, produktům a jako další funkce a poskytuje také možnosti při tvorbě uživatelských fór, příspěvků a vztahů uživatelů k nim, takže se hodí i pro stránky, jako je Twitter a další diskuzní weby. Díky tomu vlastně poskytuje druhou polovinu tvorby sociálních sítí. Na jedné straně tu tedy máme FOAF, pro tvorbu profilů a na straně druhé SIOC, pro jejich používání.
5. Požadavky aplikace 5.1 Specifikace cíle Tato práce vzniká jako webové rozhraní pro komunikaci mezi uživatelem a databází ontologií, vznikající v souběžném projektu Martina Kaňáka. Obě tyto práce mají poukázat na výhody využití technologií sémantického webu v prostředí sociálních sítí. Hlavní část technologií sémantického webu je použita v uvedené souběžné práci, proto se tímto tématem budu zabývat jen stručně. Cílem práce je vytvořit aplikaci sociální sítě s některými jejími typickými funkcemi. Je proto potřeba vytvořit algoritmy, které budou schopny tyto funkce zastávat. Současně je třeba vytvořit vhodnou presentační vrstvu, která bude uživateli příslušná data předkládat a komunikovat s ním, při jejich využívaní. V této kapitole pojednám o funkčních a nefunkčních požadavcích aplikace, které musí po vytvoření, splňovat. Mezi funkční požadavky řadíme funkce, které musí aplikace provádět, a při nichž se jedná o přímou interakci s uživatelem, jako je registrace, přihlášení, vyhledávaní a další. Nefunkční požadavky jsou takové, které musí aplikace splňovat, aby mohla správně fungovat, ale netýkají se přímé interakce s uživatelem. Mezi takové požadavky patří zejména přístup více uživatelů najednou, bezpečnost a stabilita.
5.2 Funkční požadavky aplikace 5.2.1. Základní funkcionality Registrace uživatele – nový uživatel, který ještě nemá účet v systému, se do něj může zaregistrovat a poté se bude moci přihlašovat. Přihlášení uživatele – uživatel, který je zaregistrován v systému, se do něj může přihlásit pomocí e-mailu a hesla. Odhlášení uživatele – přihlášený uživatel se může ze systému odhlásit. Úprava osobních informací – každý zaregistrovaný a přihlášený uživatel může upravit své osobní informace, které uvedl při registraci. 25
Smazání profilu – zaregistrovaný a přihlášený uživatel může svůj existující profil smazat spolou se všemi informacemi.
5.2.2. Funkce dostupné po přihlášení Funkcionality, které může uživatel provádět po přihlášení do systému.
5.2.2.1 Vyhledávání uživatelů Na hlavní stránce je umožněno uživatele vyhledat podle jména nebo příjmení, všechny uživatele systému, kteří se budou shodovat. Tyto uživatele poté bude možné vypsat do stručné tabulky a u každého z nich bude tlačítko, které umožní daného uživatele označit jako „Přítele“. Ten se přidá do seznamu „Přátel“, který může být na požádání vypsán.
5.2.2.2 Seznam Přátel Z menu bude možný přístup na stránku, obsahující seznam všech Přátel daného uživatele. Seznam Přátel bude možné rozdělit do skupin, které budou poté vypsány a Přátelé do nich rozděleni.
5.2.2.3 Fórum Z hlavního menu bude přístup na stránku Fóra, ve kterém budou vypsány všechny dříve napsané příspěvky. Tyto příspěvky budou vypsány ve formě Zdi (za sebou, od nejnovějšího po nejstarší) a budou to pouze příspěvky od Přátel uživatele. Na tuto Zeď bude moci uživatel vlastní příspěvek přidat nebo ho smazat.
5.3 Nefunkční požadavky aplikace Všechny webové aplikace fungují na principu spojení klient a server. Klient, tedy počítač uživatele, posílá dotazy (request) na server a po vykonání příkazů na ně odpovídá (response). Tyto odpovědi jsou typicky reprezentovány kódem v jazyku HTML, nebo XHTML, který interpretuje prohlížeč uživatele a zobrazí je. Webový server musí dále uchovávat určité informace o uživateli a stavy aplikace, díky čemuž, je pak schopen jednotlivé uživatele rozlišit. Na této schopnosti závisí bezpečnost dat, jak serveru, tak uživatele.
5.3.1 Podmínky obsluhy více uživatelů 26
Již samotný princip fungování webové aplikace „server a klient“ napovídá, že webová aplikace musí být schopna obsloužit více uživatelů najednou. Proto je nezbytné, aby server jednotlivé uživatele rozeznával a také si u každého pamatoval jeho postup aplikací (stav). Aplikace musí uchovávat informace o relaci, kontrolovat, zda je uživatel tím za koho se vydává a také synchronizovat přístupy k citlivým datům, zvláště pak při vstupu do databáze.
5.3.2 Zásady tvorby architektury a modularita Tyto dva pojmy vyjadřují velice důležité složky vývoje a provozu veškerého softwaru. Architekturu softwaru je potřeba pečlivě promyslet již před započetím práce na samotné aplikaci a poté její návrh dodržovat. To pak programátorovi umožňuje efektivně a rychle vyhledávat chyby, testovat program a jednoduše se v něm orientovat. Modularita je pojem, který označuje rozdělení aplikace do funkčních, nebo logických celků, které mohou být nezávisle na sobě testovány a vyvíjeny, přičemž mají na sobě funkční závislost. Typickým zástupcem této modularity je návrhový vzor MVC, tedy Model, View, Controller, který implementuje většina dnešních aplikací; využili jsme jej také při této práci. V tomto návrhu zastává každá komponenta (modul) svou funkci:
Model – jádro celé aplikace obsahuje informace nebo zajišťuje jejich přísun z databáze nebo jiného úložiště a naopak zase i jejich ukládání.
View – rozhraní aplikace, které komunikuje s uživatelem, přijímá od něho požadavky a také mu zobrazuje odpovědi dalších vrstev.
Controller – aplikační logika celého programu, obsahuje většinu kódu (nebo kódů) a vykonává požadavky uživatele, využívá k tomu data, získaná z Modelu, anebo mu je naopak předává. Upravuje a rozhoduje o tom, jaký View uživatel uvidí.
Při správném dodržování tohoto návrhového vzoru a také celkové modularity programu, je možné, aby každou část vyvíjel jiný programátor a mohl ji i otestovat, před tím než bude vše spojeno dohromady. Také po plném spuštění aplikace by mělo být možno ovlivnit a přepracovat jednotlivé části aplikace aniž by bylo třeba upravovat jiné. Tímto způsobem, jsme také přistupovali k tvorbě aplikace sémantické sociální sítě, a proto by neměl být problém, napojit Model, tedy databázi a její funkce (vyvíjené v souběžném projektu), na View a aplikační logiku Controlleru, vyvinuté v této práci.
5.3.3 Vizuální stránka aplikace Každá aplikace komunikuje s uživatelem také prostřednictvím svého vzhledu. Vzhled aplikace je důležitý nejen z toho důvodu, aby přilákal co nejvíce uživatelů, ale také proto, aby aplikace byla co nejvíce přístupná (umožňovala snadnou orientaci). Každý uživatel by se měl 27
v aplikaci pohybovat rychle a efektivně, i když zrovna nepracuje v prostředí webového prohlížeče PC, ale třeba na PDA, nebo jiném přenosném zařízení. Samotný jazyk HTML neumožňuje efektivně a přehledně editovat vzhled aplikace, proto vzniklo jeho rozšíření v podobě css (kaskádových stylů). Tento jazyk umožňuje upravit vzhled celé webové stránky, jak její rozmístění, tak barvy, styl textu a další možnosti. Proto by měl být plně využit, při vzniku aplikace. Rovněž je možné tyto styly jednoduše vypnout a zpřístupnit tak aplikaci dalším platformám.
5.3.4 Zajištění stability aplikace Každá aplikace by měla být stabilní vůči všem druhům vstupů, jak plánovaných, tak i neplánovaných, jako jsou úmyslné útoky. Význam této připravenosti se ještě zvyšuje u webových aplikací, kde veškerá komunikace mezi serverem a klientem, probíhá textově v podobě požadavků a odpovědí. Proto by měli být veškeré vstupy zabezpečeny vůči nežádoucím znakům a formátům a to, jak na straně klienta, tak na straně serveru. Při nedostatečném zabezpečení, by se do databáze, nebo i na výkonný kód mohly dostat data, která by server nebyl schopen interpretovat a nebo by je interpretoval špatně, což by mohlo vést k nestabilitě aplikace, nebo odhalení dat nežádoucím uživatelům.
5.3.5 Zvolené technologie Naši aplikaci bude třeba zprovoznit na různých platformách, proto máme jednoznačné požadavky na využité technologie:
XHTML CSS JAVA RDFReactor RDF2Go Jena Mysql databáze
Díky těmto technologiím bude možnost na tuto práci dále navázat i v jiných projektech. Jedním z hlavních požadavků je modularita vzhledem k tomu, že bude třeba aplikaci propojit s prací Martina Kaňáka
5.3.6 Datový obsah Aplikaci je třeba otestovat, aby se prokázala její plná funkčnost, proto je třeba ji naplnit daty, která budou simulovat reálné fungování aplikace, se všemi jeho funkčnostmi.
28
5.4 Zdůvodnění použitých technologií Jak v tomto projektu, tak v souběžně běžícím projektu Martina Kaňáka, jsme po předchozí diskusi vybrali technologie, především z hlediska našich předchozích znalostí, převážně ze školních projektů anebo jejich snadné pochopitelnosti. Pro tvorbu webových aplikací existuje mnoho technologií vhodných k různým projektům. Mezi nejoblíbenější programovací jazyky patří PHP, Java, ASP.NET, s kterými je možno použít různé databázové systémy jako MySql, PostgreSQL, Oracle SQLLite. My jsme se po důkladné diskusi rozhodli pro výše zmíněné technologie. Programovací jazyk Java a databáze MySql byly vybrány z důvodů dřívějších zkušeností s těmito aplikacemi, pro školní projekt jsou dostačující. Pokud by však měla být aplikace nasazena do skutečného provozu, bylo by vhodnější zvolit rychlejší a robustnější technologie, jako je programovací jazyk ASP.NET nebo databázový systém Oracle, schopný manipulovat s velkým množstvím dat. Technologie sémantického webu, jako je RDFReactor, framework Jena a RDF2Go, byly zvoleny především z důvodů bohaté dokumentace, která nám usnadnila seznamování se s těmito technologiemi. V neposlední řadě také z důvodu poznatků a zkušeností, které nám poskytl Ing. Martin Balík, nabytých předchozí prací s těmito technologiemi.
29
6. Analýza procesu a návrh řešení 6.1. Use case model V této části popíši případy užití aplikace. Níže uvedený model zobrazuje případy užití části programu, nazvané Základní část. Zbývající modely částí, úprava Seznamu Přátel a Fórum, budou umístěny v příloze B. Každá z těchto částí má několik případů užití. Všechny jsou zde popsány z pohledu běžného uživatele, tak jak je uvidí, a jak k nim bude přistupovat.
Obrázek 3: Use case model - Základní část
6.1.1. Základní část Registrace uživatele: Zadání: 30
Uživatel se chce zaregistrovat do systému
Podmínky: Uživatel je připojen k systému
Činnost uživatele: Uživatel vstoupí na stránku s registrací Uživatel vyplní registrační údaje a požádá systém o registraci.
Činnost systému: Ověření registračních údajů Zaregistrování uživatele v případě správných registračních údajů
Úspěšný výstup: Uživatel je zaregistrován Zobrazení přihlašovací stránky
Neúspěšný výstup: Zobrazení chybové zprávy a nabídka úpravy údajů
Přihlášení uživatele:
Zadání: Uživatel se chce přihlásit do systému.
Podmínky: Uživatel je připojen k systému a není přihlášen Uživatel je v systému zaregistrován.
Činnost uživatele: Uživatel vstoupí na stránku s přihlášením, nebo na stránku vyžadující přihlášení Uživatel vyplní přihlašovací údaje a pokusí se přihlásit
Činnost systému: Ověření přihlašovacích údajů Přihlášení uživatele v případě správných přihlašovacích údajů
Úspěšný výstup: Uživatel je přihlášen Zobrazení úvodní stránky
Neúspěšný výstup: Zobrazení chybové zprávy a nabídka úpravy údajů
Odhlášení uživatele: 31
Zadání: Uživatel se chce odhlásit ze systému.
Podmínky: Uživatel je přihlášen v systému
Činnost uživatele: Uživatel požádá systém o odhlášení
Činnost systému: Systém uživatele odhlásí
Úspěšný výstup: Uživatel je odhlášen Zobrazení přihlašovací stránky
Editace osobních informací:
Zadání: Uživatel si chce změnit své osobní informace
Podmínky: Uživatel je registrován a přihlášen v systému
Činnost uživatele: Uživatel vstoupí na stránku editace informací
Činnost systému: Ověření správného tvaru všech údajů Změna údajů v případě, že jsou ve správném tvaru
Úspěšný výstup: Změněny osobní údaje uživatele Zobrazení úvodní stránky
Neúspěšný výstup: Zobrazení chybové zprávy a nabídka úpravy údajů
Smazání profilu:
Zadání: Uživatel chce smazat svůj profil
Podmínky: Uživatel je registrován a přihlášen v systému 32
Činnost uživatele: Uživatel vstoupí na stránku editace informací Uživatel požádá systém o smazání profilu Uživatel potvrdí volbu
Činnost systému: Systém nechá potvrdit volbu uživatele Systém vymaže profil z databáze
Úspěšný výstup: Profil uživatele je smazán Úvodní stránka je zobrazena
6.2 Diagramy aktivit Zde popíši diagram aktivity „Editace osobních informací“. Slouží zde jako ukázka návrhu aplikace pomocí diagramu aktivit. Ostatní diagramy aktivit modelující můj projekt jsou umístěny v příloze B.
6.2.1. Editace osobních informací
Obrázek 4: Diagram aktivity - Editace osobních informací
V případě, že uživatel chce v profilu upravit své osobní informace, přejde na příslušnou stránku a vyplní své povinné a podle uvážení i nepovinné informace. Poté, co systém zkontroluje obě sekce, zda neobsahují škodlivé znaky a další chyby, dostane se uživatel do sekce, kde udělí práva uživatelům nebo celým skupinám uživatelů, kteří poté budou moci jeho profil vidět.
33
7. Technologie použité při implementaci 7.1 Tvorba webové vrstvy projektu Sociální síť sémantického webu Webová vrstva, kterou zde vytvářím, jako front-end aplikace sémantického webu funguje na platformě Java, a k jejímu vytvoření slouží framework Struts [18] který usnadňuje tvorbu aplikace na architektuře MVC (Model, View, Controler). Tento framework pracuje s formátem jsp stránek a umožné snadné začlenění knihoven tagů, jak vlastních, tak z jiných zdrojů. Datová vrstva, na kterou budu navazovat, je vytvářená v souběžném projektu Martina Kaňáka a webová vrstva od ní bude přebírat funkce umožňující přístup k databázi. A díky ní bude získávat data a informace potřebné k provozu aplikace.
7.2 MVC (Model, View, Controler) Model View, Controler (MVC [19]) je chápán jako návrhový vzor, nicméně architektury aplikací se týká mnohem víc, než klasický návrhový vzor. Takže bývá označován i jako architektonický vzor (architectural pattern; Buschmann, et al 1996), který usnadňuje a doporučuje rozdělení aplikace do tří vrstev.
Model (model) je vrstva obsahující a doplňující informace, která spolupracuje s databází a vyměňuje si s ní informace
View (pohled) převádí data naplněná modelem do podoby vhodné k presentaci a interakci s uživatelem.
Controller (řadič) reaguje na události, většinou přicházející od uživatele, a zajišťuje změny v modelu anebo v pohledu.
Tyto tři vrstvy jsou ve Struts spojeny konfiguračním souborem struts-config.xml, který všechny tyto vrstvy spojuje a řídí.
34
Obrázek 5: Návrhový vzor MVC
[online] Url: http://www.semanticfocus.com/
7.3 Struts Struts je knihovna (framework), vytvořená společností Apache, a jedná se o open-source technologii, spadající do balíčku Java Enterprise Edition, která usnadňuje vytváření webových aplikací. Tvorba v něm vyžaduje rozdělení do tří vrstev pomocí návrhového vzoru MVC. Její výhody se naplno projeví při tvorbě větších aplikací, dá se snadno doplňovat o nové knihovny a doplňky, a také dále upravovat pro potřeby aplikace, při zachování maximální přehlednosti.
7.3.1 Architektura Struts Struts se snaží oddělovat části dle požadavků standartu MVC. Na obrázku jeznázorněna architektura Struts.
35
Obrázek 6: Architektura frameworku Struts
[online] Url: http://www.jarvana.com/jarvana/
7.3.2 Struts action servlet Je jednou z nejdůležitějších komponent ve Struts. Tato komponenta po přijetí požadavku všechny přijaté informace sbalí do JavaBeans třídy, která rozšiřuje ActionForm. Poté rozhodne, která akce se požadavku ujme, a po validaci jí odešle příslušné informace. 36
Poté se informace předají pomocí Modelu mezi databází a akcí a když je vše vykonáno, vrátí se ActionForward, a ten vyvolá příslušné View, které se poté pošle zpět jako HTTP odpověď.
7.3.3 Struts řadič Řadič je XML dokument, který tvoří jádro celého projektu ve Struts. Řadič je tvořen dokumentem, který se obvykle jmenuje struts-config.xml, ale může mít i jíný název. Ve vyšších verzích struts může být i rozdělen na několik částí. Tento dokument funguje jako knihovna, v níž jsou uloženy informace o tom, jaké akce se mají zavolat, které stránky se mají zobrazit a které formuláře k nim náleží, které formulářové třídy se mají naplnit a poté odeslat dál. A jaké jsp stránky má aplikace zobrazit jako výsledek. Dají se zde také zadávat globální akce pro odchytávání výjimek, nebo při výpadku relace.
7.3.4 Struts formulář Formulář (ActionForm) je datová třída, která ve struts pomáhá při obsluze formuláře. Po odeslání dat v http požadavku, je formulář naplněn daty, která jsou uložena v proměnných, ke kterým se přistupuje pomocí metod get a set a tak zůstávají samotná data odstíněna od metod výkonného kódu a programátor má možnost s nimi v této třídě manipulovat, což ale není obvyklé. Další funkce této třídy je metoda Validate, ve které má programátor možnost určovat kontrolu přijatých dat a v případě problémů, může vracet zpět chybové hlášky, které jsou na stránce vypsány pomocí bean message. Tato komunikace probíhá pouze mezi formulářem a jsp stránkou, ještě před spuštěním samotné akce.
7.3.5 Struts akce Akce je samotné jádro aplikace, je to zdrojový soubor, který obsahuje funkční kód a ten se vykoná po přijetí informací od uživatele. Akce umožňuje naplňovat a ovlivňovat informace, jak ve formuláři, tak poté v samostatné odeslané stránce. V celém Struts se ale snažíme držet strukturu MVC odděleně, proto se hlavní část informací nese v ActionForm, a zde se s nimi také manipuluje. A samotná action, tedy nese hlavně výkonný kód.
7.4 JSP (Java Server Pages) Java Server Pages (JSP) [20] je technologie, která umožňuje tvořit generované stránky HTML nebo XML s dynamickým obsahem. Tyto stránky jsou tedy finální verzí View (pohledu), který se posílá k uživateli, a mají poté možnost se měnit podle přání uživatele. JSP také umožňují používat knihovny tagů, jak předem definované, tak vytvořené programátorem, což dále rozšiřuje jejich funkčnost a přehlednost, zejména ze strany programátora. Do JSP se dále dá přímo vkládat kód Javy v takzvaných skripletech, které ale není, kvůli přehlednosti kódu doporučeno užívat.
37
7.5 CSS (Cascading Style Sheets) Cascading Style Sheets [21] (kaskádové styly), je jazyk a standart, navržený organizací W3C, který umožňuje snadno oddělit grafickou stránku webu od obsahové. Tímto postupem se v HTML souboru určuje pouze obsah a označení jednotlivých částí dokumentu a teprve v css souboru se určuje jejich grafická podoba, včetně barvy textu, pozadí, pozice a dalších. Díky tomu, že tento jazyk podporuje třídy a další označovací tagy, je možno snadno a rychle upravit celé bloky dokumentu na jednom místě, například o jinou velikost písma. Vše se udržuje v přehledném souboru.
7.6 NetBeans NetBeans [22] je open-source vývojové prostředí od firmy Sun Microsystems. Toto vývojové prostředí je velice rozšířeno a umožňuje vývoj v mnoha programovacích jazycích, hodící se pro většinu typů aplikací. Hlavním jazykem je Java, včetně její formy J2EE edice, a to i s vestavěnou podporou Struts a vlastním serverem Tomcat. Netbeans je open-source projekt firmy Sun Microsystems.
38
8. Programová část Webový front-end aplikace jsem vytvářel v J2EE [23], jakožto vhodnou platformu pro programování strukturovaných a přehledných webových aplikací. Zároveň jsem využil poznatky ze školních absolvovaných předmětů. K této platformě jsem přidal framework Struts, který usnadňuje vývoj rozsáhlejších aplikací, při zachování maximální přehlednosti, a technologii JSP. Vše je podporováno a integrováno ve vývojovém prostředí NetBeans. V souběžně běžícím projektu byly přidány technologie frameworku Jena, RDF reactor, dále ontologie FOAF a Sioc.
8.1 Registrace Technologie formulářů Struts, kterou jsem použil ve většině případů, umožňuje následující postup: na stránku vytvoříme formulář, který má přidělenou akci a třídu pro ukládání dat poté co uživatel vyplní data a odešle je, formulář je uloží do připravené třídy a zkontroluje jejich platnost a správný tvar, popřípadě další definované podmínky pokud je formulář vyplněn chybně, je rovnou odeslán zpět na stránku s chybovými hláškami a k ničemu dalšímu nedojde. Pokud je ale formulář vyplněn správně, přistoupí se k vykonání akce. Akce převezme řízení a data z formuláře a provede s nimi definované činnosti. Může přistupovat k databázi, ukládat do ní, nebo načítat a poté přesměruje, pomocí Forwardu, činnost na příslušnou stránku, která zobrazí výsledek. Stejně funguje registrace nebo přihlášení. Na stránce s registrací (registrace.jsp) je zobrazen formulář, který má jako akci, tedy třídu, která jeho požadavky vyhodnotí, označenu registrace.do s položkami: Jméno, Příjmení, Heslo, Heslo znovu (kterým se ověří, jestli v něm není překlep), a e-mail. Uživatel vyplní tyto položky a klepnutím na tlačítko Odeslat je odešle na sever. Všechny položky se uloží do třídy registraceActionForm, do připravených proměnných. Zde se k nim poté může přistupovat pomocí metod get a set. Poté se přistoupí k metodě Validate. Ta provede kontrolu zadaných údajů, zjistí, zda jsou políčka vyplněna, popřípadě jestli jsou vyplněna správně, zda má heslo alespoň 3 písmena a jestli se heslo shoduje s kontrolním heslem. Pokud tato kontrola proběhne a vyhodnotí, že něco zůstalo nevyplněno nebo je vyplněno špatně, vrací se řízení na původní stránku, která se znovu vykreslí s vyplněnými hodnotami a vypíšou se chybová hlášení, která upozorní uživatele na chyby. Pokud uživatel vyplní údaje správně, ať už napoprvé nebo na
39
podruhé, projde program všemi kontrolami a přesune se k akci podle označení ve struts-config.xml. Tato akce nese název registraceAction, tady se převezmou hodnoty vyplněné ve formuláři a díky databázovému interfacu se uloží do databáze. Vše se uzavře a potvrzení proběhne přes forward, který zobrazí registrovanému uživateli hlášku s potvrzujícím textem.
8.2 Přihlášení Přihlášení probíhá obdobným způsobem; na stránce prihlaseni.jsp, jako registrace, vyplněný formulář přenese informace do příslušného ActionForm, tedy pihlaseniActionForm, poté se v metodě Validate ověří, zda je uživatel skutečně zaregistrován, pomocí dat, která jsou o něm získána z databáze a porovnají se s přihlašovacími údaji. Poté se ještě před samotným přihlášením uloží veškeré informace o uživateli do beany (Uzivatel.java), tedy prázdné třídy s proměnnými, ke kterým se přistupuje pomocí get a set metod a uživatel je přihlášen v prihlaseniAkce, která v tomto případě příliš mnoho kódu nevykoná, pouze přesměruje uživatele pomocí metody Forward. Beana, kterou jsem zde zmínil, se bude používat dále pro ověření informací o uživateli.
8.3 Osobní informace U informací o uživateli ještě chvíli zůstaneme. Osobní informace jsou asi to nejdůležitější, co se na sociální síti dá najít. Podle jména a příjmení, najdeme své Přátele, pomocí e-mailu se s nimi můžeme dorozumívat, díky datu narození víme, kdy mají narozeniny a tak dále. Proto je velice důležité, aby si je každý uživatel mohl nejen vyplnit při registraci, ale také změnit pro případ, že k nějaké změně dojde, nebo naopak pokud některý ze svých údajů vyplnit nechce. A k tomu slouží stránka s úpravou osobních informací. Tato stránka je realizována pomocí formuláře na stránce osobniInformace.jsp, který je naplněn původními daty. Tato data byla převzata z beany (Uzivatel.java), kterou jsem zmínil výše. Protože své osobní informace, které jsou uloženy v beaně si uživatel nemůže změnit jinde, než na stránce s jejich úpravou, není třeba, aby byla beana aktualizována, protože od načtení při přihlášení k jejich změně dojít nemohlo. Tedy data se doplní do formuláře a příslušných políček a uživatel je může podle potřeby změnit. Samozřejmě všechna políčka musí splňovat podmínky vyplnění tak, jako při registraci. Poté co proběhne jejich kontrola, dostane se běh programu do fáze, kdy se zadaná data uloží do databáze, a ta se tak aktualizuje o nově vyplněné informace. Spolu s ní se aktualizují i informace v beaně a uživatel je po potvrzení přesměrován na hlavní stránku (hlavniStranka.jsp).
8.4 Hlavní stránka Hlavní stránka (hlavniStranka.jsp) je jako centrum celé aplikace, kam se uživatel dostane po přihlášení. Obsahuje velice důležitou část, a tou je vyhledávání uživatelů. Jedná se o malý formulář, který je umístěn v její horní části. Do formuláře uživatel napíše jméno nebo příjmení hledané osoby a na nové stránce jsou mu vypsány všechny osoby v systému se shodným jménem, u každé z nich je poté uveden i její email a tlačítko, které umožní daného uživatele umístit do Seznamu Přátel. E-mail je zde uveden proto, že mohou v systému být 40
zaregistrováni uživatelé se stejnými jmény, ale e-maily jsou jasným identifikátorem. Adresa e-mailu je jedinečná již ze svého principu a všechny společnosti poskytující e-mail to dodržují. Na programové straně je tato funkce realizována klasickým formulářovým polem s kontrolou vyplnění. Po vyplnění jména, se obsah pole uloží do vyhledavaniActionForm, kde je provedena kontrola vyplnění a poté je položka v akci vyhledavaniAction porovnána s databází. Pokud je shoda, posune se řízení Forwardem na stánkuvyhledano.jsp, kde jsou vypsáni shodní uživatelé s příslušným emailem a tlačítkem. Po zvolení daného uživatele tlačítkem je tento uložen jako Přítel uživatele, který si ho zvolil.
8.5 Seznam Přátel Stránka Přátel umožňuje uživateli získat výpis všech svých získaných Přátel. Uživatelé v seznamu přátel jsou zde vypsáni pod sebou do sloupce a u každého z nich je umístěno tlačítko, které umožňuje daného uživatele odstranit ze Seznamu Přátel. U každého je uvedeno jméno, příjmení a jeho email, což jsou informace, které každého bezpečně identifikují.
8.6 Fórum Fórum slouží ke komunikaci jednotlivých uživatelů systému mezi sebou. Umožňuje přidávat příspěvky a mazat příspěvky autorem. Forum je zobrazeno ve formě Zdi (od nejnovějšího příspěvku po nejstarší).
8.6.1 Přidání příspěvku Na fórum je možno přidat nový příspěvek pomocí tlačítka umístěného ve spodní části stránky. Po kliknutí na toto tlačítko, přejde uživatel na stránku novyPrispevek.jsp, kde je umístěna textarea, do které uživatel zaznamená text svého příspěvku. Pokud není textarea prázdná odešle se do databáze a tam se uloží spolu se záznamem o autorovi. To proběhne pomocí form bean novyPrispevekActionForm, která zaznamená text příspěvku a pot novyPrispevekAkce, která provede zápis do databáze.
8.6.2 Vymazání příspěvku U každého příspěvku, jehož autorem je právě přihlášený uživatel, bude zobrazeno tlačítko smazat, po jehož kliknutí se provede akce smazatPrispevekActio, která provede úpravy v databázi a smaže příspěvek.
8.7 Mapa stránek 41
Mapa stránek je statická webová stránka, která slouží pro zpřehlednění celého webu. Jsou zde jednotlivé odkazy tak, jak je uvádí menu, rozděleny do kategorií Úvod, Seznam Přátel a komunikace, Forum, ostatní. Tato stránka neobsahuje žádný výkonný kód, slouží pouze k zpřehlednění webu.
9. Testování aplikace Aplikace, kterou jsem v tomto projektu vytvořil, není úplná, z toho důvodu, že Martin Kaňák, který souběžně tvořil databázovou část této aplikace, ji nedokončil. Proto není možné aplikaci plně otestovat, především její adaptabilní prvky, založené na sémantickém webu. Proto testování mé aplikace provedu především z hlediska funkčnosti její webové vrstvy. Vytvořil jsem databázi a spojení s databází, aby mohla být testována na předem připravených datech, ale tato zjednodušená verze databáze a spojení, neposkytuje žádné adaptabilní prvky. V testování jsem se zaměřil na několik sledovaných kriterií: funkčnost a přehlednost designu stránek, pochopitelnost uživatelského rozhraní, srozumitelnost funkcí webu, správná funkčnost systému. Testování bylo provedeno ve spolupráci s třemi osobami, které již měly předchozí zkušenosti s používáním sociálních sítí. Byl vytvořen jednoduchý scénář, který otestoval všechny funkčnosti aplikace. Scénář obsahoval následující pokyny: Zaregistrujte se do systému Po úspěšné registraci se přihlaste do systému Upravte své osobní informace tak, aby místo vašeho křestního jména byla uložena vaše přezdívka Vyhledejte v systému, nejprve jednoho z předem připravených uživatelů, a poté druhého, a přidejte je do svého seznamu Přátel (Jan Novák, Martin Fiala) Vstupte do Fóra a přečtěte si předem připravené příspěvky od výše zmíněných uživatelů Přidejte příspěvek reagující na již napsané příspěvky Najděte svůj Seznam Přátel a jednoho z Přátel odstraňte ze seznamu Odhlaste se ze systému
42
Obrázek 7: Ukázka vzniklé aplikace - seznam Přátel
Výsledky testování: 1) První uživatel se bez potíží zaregistroval do systému a přihlásil se. Po úpravě osobních informací následovaly malé problémy s vyhledáváním uživatelů v systému. Po několika pokusech byli uživatelé správně přidáni. Vstup do fóra i napsání příspěvku proběhlo bez problémů. Odstranění uživatele ze seznamu přátel i odchod ze systému proběhl hladce. 2) Druhý uživatel provedl veškeré úkony bez problémů a velice rychle. 3) Třetí uživatel prošel registrací i přihlášením bez problémů. Při úpravě informací omylem smazal svůj vlastní profil a tak musela následovat opětovná registrace. Objevily se problémy při vyhledávání, které byly odstraněny až asistencí tvůrce webu. Zbytek úkonů již proběhl bez potíží. Vyhodnocení výsledků: Z výsledků průběhu testu jsem usoudil, že jednoduchost a přehlednost stránek byly dobrou volbou. Celkově se objevily dva problémy. Tlačítko pro smazání profilu, bylo nevhodně umístěno příliš blízko tlačítka pro potvrzení změn v osobním profilu. Proto jsem toto tlačítko umístil níže pod potvrzovací tlačítko. Druhým problémem byla funkčnost vyhledávání, kdy vyhledavač rozpozná uživatele, buďto podle jména, nebo příjmení, nikoliv však obojího zároveň. Tato funkce by však vyžadovala příliš velký zásah do systému. Především se jednalo o problém ve spojení s databází, která nebyla dodána ze souběžného projektu, a proto musela být zvolena tato provizorní verze, která tuto možnost nenabízela. Celkové testování proběhlo bez jakýchkoliv problémů ze strany systému a všechny prvky webu fungovaly správně. 43
10. Závěr Webový front-end vytvářený v tomto projektu je kompletní se všemi plánovanými funkcemi a tím jsem splnil svou část zadání. Avšak druhá polovina aplikace vytvářená v projektu Martina Kaňáka nebyla dokončena. Z důvodu chybějící datové vrstvy, není správně funkční vyhledávání a funguje pouze na principu vyhledávání podle jména nebo příjmení, nikoliv však obojí zároveň. Veškerou databázovou vrstvu v tomto projektu jsem provizorně implementoval zjednodušeným způsobem pomocí MySql. Přesto se povedlo vytvořit fórum, které zobrazuje příspěvky pouze od přátel spolu s ukládáním a úpravou osobních informací a také vytvořit Seznam Přátel. Vyskytli se ovšem nedostatky spojené s provizorní databází. Jednoho uživatele lze přidat Seznamu Přátel vícekrát. Příspěvky ve fóru se vypisují ve špatném pořadí. Pokud uživatel smaže svůj účet, příspěvky ve fóru zůstávají a zahlcují databázi. Databáze není schopná přijmout české znaky z textarea, která tvoří obsah příspěvku a znaky se proto zobrazují špatně.
10. 1 Splnění cílů práce Veškeré cíle zadané pro tento projekt jsem splnil. Seznámil jsem se velkým množstvím sociálních sítí a zjistil jsem, že téměř žádná nevyužívá technologií sémantického webu, jinak než okrajově. V současné době však už vznikají, nebo dokonce nově běží projekty, které se těchto technologií snaží využít pro budoucí chod sociálních sítí; ve své práci jsem dva z nich popsal. Vytvořil jsem aplikaci inspirovanou sociálními sítěmi a s funkcionalitami, jako je Seznam Přátel a Fórum. Tuto aplikaci se povedlo dokončit, prozatím však navazuje pouze na 44
ukázkovou testovací databázi. Projekt byl však navržen tak aby se na něj dalo v budoucnu navázat, jak dokončením databázové části, tak jinými funkcionalitami.
10.2 Navázání na vytvořenou aplikaci Aplikace, vytvářená v tomto projektu, již od počátku počítala s napojením na databázi ontologií. Vzhledem k tomu, že databáze vytvářená v souběžném projektu nebyla dokončena, je její vytvoření a napojení na současný projekt logickým rozšířením. Veškeré funkčnosti, které současná aplikace nabízí, se mohou dále rozvíjet: vyhledavač může být rozšířen i o jiný obsah, než pouze o uživatele, Seznam Přátel zatím nabízí pouze výpis jejich příspěvků, aplikace může být rozšířena o další funkcionality sociálních sítí, jako je Fotoalbum, chat, soukromé zprávy a další. Aplikace je vytvořena co nejjednodušším způsobem, jak kvůli přehlednosti, tak kvůli možnosti napojovat další funkcionality. Z toho ovšem pramení i nevýhody, jako je pomalost, nevhodné zacházení s daty a další, které pravděpodobně zamezí jejímu mimoškolnímu využití.
Seznam použité literatury [1] Wikipedia: Social Web. [online] Url: http://en.wikipedia.org/wiki/Social_web [2] Wikipedia : Blog. [online] Url: http://cs.wikipedia.org/wiki/Blog [3] Wikipedia : Sociální síť. [online] Url: http://cs.wikipedia.org/wiki/Soci%C3%A1ln%C3%AD_s%C3%AD%C5%A5
[4] Facebook: Official web page. [online] Url: http://www.facebook.com/ [5] MySpace: Official web page. [online] Url: http://www.myspace.com/ [6] Bebo: Official web page. [online] Url: http://www.bebo.com/ [7] Flickr: Official web page. [online] Url: http://www.flickr.com/ [8] Goodreads: Official web page. [online] Url: http://www.goodreads.com/ [9] Google: friend connect: oficial web page. [online] Url: http://www.google.com/friendconnect/ [10] Department of Technical Communication at the University of Washington in Seattle: Adaptive web sites. [online] Url: http://eserver.org/courses/s01/tc510/adaptivity/wei/wei1.html [11] ÚVT MU zpravodaj. Sémantický web a jeho technologie. [online] Url: 45
http://www.ics.muni.cz/zpravodaj/articles/296.html [12] Wikipedia : Sémantika. [online] Url: http://cs.wikipedia.org/wiki/Sémantika [13] W3C : Resource Description Framework. [online] Url: http://www.w3.org/RDF/ [14] W3C: OWL. [online] Url: http://www.w3.org/TR/owl-features/ [15] Wikipedia: Ontologie. [online] Url: http://cs.wikipedia.org/wiki/Ontologie_%28v%C3%BDpo%C4%8Detn%C3%AD_technika% 29 [16] FOAF Project. [online] Url: http://www.foaf-project.org/about [17] SIOC Project. [online] Url: http://sioc-project.org/ [18] Apache Strus: Official web. [online] Url: http://struts.apache.org/ [19] Wikipedia: MVC. [online] Url: http://cs.wikipedia.org/wiki/Model-view-controller [20] Wikipedia: JSP. [online] Url: http://en.wikipedia.org/wiki/JavaServer_Pages [21] W3C: CSS. [online] Url: http://www.w3.org/Style/CSS/ [22] Netbeans: Official web page. [online] Url: http://netbeans.org/ [23] J2EE: Documentation. [online] Url: http://java.sun.com/j2ee/overview.html
46
Přílohy: A. Slovník pojmů Zde uvedu některé výrazy, které jsem použil v této práci, a jejich vysvětlení se bude hodit pro pochopení obsahu práce. Aplikace (Aplikační software) – veškeré programové vybavení počítače (software), které je určeno k přímé interakci s uživatelem. Účelem aplikačního softwaru je řešení konkrétního problému uživatele. Aplikace s uživatelem obvykle komunikuje pomocí grafického nebo textového rozhraní. Aplikace webová – jedná se o druh aplikace poskytované formou „klient - server“, obvykle prostřednictvím sítě internet, nebo intranet. Webová aplikace obvykle komunikuje pomocí webového prohlížeče. Bebo – sociální síť, bojující v současné době o každého uživatele. Facebook – v současnosti nejrozšířenější sociální síť. Flickr – sociální síť zaměřená na publikaci a výměnu fotografií svých uživatelů. 47
Komponenta – oddělená část celku, například aplikace, kterou je možno testovat a vyvíjet odděleně a k ostatním částem celku přistupuje pomocí rozhraní. Metadata – data o datech. Jedná se o data, která popisují význam, původ, funkci a vlastnosti jiných dat. Například data používaná v jazyce HTML. MySpace – druhá největší sociální síť. Starší než Facebook, přesto však, co do velikosti, až na druhém místě. Návrhový vzor (design pattern) – obecné řešení problému používané při návrhu aplikací. Jedná se o jakýsi návod jak řešit určitý problém. IDE (Integrated Development Environment) – vývojové prostředí, které usnadňuje práci programátora. Většinou je zaměřeno na jeden programovací jazyk. Obsahuje editor zdrojového kódu, kompilátor, případně také debbuger. Některá větší vývojová prostředí obsahují i mnoho dalších funkcí. Web (WWW - World Wide Web) – volně přeloženo „celosvětová pavučina“ je označení pro aplikace internetového protokolu HTTP. V češtině se toto slovo také často používá pro soustavu dokumentů dostupných na tomtéž serveru.
B. Doplňkové UML modely B.1 Use case diagramy Zde jsou umístěny Use case diagramy zobrazující vedlejší funkce systému.
48
Obrázek 8: Use case model - Úprava seznamu přátel
B.1.1. Úprava Seznamu Přátel Přidávání dalších uživatelů do Seznamu Přátel: Zadání: Uživatel chce přidat jiného uživatele do Seznamu Přátel Podmínky: Uživatel je registrován a přihlášen v systému Činnost uživatele: Uživatel zadá kriteria pro vyhledání jiného uživatele Uživatel požádá systém o vyhledání uživatele Uživatel vybere jiného uživatele a požádá o přidání do Seznamu Přátel Činnost systému: Systém vyhledá uživatele podle zadaných kriterií Systém vypíše vyhledané uživatele na stránku Systém přidá vybraného uživatele do Seznamu Přátel Úspěšný výstup: Stránka s vyhledanými uživateli je zobrazena
Vymazání jiného uživatele ze Seznamu Přátel: 49
Zadání: Uživatel chce vymazat jiného uživatele ze Seznamu Přátel Podmínky: Uživatel je registrován a přihlášen v systému Činnost uživatele: Uživatel vstoupí na stránku editace Seznamu Přátel Uživatel požádá systém o vymazání uživatele ze Seznamu Přátel Uživatel potvrdí volbu Činnost systému: Systém nechá potvrdit volbu uživatele Systém vymaže uživatele ze Seznamu Přátel Úspěšný výstup: Uživatel je vymazán ze Seznamu Přátel Zobrazení stránky editace Seznamu Přátel
Obrázek 9: Use case model - Fórum
B.1.2. Fórum Vstup do části Fórum: Zadání: Uživatel chce vstoupit do části Fórum a příslušného tématu Podmínky: Uživatel je registrován a přihlášen v systému 50
Činnost uživatele: Uživatel vstoupí do sekce Fórum volbou funkce v hlavním menu Činnost systému: Systém vpustí oprávněného uživatele do části Fórum Systém vypíše uživateli obsah části Fórum Úspěšný výstup: Zobrazení obsahu části Fórum
Editace příspěvku: Zadání: Uživatel chce vytvořit nový příspěvek, nebo editovat již hotový Podmínky: Uživatel je registrován a přihlášen v systému Uživatel je registrován v sekci Fóra v příslušné kategorii a tématu Činnost uživatele: Uživatel klikne na tlačítko Vytvořit příspěvek, nebo Editovat příspěvek Uživatel napíše obsah příspěvku Uživatel odešle text příspěvku Činnost systému: Systém uloží text příspěvku s příslušnými informacemi o jeho vzniku do databáze Při prohlížení fóra vypíše systém příspěvek s dalšími informacemi Úspěšný výstup: Příspěvek je uložen v databázi Zobrazení stránky Fóra
Smazání příspěvku: Zadání: Uživatel chce smazat existující příspěvek Podmínky: Uživatel je registrován a přihlášen v systému Uživatel je zaregistrován v sekci Fórum v příslušné kategorii a tématu
51
Činnost uživatele: Uživatel klikne na tlačítko Smazat příspěvek Uživatel potvrdí volbu Činnost systému: Systém si ověří potvrzení dotazem Systém smaže příspěvek z databáze se všemi dalšími informacemi Úspěšný výstup: Příspěvek je vymazán z databáze Zobrazení stránky části Fórum
B.2 Diagramy aktivit Zde jsou umístěny diagramy aktivit, které detailně popisují průchod jednotlivými akcemi jako je editace seznamu přátel a další.
B.2.1. Editace Seznamu Přátel
Obrázek 10: Diagram aktivity - Editace seznamu přátel
Pokud si chce uživatel přidat jiné uživatele do Seznamu Přátel, tak nejprve v systému vyhledá jiného uživatele podle jména, a v případě shody ho poté vyhledá v nabídnutém seznamu. Vybere příslušného uživatele a poté ho označí jako Přítele. Ten se o této nabídce samozřejmě při dalším přihlášení dozví. Poté si může uživatel přidat Přítele do skupiny, pokud má tuto skupinu již vytvořenou. Pokud ne, bude uživatel umístěn do základní skupiny.
B.2.2. Přihlášení uživatele
Obrázek 11: Diagram aktivity – Přihlášení do systému
52
Uživatel, který se chce přihlásit do systému je přesměrován na stránku přihlášení, kde vyplní jméno a heslo a to pak systém zkontroluje. Pokud jsou obě položky správné, je uživatel přihlášen do systému a zobrazí se mu úvodní stránka.
B.2.3. Vytvoření příspěvku ve Fóru
Obrázek 12: Diagram aktivity - Vytvoření příspěvku ve Fóru
Uživatel chce vytvořit příspěvek ve Fóru, proto musí být v sekci Fórum v příslušném tématu. Vstoupí na stránku vytvoření příspěvku, kde napíše text příspěvku. Pokud má zájem, může si nechat zobrazit náhled. Pokud s podobou příspěvku souhlasí, potvrdí volbu a příspěvek odešle. Ten se uloží do databáze a uživatel se vrátí na stránku s příspěvkem.
C. Instalační příručka C.1 Požadavky aplikace Aplikace ke svému běhu vyžaduje tyto programy: a) Java 2 Platform Standard Edition Development Kit 5.0 (JDK 5.0) nebo vyšší b) server: Apache Tomcat 6.0 c) databázový server MySql s verzí 5, nebo vyšší d) webový prohlížeč e) operační systém podporující dané aplikace Minimální Hardwarová konfigurace: A) Procesor s taktem 1,5Ghz a rychlejší 53
b) 512 MB operační paměti c) alespoň 300MB na HDD
C.2 Instalace Před instalací samotné aplikace je potřeba nainstalovat výše zmíněné programy. Pro zjednodušení instalace je možno použít program XAMPP, obsahující jednoduchou instalaci MySQL i s konfigurací. Pro případ naprostého zjednodušení, je možno nainstalovat vývojové prostředí Netbeans ve verzi 6.5, nebo vyšší, obsahující výše zmíněné programy mimo databázi MySQL. Se základním nastavením aplikace je potřeba vytvořit na serveru MySql uživatele ODBC s heslem odbc a databázi nazvanou mutace. Poté stačí použít skript v souboru sql.txt, uložený v adresáři „Projekt“ na přiloženém CD. Tento skript sám vytvoří tabulky a naplní databázi daty.
C.3 Spuštění aplikace Po nainstalování všech programů stačí pro spuštění aplikace kopírovat soubor BaklarskaPraceFialama5.war do adresáře „webaps“ ve vaší instalaci serveru Tomcat. Poté je nutné vytvořit a naplnit databázi podle návodu v předchozím bodě a spustit server. Aplikace poběží na adrese http://localhost: „port serveru“/BakalarskaPraceFialama5/.
vašeho
V případě spuštění přes vývojové prostředí Netbeans, stačí otevřít projekt BakalarskaPraceFialama5 a poté použít deploy na integrovaný server. Dále pak, buď spustit aplikaci ručně vepsáním adresy do prohlížeče, nebo přes tlačítko „Run“. Podrobnější návod je k nalezení na přiloženém CD v sekci Dokumentace.
D. Programátorská příručka Aplikace byla vytvářena ve vývojovém prostředí NetBeans 6.5. V době dokončení práce nebyla hotová databázová vrstva tvořená Martinem Kaňákem, se kterou aplikace počítá, proto je vytvořena provizorní databáze a provizorní rozhraní, které s ní komunikuje. Veškeré databázové prvky aplikace jsou umístěny ve třídě UserDB v balíčku db. Pokud je potřeba změnit parametry pro připojení s databází, můžete to provést v této třídě. Aplikace se spouští na serveru Apache Tomcat 6.0, instalovaném s Netbeans. Vyžaduje také server MySql, jehož instalace je popsána v předchozím bodě. Veškeré webové stránky jsou umístěny v adresáři Web Pages v projektu. Zde jsou také umístěny tři soubory Cascadních stylů a to OrgCSS2. css, který je základním stylem celého webu, dále mapaStranek.css editující stránku mapaStranek.jsp a styl formular.css, který edituje formuláře na webu. Dále se zde nachází soubor include, obsahující soubory s menu před přihlášením, po přihlášení a patičku. Tyto soubory obsahují pouze statické HTML a 54
slouží k tomu, aby nebyl duplikován kód na jednotlivých stránkách. Nakonec jsou zde obrázky, obsahující veškeré obrázky potřebné pro stránky. Veškerý výkonný kód je obsažen ve složce source Packages, především všechny akce a form beans, jsou v balíčku MyFace.Actions. Dále balíček beans v němž je beana uživatel, která obsahuje veškeré informace o uživateli po přihlášení do systému. A konečně balíčky Tags a Trida související s cystom tagem použitým pro výpis Přátel v Seznamu Přátel. Obsáhlejší verze programátorské příručky je k nalezení na přiloženém CD v sekci Dokumentace.
E. Uživatelská příručka Uživatelská příručka poskytuje návod k použití uživateli zajímajícímu se o tuto aplikaci.
E.1 Registrace Tak jako v každém uzavřeném systému i v mé aplikaci je nutné, aby se uživatel přihlásil, ale k tomu, aby mohl být přihlášen, potřebuje svůj vlastní účet. Tento učet si vytvoří právě pomocí registrace. Na registraci se uživatel dostane díky odkazu na úvodní stránce aplikace. Pro registraci stačí vyplnit jméno, příjmení, email a dvakrát heslo, aby se v něm neobjevil překlep. Pokud vše uživatel vyplní správně, registrace proběhne a vytvoří se mu účet, 55
Obrázek 13: Ukázka aplikace - Registrace
E.2 Přihlášení Pokud má uživatel vytvořen účet v databázi stačí, aby se přihlásil do systému pomocí svého e-mailu a hesla, které zadal při registraci. Pokud zadal oba údaje správně, ocitne se na hlavní stránce aplikace po přihlášení. Zde v hlavní menu může přejít do různých sekcí. V sekci Osobní informace, může upravit své zadané informace. Poté může přejít na Fórum a Seznam Přátel. Pokud má uživatel zájem ukončit práci v aplikaci, je vhodné se nejprve odhlásit pomocí tlačítka Odhlásit umístěného v pravé horní části aplikace.
E.3 Seznam Přátel
56
V této aplikaci je umožněno uživateli navázat přátelské vztahy s jiným uživatelem. Uživatel musí nejprve vyhledat jiného uživatele pomocí vyhledavače na hlavní stránce, kde zadá jeho jméno nebo příjmení, objeví se mu seznam shodných uživatelů. Poté vybere uživatele, kterého hledal a pomocí tlačítka Přidat, uloží uživatele do svého Seznamu Přátel. V případě, kdy by uživatel chtěl již přidaného přítele smazat, stačí přejít do sekce Přátelé a zde se objeví Seznam Přátel. U vybraného uživatele zmáčkne tlačítko odebrat a uživatel bude vymazán.
E.4 Fórum Fórum slouží ke komunikaci uživatelů, kteří jsou v Seznamu Přátel. Pokud uživatel přejde do sekce Fórum, budou mu vypsány všechny příspěvky od jeho Přátel a jeho samotného ve formě Zdi (od nejnovějšího příspěvku po nejstarší). V případě, že bude chtít umístit nový příspěvek na Zeď, klikne na tlačítko nový příspěvek ve spodní části stránky a dostane se na stránku, kde může zadat text nového příspěvku. Ten poté odešle, příspěvek se zapíše do databáze a bude zobrazen spolu s dalšími při dalším výpisu Fóra.
F. Obsah CD Zde uvádím obsah přiloženého CD:
57
Obrázek 14: Obsah přiloženého CD
a) Readme.txt – soubor popisující obsah CD a jeho jednotlivých částí. b) Databaze – soubor obsahující skript pro vytvoření databáze. c) Dokumentace – soubor obsahující dokumentaci k projektu a instalační příručku. d) Projekt – soubor obsahující jak veškeré zdrojové kódy k projektu, tak i přeložené kódy. e) Text – Soubor obsahující text bakalářské práce ve formátu doc i pdf. f) UML – Soubor obsahující jednotlivé UML diagramy obsažené v bakalářské práci.
58