You are here:   Eelmised materjalid > Materjalid 2014
Register   |  Login

Enter Title

   Minimize
 

Loengud

1. Kursuse tutvustus 

Loengu materjal: Sissejuhatus

Loengu salvestus: echo360.e-ope.ee/ess/echo/presentation/3c96f77d-dd0d-438b-bf0a-2092aa5a0bf0

2. Lahenduste integratsioon

Loengu materjal: LahendusteIntegratsioon

Loengu salvestus:echo360.e-ope.ee/ess/echo/presentation/0f6d407c-a3a2-46d5-87fe-eeea3a349e46

3. Integratsiooni käsitlused

Loengu materjal: Rakenduste Integratsioon

4. REST

Loengu slaidid: RestLoeng

Lisamaterjal: IComparison

 

6. Asünkroonne töötlus

 

 

Loengu slaidid: Loeng6Async

 

Loengu salvestus: eLoeng6Async

 

MSMQService cloud.ld.ttu.ee/MSMQService/MSMQ.svc

 

Lähtekood IDU0080/LinkClick.aspx

 

MSMQClient cloud.ld.ttu.ee/MSMQClient/Default.aspx

 

Lähtekood IDU0080/LinkClick.aspx

 

Näidis xml IDU0080/LinkClick.aspx

 

 

Loeng 7 Veatöötlus ja logging

 

 IDULoeng8 Logging

Lisamaterjal: BestPractices

 

Loengu salvestus: eLoeng7veatöötlusLogging

 

Näidisrakendus: cloud.ld.ttu.ee/nLog/

 

Näidisrakenduse kood: nLog

 

Loeng 8 Ettevõtte teenuste siin - Enterprise service bus

 

Loeng 8 ESB

 

Loengu salvestus:

 

Bizagi näide

 

Loeng 9 Cloud Computing

 

CloudComputing

 

Loengu salvestus: eSalvestus

 

Loeng 10 Otsused

 

IDU0080/otsused 

 

IGoldbergvovHalle

 

Loengu salvestus: Otsusede-ope.ee

 

Loeng 11 OpenERP

 

Openerp

 

Lisamaterjalid:

 

Bilanss

 

Kasumiaruanne

 

193.40.244.170:1158/

 

andmebaas: IDU0080_2014
admini nimi: admin
admini parool: kevad2014

 

 

Praktikumid

   Minimize

Need tudengid, kes ei ole eelnevalt kuulanud ainet IDU0075 ja ei ole eelnevalt wsdl-iga tegelenud, võiksid enne 2-3 praktikumi iseseisvalt läbi vaadata:

W3schools lehelt järgmised teemad: XML, Schema, WSDL, Soap

www.w3schools.com/

IDU0075 materjalidest samad eespoolnimetatud 4 teemat + 'wsdl-to-java':

www.tud.ttu.ee/im/Tarvo.Treier/idu0075/2013/

 

Praktiliste tööde realiseerimiseks on vajalik arenduskeskkond Eclipse JEE. Arvutiklassides on see olemas. Workspace'i võite salvestada C:/temp/WS/ alla tekitatavasse alamkausta (kui te tunni lõpus oma projekti parandusi svn serverile ei salvesta, siis peaksite oma workspace kausta kokku pakkima ja enda jaoks turvalisse kohta salvestama).

Kui Eclipse svn serveri poole pöördumisel ei küsi kasutajanime ega parooli ja ei lase alusprojektile ligi, siis on kasutajanimi eelmisest kasutuskorrast juba salvestatud Windows'is settingute alla. Selle kustutamiseks otsige kausta

C:\Users\tudengi_eesnimi.perekonnanimi\AppData\Roaming\Subversion

Ja sealt alt kustutage alamkaustad ära ja siis käivitage uuesti Eclipse ja proovige uuesti svn serveriga ühendust saada.

------------------------------------------------------------

Enda arvutis tööde tegemiseks installeeri:

JDK 7

Eclipse JEE koos WTP-ga. Lisaks järgnevad pluginad:
    - CXF Web Services (Incubation)
    - JAX-WS Tools (Incubation)
    - Subclipse (http://subclipse.tigris.org/update_1.10.x/)

(CXF ja JAX-WS pluginad saab kätte WTP update site-st) 
Apache CXF (http://cxf.apache.org/download.html) viimane versioon
SoapUI (www.soapui.org) viimane stabiilne versioon
Ant 1.8
 
Lühike installijuhend on siin.
Vana komplekt on alla laetav http://zaurus.ttu.ee/soft/IDU0080/ (425 MB).
Kui arvutiklassi arvutis ei ole õiget Eclipse'i versiooni, või see ei tööta korralikult, siis laadige palun alla installikomplekt http://zaurus.ttu.ee/soft/IDU0080/ (425 MB). Pakkige see arvutiklassi arvutis lahti c:/temp/IDU0080/ alla ja käivitage Eclipse.

 

Ülesannete valmis lahendused tuleb ülesse laadida (committida) svn IDU0080 repositoris oma rühma /tags/ kausta alla. Ülesannet võib kaitsta ka hiljem, hilinemise miinuspunktid arvestatakse ülesse laadimise (tagimise) kellaaja järgi.
 

Rühma praktikatöö kaitsmist hinnatakse rühmale tervikuna (või siis rühma liikmete osas eraldi kui lahenduse kaitsmine on eraldi), eksamihinne on personaalne.
Hilinemise korral väheneb konkreetse ülesande eest saadav maksimaalne võimalik hinne:
kuni 7x24h: 25%
kuni 14x24h: 50%
üle 14x24h: 100%

Praktikumid 2,3. Ülesanded 1 ja 2

   Minimize

Praktikumis 2 tutvustatakse põhilisi arendusvahendeid: Eclipse, SVN, Ant.

Ülesande 1 lühijuhend asub siin (sisaldub ka põhjaliku juhendi lõpus).

Põhjalik juhend asub siin.

Versioonihalduse lühijuhend on siin (SVN.pdf) ja teine osa on siin (mõlemad sisalduvad ka põhjaliku juhendi lõpus):

Mõned viited:

 Lisaks vaadake üle Eclipse Help>Help Contents>Subclipse - Subversion Eclipse Plugin all peituv.

Ülesanne 1

Laadige SVNist alla projekti kood:

cloud.ld.ttu.ee/svn/idu0080/praktikum/branches/praktikum1

Lisage „servlet“ paketti klass „StoryServlet“, mis on mapitud urlile „/story“. Lehe pealkirjaks pange „Story“. Lehe sisuks kirjutage lühike essee teemal millised on teie rühma liikmete eelnevad kogemused Javaga, Eclipse keskkonnaga, Ant'iga, kursuse teemadega ja rühma liikmete ootused ja eesmärgid selles aines. Teksti lõppu lisage sõnade arv kasutades „util“ paketis asuvat funktsiooni. Tehtud tööle pange tag „yl1“.

Ülesande 1 eest 2014.a. punkte ei saa, sellel ei ole tähtaega ja seda ei ole ka vaja kaitsta.

 

Ülesanne 2. Sünkroonne veebiteenuse päring

Praktikumi näited tutvustavad sünkroonset veebiteenuse päringut üle SOAP/HTTP protokolli. Veebiteenusel on kliendi ja serveri pool. Tarkvaraks on SoapUI ja Eclipse.

Võimalikke lahendusvariante on 4:

1. SoapUI klient ja SoapUI mock service

2. Eclipse webservice ja SoapUI klient

3. Eclipse webservice ja Eclipse klient

4. SoapUI mock service ja Eclipse klient.

 

 Praktikumi juhend

Praktikumi näitevideod on raamatupood wsdl näite põhjal:

  1. Näide SoapUI kliendi loomisest, Videotest väljavõetud olulised pildid TUD serveris asuvad siin (ülesanne 1), alternatiivne asukoht on siin
  2. Näide SoapUI mock service'i loomisest, video pildid on siin
  3. wsdl-to-Java abil näidis webservice Eclipse'is video
  4. Web service näidisklient Eclipse'is, video slaidid on siin.

Praktikumi näitevideotes kasutatud wsdl failid on siin.

Näidisvideote abil on kirjeldatud eespooltoodud lahendusvariante 1-3. Lahendusvariandi 4 peate iseseisvalt läbi katsetama.

 

Kodune ülesanne 2.

Looge etteantud hinnakirja WSDL-i põhjal Eclipse'is nii klient kui ka server (st. lahendusvariant 3). Kaitsmisel olge valmis ka teiste lahendusvariantide demomiseks.

  • Klient peab suutma suvaliselt serverilt, millel on etteantud WSDL-iga (hinnakiri.wsdl) kirjeldatud teenus, hinnakirja pärida.
  • Server peab tagastama hinnakirja, mis sisaldab vähemalt kahte toodet. Antud ülesandes ei ole nõutud kliendi päringu parameetrite alusel hinnakirja toodete nimekirja filtreerimist.
  • Kommunikatsioon toimub sünkroonselt üle HTTP protokolli SOAP sõnumitega.

Juhend SOAP teenuse tegemiseks (Eclipse 3.6 abil) ja SVN-i panekuks teksti ja piltidena on tehtud hinnakiri wsdl näite põhjal ja asub siin (pdf) ja siin (doc).

 

Ülesanne 3. Asünkroonne päring

   Minimize

Juhend

Rauli juhend (doc) + sama juhend pdf kujul. Käivitus Commandline Ant'i abil.

NB! Command line Ant programm tuleb klassi arvutisse alla laadida (siit) ja C:\Temp\

kausta alla lahti pakkida. Ant käivitamisel on vaja käsureal ette näidata ka ant programmi kataloogitee:

C:\projekti_kaust> C:\Temp\ant\apache-ant-1.9.3\bin\ant targetinimi

Kui te target protsessi korralikult kinni ei pane, vaid sulgete lihtsalt commandline akna, siis jääb protsess tööle. Töös olevaid java protsesse saab vaadata järgnevalt:

C:\Program Files (x86)\Java\jdk1.7.0_51\bin>jps

Ja seejärel process id abil saab Task Manageri alt töötama jäänud protsesse kinni panna.

 

NB! Neljapäevase rühma praktikumis Irina poolt muudetud näidisprojekt asub svn-is järgmisel aadressil:

https://cloud.ld.ttu.ee/svn/idu0080/praktikum/branches/praktikum3_irina_ppp3

Irina projekti saab alla laadida ka siit.

 

Üks võimalus koduse ülesande lahendamiseks:

1. Tuleks teha 4 erinevat klassi: poe consumer ja producer, vabriku consumer ja producer.

2. Erinevaid käivitatavaid rakendusi (kus on main meetod) peaks olema kolm: broker, pood (consumer) ja vabrik (consumer).

3. Poe rakenduse käivitamisel hakkab see kõigepealt consumerina sõnumeid kuulama. Kui consumer objekt on loodud, luuakse kohe ka producer objekt ning saadetakse välja tellimus.

4. Vabriku rakenduse käivitamisel hakkab see samuti sõnumeid kuulama. Kui sõnum vastu võetakse, töödeldakse tellimus, luuakse producer objekt ning saadetakse tellimuse vastus.

Ülesanne 4. Hajuspäringu veahaldus

   Minimize

Praktikumis tutvustatakse hajussüsteemi veahaldust kasutades 2. praktikumis tehtud veebiteenust.

Praktikumi slaidid

Praktikumis kasutatav kood asub SVNis:

https://cloud.ld.ttu.ee/svn/idu0080/praktikum/branches/praktikum4/Yl4_Kodune_Klient

https://cloud.ld.ttu.ee/svn/idu0080/praktikum/branches/praktikum4/Yl4_Kodune_Server

 

  1. Kui arvutis veel ei ole, siis alla laadida Eclipse aadressilt http://elrond.tud.ttu.ee/~ekrikuh/idu0080.zip ning lahti pakkida C:\temp kausta.
  2. Avada Eclipse ning seadistada: Window -> Preferences -> Web Services -> CXF -> määrata Apache CXF juurkataloog.
  3. Teha checkout projektidele Yl4_Kodune_Server ja Yl4_Kodune_Klient. Probleemide lahendamine: Klassi arvutites peab serveri checkout järel vajadusel määrama JRE asemel JDK kasutamise (seda ka projekti Build Path'i all), ka CXF-i library peab vajadusel uuesti seadistama projekti build path'i all. Serveri checkout järel peab vajadusel määrama Target Runtime: J2EE Preview (problem, rightclick, quickfix, add target runtime).
  4. Käivitada ainult klient (ilma serverita). Klient tuleb käivitada build.xml failist (Run as: Ant Build; või Ant aknas Run target).
  5. Kinni püüda viga ja kuvada veateade.
  6. Proovida ühendada 20 korda iga 2 sekundi tagant. Käivitada server samal ajal.
  7. Serveri projektis luua pakett ee.ttu.idu0080.hinnakiri.util ning lisada sinna klass, mis valideerib isikukoodi (Google: isikukoodi valideerimine java)
  8. Serveris muuta klassi HinnakiriServiceImpl meetodit getHinnakiri() nii, et see kontrolliks, kas päringu parameetriks on korrektne isikukood. Kui ei, siis visata WebServiceException koos veateatega.
  9. Käivitada server ning proovida SoapUI kaudu erinevaid isikukoode sisestada.
  10. Kliendis püüda kinni SOAPFaultException

NB. Isikukoodi valideerimine EI SISALDU koduülesandes!

Koduülesanne

Koduse ülesande algne kood asub https://cloud.ld.ttu.ee/svn/idu0080/praktikum/branches/praktikum4/ - kaustades Yl4_Kodune_Klient ja Yl4_Kodune_Server. Aluseks on võetud 2. praktikumi tunniülesande kood, kuid teenust on muudetud nii, et hinnakirja filtreeritakse vastavalt sisendparameetrina antud maksimaalsele hinnale.

Paketti ee.ttu.idu0080.hinnakiri.exceptions on näitena lisatud HinnakiriNumberFormatException ning HinnakiriNumberFormatFault. Kui teenusele etteantud hind ei ole numbrilises formaadis, siis visatakse teenuse poolt exception ning seesama erind püütakse kliendi poolt kinni. Fault klassi kasutatakse aga erindite haldamiseks rakenduste vahel. Erind ühes rakenduses võib olla väga erineva tähendusega erindist teises rakenduses, seepärast kasutatakse veebiteenustes fault objekte, mida erinevad rakendused saavad omavahel vahetada. Exception sisaldab endas rakendusespetsiifilist infot, näiteks millisel koodireal viga juhtus, fault aga ainult üldisemat veakirjeldust.

Koduse ülesande lahendamiseks on vaja teha järgnev:

  1. Lahendada teenuse pool olukord, kui etteantud hind on negatiivne. Luua selle jaoks täiendavad exception ja fault klassid, visata serveri pool exception ja püüda see kliendi pool kinni. Klasside nimed valige ise.
  2. Analoogselt lahendada teenuse pool olukord, kui etteantud hind on null. 
  3. Analoogselt lahendada teenuse pool olukord, kui etteantud hind on suurema täpsusega kui 2 komakohta (nt. 12,34 on korras, aga 12,345 on juba liiga täpne).
  4. Eelmise 3 punkti tulemusena peab koos etteantud näidetega olema paketis ee.ttu.idu0080.hinnakiri.exceptions kokku 8 klassi. Selle paketi sisu peab Yl4_Kodune_Klient ja Yl4_Kodune_Server projektides olema täpselt ühesugune. Samuti peab ühtima HinnakiriService.java fail.
  5. Klient peab kinni püüdma kõik loodud erindid ning nende kohta väljastama arusaadavad teated.
  6. Kui kliendil ei õnnestu teenuse poole ühendada (server on maas vms.), siis peab klient proovima 10 korda ühendada ning seejärel väljastama veateate. Ühelgi teisel juhul ei tohi tsükkel käivutuda rohkem kui üks kord.
  7. Ülesanne peab olema SVN'is tagitud.
  8. Kaitsmise ajal peavad tudengid muu hulgas olema valmis selgitama hajuspäringu veahalduse põhimõtteid.

NB. Sammul 5, vt. ka klass HinnakiriService.java sisaldab annotatsiooni @XmlSeeAlso

http://docs.oracle.com/javase/7/docs/api/javax/xml/bind/annotation/XmlSeeAlso.html

Seal tuleb ära loetleda Fault klassid ja getHinnakiri meetodis throws exception peab ära loetlema Fault klassidele vastavad Exceptionid.

NB2! testimise näidisjuhud failis Klient.java main() sees võiksid olla järgmised:

response = port.getHinnakiri("12.00A");
                //response = port.getHinnakiri("12A");
                //response = port.getHinnakiri("12.34");
                //response = port.getHinnakiri("12.340");
                //response = port.getHinnakiri("12.345");
                //response = port.getHinnakiri("12.0");
                //response = port.getHinnakiri("-12.00");
                //response = port.getHinnakiri("0.000");

Ülesanne 5. Äriprotsessi ülesanne.

   Minimize

Otselink materjalide kataloogile:

 

 

Näide selle kohta kuidas võiks ülesande tegemist alustada ja kuidas kasutada tund.ttu.ee
 
 Viited olemasolevatele teenustele mida peab ülesandes kasutama:
 
tund.ttu.ee veebteenuste andmebaasi struktuur ja testandmed:
 

Spikker ja neljapäevases tunnis tehtud kood asuvad siin:

https://cloud.ld.ttu.ee/svn/idu0080/ryhmirina/branches/yl5

Ülesanne 6. OpenERP

   Minimize