Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Sisäinen integraation ratkaisut

Samankaltaiset esitykset


Esitys aiheesta: "Sisäinen integraation ratkaisut"— Esityksen transkriptio:

1 Sisäinen integraation ratkaisut 10.2.2012

2 Osa-alueet Integraatiokeskus Palvelurekisteri Palveluiden reititys
Palveluiden versioiden hallinta Hajautetut transaktiot Transformaatiot (tarvittaessa) Synkronisuus/Asynkronisuus Tietoturva (Tunnistaminen ja roolit) Hallintajärjestelmä (Palvelurekisteri) Lokitus (Tapahtumaloki, vastaava kuin LUOVAssa käytössä oleva) Palvelurekisteri Palveluiden elinkaaren hallinta Palveluiden hallinta Palveluväylän hallinta Palvelun dokumentit Liittymä version- ja konfiguraationhallintaan

3 Ohjelmisto Linux version 2.6.32.13-0.5-default - ajoalusta
Oracle 11g Standard Edition Release – tapahtumalokin tietokantapalvelu DB2 v9.1 – palvelurekisterin tietokanta 32-bit SDK for Linux, Java 2 Technology Edition, v5.0 SR6 – ajoympäristön Java-versio IBM WebSphere Application Server Network Deployment 7.0 (32/64) bit - palvelinohjelmisto F5 kuormantasaus

4 Vaatimukset 1 Järjestelmät saatava integroitumaan keskenään
Hallintajärjestelmä palveluiden versioiden ja järjestelmien välisille rajapinnoille Nopea integraatiototeutus, voitava tehdä yhdessä päivässä suurimmassa osassa tilanteita Järjestelmien kirjanpito ja palvelukutsujen tilastointi ja tilastoinnin hyödyntäminen Asynkroniset kutsut (esim. tulostusta varten) Hajautetut transaktiot Luotettava sanomanvälitys Monitorointi Systeemitilastot Lokitiedot

5 Vaatimukset 2 Geneeriset xml-rajapinnat
Järjestelmien väliset kutsut aina integraatiojärjestelmän kautta Keskitetty palveluhakemisto Sanomakehys hallintaa ja reititystä varten Sanomien yksilöinti Autentikointi ja autorisointi Kutsurajapintojen määrä on rajallinen Järjestelmä mahdollistaa dynaamiset reititykset Systeemitilastot SLA n tarpeellisuutta on hieman kritisoitu, ehkä se mitä tuosta saataisiin irti on kutsukertoja, kutsujen kestoja, virheiden määrää per palvelu jne.

6 Miltä ratkaisu näyttää

7 Palvelurekisteri Kelassa rakennettu rekisteri Java-palveluille (vaihtoehtoina oli mm. WSRR ja UDDI). Toimii sekä teknisenä että informatiivisena rekisterinä Sisäinen integraatio käyttää rekisteriä dynaamisesti -> hakee palvelun osoitteen ym tiedot ajonaikaisesti Palvelun omistaja/vastuuhenkilö vie palvelun tiedot rekisteriin Palvelurekisterin ominaisuudet Palveluiden hallinta helpottuu -> kaikki yhdessä paikassa Versionti Palvelun tarjoama rajapinta näkyvissä sekä välitettävät tiedot Toimii teknisenä tukena palvelua kutsuvaa sovellusta rakentavalle kehittäjälle Antaa toimeksiantajalle/määrittelijällä tiedot olemassa olevista palveluista

8

9

10 - Dokumentti, palvelun osoite, skeeman juurielementti, nimiavaruus, nimiavaruuden etuliite olennaisia tietoja operaatioiden nimen ohella

11 Ohjelmoija tarvitsee TO- koodaukseen
XML-esimerkkisanoman tai skeeman Jos liittyy jostain ei-java järjestelmästä skeema on tarpeen

12 Tapahtumaloki Sovellusloki tietokannassa
Kaikki väylän kautta menevät sanomat Luovan lokin kopio Sanomien katselu tapahtuman kautta

13 Korrelaatiotunnisteella haetaan lokitietoja

14

15

16 Testaus SoapUI ”Kela-laajennuksin”
Base64-koodaus/dekoodaus LTPA token muodostus Sanomakehyksen täydennys Käytetty Kanta-järjestelmän testauksessa Laajennukset helpottamaan testaamista Ohjelmoijan, palvelun vastuuhenkilön ja testaajan käyttöön samat testitapaukset

17 SoapUI-kutsuesimerkki
soapUI:lla testaus, testit voidaan tehdä tässä esim. yksi steppit jossa laitetaan tiedot sanomakehykseen

18 …jatkuu Vaatii sen että integraatiokeskuksen wsdl haetaan soapUI:n
palvelurekisteristä haetaan esimerkki- xml- sanoma kun halutaan että testit voi toistaa niin monistetaan testisteppejä ja vaihdetaan parametreja

19 …jatkuu - Tässä yksi esimerkkitulos

20 Palvelun kutsuminen Integraatiokeskuksen kautta (tapahtumat)
Tässä vähän isompana kokonaisuutena

21 Ohjelmoinnista RAD pluginit Esimerkkikoodit wsdl ja skeema
RADiin on tehty pari pluginia, voi alustaa client- projektin. Policy setit kopioi projektiin Toinen plugin generoi Java-luokista skeemoja ja esimerkki- XML-sanomia Esimerkkikoodeja löytyy CVS:stä ja Jasken palvelunteko-ohjeesta. Wsdl ja skeema on jätetty pois itse koodauksesta, koska sanomakehys mallissa niitä ei tarvita = Java-luokat on se mikä on tarpeellinen java-ympäristössä

22 Palvelun kutsuesimerkki
Kutsuva sovellus Integraatiokeskuksen rajapinnan WSDL-kuvauksen sekä IntegraatiokeskusClient.jar –paketin - Kutsuvaan ei generoida WSDL:stä client javaluokkia, ne on IntegraatiokeskusClient.jar –paketissa - Exceptionit otetaan kiinni

23 Palvelun WS-rajapinta esimerkki
-Web-service rakennetaan esimerkiksi EJB- palvelun päälle tekemällä uusi Web- projekti ja lisäämällä sinne Java-luokka, johon tehdään metodit, joista muodostuvat WS- operaatiot. - Konstruktoriin rajoitukset, millä roolilla tullaan sisään – riippuu sovelluksen ja palvelun käyttöoikeuksista

24 …jatkuu metodit annotoidaan jolloin niistä generoituu automaattisesti wsdl ja skeemat annotaatio kertoo että luokka on WebService. kertoo että palautetaan ArkkiI- kehyksen mukainen Source- tyyppinen vastaussanoma. Tämä on ns. tyypittämätön rajapinta, jota suositellaan käytettäväksi. parametrina source-tyyppiset oliot Muunnetaan source:n sisältämä xml -> TO luokaksi ja poistetaan syötteestä tietoturvaongelmia (injektiot jne.) Haetaan tiedot ja muunnetaan ne takaisin xml-muotoon ja palautetaan source-tyyppisenä

25 SOA-toimisto Palveluluettelon ylläpitäminen
Varmistaa, että olemassa olevat palvelut saadaan projektien yhteydessä käytettäväksi väylän kautta Projektien ja hankkeiden SOA- palveluiden käytön katselmointi SOA- palvelukuvausten katselmointi ja hyväksyntä Palveluiden toteutus- ja muutosaikataulujen viestintä ja aikataulujen ylläpito Palveluiden toteutus- ja muutosaikataulujen toteutumisen seuranta Projektien tukeminen SOA- palveluiden käyttöä suunniteltaessa SOA- palvelukuvausten ja palveluluettelon sisällön laadun valvonta 1-2 kertaa vuodessa tehtävä vertailu SOA- palveluiden käyttötilaston ja SOA- palvelukuvausten suorituskyky / käytettävyystietojen välillä Palautteen ja ideoiden vastaanotto

26 Ohjeet Palvelun kutsuminen ja tekeminen Palvelun testaaminen
Y:\JAVA\Jaske\Julkaisut\versio1.0\Ohjeet\Jaske_palvelun_teko-ohje.pdf Palvelun testaaminen Y:\JAVA\Jaske\Julkaisut\versio1.0\Ohjeet\soapUIohje.pdf

27 LISÄMATSKUA: SOA-palveluiden kutsu 1 Järjestelmän A client kutsuu Apurekisteripalvelun versiota 2.0 metodia getKielitiedot saadakseen kielten aukikirjoituksen 2 Integraatiokeskus vastaanottaa kutsun, hakee Palvelurekisteristä kutsua vastaavan palvelun osoitteen (tekee muut toimenpiteensä) vastaanottaa ApurekisteriPalvelun palauttamat tiedot ja palauttaa sen kutsuvalle 3 Palvelurekisteri sisältää Apurekisteripalvelusta versiot 2.0, 3.0 (4.0) ja 5.0 4 ApurekisteriPalvelu v2.0 palauttaa vastaussanoman. Huomioi että ApurekisteriPalvelu 2.0 ja 3.0 ovat sama sovellus, jossa palvelun sisältöä ja rajapintaa on muutettu siten että muutokset eivät riko versiota 2.0 kutsuvia sovelluksia! 5 Järjestelmän B client kutsuu Apurekisteripalvelun versiota 3.0 metodia getKielitiedotUudet saadakseen kielten aukikirjoituksen kielitietoihin ja kielitiedon voimassaolon. 6 Järjestelmän C client kutsuu Apurekisteripalvelun versiota 5.0 metodia getKielet saadakseen kielten aukikirjoituksen kielitietoihin ja kielitiedon voimassaolon sekä muita lisättyjä tietoja. 7 ApurekisteriPalvelu 5.0 on Java 8 kehitetty sovellus, jossa palvelun sisältöä ja rajapintaa on muutettu siten että muutokset rikkovat version 2.0 ja 3.0 toiminnallisuuden ja rajapinnan! Kun client 1 ja 2 haluavat kutsua ApurekisteriPalvelu v5.0 ne joutuvat koodaamaan operaation getKielitiedot -> getKielet nimellä. Milloin teen muutokset nykyiseen versioon palvelusta? - muutan palvelun eri tekniikalle eri palvelimelle, ei näy muuten kutsuvalle - muutan palvelun ulkoiseksi palveluksi - lisään operaation rajapintaan tietoja - poistan tai muutan operaatioista tietoja, joita kukaan ei käytä - lisään operaatioita - poistan tai uudelleen nimeän operaatioita, joita kukaan ei käytä - muutan palvelun logiikkaa siten että se ei vaikuta kutsuvien koodiin Milloin teen uuden version palvelusta? - poistan rajapinnasta tietoja, joita muut käyttävät tai nimeän niitä uudelleen - muutan sen ulkoiseksi palveluksi (toistaiseksi näin selkeyden vuoksi) - poistan palvelusta operaatioita tai nimeän niitä uudelleen - muutan palvelun logiikkaa siten että se vaikuttaa kutsuvien koodiin (rikkoo kutsuvat asiallisesti)


Lataa ppt "Sisäinen integraation ratkaisut"

Samankaltaiset esitykset


Iklan oleh Google