Ohjelmisto on jaettu useaan OSGi bundleen. Bundlet ovat karkeasti jaettavissa viiteen kategoriaan. Näkymätyyppiset bundlet ovat itsenäisiä osia käyttöliittymää. Taustajärjestelmäbundlet toimivat fasadina taustajärjestelmille, joihin otetaan yhteyttä esimerkiksi SOAPilla. Jaetut bundlet tarjoavat yhteistä koodia jota käytetään useissa eri bundleissa. Core-bundlet sisältävät perustoiminnallisuutta kuten Vaadin UI:n, aktorisysteemin ja navigoinnin. Domain-bundlet sisältävät sen bisneslogiikan jota käyttöliittymä tarvitsee.
Presenterit lähettävät viestejä muille OSGi bundleille, jotka ottavat yhteyttä mm. SOAPilla taustajärjestelmiin. Tämä fasadina toimiva middle-layer voi pyöriä sekä samassa että eri OSGi containerissa. Ajatuksena on että näkymät lähettävät pelkästään Akka-viestejä tietämättä, mikä bundle hoitaa nämä eteenpäin.
SOAP taustapalveluihin otetaan yhteyttä Akka-Camelilla. Käytössä on pieni klusteri Producereita ja Consumereita. Akka-viestit saapuvat klusteriin, josta ne menevät putkeen, jossa viestin sisältö konvertoidaan SOAP interfacen luokkien instansseiksi. Kun jossain vaiheessa saadaan vastaus taustajärjestelmältä, viesti välitetään esimerkiksi käyttöliittymäbundlelle, joka hoitaa näkymän päivityksen. Tämä kaikki tapahtuu tietysti asynkronisesti.
SOAP taustapalveluihin otetaan yhteyttä Akka-Camelilla. Käytössä on pieni klusteri Producereita ja Consumereita. Akka-viestit saapuvat klusteriin, josta ne menevät putkeen, jossa viestin sisältö konvertoidaan SOAP interfacen luokkien instansseiksi. Kun jossain vaiheessa saadaan vastaus taustajärjestelmältä, viesti välitetään esimerkiksi käyttöliittymäbundlelle, joka hoitaa näkymän päivityksen. Tämä kaikki tapahtuu tietysti asynkronisesti.
Funktionaaliset testikeissit ajetaan jBehavella. Testit joko klikkailevat käyttöliittymää tai lähettävät Akka-viestejä suoraan domain-bundleille. Viestien lähetystä varten käynnistetään testattava OSGi containeri, jolle lähetetään viestit Remote-Akan yli. Testikeissit lähettävät joko komento- tai kyselytyyppisiä viestejä ja tarkastavat näin ohjelman tilaa.
Comments
Post a Comment