AKTIIVISET PALVELINSIVUT
Aktiiviset palvelinsivut (Active Server Pages, ASP) on Microsoftin kehittämä skriptikielinen ympäristö, jota voidaan käyttää dynaamisten, interaktiivisten ja tehokkaiden Internet -sovellusten luontiin ja ajamiseen. Merkittävin uudistus perinteisiin tekniikoihin verrattuna on se, että ASP:tä käytettäessä HTML (Hyper Text Markup Language) -kielen seassa olevat skriptikieliset osuudet suoritetaankin palvelimella eikä asiakassovelluksina käyttäjän selaimessa kuten normaalisti. Kun skriptiosuus on suoritettu, lähetetään tuloksena saatu HTML-koodi käyttäjän selaimeen. Näin ASP:n ansiosta ei tarvitse kiinnittää huomiota esimerkiksi siihen tukeeko selain skriptin suorittamiseksi tarvittavaa skriptikieltä vai ei. Toisaalta sivut voidaan myös haluttaessa räätälöidä "lennossa" eri selaimiin soveltuviksi.
ASP on osa Microsoftin laajempaa konseptia nimeltä Active Platform, jota se on kehittänyt Windows NT Serverin ja Internet Information Serverin (IIS) mukana. Active Platform on puolestaan osa Microsoftin Internet-strategiaa sellaisten tuotteiden ja palveluiden aikaansaamiseksi, joilla pystytään integroimaan tällä hetkellä vielä erilliset osakokonaisuudet yhdeksi tehokkaammaksi käyttöympäristöksi. Nykyäänhän esimerkiksi melkein jokaisen pöydällä seisova tietokone ja siinä olevat sovellukset muodostavat oman käyttöympäristönsä ja Internet omansa.
ASP:n käyttö ei millään tavalla rajoita jo käytössä olevia ja opittuja ominaisuuksia WWW-sivujen luomisessa. Esimerkiksi ActiveX-komponentteja voidaan käyttää entiseen tapaan. Täten myös perustietämys HTML-kielestä riittää ASP:n hyödyntämiseen. Lisäksi on syytä hallita perusteet jostain skriptikielestä.
ASP-tekniikan hyödyntäminen
ASP-tekniikka hyödyntää Internet Server Application Programming Interface (ISAPI) -teknologiaa, jolloin perinteiset suuresti suorituskykyä vaativat ja vaikeasti toteutettavat tekniikat, kuten Common Gateway Interface (CGI)(1), jäävät vanhentuneiksi. Lisäksi ASP:n etuna on ActiveX tieto-objektien (ActiveX Data Objects, ADO) käyttö, jolloin saadaan tehokas liittymä Open Database Connectivity (ODBC) -yhteensopiviin tietokantoihin. ADO tarjoaa siis nopean ja helposti käytettävän ohjelmoitavan liittymän erilaisiin tietolähteisiin kuten juuri tietokantoihin.
Fedorovin & al. (1998) mukaan yksittäinen aktiivinen palvelinsivu eli Active Server Page on yksinkertaisesti tiedosto, joka on .asp päätteinen ja voi sisältää sekä HTML-lauseita että skriptikielisiä osuuksia. IIS:n saadessa ASP-tiedoston Hyper Text Transfer Protocol (HTTP)(2) -pyynnön, vastaus muodostetaan dynaamisesti tavallisesta HTML-kielestä sekä skriptiosuuksien tuloksista muodostetuista HTML-lauseista. WWW-sivun osoitetta kirjoitettaessa tulee siis viitata ASP-tiedostoon, esimerkiksi "http://www.activeserverpages.com/learn/dbg.asp", aivan kuten CGI-ohjelmien (.exe) ja ISAPI-standardin (.dll) yhteydessä.
Asiakas- ja palvelinskriptit ja niiden luominen
Skriptiosuudet voidaan sijoittaa HTML-sivulle <SCRIPT> ... </SCRIPT> -määreiden väliin. Käytettävän kielen määrittelemiseksi hyödynnetään LANGUAGE-attribuuttia:
<SCRIPT LANGUAGE="JavaScript">
JavaScript-lauseet
</SCRIPT>
<SCRIPT LANGUAGE="VBScript"> *
VBScript-lauseet
</SCRIPT>
*(HUOM! Tätä ei tarvitse välttämättä määritellä, sillä VBScript on oletusarvoisesti käytettävä skriptikieli)
Edellä oleva esimerkki on tyypillistä asiakasskriptiä, joka suoritetaan käyttäjän selaimessa. ASP kuitenkin hyödyntää palvelinskriptejä luodakseen dynaamisesti HTML-vastauksen. Palvelinskriptiosuudet voidaan sijoittaa joko <% ... %> -erotinmerkkien tai <SCRIPT> ... </SCRIPT> -määreiden väliin. Jälkimmäisessä tapauksessa olisi hyvä sisällyttää lisäksi RUNAT="SERVER"-lisäys erottamaan asiakas- ja palvelinskriptit toisistaan:
<SCRIPT LANGUAGE="VBScript" RUNAT="SERVER">
VBScript-palvelinskriptilauseet
</SCRIPT>
<% VBScript-palvelinskriptilauseet %>
Koska palvelinskriptiosuudet suoritetaan palvelimella, asettaa tämä tiettyjä rajoituksia asioille joita niissä voidaan toteuttaa. On selvää, että esimerkiksi MsgBox- ja InputBox-metodeja ei voida käyttää, koska eri puolilla maailmaa sivua käyttävät ihmiset eivät voi ilmestyä palvelinhuoneeseen hyväksymään käsiteltävää tapahtumaa OK-nappia painamalla. Täten nämä ja eräät muut toiminnot eivät ole tuettuja ASP:ssä vaikka skriptikielet ne hyväksyisivätkin.
ASP:n skriptien ominaisuudet
Aikaisemmasta tiedämme, että ASP käyttää <% ... %> -erotinmerkintöjä skriptikomentojensa erottamiseen tavallisesta tekstistä ja HTML:n <...> -määrityksistä. Näin esimerkiksi komento <% elain = "kissa" %> sijoittaa arvon kissa muuttujaan elain. Muuttujien arvojen tulostukseen on käytössä puolestaan <%= ... %> -määrittely. Täten edellisen esimerkin mukaisesti komento <%= elain %> lähettäisi arvon kissa käyttäjän selaimeen. Näitä kahta esiteltyä perusmäärittelytapaa käyttäen on mahdollista hyödyntää mitä tahansa komentoja, jotka ovat ASP:n hyväksymän skriptikielen mukaisia.
ASP sallii normaalin HTML-tekstin sijoittelun osaksi skriptikomennoista muodostuvaa rakennetta. Esimerkiksi rakenteessa
<% If ... Then %>
Hello!
<% Else %>
Hey!
<% End If %>
tuotetaan tervehdys "Hello!" mikäli ensimmäinen ehto toteutuu ja "Hey!" muussa tapauksessa. Sama tulos saataisiin myös normaalisti muuttujia hyväksikäyttäen. Yksi tehokkaimmista ja joustavimmista ominaisuuksista ASP:ssä on, että sitä pystytään käyttämään myös asiakasskriptien luontiin, jotka sitten prosessoidaan käyttäjän selaimessa. Tämä ominaisuus saadaan aikaan yhdistämällä asiakasskriptejä palvelinskriptien kanssa:
<SCRIPT LANGUAGE="VBScript">
<!- -
asiakasskriptiä
<% palvelinskriptiä %>
asiakasskriptiä
<% palvelinskriptiä %>
. . . . .
- ->
</SCRIPT>
Ominaisuuden avulla voidaan esimerkiksi luoda sovellus, joka luo tietokannasta luetulle tiedolle tiettyjä alirutiineja. Nämä rutiinit sitten ohjaavat toimintaa sen mukaan mitä linkkejä käyttäjä selaimellaan valitsee. Sovelluksessa siis luotaisiin asiakasskripti, joka saadaan aikaan palvelinskriptien suorittamista tietokantakyselyistä ja asiakasskriptien suorittamista käyttäjän toimien kyselyistä.
Silmäys ASP:n sisäänrakennettuihin objekteihin
Fedorovin & al. (1998) mukaan ASP sisältää nykyisin kuusi objektia, joita voidaan käyttää suoraan skriptiosuuksissa. Nämä ns. sisäänrakennetut objektit (built-in objects) ja niiden tehtävät ilmenevät seuraavasta taulukosta.
|
Objekti |
Tehtävä |
|
Request (Kysyntä) -objekti |
Tiedon saaminen käyttäjältä |
|
Response (Vastaus) -objekti |
Tiedon lähettäminen käyttäjälle |
|
Server (Palvelin) -objekti |
ASP:n suoritusympäristön hallinta |
|
Session (Istunto) -objekti |
Tiedon varastointi käyttäjän istunnosta |
|
Application (Sovellus) -objekti |
Tiedon jakaminen sovelluksen käyttäjien kesken |
|
ObjectContext (Yhteys) -objekti (ASP v2.0) |
MTS:n toimintaan vaikuttaminen |
Taulukko 1. ASP:n sisäänrakennetut objektit ja niiden tehtävät.
ASP-tekniikan keskeisimpiä käsitteitä ovat sovellus ja istunto (Talvitie 1997) ja siten tärkeimpiä sisäänrakennetuista objekteista ovat juuri vastaavat objektit. Sovellus ei tarkoita ASP:n yhteydessä perinteistä suoritettavaa ohjelmistoa vaan tiettyä sivukokonaisuutta, joka alkaa kotihakemiston oletusdokumentista jatkuen hakemistohierarkiassa alapuolisten hierarkiatasojen (mikäli niitä on) sisältämiin dokumentteihin. Kun käyttäjä hakee minkä tahansa tähän hierarkiaan kuuluvan sivun ensimmäistä kertaa, aloitetaan uusi istunto. Silloin IIS luo automaattisesti uuden Session-objektin.
Koska Internetiä käytettäessä palvelua ei koskaan varsinaisesti lopeteta on istunnon päättymisen määritteleminen hankalampaa. Lisäksi Web-palvelin ja käyttäjän selain eivät koskaan ole aktiivisesti yhteydessä toisiinsa, mikä aiheuttaa sen että palvelin ei voi tietää pyydetyn sivun siirron jälkeen onko käyttäjä enää ollenkaan kyseisen palvelun parissa. Palvelimen kannalta ainoaksi keinoksi jää siis käyttäjän passiivisuuden tason tarkkailu.
ASP:n kannalta istunto voi päättyä kahdella tavalla. Ensimmäisessä käyttäjä erityisesti pyytää aktiivista istuntoa lopetettavaksi. Kyseeseen voisi tulla esimerkiksi sivu, jonka käyttäjät ovat rekisteröityneet ja josta poistutaan jonkin erillisen toiminnon kautta. Toinen tapa on olennaisesti epämääräisempi, koska istunto päätetään tietyn mittaisen joutenolon jälkeen. Jos käyttäjä ei ole tehnyt mitään 20 minuuttiin, joka on ASP:n oletus istunnon katkaisemiselle, istunto tuhoutuu.
ASP:n objektien käytön perusteet
Yleisesti ottaen objekteja kyetään käyttämään skriptistä käsin metodien (methods) ja ominaisuuksien (properties) avulla. Lisäksi objektien käyttöön liittyy läheisesti tapahtumat (events).
Metodi on osuus toimintoja, jotka vaikuttavat objektiin ja jotka voidaan suorittaa sisäisesti kohdistuen objektin kapseloituun (encapsulated) tietoon. Metodin syntaksi on seuraava (Microsoft 1996):
Object.Method(parameters)
jossa Object-osa ilmaisee objektin nimen ja Method-osa puolestaan metodin nimen. Parameters sisältää parametrien nimet, jotka voivat olla joko muuttujia, konkreettisia arvoja, merkkijonoja tai Uniform Resource Locator- eli URL-osoite riippuen itse metodista.
Ominaisuus on objektin nimetty attribuutti. Ominaisuudet edustavat tietoa, joka on kapseloitu objektin sisään. Niiden tehtävänä on määritellä objektin ominaispiirteet kuten koko ja väri. Toisaalta ominaisuudet voivat määritellä myös objektin tilan kuten esimerkiksi on voimassa (enabled) tai ei ole voimassa (disabled). Ominaisuuden yleinen syntaksi on seuraavassa:
Object.Property(parameters)
jossa Property-osa ilmaisee ominaisuuden nimen. Parameters-osassa annetut parametrit voivat olla ominaisuudesta riippuen joko arvoja, merkkijonoja tai ns. lippu, jolla tyypillisesti määritellään onko ominaisuus voimassa vai ei.
Tapahtumat ovat signaaleja, jotka laukaistaan kun jokin tietty toiminta tai tila esiintyy. On huomattava, että nämä signaalit huomataan kyseessä olevan objektin ulkopuolelta. Esimerkkeinä tapahtumista mainittakoon Session-objektin tapahtumat onStart ja onEnd, joista ensimmäinen laukaistaan aina istunnon alkaessa ja jälkimmäinen puolestaan istunnon päättyessä.
(1) CGI on standardi tekniikka ulkoisten ohjelmien ajamista varten Web-palvelimelta (Anderson & al. 1998).
(2) HTTP on Internetin pääasiallisin tiedonsiirtoprotokolla, ja se perustuu tiukasti asiakas/palvelin-malliin. Tyypillinen HTTP-palvelin odottaa asiakkaan tiedostopyyntöjä, paikallistaa pyydetyn resurssin, soveltaa pyydettyä toimenpidettä ko. resurssiin ja lähettää vastauksen takaisin asiakkaalle (Anderson & al. 1998).
VIITELUETTELO
Anderson K. & al.: Web-Based Development of Complex Information Products. Communications of the ACM,
#8: 84-92, August 1998.
Fedorov A. & al.: Professional Active Server Pages 2.0. Wrox Press Ltd, 1998.
Levy M.: Web Programming in Guide. Software - Practise & Experience, #15: 1581-1603, December 1998.
Microsoft Corporation: Microsoft Active Server Pages. Internet WWW-sivu, URL: http://iis3.activeserverpages.com/iasdocs/aspdocs/roadmap.asp (15.6.1998).
Talvitie H.: Web-palvelu ASP:llä. MikroPC, #9: 85-86, Syyskuu 1997.