Microsoft 365 Office Onlinen integroiminen selainpohjaiseen pilvitallennusalustaan 

 

 

Asiantuntijablogi

Heinäkuu 2022
Niilo Liimatainen
Software Developer

Tausta

Vertex-urani alkoi toukokuussa 2021. Alusta asti oli selvää, että työsuhde tulisi jatkumaan kesän jälkeen osa-aikaisena opintojen ohella, joita minulla oli vasta kaksi vuotta takana. Kandidaatintyö oli siis tulossa ajankohtaiseksi seuraavalla lukukaudella. Mahdollisuus toteuttaa kandidaatintyö Vertexille nousi esiin jo työhaastattelussa, mikä olikin yksi houkuttelevista tekijöistä, joiden johdosta lopulta päädyin Vertexille.

Kandidaatintyön varsinainen aloitus ajoittui tammikuuhun 2022. Aihetta aloimme kuitenkin jo pohtimaan hyvissä ajoin edeltävänä syksynä. Saimme koulun puolelta täysin vapaat kädet aiheen valintaan, kunhan se vain pysyi ohjelmistotuotannon rajoissa. Olin ollut työsuhteeni alusta asti kehittämässä Vertexin uutta pilvipalvelusovellusta nimeltään Vertex Sync. Oli siis luonnollista, että kandidaatintyönikin liittyisi siihen. Pääkriteerinä aiheen valinnassa oli, että se ratkaisi jonkun konkreettisen ongelman Vertex Syncissä eikä siis olisi pelkää teoriaa. Aihe löytyikin melko nopeasti ja sen lopulliseksi työnimeksi tuli ”Microsoft 365 Office Onlinen integroiminen selainpohjaiseen pilvitallennusalustaan”.

 

Lyhyt katsaus teoriaan

Tähän asti Vertex Syncissä ei ole ollut mahdollisuutta käsitellä Microsoft 365 -tuoteperheen tiedostoja. Pelkästään tiedoston avaamiseen tarvittiin Microsoftin tarjoamaa natiivisovellusta, joka johti siihen, että tiedostoa piti liikutella edestakaisin Vertex Syncin ja käyttäjän laitteen välillä. Käyttäjän kannalta kyseessä ei siis ollut kovin intuitiivinen prosessi. Työn otsikon mukaisesti kandidaatintyössäni lähdettiin ratkaisemaan tätä ongelmaa integroimalla Microsoftin tarjoama Office Online Vertex Synciin. Office Online on selainpohjainen editori, joka tarjoaa verkkoversiot Microsoft 365 -tuoteperheen sovelluksista, kuten Wordista ja Powerpointista. Microsoft tarjoaa sitä integroitavaksi itsenäisten ohjelmistotuottajien omiin tuotteisiin Cloud Storage Partner -ohjelman kautta.

Integraatio hyödyntää Microsoftin patentoimaa WOPI (Web Application Open Platform Interface) -protokollaa. Yksinkertaistettuna WOPI-protokolla on kommunikaatiokäytäntö, jossa tiedostoja käsitellään REST-rajapintojen kautta. Kuvasta 1 nähdään protokollaan liittyvät pääkomponentit, jotka ovat WOPI-asiakas, WOPI-isäntä ja käyttöliittymä.

 

Kuva 1. WOPI-protokollan komponentit

WOPI-asiakas on näistä ainoa Microsoftin ylläpitämä komponentti, joka ohjaa eri operaatioiden suoritusta ja tarjoaa Office Onlinen Vertex Synciin. Muut protokollan toimintaan liittyvistä komponenteista kuuluu Vertex Synciin, joista tämän työn kannalta olennaisimpana voidaan pitää WOPI-isäntää. Se on mikropalvelu, joka toteuttaa WOPI-protokollassa tarkoin määritellyn REST-rajapinnan. Toisin sanoen se siis tarjoaa kaiken tiedostojen käsittelyyn liittyvän toiminnallisuuden Office Onlineen. WOPI-isännän lisäksi tässä työssä tuli toteuttaa Vertex Syncin käyttöliittymään Iframe-kehys, jonka sisälle Office Online pystytään upottamaan. Näin käyttäjää ei tarvitse uudelleenohjata Microsoftin ylläpitämille sivuille vaan kaikki toiminnallisuus on saatavilla Vertex Syncin sisällä.

Kommunikaatio WOPI-protokollassa toimii siis yksinkertaisesti REST-rajapinnan mukaisesti. Jokainen operaatio aktivoidaan aina Vertex Syncin päästä kutsumalla WOPI-asiakkaan aktivointipäätepistettä. Kun WOPI-asiakas vastaanottaa pyynnön, suorittaa se kyseisen operaation käyttämällä WOPI-isäntään implementoitua REST-rajapintaa. Kuvan 2 sekvenssikaaviosta nähdään yksinkertainen esimerkki tästä prosessista, kun operaationa on tiedoston avaaminen.  

Kuva 2. Tiedoston avaaminen WOPI-protokollassa

Tulevaisuus

Cloud Storage Partner -ohjelman hakuprosessin rajoitteiden ja pituuden takia pystyttiin tässä kandidaatintyössä toteuttamaan vain prototyyppi integraatiosta. Tätä blogia kirjoittaessa Vertex on juuri hyväksytty ohjelmaan mukaan ja integraation varsinainen kehitys voi alkaa. Tulevaisuudessa Office Online siis tullaan mahdollisesti näkemään Vertex Syncin ominaisuutena ja näin ollen tarjoamaan käyttäjille mahdollisuuden käsitellä Microsoft 365 -tiedostoja.