Harjoitus 2: Vaatimukset 1 Yleistä 1.1 Tavoitteet Toisen harjoitustyön tarkoituksena on toteuttaa yksinkertainen ajettava BPEL-prosessi. Prosessi mallinnetaan käyttäen BPMN-notaatiota, josta generoidaan BPEL-kuvaus. Generoitu BPEL-prosessi laitetaan ajoon Intalio BPMS Server 6.0-palvelimelle. On tärkeää, että versiot ovat edellä mainitut. Apuna BPEL-prosessin generointiin käytetään XML Schema- ja WSDL -tiedostoja. Harjoitustyö edellyttää ainakin yhden oman XML Scheman luontia. 1.2 Versiointi Versio Tila Päiväys Tekijä Selite (muutokset, korjaukset yms.) 1.0 Final 29.10. MH Ensimmäinen versio 2 Vaatimuserittely 2.1 Yleistä Tarkoituksena on mallintaa kohdassa 2.2 kuvattu prosessi BPMN-notaatiolla, josta generoidaan BPELprosessi. BPEL-prosessi voidaan käynnistää millä tahansa vapaavalintaisella viestillä. Prosessi päättyy loputusviestin lähettämiseen. Lopetusviestin rakenteen saa päättää itse. Lopetusviestin rakenne tulee määritellä XML Schemalla ja viestin sisällössä tulisi olla tietoa prosessin suorituksesta. 0000 Yleisasiat 0001 Prosessi tulee mallintaa BPMN:llä 0002 BPMN-mallista pitää pystyä generoimaan ajettavaa BPEL-koodia 0003 Prosessi on myös web-palvelu, jota voidaan kutsua SOAP-viesteillä 0004 Kaikki palvelut tulee mallintaa omana altaana (pool) (esim. ConversionRate) 0005 Prosessissa tulee käyttää vähintään start, end, task, looping sub-proces-, connector, timer intermediate, ja gateway -elementtejä. 0006 BPMN-prosessi tulee mallintaa Intalio Designer 6.0 -sovelluksella 0007 Generoidun BPEL-koodin tulee olla ajettavissa Intalio BPMS Server 6.0 -palvelimella 2.2 Kuvaus prosessista Vaihe 1: Yrityksen työntekijöille on tarkoitus luoda lomake, jolla he voivat tehdä työmatkahakemuksia. Lomake on yksinkertaistettu versio, jossa kysytään työntekijältä kuvausta matkasta, matkan kestoa, matkan hintaa (euroina) ja omavalintaista tietoa, jota voidaan käyttää omanvalintaisen palvelun yhteydessä. Koska maailman taloudellinen tilanne on heikko, pitää yrityksen rajoittaa työmatkojen kestoa 14 vuorokauteen. Jos kesto ylittää 14 vuorokautta annetaan työntekijälle ilmoitus, että matka on liian pitkä ja palataan takaisin työmatkanhakulomakkeeseen. Tarkistus tulee tehdä ennen ulkopuolisten palveluiden kutsua. Vaihe 2: Huono taloudellinen tilanne on vaikuttanut yrityksen toimintaan ja yrityksen johto on ulkoistettu Venäjälle, Moskovaan. Työntekijät eivät tätä tiedä, sillä prosessin älykäs suunnittelu pitää huolen
tarpeellisten muunnosten tekemisestä. Rahayksiköiden muuttaminen rupliksi tehdään käyttämällä ConversionRate-palvelua. Ulkoistettu johto ei suostu hyväksymään mitään matka-anomuksia ennen auringon nousua. Tämä pyritään ennakoimaan jo prosessia tehdessä. Sun / Moon Webservice -palvelusta näkee milloin aurinko nousee Moskovassa (55 pohjoista leveyttä, 37 itäistä pituutta) sinä päivänä, jolloin prosessi ajetaan. Jos aurinko ei ole vielä noussut tai matka on liian kallis (>50 000 ruplaa), annetaan työntekijälle ilmoitus matkan hylkäämisestä ja palataan takaisin työmatkanhakulomakkeeseen. Vaihe 3: Jos lomake täyttää kaikki ehdot, näytetään johtajalle matkahakemus. Johtajalle näytetyssä matkahakemuksessa tulisi ainakin näkyä rupliksi muunnettu hinta matkalle ja kuvaus matkasta. Johtaja voi omalla lomakkeellaan hyväksyä tai hylätä matkan ja kirjoittaa perustelun hylkäykselle. Jos johtaja hylkää matkan, hylkäyksen syy näytetään työntekijälle ja palataan takaisin työnmatkahakulomakkeeseen. Vaihe 4: Hyväksynnän matkaan saatuaan työntekijälle haetaan tietoa matkakohteesta omavalintaisen palvelun avulla. Tieto näytetään työntekijälle ja toivotetaan hyvää matkaa. Prosessi lopetetaan viestillä, joka sisältää kentät: toistojen määrä (eli kuinka monta kertaa matkaa piti hakea ennen kuin se hyväksyttiin), matka hinta, matkan kuvaus ja kellon aika milloin matkaa haettiin. Koska maailman taloudellinen tilanne pakottaa yrityksen toimimaan tehokkaasti ja aikaa tuhlaamatta, joudutaan myös työmatkan hakua tehostamaan. Työntekijän ja johtajan yhteensä käyttämä aika ei saisi ylittää viittä minuuttia. Jos aika kuitenkin ylittyy, aiheuttaa se virheen prosessissa ja prosessi keskeytetään poikkeuksella. Ennen poikkeuksen vuotamista työntekijälle näytetään ilmoitus liian pitkästä kestosta prosessin suorituksessa. 2.2 Prosessi 1000 Prosessi 1001 Prosessi voidaan käynnistää millä tahansa vapaavalintaisella SOAP-viestillä. 1002 Prosessi ohjaa muiden palveluiden toimintaa lähettämällä ja vastaanottamalla niille SOAP-viestejä. 1003 Prosessi kutsuu ConversionRate ja Sun / Moon Webservice -palveluita, ja yhtä omavalintaista palvelua. 1004 Kaikki palvelukutsut tulee suorittaa onnistuneesti. 1005 Prosessin tulee käsitellä kutsujen välillä liikkuvaa dataa 1006 Prosessin pitää haarautua riippuen viestissä olevasta datasta 1007 Prosessi lopetetaan SOAP-viestin lähettämiseen. 1008 Jokainen ulkoinen palvelu tulee toteuttaa omana poolina. 1100 Lopetusviesti 1101 Lopetusviestin XML Schema pitää tehdä itse. 1102 Lopetusviestin rakenteen voi itse päättää. 1103 Lopetusviestin tulisi sisältää vähintään seuraavat kentät: toistojen määrä (eli kuinka monta kertaa matkaa piti hakea ennen kuin se hyväksyttiin), matkan hinta, matkan kuvaus ja kellonaika milloin matkaa haettiin. 1200 Lomakeet 1201 Lomakkeet toteutetaanworkflow formina. 1202 Lomakkeita tulisi tehdä vähintään kolme: työmatkahakemuslomake, työmatkahyväksymislomake ja ilmoituslomake. 1203 Työmatkahakemus- ja työmatkahyväksymislomakkeet tulisi tehdä People Activityna. 1204 Ilmoituslomake tulisi tehdä Notificationina
1205 Kaikkiin työntekijälle kohdistuneisiin ilmoituksiin käytetään ilmoituslomaketta 1206 Kaikissa lomakkeissa käytetään oletuskäyttäjätunnusta (intalio\manager). Tällöin kaikki tehtävät ja ilmoitukset näkyvät palvelimella manager-käyttäjätunnuksen alla. Normaalisti johtajalle ja työntekijälle tehtäisiin omat käyttäjätunnukset ja kummallekin tulisi roolia vastaavat tehtävät ja ilmoitukset. Jotta opiskelija voi keskittyä olennaiseen, ei palvelimia tarvitse konfiguroida ja käytetään vain yhtä tunnusta. 1207 Lomakkeisiin tulee asettaa prosessin ajon aikana kuvaus (description) 1300 Työmatkahakemuslomake 1301 Lomakkeen tulee sisältää vähintään seuraavat kentät: kuvaus matkasta, matkan kesto, matkan hinta euroina ja kentät omaa vapaavalintaista palvelua varten. 1302 Kaikkia kenttiä voi muokata. 1400 työmatkahyväksymislomake Lomakkeen tulee sisältää vähintään seuraavat kentät: kuvaus matkasta, matkan hinta 1401 ruplina, hylkäyksen syy ja hylkää/hyväksy napit. Kuvaus matkasta -kenttä näyttää työntekijän antaman kuvauksen matkasta. Kenttää ei 1402 voi muokata. 1403 Matkan hinta ruplina -kenttä näyttää työntekijän antaman matkan hinnan, joka on muunnettu rupliksi. Kenttää ei voi muokata. 1500 ConversionRate (ulkoinen palvelu) 1501 Palvelua käytetään kun haetaan euro-rupla muuntokerroin. 1502 Syötteinä käytetään EUR ja RUB 1503 Paluuarvona saadaan muuntokerroin 1504 Palvelu löytyy osoitteesta http://www.webservicex.net/wcf/servicedetails.aspx?sid=18 1600 Sun / Moon Webservice (ulkoinen palvelu) 1601 Palvelua käytetään kun haetaan auringon nousuaikaa Moskovassa 1602 Syötteinä on sen prosessin ajopäivä ja Moskovan sijainti (55 pohjoista leveyttä, 37 itäistä pituutta) 1603 Paluuarvona saadaan auringon nousuaika Moskovassa 1604 Palvelu löytyy osoitteesta http://www.armyaviator.com/wssunmoon.aspx 1700 Omavalintainen palvelu (ulkoinen palvelu) 1701 Palvelun voi itse valita, kunhan se jotenkin liittyy harjoitustyön teemaan. 1702 Palvelua käytetään, kun haetaan lisätietoa matkasta 1703 Syötteinä voi käyttää esimerkiksi yhdysvaltojen ZIP-koodeja 1704 Paluuarvo tulostetaan työntekijälle 1800 Rajoitteet Jos matkan kesto on yli 14 päivää, työntekijälle näytetään ilmoitus liian pitkästä 1801 kestosta ja palataan takaisin työmatkahakemuslomakkeeseen. Tarkistus tehdään ennen kuin ulkopuolisia palveluita kutsutaan. Jos auringon nousuaika Moskovassa on myöhäisempi kuin aika, jolloin prosessi 1802 ajetaan, johtajat eivät ole henkisesti hereillä ja työntekijälle näytetään ilmoitus liian aikaisesta matkahaun tekemisestä ja palataan takaisin työmatkahakemuslomakkeeseen. 1803 Jos matkan hinta ylittää 50 000 ruplaa, työntekijälle näytetään ilmoitus liian kalliista matkasta ja palataan takaisin työmatkahakemuslomakkeeseen. 1804 Jos työntekijän ja johtajan yhdessä käyttämä aika kestää kauemmin kuin 5 minuuttia, annetaan työntekijälle ilmoitus liiallisesta ajankäytöstä ja prosessi keskeytetään
vuotamalla poikkeus. 2.3 Testaus 3000 Testaus 3010 Prosessi tulee testata Intalio BPMS Server:ssä. Viestien sisällöstä tulee nähdä, että prosessi todella toimii tehtävänannon mukaisesti. 3011 Koko prosessi tulee ajaa onnistuneesti läpi. 2.4 Prosessin asennus (deploy) 4000 Palvelun asennus 4001 Prosessi tulee asentaa Intalio designeria käyttäen. Asennus tapahtuu mukaillen Intalion tutoriaalia (http://bpms.intalio.com/tutorials/deploying-formsand-process-with-people-activity-with-intalio-bpms-5.0-intermediate.html). Versiossa 6.0 asennus on 4002 muuttunut hieman, mutta idea on sama. 4100 Prosessin poisto tapahtuu Intalio BPMS Server:istä käsin 2.5 Muita asioita 5000 Toteutus 5001 BPMN-kaavion tulee olla selkeä. Turhista prosessin välivaiheista ja epäselvästä kaaviosta voidaan vähentää pisteitä. 5002 Synkronointia ei tarvitse huomioida. Oletustilanne on siis se, että palveluita käyttää AINA vain YKSI asiakas kerrallaan. 5003 Esimerkkiympäristöä saa mukauttaa omien tarpeiden ja tämän harjoituksen vaatimusten puitteissa 6000 Tuotteenhallinta 6001 Tässä harjoitustyössä palautetaan koko projektikansio sellaisenaan kuin sen on tehty. Projektikansion juuressa tulee sijaita harjoitustyönä tehty BPMN-kaavio. Muutoin 6002 projektikansion rakennetta ei rajoiteta. Pääasia on, että prosessin ajaminen toimii tehtävänannon mukaan. Käytetyt XSD- ja WSDL-tiedostot pitää sijaita palautuspaketin mukana niin, että 6003 prosessi osaa ne löytää. 2.8 Palautus 9000 Palautus 9001 Palautuspaketti sisältää koko Intalion projektikansion (esim. WebserHT2_123456). 9002 Palautettavan jar-paketin nimi on muotoa: harj2_opikelijanumero_etunimisukunimi.jar
3 Muuta 3.1 Vinkkejä harjoitustyön tekoon 1. Tutoriaaleja Intalion käyttöön löytyy osoitteessa http://community.intalio.com/tutorials-6.0.html 2. Web-palveluita löytyy esimerkiksi osoitteista: http://www.webservicex.com/ http://www.xmethods.net/ 3. Ikkuna, josta prosessi käynnistetään [Kuva ], tulisi sulkea prosessin käynnistyksen jälkeen (kun loading... teksti ilmestyy ikkunaan). Muussa tapauksessa kesken prosessin saattaa tulla timeout ja prosessin ajaminen epäonnistuu. Kuva 1 Prosessin käynnistys 4. Prosessien aikana liikkuvien viestien sisältöjä voi katsella valitsemalla: Instances -> <oma_prosessi> -> data [Kuva ]
Kuva 2 Viestit 5. Intalion palvelimen käyttö saattaa toimia nopeammin, jos käyttää selaamiseen jotain muuta web-selainta kuin intalio BPMN:n työkalun kanssa integroitua web-selainta. 3.3 Harjoitustyöalustan asennus 1. Rekisteröidy Intalio-sivustolle osoitteessa: http://bpms.intalio.com/register.html 2. Kirjaudu sisään Intalion sivulle 3. Imuroi Itsellesi Intalio Designer 6.0 ja Intalio BPMS Server 6 osoitteesta: http://bpms.intalio.com/downloads.html 4. Pura paketit haluamaasi kansioon. 5. Käynnistä palvelin <palvemen_hakemisto>\intalio-bpms-6.0.1.004\bin\startup.bat 6. Käynnistä Designer 7. Luo uusi "Intalio Designer Business Process Project" 8. Projektin nimeksi annetaan WebserHT2 + <oma_op_num> (esim. WebserHT2_123456) Huom. Designer kysyy jossain vaiheessa kirjautumistietoja palvelimen käyttöä varten. Käytä tähän samaa tunnusta, jolla kirjauduit Intalion sivuille.