Opetushallitus ServiceMix POC
SOA Governance Gartner: SOA governance = varmistetaan ja validoidaan, että palvelut toimivat odotetulla tavalla sekä palvelut saavuttavat halutun laatutason. SOA Governancen mahdollistaa: Organisointi (SOA Center of Excellence jne.) Työkalut, governance-alustat Governance-alustan komponentteja ja ominaisuuksia ovat mm. palvelurekisteri, repository, policy manager, palvelutason hallinta, monitorointi Repository ja politiikat hallitsevat palveluita niiden koko elinkaaren ajan
SOA Governance Suunnitteluaikainen hallinta (Design Time Governance) Tunnistaminen Asennuksenaikainen hallinta (Deploy Time Governance) Ajonaikainen hallinta (Run Time Governance) Palvelun elinkaari Suunnittelu Määrittely Toteutus Asennus Käyttö Poistaminen Fokus: politiikkojen luominen, hallinta, dynaaminen linkittäminen ja ajonaikainen soveltaminen.
Skenario: ajonaikainen hallinta Politiikat kuvaavat järjestelmän ehtoja ja rajoja Esim. tietyt asiakkaat saavat etuoikeuden palveluihin, puutteellisesti suojatut viestit hylätään, tietyt asiakkaat ohjataan tiettyyn palvelun versioon Politiikat jakautuvat SLA- ja hallintapolitiikkoihin, joista esimerkkinä turvapolitiikat Politiikkoja pitäisi voida liittää palveluihin dynaamisesti Politiikkoja määritetään standardin mukaisesti Politiikkoja voidaan kuvata formaalisti WS Policyn avulla Politiikkoja hallinnoidaan Policy Managerilla Politiikkoja pitäisi voida soveltaa ajonaikaisesti Palvelukutsuihin sovelletaan politiikkoja ennen palvelun suorittamista Policy Enforcement Pointissa (PEP)
Skenario: elinkaaripalvelut Palveluiden hallinnointi tapahtuu keskitetysti Service Repositoryssa Kaikki palveluihin liittyvät rajapintakuvaukset, dokumentit, koodit ja muut artefaktit pidetään Repositoryssa Myös politiikkoja voidaan säilyttää keskitetysti Repositoryssa Repository tukee ari artefaktien linkittämistä toisiinsa sekä edistyneitä hakutoimintoja Palvelurekisteri on Repositoryn ilmentymä Ajonaikana voidaan rekisteristä hakea esim. WSDL-kuvauksia dynaamisesti
Palvelualusta: looginen arkkitehtuuri Centralized service bus Service 1.0.1 Service 1.0.2 Service 1.0.3 Centralized tools; Platform s centarized management hallintaan. Repository ESB Monitor Policy Mgr Dashboard SLA- and security politics management Policy enforcement point Service Management Security gateway Politics runtime enforce QoS metrics collection and analyse Security check
Palvelualusta: Open Source pohjainen ratkaisu Service 1.0.1 Service 1.0.2 Service 1.0.3 WSO2 Repository ServiceMix ESB Monitor Hyperic Policy Mgr Dashboard Policy enforcement SecureSpanpoint Apache ServiceMix WSO2 Governance Registry SpringSource Hyperic HQ Layer7 Technologies SecureSpan Security gateway
Open Source palveluväyläevaluointi Open ESB ServiceMix JBoss ESB Soveltuvuus skenaarioon Kehitysvälineet Laajennettavuus Toimittajariippumattomuus Medium Medium Low Low High High Low High Medium Medium High Medium
Yleisiä havaintoja Open Source-pohjaiset palveluväylät ovat kilpailukykyisiä perustoiminnoiltaan Kehitysvälineiden kypsyystaso hyvä + Asentaminen ja käyttöönotto nopeaa ja tehokasta + Standardien tukeminen hyvällä tasolla + Perustoimintojen ulkopuoliset governance-ominaisuudet eivät vielä kommoditisoituneet Governance-työkalut maksullisia -
ServiceMix
ServiceMix Avoimen lähdekoodin palveluväylä Java Business Integration 1.0 (JSR 208) standardin toteuttava alusta
ServiceMix - asennus ServiceMix on asennettavissa kolmella tavalla. Monipuolisin on standalone-asennus jossa palveluväylää ajetaan omassa JVM:ssään käyttäen mm. sen sisäistä HTTP-palvelinta (Jetty) ja transaktiomanageria (Geronimo TM) Palveluväylä on asennettavissa myös sovelluspalvelimeen tai servlet containeriin. Tämä asennus tapahtuu tavallisena war-pakettina jolloin palvelin ohjaa sisäänpäin tulevat HTTP-yhteydet palveluväylälle Kolmantena asennustapana on ServiceMixin komponenttien asentaminen toiseen JBI-yhteensopivaan alustaan. Tämä asennustapa ei kuitenkaan ole erityisen käytetty ja siten lähinnä teoreettinen vaihtoehto jos kyse ei ole olemassa olevien sovelluksien siirtämisestä toiselle alustalle
ServiceMix - kehitysvälineet ServiceMix tarjoaa Maven 2-laajennokset JBI-projektien paketoimiseksi Mavenilla sekä archetypet (projektirungot) eri komponentteja käyttävien SU-projektien generoimiseksi. Koska projektit ovat standardeja Mavenprojekteja käyttäen konfiguraatioon Springiä niin kyseisten työkalujen Eclipse-laajennokset (M2Eclipse & Spring IDE) toimivat näissäkin projekteissa. FUSE Integration Developer kehitintä joka tukee mm. Apache Camelreittien graafista editointia.
ServiceMix ylläpito ja hallinta JBI-spesifikaation mukaisesti ServiceMix paljastaa hallintatyökalut JMX:llä josta ne ovat käytettävissä millä tahansa JMX-työkalulla (esim. jconsole). Samaa JMX-liittymää käyttää myös ServiceMix-web joka tarjoaa selainpohjaisen hallintaliittymän joko upotettuun tai ulkoiseen ServiceMix-asennukseen. Selainpohjaisen ja JMX-hallintaliittymän avulla on mahdollista: asentaa/poistaa komponentteja asentaa/poistaa palvelukokoonpanoja listata palveluväylään asennetut palvelut hakea endpointtien mahdolliset WSDL-kuvaukset hakea SA/SU-pakettien descriptorit
ServiceMix standardid WS-* ServiceMixin CXF-komponentit tukevat seuraavia WSstandardeja: WS-Security WS-ReliableMessaging WS-Addressing WS-Policy WS-Notification
ServiceMix standardid BPEL ServiceMix ei sisällä omaa BPEL-toteutusta vaan käyttää orkestrointiin Apache ODE:a joka on asennettavissa standardina JBI-komponenttina BPEL-prosessien graafinen kehitysväline löytyy liitännäisenä sekä Eclipseen että Netbeansiin
ServiceMix standardid REST REST-palveluiden tarjoaminen ja kutsuminen onnistuu Apache Camelin CXFRS-komponentin avulla
ServiceMix komponentit Integraatioendpointit HTTP in/out Tukee mm. ssl-salausta, basic-autentikointia ja WS- Securityä. Enpointit ovat SMX:n dokumentaatiossa New HTTP endpoints JMS in/out Mikä tahansa JMS-provider joka tarjoaa JCA-adapterin tai jolle on Spring-tuki JBI in/out File in/out Mail in/out FTP in/out SNMP in Kaikki standardinmukaiset JBI-komponentit (esim. jbi4cics) Kaikki Apache Camel-reittien tukemat integraatiopisteet (esim. MSMQ, JCR, JT/400) Kaikki Spring Frameworkin tukemat integraatiopisteet (esim. JCA+JCA CCI adapterit kuten IMS TM resource adapter)
ServiceMix komponentit Apache Camel ServiceMix sisältää komponentin servicemix-camel joka paljastaa Camelin reitit väylässä JBI consumereina tai providereina. Camel itsessään tukee monia endpointteja ja Enterprise Integration Patterneja. Muita komponentteja servicemix-cxf-bc/se - CXF WS-toiminnallisuus. WS-speksien tuki löytyy näistä komponenteista servicemix-bean - Annotoitujen Java-luokkien käyttö endpointteina servicemix-saxon - XSLT-muunnokset Saxon-kirjastolla servicemix-eip - EIP-patternien toteutukset, vastaavaa toiminnallisuutta kuin Camelissa servicemix-quartz - Skedulointi servicemix-drools - Drools-sääntökoneen käyttö
ServiceMix ominaisuudet Palvelurekisteri ServiceMix ei sisällä muuta palvelurekisteriä (esim. UDDI) kuin JBIcontainer. Integroituminen palvelurekisteriin on toteutettava itse. Klusterointi ja HA Tuettuja ominaisuuksia Suorituskyky Tärkeimmät asetukset ovat thread poolit (conf/servicemix.properties) sekä käytetyt flowt (conf/servicemix.xml).
Proof of Concept
The Problem
Solution: automation
Solution: domain
Solution: architecture
ServiceMix
ServiceMix: components
ServiceMix: management
Components: webservice
Components: normalizer
Components: logic