Olisi hienoa, jos mahdollisimman moni keväällä 2017 tehdyistä Ohjelmallisen sisällönhallinnan harjoitustöistä olisi nimenomaan koostepalvelu.
Alkuvaiheessa ohjelmalliseen sisällönhallintaan liittyvä tekeminen painottuu yksittäisten järjestelmien arkkitehtuurin ja vuorovaikutuksen toteuttamiseen.
Kuitenkin vieläkin mielenkiintoisempaa on tarkastelun yleistäminen järjestelmien väliseen toiminnallisuuteen.
Ajatus hypermediasta sovelluksen tilan koneena
(hypermedia as the engine of application state
(Fielding, 2000)) liittyy vahvasti tähän.
Koostepalvelut esittelevät tavan luoda uusia palveluja olemassa olevia tietosisältöjä ja komponentteja yhdistelemällä.
Huomaathan, että luentomateriaali on nyt osin lähdemateriaalin varassa. Varmista, että osaat tarvittaessa kuvata avoimen yhdistetyn datan ja REST-mallin perusajatuksen sekä antaa periaatteellisen kuvauksen REST-mallin mukaisesti toimivasta järjestelmästä.
LinkedData is to spreadsheets and databases what the Web of hypertext documents is to word processor files. (esw.w3.org/LinkedData)
- Use URIs as names for things
- Use HTTP URIs so that people can look up those names.
- When someone looks up a URI, provide useful information.
- Include links to other URIs. so that they can discover more things.
Yhdistetty julkinen data on hyvin ajankohtainen asia myös Suomessa:
Koostepalvelut esittelevät tavan luoda uusia toiminnallisuuksia olemassa olevista resursseista koostamalla
Koostepalvelut (mash-up) muodostavat olennaisen osan nykyaikaista Web-palvelutarjontaa:
Koostepalvelujen taustalla lymyävät informaation visualisoinnin perusajatukset. Resursseja voidaan koostaa esimerkiksi RESTful-periaatteen mukaisesti toimivista palveluista.
Myös koostepalvelujen tapauksessa kielenkäyttö on usein värikästä. Mash-up -sanalle on esitetty useita käännöksiä:
Käännös survos kuvaisi hyvin koostepalvelun perimmäistä luonnetta:
Käsitteen jalkauttaminen on kuitenkin haastavaa eikä sen tulkinta ole välttämättä ilmeinen kaikille.
Koostepalvelut viittaavat tapaan toteuttaa verkkopalvelujen toiminnallisuuksia olemassa olevia resursseja koostamalla.
Yleistymässä olevan näkemyksen mukaan koostamista tapahtuu kolmella tasolla (vrt. Yu, Benatallah, Casati ja Daniel, 2008):
Ensimmäiset koostepalvelut poimivat joukon dataa palvelusta X ja latoivat tiedot näkyviin erityisesti kartalle. Suomalainen Hälytykset kartalla oli eräs kotimaisista edelläkävijoistä.
Koostepalveluiden kehitystyön löytyy tukku kilpailevia kehitysympäristöjä:
Lähestymistavat poikkeavat rajusti eri vaihtoehtojen välillä. Erityisesti Intel Mash Makerin esittelemä toimintatapa tiedon suodattamiseen ja yhdistelemiseen on perehtymisen arvoinen, kuten myös putkilinjojen perusidea.
Taannoisessa MADS-seminaarissa järjestelmien keskeiseksi haasteeksi todettiin niiden keskeneräisyys ja joustamattomuus: triviaalit asiat onnistuvat, mutta aidot haasteet muodostuvat ylivoimaisiksi ja luovuus on rajattua.
Käydään seuraavaksi läpi erään koostepalvelun toteutuksen ydinkohtia
Sujuvoitetaan YouTube-videoiden hakemista yksinkertaisella koostepalvelulla:
Poimintoja toteutuksesta:
iTunes tukee soittolistojen vientiä XML-muodossa:
<key>Tracks</key> <dict> <key>6384</key> <dict> <key>Track ID</key><integer>6384</integer> <key>Name</key><string>Ore D'Amore</string> <key>Artist</key><string>Mondo Cane</string> <key>Album Artist</key><string>Mondo Cane</string> <key>Album</key><string>Mondo Cane @ Salsomaggiore, 2007/05/26</string> <key>Genre</key><string>Italian 60's</string> <key>Kind</key><string>MPEG audio file</string> <key>Size</key><integer>4169280</integer> <key>Total Time</key><integer>162429</integer> <key>Track Number</key><integer>3</integer> <key>Year</key><integer>2007</integer> <key>Date Modified</key><date>2008-07-21T12:01:01Z</date> <key>Date Added</key><date>2008-07-21T11:36:00Z</date> <key>Bit Rate</key><integer>192</integer> <key>Sample Rate</key><integer>44100</integer> <key>Play Count</key><integer>8</integer> <key>Play Date</key><integer>3308737172</integer> <key>Play Date UTC</key><date>2008-11-05T11:39:32Z</date> <key>Album Rating</key><integer>100</integer> <key>Album Rating Computed</key><true/> <key>Artwork Count</key><integer>2</integer> <key>Persistent ID</key><string>4676EDED9FE35AD5</string> <key>Track Type</key><string>File</string> <key>Location</key><string>file://localhost/Users/username/Music/iTunes/iTunes%20Music/Mondo%20Cane/Mondo%20Cane%20@%20Salsomaggiore,%202007_05_26/03%20Ore%20D'Amore.mp3</string> <key>File Folder Count</key><integer>4</integer> <key>Library Folder Count</key><integer>1</integer> </dict>
iTunes-soittolistasta voidaan tuottaa yleinen esitys soittolistan sisällöstä.
<?xml version="1.0" encoding="utf-8"?> <tracklist> <track id="4676EDED9FE35AD5"> <name>Ore D'Amore</name> <album> <name>Mondo Cane @ Salsomaggiore, 2007/05/26</name> </album> <artist> <name>Mondo Cane</name> </artist> </track> <!-- Muut kappaleet --> </tracklist>
Kappaleista on nyt kerätty minimitiedot: alkuperäisessä datassa olisi enemmänkin hyödynnettävää.
<?xml version="1.0" encoding="utf-8"?> <lfm status="ok"> <artist> <name>Mondo Cane</name> <mbid>8a5f6d61-0dfe-48e8-9cd6-ba0eaf9cfe67</mbid> <url>http://www.last.fm/music/Mondo+Cane</url> <image size="small">http://userserve-ak.last.fm/serve/34/2167334.jpg</image> <image size="medium">http://userserve-ak.last.fm/serve/64/2167334.jpg</image> <image size="large">http://userserve-ak.last.fm/serve/126/2167334.jpg</image> <streamable>1</streamable> <stats> <listeners>2413</listeners> <playcount>34382</playcount> </stats> <similar> <artist> <name>Mike Patton</name> <url>http://www.last.fm/music/Mike+Patton</url> <image size="small">http://userserve-ak.last.fm/serve/34/232922.jpg</image> <image size="medium">http://userserve-ak.last.fm/serve/64/232922.jpg></image> <image size="large">http://userserve-ak.last.fm/serve/126/232922.jpg</image> </artist> <!-- Loput vastaavat esittäjät --> </similar> <bio> <published>Sat, 28 Mar 2009 08:22:40 +0000</published> <summary><![CDATA[Mondo Cane is an upcoming album by Mike Patton. ... <!-- Lisää elämänkerrallisia tietoja --> </bio> </artist></lfm>
Soittolistan tiedot ovat nyt kasassa ja esitettävissä XML-muodossa:
<?xml version="1.0" ?> <playlist> <title>Mondo Cane :: Mondo Cane @ Salsomaggiore, 2007/05/26</title> <description>From last.fm: Mondo Cane is an upcoming album by Mike Patton. It will be cover versions of 1950s and 1960s Italian pop music, performed by Mike Patton with an orchestra of about 65 people. The album was originally planned for release in summer 2008, but was first pushed back to "early '09" and then to November 2009. </description> <image href="http://userserve-ak.last.fm/serve/126/2167334.jpg"/> <itemlist> <item id="4676EDED9FE35AD5"> <searchterm>Ore D'Amore</searchterm> </item> <!-- Loput soittolistan alkiot --> </itemlist> </playlist>
Koostetaan lopuksi videokoosteen toteuttava HTML/Javascript/Ajax-survos (parempi vaihtoehto: yleiskäyttöinen koostesoitin ja JSON-muotoiset videolistat):
<script type="text/javascript"> function LoadVideoBar() { var videoBar; var options = { largeResultSet : !true, horizontal : true, autoExecuteList : { cycleTime : GSvideoBar.CYCLE_TIME_MEDIUM, cycleMode : GSvideoBar.CYCLE_MODE_LINEAR, executeList : [" Mondo Cane :: Mondo Cane @ Salsomaggiore, 2007/05/26", ] } } videoBar = new GSvideoBar( document.getElementById("videoBar-default"), document.getElementById( "player"), options); options = { largeResultSet : !true, horizontal : true, master : videoBar, autoExecuteList : { cycleTime : GSvideoBar.CYCLE_TIME_MEDIUM, cycleMode : GSvideoBar.CYCLE_MODE_LINEAR, executeList : ["Ore D'Amore", ] } } new GSvideoBar( document.getElementById("videoBar-4676EDED9FE35AD5"), document.getElementById( "player"), options); // Loput videot </script>
Koostepalvelut esittelevät nykyaikaisen tavan toteuttaa informaation visualisointia
Koostepalveluiden kehittämistä voidaan lähestyä informaation visualisoinnin periaattein:
Esimerkkejä informaation visualisoinnista esittelevät visual complexity, d3.js, Sigma.js ja Lissu Liikenteenseuranta.
Kuvalähde: (Card ja muut, 1999; Miksch, 2005)
On yhteenvedon aika
Ajatuksia koostepalveluista:
Arkirealismia: suuri osa (valtaosa?) Web-sisältöjen jakelijoista ei halua tukea palvelunsa sisällön helppoa uudelleenkäyttöä. Pelkona on, että palvelun käyttäjät menevät sisältöjen mukana ja vievät mainostulot mennessään.
=> Oma Data (vrt. Antti Poikolan vierailuluento).