200 likes | 323 Vues
Hypertekstijärjestelmien arkkitehtuurit ja mallit. 8.4.1999. Geneeriset mallit. Yleisesti hypertekstijärjestelmässä voidaan erottaa kolme eri kerrosta (layer): Esityskerros, käyttöliittymä (presentation layer) Hypertext Abstract Machine HAM: solmut ja linkit
E N D
Hypertekstijärjestelmien arkkitehtuurit ja mallit 8.4.1999 Porin korkeakouluyksikkö
Geneeriset mallit • Yleisesti hypertekstijärjestelmässä voidaan erottaa kolme eri kerrosta (layer): • Esityskerros, käyttöliittymä (presentation layer) • Hypertext Abstract Machine HAM: solmut ja linkit • Tietokantataso: tallennus, tietoliikenne (verkkoyhteys) • Yksityiskohtaisempi hypermedian abstraktio on Dexter Hypertext Reference Model Porin korkeakouluyksikkö
Tietokantakerros • Perinteinen tiedon varastointi levylle, optiselle tallennusmedialle, verkkoon etc. • Tietokannan hallinta, käyttöoikeudet, varmistukset • Tällä tasolla linkit ja solmut ovat tieto-objekteja, joiden sisällöllä ei ole merkitystä. Porin korkeakouluyksikkö
HAM kerros • Tässä kerroksessa tietokannassa olevat tietoalkiot (data) saavat (abstraktin) merkityksen solmuiksi ja linkeiksi. • HAM-kerros sisältää konseptit, joiden avulla voidaan solmujen välille rakentaa linkki ja seurata linkkejä. • HAM-kerros tunnistaa solmujen ja linkkien attribuutit. • HAM = hypermedian abstraktio, laitteistoriippumaton kuvaus hypermedian rakenteesta Porin korkeakouluyksikkö
Esityskerros • Kerroksen tehtävänä on toimia käyttöliittymänä hypermediajärjestelmälle - HAM:n tarjoamien palvelujen avulla esityskerros näyttää solmujen sisällön ja linkit käyttäjälle mielekkäällä tavalla. • Esityskerrokseen kuuluu mm. navigointityökalut Porin korkeakouluyksikkö
Dexter Hypertext ReferenceModel • Abstrakti synteesi eri hypermediaohjelmistoista • Pohja hypermediasovellusten suunnitteluun • Ensimmäinen versio Dexterin majatalossa New Hampshiressä 1988 • Tehtiin formaalisella määrittelykielellä (Z) • Kts. esim. Communications of the ACM, February 1994, Volume 37, Number 2. Porin korkeakouluyksikkö
Dexter Hypertext Reference Model Ajo-aikainen kerros (hypertekstin esittäminen) Esittämiseen liittyvät spesifikaatiot Tietokantakerros (solmu- ja linkkitietokannat) Ankkurointi Komponentti kerros (komponenttien sisäinen rakenne) Porin korkeakouluyksikkö
Dexter Hypertext... • Dexter keskittyy tietokantakerroksen abstraktioon ja sen rajapintoihin- esityskerros ja komponettikerros ei kuulu mallin piiriin. • Komponettikerroksessa esitettävän datan rakenne voidaan toteuttaa muilla malleilla (esim. SGML:n tai XML:n avulla) • Tietokantakerros muodostuu komponenteista (solmut, linkit ja komposiitit), ankkuroinnista ja komponentin esittämiseen liittyvistä spesifikaatioista. Porin korkeakouluyksikkö
Dexter hypertext... • Komponentin esitystapa voi olla komponentin ominaisuus (attribuutti) - esitystavan ai tarvitse riippua vain esittävästä ohjelmasta (selailijasta) • Esimerkiksi opettajalle ja oppilaalle voidaan sama komponentti näyttää/esittää eri tavoin. Porin korkeakouluyksikkö
Tietokantakerroksen malli • Tietokannassa äärellinen joukko komponentteja • Kaksi funktiota resolver ja accessor, jotka huolektivat komponentin “hakemisesta” tietokannasta. • Komponentti = atomi, linkki, tai komposiitti (joukko komponentteja) • Jokaisella komponentilla on globaali yksikäsitteinen tunniste UID. • Component_Data := Accessor(UID) palauttaa UID:ssa määritellyn komponentin. Porin korkeakouluyksikkö
Tietokantakerroksen malli jatk. • Aina ei voida hakea komponenttia UID:n perusteella. • Tehdään linkki kaikkiin matriisi-sanoihin. • Tällöin linkki pitää dynaamisesti luoda resolver-funktion avulla. • UID := Resolver(component specification) • Component specification voi olla esim. hakusana, yleisemmin komponentin attribuutti • Resolver ei aina palauta mitään UID:tä • Resolver on identiteettifuntio, jos komponentti spesifioidaan UID:n avulla. Porin korkeakouluyksikkö
Rajapinnat • Ankkuri muodostuu ankkurin tunnisteesta ja ankkurin arvosta (anchor id, anchor value) • Ankkurin arvo määrittelee sijainnin (merkki-data), alueen (kuva-data), tai elementin komponentin sisäisessä rakenteessa. • Ankkurin arvo on merkityksellinen vain komponettikerroksen sovelluksille • Dokumenttia editoitaessa ja ankkurin sijainnin muuttuessa (value) tunniste (id) pysyy kuitenkin samana Porin korkeakouluyksikkö
Specifier • Specifier koostuu komponenttispesifikaatiosta, ankkuri id:stä, linkun suunnan määräävästä kentästä ja esitysspesifikaatioista. • Se määrittelee komponentin sisällä linkin paikan. • Linkki muodostuu nyt kahdesta tai useammasta speciefier-elementistä. • Mahdollistaa moninkertaiset linkit • Linkin suunta: TO, FROM, BIDIRECTIONAL, NONE Porin korkeakouluyksikkö
Component_Info Attributes Presentation_Specifications Anchors Value ID #1 Content Tämän komponentin sisältö ja tässä on linkkiankkuri. Specifier Component_Spec #3346 Anchor_ID #1 Direction: FROM Presentation_Specifications Specifier Component_Spec #4112 Anchor_ID #1 Direction: TO Presentation_Specifications Component_Info Attributes Presentation_Specifications Anchors Value ID #1 Content Tässä on sisältöä ja tässä. Atomi #332 Atomi #409 tekstiä Linkin abstraktio Dexterin mallissa Atom #3346 Composite #4112 ‘resolves to’ Link #9981 ‘resolves to’ Porin korkeakouluyksikkö
Edellisen esimerkin abstraktio <hypertext> <component> <type>text</type> <uid>3346</uid> <data>Tämän komponentin sisältö ja linkkiankkuri</data> <anchor> <id>#1</id> <location>d13</location> </anchor> </component> Porin korkeakouluyksikkö
Esim. jatkuu <component> <type>text</type> <uid>4112</uid> <data>Tämän komponentin sisältö ja linkkiankkuri</data> <anchor> <id>#1</id> <location>d13-19</location> </anchor> </component> Porin korkeakouluyksikkö
Esim. jatkuu <component> <type>link</type> <uid>9981</uid> <specifier> <component_uid>3346</component_uid> <anchor_id>#1</anchor_id> <direction>FROM</direction> </specifier> <specifier> <component_uid>4112</component_uid> <anchor_id>#1</anchor_id> <direction>TO</direction> </specifier></component></hypertext> Porin korkeakouluyksikkö
Tietokantatason operaatiot • CreateComponent, CreateAtomicComponent, CreateLinkComponent, CreateNewComponent • DeleteComponent, ModifyComponent • GetComponent kutsuu accessor-funktiota ja palauttaa komponentin (saa parametrikseen komponentin UID:n) • AttributeValue, SetAttributeValue, AllAttributes • LinksToAnchor: Palauttaa joukon linkkejä, jotka viittaavat ankkuriin • LinksTo: Palauttaa niiden linkkikomponenttien UID:t, jotka osoittavat parametrina saatuun komponenttiin Porin korkeakouluyksikkö
Ajoaikaisen kerroksen operaatiot • openSession, openComponents, closeSession • presentComponent, deleteComponent, newComponent • followLink • unPresent, editInstantiation, realizeEdits Porin korkeakouluyksikkö
Mihin malleja tarvitaan • Uusien hypermediasovellusten suunnitteluun • Vanhojen hypermediasovellusten arviointiin • Hypermedian standardointiin • Standardoidaan data (solmut, linkit) • Standardoidaan HAM-kerros • Esimerkki: HyTime Porin korkeakouluyksikkö