Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy
Oracle10 g Web Services
Sisältö Service Oriented Architecture (SOA) Web Services
Service Oriented Architecture
Service Oriented Architecture (SOA) Palvelukeskeinen sovellusarkkitehtuuri Koostuu kolmesta pääkomponentista Palvelun tuottaja Palvelun pyytäjä Palvelurekisteri Miksi? Uudelleenkäytettävyys Kustannussäästöt (ei samaa bisneslogiikkaa monessa paikassa)
SOA perusajatus Etsi Palvelurekisteri Julkaise Palvelun pyytäjä Kutsu Palvelun tarjoaja
Service Oriented Architecture Pohjimmiltaan kysymys on palvelukokoelmasta Palvelu on toiminto joka on Hyvin määritelty Itsenäinen toiminnallisuus Ei riipu muiden palvelujen tilasta tai asiayhteydestä Ohjelmamoduli (funktio, aliohjelma, EJB, C++/Java luokka/metodi)
Service Oriented Architecture SOA ei ole uusi asia Ensimmäisiä SOA arkkitehtuurin toteutuksia olivat DCOM tai CORBA:n perustuvat ORB - ratkaisut Tarvitaan tapa, jolla palvelut kytketään toisiinsa (esim. Web Services)
Yhteystapoja Etsi Palvelurekisteri Julkaise Palvelun pyytäjä Kutsu Palvelun tarjoaja CORBA/ORB kutsut Siltaratkaisut (J2EE/.NET) Sanomanvälitysjonot Web Services/SOAP
Hienojakoinen lähestymistapa WebService Asiakassovellus Ostotilaus Konvertoi XML parametrit Lähetä SOAP Konvertoi Konvertoi XML parametrit vastaus Lähetä Lähetä SOAP SOAP Konvertoi Konvertoi XML parametrit vastaus Lähetä SOAP SOAP Konvertoi Konvertoi XML parametrit vastaus Lähetä Lähetä SOAP SOAP Konvertoi vastaus Lähetä SOAP Tarkista varastosaldo Tilauksen hyväksyntä Luo tilaus Generoi kuitti
Karkeajakoinen lähestymistapa Konvertoi XML parametrit Lähetä SOAP RMI Tarkista Varastosaldo WebService Asiakassovellus Ostotilaus Osto- Tilaus Palvelurajapinta RMI RMI Tilauksen hyväksyntä Luo tilaus Konvertoi vastaus Lähetä SOAP RMI Generoi kuitti
Palvelu laatu SOA palveluissa korostuu palvelun laatuvaatimukset Palvelun täytyy olla Tietoturvallinen Luotettava Tarpeeksi nopea Web Services -palveluita, joita ajetaan J2EE moottorin päällä perivät J2EE moottorin tietoturva-, luotettavuus- ja nopeusominaisuudet
Web Services Lyhyt katsaus
Web Services XML <?xml version= 1.0?> <Henkilo> <Nimi>Harri Kaukovuo</Nimi> <Osoite>Gräsantörmä 2</Osoite> </Henkilo> Ilman XML:ää ei olisi Web Services teknologiaa
Web Services Web Services pääidea Käytetään tekstimuotoisia XML sanomia järjestelmien välisessä kommunikoinnissa Ohjelmakutsut ja vastaukset koodataan XML:llä (=SOAP) Web Services = SOAP XML muodossa oleva palvelupyyntö ja palvelupyynnön vastaus. Standardointu XML formaatti on nimeltään SOAP (Simple Object Access Protocol). WSDL XML muotoinen kuvaus palvelusta UDDI Palvelurekisteri keltaiset sivut
Esimerkki SOAP palvelukutsusta
Web Services perusajatus Etsi Palvelurekisteri UDDI Julkaise WSDL Palvelun pyytäjä Kutsu SOAP (XML) Palvelun tarjoaja
Historia Kutsuva ohjelma Käytetty protokolla Palvelin 1980. luku TP Monitor Cobol, Forms, Esim. ATMI CICS, Tuxedo 1990-l alku Client/Server Forms, PB VB Esim. OCI Tietokanta Talletettu proseduuri 1990-l keskivaihe Corba/COM Java, C++, Forms, VB, Esim. IIOP/DCOM CORBA ORB Windows MTS 1990 -luvun loppu J2EE Java RMI J2EE Container (EJB) 2000-> Web Services Java, VB, Forms C++, Python XML/SOAP J2EE Container Windows CORBA ORB
Web Services kehitys JDeveloperilla Mikä tahansa Java -koodi Java -luokat EJB JMS PL/SQL -proseduurit Generoidaan infrastruktuuri Automaattisesti generoidut WSDL -kuvaukset Client proxy - ohjelmakirjastot SOAP palvelut
Web Services standardit Business Web Services Security Orchestration Transactions Reliability Web Services Ydin SOAP WSDL UDDI XML Ydin XML XSL XML Schema XPath XML Namespace
Web Services ja J2EE J2EE serveri toimii Web Services palvelujen ajoalustana J2EE on koeteltu J2EE Web services Standardoitu J2EE 1.4:ssa JAX-RPC, JAXR, JAXB, JAXP, JSR109, SAAJ Perii J2EE ominaisuudet Paketointi, transaktionaalisuus, tietoturva Web Services Component Model Transactions and Security Connectivity Lifecycle Services J2EE Container
Yhteensopivuus? Oracle IBM J2EE BEA Sun Others XML SOAP WSDL UDDI LDAP, SMTP,.Net Microsoft
Oraclen Web Services strategia Ulotetaan Web services teknologia kaikkialle Sisäänrakennetaan Web Services teknologiaan perustuvia palveluja läpi koko infrastruktuurin Pohjautuen yleisiin standardeihin Perustetaan Web Services toiminnot J2EE ja XML teknologiaan Tuottavuuden maksimointi, minimaalinen uudelleenkoulutus Peritään J2EE moottorin suorituskyky, luotettavuus ja tietoturva Mahdollistetaan sekä yksinkertaiset että prosessipohjaiset Web Services palvelut
Miksi Web Services? Web Services palvelut käytettävissä mistä tahansa SOAP (XML) protokollaa osaavista asiakasohjelmista: Java Perl PHP PL/SQL Visual Basic (Word, Excel, Powerpoint jne.) C++...
Oracle Application Server 10 g e-business Integration Management & Security Portals and Forms Business Intelligence Performance & Reliability Mobile & Wireless
Demonstraatiot 1. Miten PL/SQL proseduuri/funktio julkaistaan Web Services palveluksi 1. Julkaistaan PL/SQL proseduuri Web Services palveluksi 2. Kutsutaan julkaistua Web Services palvelua Word makrosta 2. Miten PL/SQL proseduurista kutsutaan ulkopuolella olevaa Web Services palvelua 1. Luodaan Java ohjelma, joka julkaistaan Web Services palveluksi 2. Kutsutaan julkaistua Web Services palvelua PL/SQL proseduurista
PL/SQL Proseduuri Web Services palveluna SOAP/ HTTP Web Services rajapinta SOAP/ HTTP Kutsuva sovellus (Java) Palomuuri SOAP/ HTTP Kutsuva sovellus (Perl) Kutsuva sovellus (.NET) PL/SQL proseduuri/funktio
D E M O N S T R A A T I O PL/SQL proseduurin julkaiseminen Web Service palveluksi
D E M O N S T R A A T I O Web Services palvelun kutsuminen Word dokumentista
Web Services palvelun kutsu PL/SQL proseduurista PL/SQL proseduurit SQL PL/SQL Wrapper Java talletettu proseduuri SOAP SOAP Mikä tahansa SOAP Server SOAP.NET J2EE DB DB
Web Services palvelun kutsu PL/SQL proseduurista 1. Annetaan käyttäjälle tarvittavat Java oikeudet tietokannan sisäisessä JVM:ssä 2. (Ladataan tarvittavat SOAP kirjastot tietokantaan) Tämä tehdään yhden kerran per installaatio. 3. Luodaan Java:lla client luokka, joka kutsuu Web Services palvelua 4. Ladataan kohdan 3) luokka kantaan 5. Luodaan PL/SQL wrapper funktio kohdan 3) luokkaa varten
Web Services palvelun kutsu PL/SQL proseduurista Tämän jälkeen Web Services palvelu on kutsuttavissa PL/SQL proseduureista/funktioista Suoraan SQL kyselyissä
D E M O N S T R A A T I O Java sovelluksen julkaiseminen Web Service palveluna
D E M O N S T R A A T I O Web Services palvelun kutsuminen PL/SQL proseduurista
Yhteenveto SOA Web Services peruskonsepti SOAP WSDL UDDI Uudelleenkäytettävyys Portal, Java,.NET, Wireless, Integraatio
Q U E S T I O N S A N S W E R S