fbpx

Viestinvälitys Microsoft Azure Service Bus -ominaisuudella

Microsoftin Azure Service Bus tarjoaa useita tapoja viestien välittämiseen suojatusti internet-yhteyden yli. Eri viestinvälitystapoja voidaan hyödyntää monella tavalla esimerkiksi yrityksen eri toimipisteiden tai järjestelmien välillä. Viestejä voidaan välittää jonojen (Queue), aiheiden (Topic) tai suoran yhteyden (Relay) kautta. Palvelun käyttöönotto on nopeaa ja yksikertaista ja sitä voidaan hyödyntää eri alustoille toteutetuissa järjestelmissä.

Azure Service Busin käyttöönotto

Azure Service Bus -ominaisuuden käyttöönottoa varten täytyy luoda uusi resurssi Azure-tilaukseen. Uuden Service Bus -resurssin luonnin yhteydessä annetaan yksilöllinen namespace-arvo, jota käytetään yhteyden muodostamisessa. Resurssin luonnin jälkeen on vielä määritettävä käyttöoikeudet.

Käyttöoikeuksien määrittäminen

Azure Service Bus namespaceen annetaan käyttöoikeudet Shared Access Signature (SAS) säännöillä. Oikeudet määritellään kohdassa Shared access policies, Service Bus -resurssin asetukissa. Käyttöoikeuksia on mahdollista antaa kolmea erilaista: hallinta, kuuntelu ja lähetys. Lähettävälle taholle riittää pelkkä lähetysoikeus ja puolestaan vastaanottavalle palvelulle kuunteluoikeus. Hallintaoikeus tarvitaan vain, jos halutaan tehdä toimintaan vaikuttavia muutoksia.

Viestien välittäminen jonojen (Queue) kautta

Viestejä voidaan välittää jonojen kautta. Azure Service Busin Queue-ominaisuus mahdollistaa usean viestijonon käyttämisen, johon voidaan lähettää ja josta voidaan lukea viestejä. Jonoja voidaan käyttää viestien välittämiseen, joita ei tarvitse reaaliaikaisesti välittää lähteestä kohteeseen. Lähdejärjestelmä ottaa yhteyden jonoon ja lähettää viestin. Viesti tallentuu Azuressa olevaan jonoon. Kohdejärjestelmä lukee viestin, jolloin se poistuu jonosta.

Käyttötapaus

Julkisessa verkossa olevasta järjestelmästä tallentuu uusi tilaus, joka lähetetään Azure Service Bus -jonoon. Yrityksen sisäverkossa oleva järjestelmä tarkistaa ennalta määritetyin väliajoin jonossa olevat tilaukset ja ottaa ne käsittelyyn. Samalla viestit poistetaan jonosta.

Viestien välittäminen aiheiden (Topic) kautta

Toinen tapa välittää viestejä on aiheiden (Topic) kautta. Tällöin samaa viestiketjua kuuntelee useampi kohdejärjestelmä. Kun aiheeseen välitetään uusi viesti, niin se välittyy kaikille kohdejärjestelmille, jotka kuuntelevat kohdetta. Ominaisuutta voidaan hyödyntää esimerkiksi, kun sama viesti halutaan välittää samanaikaisesti useaan kohdejärjestelmään.

Käyttötapaus

Yrityksellä on usea toimipiste, joissa olevien järjestelmien välillä on tarvetta siirtää tietoja. Yhdessä toimipisteessä oleva järjestelmä lähettää viestin Azure Service Bus aiheena. Samaa aihetta kuuntelevat järjestelmät muissa yrityksen toimipisteissä vastaanottavat viestin samanaikaisesti.

Suoran viestiyhteyden (Relay) hyödyntäminen

Suora viestiyhteys (Relay) mahdollistaa eri ympäristöissä toimivien rajapintojen käyttämisen internet -yhteyden yli, jos rajapintojen välille ei ole mahdollista muutoin muodostaa suoraa yhteyttä. Kohdeympäristössä oleva rajapinta asetetaan muodostamaan yhteys Azuressa olevaan Service Bus namespaceen, jolloin rajapinta tulee namespaceen näkyviin. Rajapinta kuuntelee Azure Service Bus namespace -yhteyttä ja vastaanottaa viestit sen kautta. Kun rajapintaa halutaan kutsua, niin viestit lähetetään Azure Service Bus namespacessa olevaan endpoint-osoitteeseen, jonka kautta viestit välittyvät kohderajapintaan.

Käyttötapaus

Yrityksen sisäverkossa olevaa rajapintaa on tarvetta käyttää toisesta järjestelmästä, joka sijaitsee yrityksen sisäverkon ulkopuolella. Sisäverkon rajapintaan lisätään uusi endpoint-määritys, joka yhdistää rajapinnan kuuntelemaan Azure Service Bus namespacea. Lähettävä järjestelmä puolestaan muutetaan lähettämään viesti Azure Service Bus namespacessa olevaan endpointtiin. Viestit välittyvät Azure Service Bus -yhteyden läpi.

Muut ominaisuudet

Microsoft Azure Service Bus tarjoaa monipuoliset viestinvälitysmahdollisuudet erilaisten integraatioiden tekemiseen. Edelle esiteltyjen eri viestinvälitystapojen lisäksi Azure Service Bus sisältää muita ominaisuuksia esim. epäonnistuneiden viestien hallintaan. Lisää tietoa eri ominaisuuksista löytyy Azure Bus -dokumentaatiosta.

 

Kirjoittaja Mikko Sallinen on T-Basen konsultti, joka on työssään käyttänyt runsaasti Azure Service Bus -viestinvälitystä.