FinPUG News
Transcription
FinPUG News
V U O S I K ER TA 5 N U M E R O 1 /2 0 15 FinPUG News 25.3.2015 HUOM! Säästä luontoa – älä tulosta tätä paperille! 1 Nostalgiaa vai tätä päivää? 2 Puheenjohtajan palsta 2 EMEA PUG Challenge 2015 3 FinPUG 2015 - Korpilampi 5 Täällä taas - 30 vuotta myöhemmin 8 Transaktiot – ja ajoaikaiset virhetilanteet 10 Progress – Bravepoint 11 11.5 muutokset ja Pacific Application Server for OpenEdge 12 Telerik - mitä se tuo OpenEdge-sovelluksiin? 13 Progress versio 1 - 1983 15 Ohjelmakirjastot (Procedure libraries) 17 PCase tekee Progress-sovelluksen kehittämisen helpommaksi 23 PUG Nordic Conference Tallinnassa 2014 25 Progress Technologies / Pietari www.finpug.fi • • • • Kirjoitukset FinPUG News:iin Ehdotukset seminaarien aiheiksi Kiinnostus hallituksen jösenyyteen Muu palaute pughallitus @ finpug.fi http://www.facebook.com FinPUG Nostalgiaa vai tätä päivää? Tässä kuudennessä FinPUG News-lehdessä on kirjoituksia Progress/OpenEdgen alkuvaiheista. Viime elokuussa tuli kuluneeksi 30 vuotta Progress-tietokannan ja 4GL-kielen ensimmäisestä kaupallisesta versiosta. Samoihin aikoihin tarjottiin Suomessa jo ensimmäisiä Progress-sovelluksia taloushallintoon ja yritysten toiminnanohjaukseen. 30 vuotta on IT-alalla pitkä aika. Tässä mielessä Progress OpenEdge on vanha, kuten moni meistä tätä kirjoitusta lukevistakin. Gus Björklund toteaa kirjoituksessaan, että "Progress 4GL:n ensimmäisissä versioissa oli melkoisesti ainutlaatuisia ja erittäin hyödyllisiä ominaisuuksia, joita eivät vieläkään ole olemassa muissa kielissä". Hän käyttää esimerkkeinään transaktiohallintaa, virhetilanteiden käsittelyä ja "crash proof"-ominaisuutta. Samoja esimerkkejä voisi löytää kielen tietotyypeistä, indekseistä, FOR EACHlauseesta jne. Progress OpenEdge on käynyt läpi tietojenkäsittelyn ja liiketoimintasovellusten eri paradigmojen muutokset laajentamalla omaa tarjontaansa säilyttäen samalla vanhan koodin toimivuuden. Edelleen toimivista merkkisovelluksista siirryttiin 90-luvulla graafiseen käyttöliityntään, client-server-lähiverkkoihin ja sieltä internetiin. Internetissä toimivat sekä graafinen Windows-sovellus (WebClient), selainkäyttöliityntä (WebSpeed) että mobiililaitteet (OpenEdge Mobile). Lisäksi on olemassa liitynnät Java- ja .NET-sovelluksista. Kuulin kerran yhdeltä Progress-kehittäjältä, että WebSpeedin avulla heidän sovellukseensa tarjottiin web-liittymä jo vuonna 2000, kun kilpailijasovellukset pystyivät samaan vasta vuonna 2007. Luultavasti tämä Progress OpenEdgen etumatka johtuu siitä, että uusien ominaisuuksien kehityksiä ei jouduta aloittamaan tyhjästä, vaan tarvittavat ominaisuudet liitetään jo olemassa olevaan sovelluslogiikkaan. Järjestelmät ovat käytännössä loppuasiakkailla toimiviksi todettuja. Tämä tarkoittaa myös sitä, ettei toimivia sovelluksia jouduta korvaamaan uusilla. Niiden elinkaari ei pääty, vaan jatkuu ja kehittyy. Tätä tarkoittaa "Future Proof". Teppo Määttänen, päätoimittaja FINPUG NEWS SIVU 2 Puheenjohtajan palsta Älä ohita tätä tilaisuutta! EMEA PUG Challenge 2015 järjestetään tänä vuonna Tanskan kauniissa pääkaupungissa Kööpenhaminassa 4. - 6.11.2015 keskiviikosta perjantaihin, josta työpajojen päivä on keskiviikko. Matti Kiviranta, Qvantel Finland Keväistä tervehdystä kaikille! Taas on vuosi vierähtänyt Progressin-tuotteiden maailmassa ja sen aikana on tapahtunut vaikka mitä. Progress hankki Moduluksen, Bravepointin sekä Telerikin ja näistä jälkimmäisen tarjontaa saammekin kuulla FinPUG seminaarissa. Vuoden aikana myös OpenEdge sai vaikka mitä uusia kiinnostavia ominaisuuksia kuten Pacific Application Server for OpenEdge tai lisensoinnin puolelta löytyvä Advanced Enterprise Edition RDBMS -tuote. Puheenjohtajan tehtävien osana kuuluu myös yhteistyö Euroopan käyttäjäkokouksen järjestävässä porukassa. Vuoden EMEA PUG Challenge järjestetään Kööpenhaminassa, josta odotetaan edellisiä vuosia suurempaa Progressin jättäessä erillisen Exchange -tapahtumansa pois. FinPUG 2015-seminaari on jo melkein ovella ja sinne toivonkin jäsenistömme tulevan runsain joukoin. Puhujina tälle vuodelle tulee muun muassa Gus Björklund ja Brian Preece. Pääpaino seminaarissa suuntautuu varmastikin meistä monille kiinnostavaan asiaan ja vähän tapahtumissa esitettyihin asioihin, transaktioiden ohjelmointiin ja virheiden hallintaan. Tapahtuman ohjelman löydät tästä lehdestä ja FinPUGin sivuilta http://www.finpug.fi/ Progress ei järjestä tänä vuonna maailmanlaajuista teknistä konferenssia (Progress Exchange). EMEA PUG Challenge onkin paras mahdollisuus kuroa umpeen kaikki tekninen tietoa Progress maailmasta, verkostoitua kollegojen kanssa Euroopan laajuisesti, tavata Progressin ylintä johtoa ja kehittäjiä Bedfordista ja perehtyä siihen, mitä uuden tekniikan aikaiset omaksujat ja yhteisön gurut ovat tehneet. Tämä vuosi lupaa aikaisempaakin enemmän Progressmaailmassa. Viime vuonna alkoi merkittävä kehitys, kun Progress hankki Telerikin. Tänä vuonna voimme tarkemmin kertoa, miten eri Telerikin tarjoamat tuotteet voidaan liittää nykyisiin Progresstuotteisiin. Jotkut meistä OpenEdge Mobilekehittäjistä olemme alkaneet työskennellä Telerikin tuotteiden kanssa ja voimme kertoa, että on hyvin jännittävää olla mobiilisovellusten kehittäjä. Meidän pitäisi myös nähdä käytännön kokemuksia uudesta Pacific AppServeristä, joka myös julkistettiin viime vuoden konferenssissa plus uudet askeleet Node.js, BPM ja Corticon-tuotteissa. Kuka tietää, mitä uutta kehitystä näemme vuonna 2015! Tilaisuuden ilmoittautuminen alkaa näinä viikkoina, ja Super Early Bird-hinnalla säästät jopa sata Euroa. FinPUG- ja muut PUG-jäsenet jäsenet saavat erityisalennuksen. Seuraa sivua: http://www.pugchallenge.eu . Nähdään FinPUG seminaarissa! Matti Kiviranta Puheenjohtaja https://www.facebook.com/PUGChallenge FINPUG NEWS FinPUG 2015 SEMINAARIN OHJELMA Aika: 16.-17.4.2015 Paikka: Hotelli Korpilampi konferenssikeskus, Espoo (http://www.korpilampi.fi) Esiintyjät: • Brian C Preece - Ypsilon Software Ltd (http://www.ypsilonsoftware.co.uk/) • Gus Björklund, Progress Software Corporation (www.progress.com) • Jarmo Nieminen, Progress Software Oy (www.progress.com) • John Goodland, Progress Software Corporation (www.progress.com) • Klaus Erichsen, IAP GmbH (http://www.tools4progress.com/) • Matti Kiviranta, Qvantel Finland (www.qvantel.com) Ohjelma: Torstai 16.4.2015 09.00 Ilmoittautuminen ja aamukahvi Progress Softwaren/Telerikin aamupäivä (suomeksi/englanniksi) Ilmoittautumiset aamupäivään: [email protected]. Aamun tilaisuus on maksuton. 09.30 Jarmo Nieminen & John Goodland: • OpenEdge Mobile työpaja (Oma kone mukaan!) ---------------------------------------------------------------- 12.00 Majoittautuminen 12.30 Lounas 13.30 Gus Björklund: • Programming Transactions and sub-transactions in OpenEdge ABL 14.30 Brian C Preece: • Developing a Real World Application using Telerik Platform and the OpenEdge JSDO – Basic 15.15 Kahvitauko / FinPUG vuosikokous - EXPO 16.00 John Goodland: • • • Telerik Platform – focus on the core features for building Mobile applications Kendo.UI for Mobile and Web – This includes OpenEdge to Kendo.UI Demonstration based on PAS 4 OE and JSDO 17.00 Klaus Erichsen: • PCase, Viper and OF-2 - Update 18.00 Kokouksen ensimmäinen päivä päättyy. Liikuntaa , sauna , uima-allas. 19.30 Illallinen • Iltaohjelmaa Perjantai 17.4.2015 08.00 Aamiainen - EXPO 09.00 Brian C Preece: • Developing a Real World App using Telerik Platform and the OpenEdge JSDO – Advanced 9.45 Gus Björklund: • • Programming Error Handling in OpenEdge ABL Traditional and Class Based Error Handling 10.45 Matti Kiviranta: • Tietokannan ja indeksien suunnittelun ”Best Practises” 11.30 Jarmo Nieminen ja Gus Björklund: • Mitä uutta OpenEdge 11.*, Pacific Application Server for OpenEdge 12.15 Kokous päättyy. Arpajaiset. Huoneiden luovutus. 12:30 Lounas (Huom. Ohjelmaan voi tulla muutoksia.) SIVU 3 FINPUG NEWS SIVU 4 Osallistumismaksut: A. Ohjelma, ateriat, illallinen ja majoitus (1 hh) = 300 € B. Ohjelma, ateriat, illallinen ja majoitus (2 hh)= 250 € C. Ohjelma, ateriat ja illallinen ilman majoitusta = 170 € D. Ohjelma ja ateriat ilman illallista ja majoitusta = 130 € Huom . Alennus toisen, kolmannen jne. saman yrityksen (laskutusosoitteen) osallistujasta -50 €. Ilmoittautumiset: http://83.145.205.111/cgi-bin/wspd_cgi.sh/WService=finpugbroker1/fp/ilmojasout.p Finland Progress Users Group r.y. www.finpug.fi Finland Progress Users Group on rekisteröity Progress-käyttäjäyhdistys. Yhdistys on aktiivinen ja riippumaton ryhmä, jossa on tällä hetkellä lähes 300 jäsentä. Tavoitteena on vaihtaa kokemuksia ja tietoja koskien Progress-tuotteita ja sovelluksia. Yhdistys on tarkoitettu Progress-käyttäjille ja Progressista kiinnostuneille yksityisille henkilöille. Progress Software Corporation www.progress.com Progress Software Corporation (NASDAQ: PRGS) is a global software company that simplifies the development, deployment and management of business applications on-premise or on any Cloud, on any platform and on any device with minimal IT complexity and low total cost of ownership. FINPUG NEWS SIVU 5 Täällä taas - 30 vuotta myöhemmin transaktioon. Kun se perutaan virheen takia, muuttujat palautetaan ennen transaktiota tai alitransaktiota olleeseen tilaan. Viime vuoden elokuussa - 8. elokuuta 2014 Muitakin mullistavia ominaisuuksia oli: ollaksemme tarkkoja - juhlimme 30:ttä vuotta Progress sovelluskehitysympäristön ja relaatiotietokannan ensimmäisestä kaupallisesta julkistuksesta (versio 2.2a) Meillä oli silloin alussa yksinkertaiset tuotteelle asetetut tavoitteet: tehdä helpoksi tavallisille ihmisille rakentaa pitkälle kehitettyjä liiketoiminnan sovelluksia. Sinun ei tarvitse olla yksi niistä oudoista tietojenkäsittelytiede-tyypin ihmisistä voidaksesi tehdä sovelluksia. 4GL-kieli oli erittäin tehokas ja taloudellinen. Voit tehdä paljon muutamalla sanalla. Progress 4GL:n ensimmäisissä versioissa oli melkoisesti ainutlaatuisia ja erittäin hyödyllisiä ominaisuuksia, joita eivät vieläkään ole olemassa muissa kielissä. Näistä mainittakoon: * Sisäänrakennettu transaktioiden hallinta: Kääntäjä päätteli transaktiorajat sinulle ja aloitti transaktiot automaattisesti. Ne vahvistettiin, jos ei ilmennyt virhetilanteita ja peruttiin automaattisesti, jos virhetilanne havaittiin. * Alitransaktiot: virhetilanne ei vaatinut kaiken tehdyn työn tekemistä tekemättömäksi. Voit kumota vain viimeisen vaiheen. * Muistiin mapattu tietomalli: tietokannan tieto vain näytti olevan ohjelman muistissa. Ei ollut tarvetta sovelluskoodiin lukemista ja kirjoittamista varten. Sinä vain käytät dataa ja muutat tarvittaessa. Ajoaikainen 4GL-kone ja tietokanta tekevät yhteistyötä, kun tietoja tuodaan levyltä tarpeen mukaan ja kirjoitetaan takaisin, kun olet muuttanut jotain tai lisäät enemmän tietoa. * Muuttujat transaktioissa: on aliarvostettu ominaisuus. Ohjelman muuttujat voivat osallistua * Automaattinen kaatumisesta (crash) palautuminen: Otamme tämän nyt itsestäänselvyytenä, mutta 30 vuotta sitten se oli ihmeellistä. * Siirrettävyys: Jos sovellus toimi yhdessä tietokonejärjestelmässä, se toimi myös toisella, vaikka prosessorin arkkitehtuuri ja käyttöjärjestelmä olivat täysin erilaiset. Progress 4GL:ää ja sovellustasi sen avulla voitiin ajaa yli 100 eri käyttöjärjestelmissä. * Asiakas-palvelin-verkot ja verkkoriippumattomuus: Nyt kaikki on TCP/IP:tä, mutta aikaisemmin oli paljon erilaisia keskenään yhteensopimattomia verkkoprotokollia. Sinun 4GL-sovelluksesi voi kommunikoida tietokantaan minkä tahansa verkon kautta. Nyt monta vuotta myöhemmin maailma on erilainen. Muistatko, kun kukaan ei koskaan olisi tarvinnut yli 640 kilotavua muistia? Tietokoneet ovat paljon suurempia ja nopeampia. Meillä on World-Wide-Web, HTML, JavaScript, XML, JSON, SOAP, WSDL, REST, teratavujen tietokannat, iPhone, SSD:t, ja lukemattomia muita asioita, joita ei ollut ennen. 4GL on kehittynyt ja nyt voit käyttää kaikkia niitä asioita ja paljon muuta. Huolimatta kaikista muutoksista, yksi asia ei ole: tarvitsemme edelleen liiketoiminnan sovelluksia (itse asiassa tarvitsemme paljon enemmän) ja jonkun pitää yhä kirjoittaa ne. Meidän täytyy edelleen tehdä yksinkertaiseksi tavallisille ihmisille rakentaa maailman parhaita liiketoiminnan sovelluksia. Tässä Progress on auttanut ihmisiä viimeiset 30 vuotta, ja sitä haluamme tehdä seuraavat 30. Gus Björklund FINPUG NEWS SIVU 6 Gus Björklund on tylsä tyyppi, joka on ollut Progress Softwaressa vuodesta 1989. Hän on ammattilainen "vuokra-DBA", osa ProgressBravepointin "Managed Database Service Group"-ryhmää. Tämän ryhmän ihmiset ovat kokoaikaisia tietokannan ylläpitäjiä, jotka pitävät huolta yli 1000 MDBA-asiakkaan tuotantojärjestelmien OpenEdge-tietokannoista. Ennen siirtymistään MDBA-ryhmään, Gus työskenteli OpenEdge-tuotteiden monilla eri aluilla aloittaen version 4.2N bugien korjaamisella. Suurimman osan Progress-ajastaan hänen pääpainonsa on ollut tietokannassa. Hän uskoo, että OpenEdge RDBMS on "paras relaatiotietokanta kolmannella planeetalla auringosta". Hän käyttää mielellään Linuxia ja Mac OS X-laitteita. Vaikka hän on kuullut, että on olemassa muita ohjelmointikieliä, hänellä tuntee vahvaa vetoa Progress 4GL-kieleen, mutta kieltäytyy kutsumasta sitä sen väärällä nimellä "ABL". Edellisessä elämässään, Gus työskenteli reaaliaikaisten järjestelmien, tehdasautomaation, kohdespesifisten kielten kääntäjien ja useiden reaaliaika-käyttöjärjestelmien kanssa. Kun Gus ei ole töissä, hän luo lunta, leikkaa nurmikkoa, kävelyttää koiraa, kokkaa ja työskentelee antiikkiautonsa parissa. Usein hän kuuntelee musiikkia pyöreiltä mustilta muoviesineltä. Brian C Preece Ypsilon Software Ltd esittelee itseään seuraavasti: ”Piintyneenä ja tinkimättömänä* kehittäjänä minulla on monen vuoden kokemus eri ohjelmointikieliltä ja teknologioista pääasiassa liiketoiminnan sovellusten kehittämisessä. Erikoisuuteni on ymmärtää uusia työkaluja ja tekniikoita ja löytää tapoja näiden käyttämiseen reaalimaailman liiketoiminnan ongelmien ratkaisemiseksi. Enimmän aikaa uraani olen keskittynyt Progress Software Corporationin tuotteisiin kuten tietokannan suunnitteluun, ohjelmointikieleen "OpenEdge Advanced Business Language", olio-ohjelmointiin, .NET-, Java- ja mobiiliin sovelluskehittämisessä. Kansainvälisten konferenssien usein esiintyneenä puhujana ja järjestäjänä olen hyvin tunnettu Progress-maailmassa.” Tekninen erityisosaaminen: Progress OpenEdge, ActiveX, Office Automation, ohjelmistojen suunnittelu, Web Services, SOA, R & D, C#, JavaScript, Mobiili sovelluskehitys * Brian käytti adjektiivia "dyed in the wool", mikä tarkoittaa voimakasta uskoa ja vahvoja mielipiteitä, jotka eivät koskaan muutu. Sanonta tulee siitä, että pysyvin villan väri saavutetaan, kun se värjätään mahdollisimman aikaisessa eli raaka-aineen vaiheessa. FINPUG NEWS SIVU 7 Jyrki Maukonen eläkkeelle Jyrki Maukonen oli Progress Softwaren suomalaisen tytäryhtiön Progress Software Oy:n ensimmäinen toimitusjohtaja. Hän aloitti Progress-tuotteiden myynnin jo Mercantile Datassa 19881991. Hänen Progress-aikanaan 1991–1997 Suomi oli Progressin yksi menestyneimmistä maista ja Jyrki palkittiin tunnustuksella "Managing Director of the Year" 1995. Jyrki siirtyi eläkkeelle vuodenvaihteessa ja on muuttanut perheineen Turkuun. EMEA PUG Challengessa FinPUG lahjoitti Gus Björklundille läksiäislahjana Marttiini Lapinleukapuukon. Gus päätti 25-vuotisen uransa Progress-kehityksessä ja siirtyi Progress/Bravepointiin. Puukkoon on kaiverrettu: Gus Björklund, 1989 - 2014 Creator of the best RDBMS on the third planet from the Sun. Progress Users in Finland SIVU 8 FINPUG NEWS FinPUG 2015 – Korpilampi Transaktiot – ja ajoaikaiset virhetilanteet FinPUG:in hallitus on tehnyt huolellista suunnittelua saadakseen aikaan tapahtuman, joka parhaiten palvelee Progress/OpenEdge-käyttäjiä juuri tällä hetkellä keväällä 2015. Kun suunnitellaan FinPUG-konferenssia, yleensä lähdetään siitä, mitä uutta alalle on tullut ja mitä uutta Progress tarjoaa. Ala on meidän tapauksessamme yritysten liiketoimintasovellukset, ja tällä hetkellä uutta edustavat muun muassa sovellusten siirtäminen vuokrasovelluksiksi ja niiden käyttäminen mobiililaitteilla. Transaktioiden ohjelmointi Tällä kertaa FinPUG-hallituksessa tuli esiin tarve käsitellä transaktioita ohjelmoinnin kannalta. Me kaikki kehittäjät tiedämme, että transaktioiden virheetön hallinta on sovellustemme välttämätön ominaisuus. Kyse on tietokannassa olevan datan ("tiedon") virheettömyydestä ja eheydestä. Esimerkiksi pankkisovelluksessa, jossa rahaa siirretään tililtä toiselle, sovellusjärjestelmän pitää varmistaa, että kaikki tietokannan muutokset (toisen tilin vähentäminen ja toisen tilin lisääminen) tehdään yhtenä kokonaisuutena eli yhtenä transaktiona. Vaikka tämä pankkisovellus on helpoiten ymmärrettävä esimerkki transaktiosta, kaikissa tietokantasovelluksissa tarvitaan transaktioiden virheetöntä hallintaa. Progressin tietokanta-asiantuntijat ovat useissa Progress-konferensseissa meille kertoneet, millä mekanismeilla Progress-tietokantajärjestelmä varmistaa transaktioiden eheyden kaikissa mahdollisissa tilanteissa, myös mitä vakavimmissa laite- ja ohjelmistovirheissä. Järjestelmä käyttää siihen mm. tietueiden lukitsemista ja Before-Image-tiedostoja. Voiko siis tällaisessa Full-Proofsysteemissä syntyä datavirheitä? Vastaus on: Voi, jos transaktiot on ohjelmoitu virheellisesti. Jos esimerkiksi toisiinsa liittyvät toisen pankkitilin vähentäminen ja toisen lisääminen on ohjelmoitu eri transaktioon, voi olla mahdollista, että tietokantaan jää virheellinen tieto. Tämä ohjelmointivirhe eli bugi saattaa ilmetä vasta häiriötilanteessa, jossa tietokanta kaatuu esimerkiksi laitevian seurauksena. Toinen mahdollisuus on se, että nämä tietueet eivät ole yhtaikaa lukittuna, jolloin <jatkuu> FINPUG NEWS SIVU 9 samanaikaisesti joku toinen toisen käyttäjän transaktio voi muuttaa toista näistä tietueista. Progress OpenEdgen etu moneen muuhun kehittämistekniikkaan verrattuna on se, että sovellusohjelma ja tietokantasysteemi toimivat hyvin läheisesti toistensa kanssa. Sovelluskoodista voidaan tarkkaan ohjata tietokantaoperaatioita. Tällöin kysymys on tämän ohjelmointikielen - ABL (Advanced Business Language) a'la Progress 4GL - osaamisesta. 4GL eli neljännen sukupolven kieli oli lupaus tehokkaasta ohjelmoinnista. Aiheemme kannalta tähän liittyvät koodatun ohjelman oletusarvot niin transaktioiden, lukitusten kuin virhekäsittelyjenkin osalta. Nämä täytyy osata, mutta se ei riitä. 4GL-kieleen kuuluu myös mahdollisuus muuttaa ohjelman oletusarvoja niin, että sovellusohjelmasta saadaan virheetön sen tarkoituksen kannalta. Tähän taas tarvitaan eksplisiittistä transaktion määrittämistä (TRANSCTION-sana lohkon otsikossa tai DO TRANSACTION-lohko), eksplisiittistä lukitusten määrittämistä (NO-LOCK, EXCLUSIVELOCK), lukitusten huomioon ottamista (LOCKED-funktio, CURRENT-haku) ja virhetilanteiden eksplisiittistä hallintaa (ON ERROR- ja ON STOP-määritykset, NO-ERROR-optioja ERRORSTATUS-objekti). Vielä kannattaa mainita PRESELECT, jossa tietueet voidaan lukea lukkoon ennen kuin niitä ruvetaan muuttamaan tai poistamaan. Virhetilanteihin varautuminen ohjelmassa Progress 4GL:n virhekäsittelymekanismi suunniteltiin vaiheessa, jossa proseduraalinen ohjelma oli keskeinen myös käyttöliitynnän osalta. Proseduraalinen ohjelma toimii hienosti yhteen lukitusten, transaktioiden ja alitransktioiden kanssa. Kun kieltä laajennettiin, tuli tarve kehittää myös kielen virhekäsittelyä, joka paremmin ottaisi huomioon kommunikoinnin käyttäjän omien funktioiden, metodikutsujen ja vieraiden ohjelmointikielten kanssa. Myös säännönmukaiseksi muodostunut Ntasoinen hajautettu arkkitehtuuri edellytti monipuolisempaa virhetilanteiden hallintaa. Tässä vaiheessa luotiin strukturoitu virhekäsittelymekanismi, joka toimii oletusarvona olevan perinteisen virhekäsittelyn rinnalla. Se on kattavampi ja monipuolisempi, mutta se pitää eksplisiittisesti ohjelmoida. Samanaikaisesti ohjelmointikieleen tulivat luokat proseduurien rinnalle, ja omaksuttiin oikeaoppinen olio-ohjelmointi. Tällöin virheetkin voidaan nyt käsitellä luokkana ja niiden ajoaikainen syntyminen olioiden instansseina. Mutta mikä on oikea tapa soveltaa näitä mahdollisuuksia? Entä miten pitää suhtautua vanhoihin toimiviin ohjelmiin? FINPUG NEWS SIVU 10 Progress – Bravepoint Progress Bravepoint yritysoston myötä, Managed Database Services ja Pro2 ovat nyt myös saatavilla Progress Softwaren asiakkaille. Managed DBA on palvelu Progress asiakkaille. Progress Bravepoint hallinnoi ja monitoroi Progressin tietokantoja asiakkaan puolesta. Asiantuntijoina tiimissä ovat mm. Gus Björklund ja Dan Foreman. Tässä tiimissä on yhteensä 235+ vuotta DBA kokemusta – ja ”juniorilla” on 18 vuoden kokemus Progress tietokantojen hallinnasta. Palveluun on myös saatavilla tietokannan suunnittelua, indeksointia, suoritustehon tehostamista ja infrastruktuurin analysointia. Palvelu perustuu kuukausimaksuun ja siihen ei sisälly ylläpitoa. Pro2:n avulla Progress OpenEdge tietokannasta voidaan replikoida halutut tietokantataulut toiseen tietokantaan. Tuetut tietokannat ovat OpenEdge, Oracle ja MS SQL. Replikointi on lähes reaaliaikainen ja se pohjautuu OpenEdge ABL/DataServer teknologiaan. Pro2 avulla voidaan tietokannan tiedot replikoida kolmannen osapuolen raportointi- tai analysointipalvelimelle. Pro2:n avulla voidaan myös jakaa sovelluksen data jonkun toisen muun järjestelmän kanssa. Mikäli raportointi on mahdoton toteuttaa omaan nykyiseen tietokantaan tietokannan rakenteen vuoksi, voidaan Pro2:n avulla luoda uusi raportointitietokanta toiselle palvelimelle ja uudelle tietokannalle. Lisää tietoa aiheesta FinPUG seminaarissa. Jarmo Nieminen FINPUG NEWS FinPUG 2015 – Korpilampi 11.5 muutokset ja Pacific Application Server for OpenEdge OpenEdge 11.5 versio (julkaistu 12/2014) tuo mukanaan taas uusia ominaisuuksia. Merkittävin uudistus on uusi sovelluspalvelin. Nykyinen Progress AppServer on edelleenkin tuettuna ja se tulee myös OpenEdge 11.5 version mukana – kuten aikaisemmissakin versioissa. Uusi Pacific Application Server for OpenEdge (PAS) on vaihtoehto vanhalle sovelluspalvelimelle. Uusi PAS on skaalautuvampi ja suorituskykyisempi vanhaan Progress AppServeriin verrattuna. Uusi PAS on jopa 7 kertaa nopeampi verrattuna vanhaan, jos verrataan pelkästään tietokannan transaktioiden käsittelyä. Vanhassa AppServerissä yhteys työasemalta AppServerille tehdään TCPyhteyden avulla. Uudessa PAS:issa yhteys muodostetaan aina http:n avulla. Tämä onkin suurin muutos, joka pitää huomioida myös ohjelmoinnissa. PAS myös yksinkertaistaa arkkitehtuuria verrattuna nykyiseen AppServeriin: Multi-Session agentti tukee monia yhtäaikaisia työasemayhteyksiä. Multi-Session tukee sekä Session-Managed ja Session-Free pyyntöjä yhtäaikaisesti. PAS yhteys OpenEdge tietokantaan muodostetaan jaetun muistin kautta. Lisää tietoa aiheesta FinPUG seminaarissa. Jarmo Nieminen SIVU 11 FINPUG NEWS SIVU 12 FinPUG 2015 – Korpilampi Telerik - mitä se tuo OpenEdge-sovelluksiin? Progress on tehnyt yritysostoksen Telerik-yrityksestä joulukuussa 2014. Telerikin myötä Progress OpenEdge kehittäjät saavat käyttöönsä web/mobiilikehitysvälineet. Monet OpenEdge kehittäjät ovatkin jo käyttäneet/testailleet Kendo UI frameworkin käyttöä käyttöliittymässä. Progress on jo julkaissut white paperin, miten Kendo UI frameworkia voidaan käyttää Progress OpenEdge sovelluksen kanssa. White paper on luettavissa täällä: https://community.progress.com/community_groups/openedge_development/m/ documents/1655.aspx Telerikillä on myös tuotteita testaukseen (TestStudio) ja sovelluksen elinkaaren hallintaan (Application lifecycle Management). Telerikillä on myös kattava alusta mobiilisovellusten kehittämiseen. Uusimpana on betavaiheessa oleva NativeScript, jolla voidaan yhdellä kehitysvälineellä luoda natiivi sovellus IOS, Android tai Windows phone ympäristöön. Tule kuuntelemeen FinPUG seminaariin, mitä muuta Progress Telerik yritysostos tuo tullessaan Progress OpenEdge kehittäjille. Torstaina aamupäivän aikana sinulla on mahdollisuus osallistua myös maksuttomaan Progress Workshoppiin, jossa käytetään Kendo UI frameworkia OpenEdge sovelluksessa. Jarmo Nieminen FINPUG NEWS SIVU 13 Progress versio 1 - 1983 Sain Progressilta mielenkiintoisen dokumentin "ProgressV1.0Doc-1983_ocr". Kyseessä on Progress versio 1 käyttöohje. Tätä versiota 1 ei koskaan myyty; ensimmäinen kaupallinen versio oli 2. Versio 1 oli esillä Comdex-messuilla, josta version sisältäviä levykkeitä tuotiin myös Suomeen kokeiltavaksi. Mielenkiintoista tässä dokumentissa on se, mitä muutoksia tehtiin versiossa 2 tähän nähden. Nimittäin versiosta 2 lähtien Progress Software on ylläpitänyt kielen yhteensopivuutta uudempiin versioihin. Jossain varhaisessa käyttäjäkokouksessa Chip Ziering lupasikin, että Progress 4GL-koodi tulee sellaisenaan toimimaan - ei vähempää kuin ikuisesti! Pääidea tulee esiin jo esipuheen ensimmäisissä riveissä, joissa todetaan: "Progress on sovelluskehitin. Sillä on yksi ensisijainen tarkoitus -- tehdä ihmisille helpoksi hallita tietoja tietokoneella. Progress on vaihtoehto Cobolille tai Basicille tietokoneistettujen informaatiojärjestelmien luomisessa. Tulet huomaamaan, että Progress-lauseet ovat 20 - 50 kertaa tehokkaampia kuin standardiohjelmointikielten lauseet -- eli 500 riviä Cobol-ohjelmaa tyypillisesti tiivistyy 10 - 25 riviksi Progress-proseduuria. Yksinkertainen raportti syntyy yhdellä rivillä." Mitä nykyisiä ideoita oli jo versiossa 1? • • • • Kieli on CASE-INSENSITIVE. Tietotyypit: Character, Integer, Decimal, Date, Boolean. "Boolean" nimi vaihdettiin "Logical". Desimaalin kokonaispituus oli maksimissaan 127 numeroa, joista 10 desimaalia. Tämä lyhennettiin 50:een. Kentät ja tietueet talletettiin vaihtuvanmittaisesti. Taulun kenttien alkuarvot, muotoilut (FORMAT), desimaalien pyöristykset. Oletuskenttäjärjestyksestä käytettiin termiä "Position", joka nykyään on "Order". FINPUG NEWS SIVU 14 • • • Taulujen indeksit määriteltiin melko lailla samoin kuin nykyäänkin, ja periaatteet ovat pysyneet samoina: Unique, Primary, kenttäkohtainen Ascending/Descending. Proseduraaliset lohkorakenteet olivat jo versiossa 1: REPEAT, FOR, UNDO, RETRY, NEXT, LEAVE jne. Tietokannan päivityksessä oli vain oletustransaktio. Ulompaa lohkoa ei voitu määritellä sanalla "TRANSACTION". Tulostuksen muotoilu oli keskeinen: Oletusmuotoilu (WITH/FRAME) oli jo olemassa nykyisellään. DOWN FRAME kutsuttiin termillä "multi-format", jolloin nykyinen "1 DOWN" oli "WITH SINGLE-FORMAT". "WITH 12 REPEATS" muuttui "WITH 12 DOWN". Jos tulostukseen tuli useampia lomakkeita (FRAME) ne sisennettiin 3:lla merkillä. Sisennyksen sai pois "WITH NO-INDENT" Mitä versiossa 1 olleita muutettiin tai poistettiin? • • • • • • Ohjelma käynnistettiin ENTER:llä; sittemmin GO-näppäimellä (F1). Peruutusnäppäin oli F1. Se muutettiin END-ERROR-näppäimeksi (F4). ASK-FOR CUST-NUM. Lauseeksi muutettiin: PROMPT-FOR. Tietokannan luonti: getdb mydb demol. Skriptit tehtiin pääsääntöisesti alkamaan kirjaimilla "pro", jolloin tietokannan luontikomennosta tuli "prodb". ASSIGN-lausetta ei ollut sijoitusten yhdistämiseen. Sitä käytettiin vain Record Bufferin päivittämiseen Screen Bufferin kenttien arvoista. Sijoituslauseessa oli yksi kenttä tai muuttuja kerrallaan, joka tietenkin olisi aiheuttanut ongelmia indeksikenttien päivityksessä. DISPLAY-lausessa tulostettiin kentän tai muuttujan arvo, ei lausekkeita kuten funktion arvoa. Ne piti ensin tallettaa muuttujaan tai kenttään. IF THEN ELSE-rakenteissa ei ollut DO-lausetta lohkon alussa. Keskeneräinen Versio 1 oli nykyisessä katsannossa pahasti keskeneräinen. Sen avulla kehittäjät kiinnostuivat uudesta ohjelmointikielestä, josta ei vielä käytetty termiä "4GL". Kielen sisäänrakennetut virhekäsittely- ja peruutusominaisuudet sekä lohkorakenteet olivat hyvin valmiita. Dokumentista ei saa käsitystä tietokantajärjestelmän sisäisistä ominaisuuksista. Ainakaan kielessä ei ollut mahdollisuutta muuttaa oletuslukituksia, mitä ne siinä versiossa olivatkin. Versiossa 2 nämä puutteet olivat korjattu. Ensimmäisen kaupallisen version dokumentaatio koostuu kolmesta manuaalista: 21b_install_guide.pdf 21b_user_guide.pdf 21b_support_guide.pdf https://community.progress.com/community_groups/openedge_general/f/26/t/ 12706.aspx Teppo Määttänen FINPUG NEWS Tekninen nurkka: Ohjelmakirjastot (Procedure libraries) Ohjelmakirjastossa kyse on hyvin vanhasta Progress/OpenEdge-tekniikasta tallettaa Progress clientin (Client, AppServer tms.) tarvitsemien tiedostojen käsittelyä. Alkuperäisesti Progress client hakee tiedoston PROPATH:ssa mainituista käyttöjärjestelmän kansioista. PROPATH:issa mainittu järjestys on tärkeä: ensimmäinen löydetty tiedosto haetaan clientin muistiin. Sen jälkeen se talletetaan "rcd"-väliaikaistiedostoon mahdollista uudelleenkäyttöä varten. Jos määritellään parametri -q, muistissa tai "rcd"-tiedostossa oleva versio kelpaa, eikä tarkisteta onko PROPATH:iin tullut uusi versio ohjelmatiedostosta. Tyypillinen tiedoston haku PROPATH:sta käynnistyy RUN-lauseella, mutta tiedostoja haetaan muutenkin; esimerkiksi LOAD-IMAGE() metodilla haetaan kuvatiedosto. Kirjastotekniikka täydentää tai korvaa tämän tiedostohallinnan. Kirjasto on yksi tiedosto, johon on talletettu monta Progress-client ohjelma- tai kuvatiedostoa. Näistä käytetään tällöin sekaannuksen välttämiseksi nimeä "jäsen" ("member"). Mitä etuja tai haittoja liittyy ohjelmakirjastojen käyttöön: • Sovelluksen hallinta helpottuu, kun käsiteltäviä sovellustiedostoja on vähemmän. • Ohjelma löytyy kirjastosta nopeasti, kun kirjastossa on sisäinen hakemistonsa. Käyttöjärjestelmän apuja ei tarvita samalla lailla tiedostojen hakemiseen, availuun jne. • Jos kirjasto talletetaan samassa koneessa kuin Progress clientia ajetaan (tyypillisesti appserver, WebSpeed, batch, character client – eli paikallinen client), kirjasto korvaa mainitun "rcd"-tiedoston. • Kirjastot, joita voi olla monta PROPATH:ssa, voi yhdistää PROPATH:in kansioiden kanssa. Esim. uusimmat ohjelmatiedostojen (R-koodi) versiot ovat kansioissa PROPATH:in alussa, ja muut tiedostot (mukaan lukien ohjelmatiedostojen vanhat versiot) ”jäseninä” kirjastoissa. SIVU 15 FINPUG NEWS SIVU 16 • • Ainoa kirjastojen haitta on pieni lisävaiva, kun muutettu tiedosto päivitetään kirjastoon. Tämän vaivan määrä riippuu ohjelmamuutosten määrästä. Client-server-systeemissä yleensä ohjelmat talletetaan verkon jaetuissa kansioissa. Tällöin kirjastojen hyöty ei ole yhtä hyvä kuin samassa koneessa talletettaessa, ja "rcd"-tiedostoa kannattaa tällöinkin käyttää. Tällöin pitää muistaa asettaa parametri -pls, koska muuten tiedostot haetaan aina kirjastosta, joka yleensä on verkkolevyllä. Tällöin myös -q parametri tuottaa suuremman hyödyn kuin paikallisesti. Kirjaston käyttö suoraan keskusmuistista (memory-mapped library) Edellä kuvattiin Progressin standardi ohjelmakirjasto. Sen lisäksi on olemassa uudempi tekniikka: keskusmuistissa oleva kirjasto. Sillä saavutetaan lisää suoritustehoa paikallisissa clienteissa,jossa eri client-prosessit voivat ladata ohjelmat samasta jaetusta muistista. Lisätietoja löytyy manuaalista "OpenEdge® Deployment: Managing ABL Applications" (dp4gl.pdf). FINPUG NEWS PCase tekee Progress-sovelluksen kehittämisen helpommaksi Veli-Matti Korhonen Mikä on ohjelmistosovellus? Tähän on monta vastausta. Se on ohjelmoinnilla tehty toteutus, jonka avulla käyttäjä tai järjestelmä toteuttaa yrityksen tai muun organisaation tehtäviä tai tavoitteita. Yhdestä näkökulmasta se on tietojen eli usein tietokannan ylläpitoa erilaisista käyttöliittymistä erilaisilla tavoilla. Tuo on hyvin tekninen tapa ajatella asiaa, mutta tosiasiassa onnistunut tietorakenne on onnistuneen ohjelmistosovelluksen sydän. Aikaisemmin sovelluksia tehtiin tietojen ylläpitoa ajatellen ja usein käyttöliittymäsovellukset vastasivat hyvin pitkälle tietokantarakenteita. Nykyisin ajattelu lähtee enemmän prosesseista ja siitä, että ymmärretään mitä prosessissa tapahtuu. Sovellukset rakennetaan tukemaan prosesseja ja käyttäjien tekemiä toimintoja. Tämä on yksi syy siihen miksi sovellusohjelmien tietorakenne ei enää vastaa tarkasti tietokannan rakennetta. Tietokannan ja ohjelmien väliin on syntynyt oma looginen taso. Loogisen tasolla fyysisten tietorakenteiden monimutkaisuus voidaan muuttaa yksinkertaiseen ja selkeään muotoon. Progress-maailmassa se on toteutettu TEMP-TABLE ja PRODATASET rakenteina. Sovelluskehittäjän kannalta tietokannan kuvauksia tärkeämmäksi työskentelyssä on tullut tuo looginen taso. Looginen taso helpottaa huomattavasti käyttö- ja muiden liittymien rakentamista. Progressin OpenEdge Reference Architecture(OERA) esittelee mallin palveluarkkitehtuuriksi (SOA). Siinä tuota loogista tasoa kutsutaan Business Components-tasoksi, jossa on Business Entity:jä, Business Task:eja. PCase soveltuu hyvin tuon loogisen tason ja malliin liittyvän fyysisen tietotason Data Access generoimiseen. IAP:n tekemä OF-1 framework on toteutettu soveltaen OERA-mallia ja PCase toimii kiinteästi osana OF-1 framework:ia. Sillä kuvataan ja generoidaan Business Entity-luokat. Luokat voidaan lukea takaisin PCase-välineeseen eli siirto toimii molempiin suuntiin. SIVU 17 FINPUG NEWS SIVU 18 PCase PCase kehitettiin tekemään Progress-tietokannan kuvausten ylläpito helpommaksi. Se sisältää Progress Data Dictionary:n ominaisuudet ja paljon muuta. Itse olen käyttänyt PCase:a omissa projekteissani vuodesta 2000 ja nyt olisi vaikea olla ilman sitä. Tärkeintä on minulle käytön helppous. PCase on tehty Progress-kehittäjille ja PCase:n kehittäjät käyttävät sitä itse omissa Progresskehitysprojekteissa. Taulujen väliset relaatiot kuvataan PCase:n Tärkeä ero verrattuna Data Dictionary:n on se, että PCase:ssä kuvataan myös taulujen väliset relaatiot. Relaatioista on hyötyä sovelluskehittäjille tietorakenteiden hahmottamisessa, mutta sen avulla voidaan määritellä tietokannan taulujen väliset riippuvuussäännöt. Nämä välttämättömät relaatiotietokannan eheyteen liittyvät säännöt määräävät voiko avainkenttiä muuttaa, onko pakolliset avainkentät annettu ja oikein ja voiko tietoja poistaa. Esimerkiksi asiakkaan ja laskun välinen relaatio kertoo, että asiakasta ei voi poistaa, jos sillä on laskuja ja laskua lisättäessä asiakastieto on pakollinen. PCase:ssa relaatioita voi hyödyntää ohjelmakoodin generoinnissa. Eheyssäännöt voi generoida tietokantatriggereihin tai Business Entity osiin. Visualinen relaatiokuva Helpoin tapa hahmottaa tietojen riippuvuuksia on relaatiokuva. Relaationäkymä (ERD entity relational diagram) onkin PCasen tärkein näkymä. Tietoja voi muokata suoraan tästä näkymästä. Käyttäjä voi muokata kuvan mieleisekseen ja kuvan voi tulostaa, jos haluaa sen seinälle. Esimerkki relaatiokuvasta – näkymä customer-tiedoista FINPUG NEWS Näkymää voi muokata valitsemalla mitä asioita relaatiokuvassa näkyy. Muita tapoja katsoa ja käsitellä tietoja Tietoja voi katsoa rakenteen selausnäkymässä, jossa näkyy valitun tietokannan taulut, kentät, indeksit ja relaatiot. Rakenteen selaus ja relaationäkymä on linkitetty niin, että selailusta tehty valinta valitsee vastaavat tiedot kuvasta. Esimerkki selailunäkymästä> Tietokantaversiot PCase:n avulla voi käsitellä erilaisia tietokantoja ja jokaisesta tietokannasta voi olla rajaton määrä versioita. Näin kehittäjällä on helposti hallittavissa kaikkien tarvitsemiensa tietokantojen kuvaukset ja versiot. Mitä tahansa versiota voi verrata toisiinsa ja niiden eron voi tallettaa Progress df-tiedostoksi, jonka voi päivittää Progress-tietokantaan. Vertailun voi tehdä myös suoraan kytkeytymällä Progress-tietokantaan. PCase tallettaa tietokannat ja niiden versiot PCase Progress-tietokantaan. Helppo käyttöönotto ja käyttö Progress-tietokannan kuvaukset voidaan lukea suoraan PCase:n ilman käsityötä. Luku onnistuu df-tiedostosta tai kytkeytymällä Progress-tietokantaan. Jos Progress-tietokannan relaatiot on määritelty Progressin "standardia" noudattaen eli avainkentillä on samat nimet eri tauluissa ja vastaavat indeksit löytyvät, PCase voi tunnistaa latausvaiheessa myös relaatiot. Parhaassa tapauksessa käyttöönotto on todella helppoa ja nopeaa. Uusien taulujen ja kenttien osalta työskentelyn tekee nopeaksi se, että mistä tahansa tietokannasta voi kopioida tietokantaulun tai yksittäisten kenttien kuvaukset uuteen kantaan tai pohjaksi uudelle tietokantataululle. Käytännössä valitut tiedot "leikataan" ja "liimataan". SIVU 19 FINPUG NEWS SIVU 20 Näkymät Usein tietokannassa on satoja tietokantatauluja. Kun sovelluskehityksessä keskitytään tekemään tiettyä toimintoa, kehittäjä voi valita tai tehdä PCase:n näkymän, jossa on mukana toiminnossa käsiteltävät tietokantataulut (esim. laskutus, tilaus, asiakas, reklamaatio jne.). Näkymän tekeminen onnistuu nopeasti poimimalla halutut taulut. Loogisen tason kuvaukset Koska ohjelmoinnin pääpaino on siirtynyt fyysisen tietokannan rakenteista loogisiin tasoihin, on tärkeää suunnitella ja kuvata hyvin looginen taso. PCase:lla voidaan määritellä loogisia näkymiä, joissa näkyy TEMP-TABLE määrityksiä. Loogisen tason määrityksessä voidaan pohjaksi ottaa tietokantataulun tietoja (leikkaa/liimaa), jonka jälkeen voi muokata ja täydentää niitä esimerkiksi lisäämällä laskennallisia kenttiä tai kenttiä toisista tietokantatauluista. Myös loogisessa mallissa voi määritellä relaatioita taulujen välille. Loogisista tiedoista voi tallettaa TEMP-TABLE määrittelyt Progress-syntaksin mukaiseen muotoon esim. include-tiedostoksi. Myös TEMP-TABLE-määritysten tuonti ohjelmista PCase:en on helppoa. Ne voi ottaa Progress-ohjelmasta leikepöydälle (clipboard) ja tallettaa ne PCaseloogiseen näkymään tai ne voi lukea tiedostosta. Ohjelmakoodin generointi PCase:sta PCase:ssä olevia tietokannan- ja loogisia TEMP-TABLE kuvauksia voi hyödyntää ohjelmakoodin generointiin. Mikä parasta generointiohjelmat kirjoitetaan Progress-kielellä. PCase:ssä on Progress-kielinen rajapinta (API), jonka avulla ohjelma pääsee käyttämään kuvauksia ja relaatioita. PCase:n mukana tulee joukko valmiita makroja, joita voi käyttää pohjana omien makrojen tekemiseen. Esimerkkejä mm. löytyy tietokannan eheystriggereiden generointiin ja TEMP-TABLE-määritysten generointiin. Näitä makroja voi käyttää mallina omien laajennuksien tekemiseen. Hienoa PCase:ssa on se, että makron voi tehdä tietokanta-, taulu- tai kenttätasolle ja ne voi käynnistää suoraan relaatiokuvasta tai rakenteen selauksesta. XML-muotoinen raportti kuvauksista PCase-kuvaukset voi tallettaa XML-dokumentiksi, jossa näkee tiedot tietokannan taulujen, kenttien ja indeksien tarkoituksesta sekä käytöstä. PCase:n tietokantakuvaukset, näkymät tai loogiset näkymät voi tulostaa tekstimuotoiseksi raportiksi. Tallennusmuoto on XML ja muotoilun style sheet:ssä (.xsl) eli muotoilun voi helposti muuttaa. FINPUG NEWS Esimerkki XML-muotoisesta raportista> XML-tiedostossa on linkit tauluista kenttiin ja indekseihin eli käyttöä helpottaa mahdollisuus "hyppiä" dokumentin sisällä. Dokumentin avulla tietokantakuvaus on helppo jakaa kuvaukset kehittäjille tai muille kannan rakenteesta kiinnostuneille. Lisäämällä PCase-relaatiokuvat saadaan nopeasti laadukas dokumentaatio. Tietokannan tietojen selaus PCase:sta löytyy myös työkalu, jolla voi helposti selata tietokannan sisältöä. Itse useimmiten teen kyselyt FOR EACH-tyyliin editorissa, mutta tämä voi olla näppärä sellaiselle käyttäjälle, jolle Progress ABL-kieli ei ole tuttu. Näppärää on se, että työkalu voi tallettaa hakukäskyt muistiin. Esimerkki tietojen selauksesta> SIVU 21 FINPUG NEWS SIVU 22 PCase ja OF-1 framework OF-1 on IAP:n tekemä sovelluskehityskehys eli framework. Se sisältää kattavan joukon työkaluja ja valmiita komponentteja sovelluksen nopeaan kehittämiseen. PCase:lla on tärkeä rooli OF-1 kehityksessä. OF-1 Business Entity:t kuvataan PCase:lla ja kuvauksista genroidaan ohjelmaluokat. OF-1:n yhteydessä toimiva PCase on integroitu OpenEdge Developer’s Studioon, kuten muutkin OF-1työkalut. Uusimmassa versiossa integrointi Eclipseen on viety pidemmälle ja PCase-käyttöliittymä on uusittu. Seuraavassa OF-1 versiossa PCase:lla voi määritellä myös Business Entityluokkien metodeja ja sillä voi generoida client-ohjelmien käyttöön ns. proxy luokkia, jotka vastaavat OERA-mallissa olevia Service Adapter luokkia. Tarkoituksena se, että Business Entity:ä käyttävä client tai liittymäohjelma voi helposti ohjelmoida Business Entity-palvelujen käyttökutsut. Version on arvioitu valmistuvan jo huhtikuussa 2015. Uusi PCase-versio muille kuin OF-1 käyttäjille Tällä hetkellä ilman OF-1:tä käytettäessä PCase:n löytyy versio, joka käynnistyy omana sovelluksenaan tai sen voi integroida toimimaan Eclipse-ympäristössä. Seuraavassa versiossa uusi PCase-käyttöliittymä tulee Eclipse-ympäristöön muillekin kuin OF-1 käyttäjille. Tuossa versiossa on mahdollista hyödyntää OF-1:n mallia pohjana ja muokata Business Entity-näkymä vastaamaan omia rakenteita. Tällöin voidaan ylläpitää myös omien Business Entity-luokkien metodeja ja generoida client proxy-luokkia eli OERA:n Service Adapter luokkia. Tämän version arvioitu aikataulu on huhtikuussa 2015. PCase-sopii kaikille Progress-kehittäjille PCase on helppo ottaa käyttöön ja se on helppo muokata osaksi omia kehitystyökaluja. Sen avulla on helppo hahmottaa tietorakenteita ja sen avulla voi automatisoida sovelluskehitystä generoimalla mallista sovelluksen osia. Generointi voidaan toteuttaan niin, että se ei ole yksisuuntaista vaan generoiduista osiin tehdyt muutokset voidaan lukea PCase-kuvauksiin ohjelmaluokista tai proseduureista. PCase:ssa on huomioitu hajautettu sovelluskehitys ja versionhallinta. Vinkki: Kymmenen PCase:n käyttöä esitteleviä videoita löytyy YouTube:sta hakusanoilla ”PCase IAP”. Veli-Matti Korhonen FINPUG NEWS PUG Nordic Conference Tallinnassa 5.-6.5.2014 Osallistuin viime vuoden toukokuussa PUG Nordic Conferenceen Tallinnassa. Suomalaisia oli mukana lisäkseni Jarmo Nieminen Suomen Progressista. Hän veti maanantaina aamulla Rollbase-työpajaa. Maanantai oli Työpaja-päivä, ja istunnot pidettiin Helmes:in toimistohuoneistossa. Toinen aamupäivän työpaja Rollbasen ohella oli Brian Preecen (UK) OE Mobile työpaja, josta sain materiaalin luettavaksi. Brian on tulossa myös FinPUG 2015-tapahtumaan. Brian ei ole siirtynyt eläkkeelle, vaikka jättänyt työpaikkansa. Hän sanojensa mukaan pitää yllä intellektuaalista aktiviteettiaan omassa konsultointifirmassaan Ypsilon Software Limited. OE Mobile-työpajan hän oli itse suunnitellut, ja se poikkesi edukseen Progressiin vakiotyöpajasta. Kaikkea mahdollista ei yritetä mahduttaa tehtäväksi, vaan kehittämisen vaiheet perustellusti käydään läpi eri mahdollisuuksia punniten. Eikä aineisto perustu tuotedokumentaatioon vaan omakohtaiseen kokemukseen tuotteesta ja oikeasti tehtyyn mobiilisovellukseen. Brian Preece ohjasi Tallinnassa melkein kädestä pitäen. Itse tulin siis paikalle vasta iltapäivän työpajaan, joka oli "OOABL in Theory and Practise" Workshop. Vetäjinä olivat Julian Lyndon-Smith, Dot.r Ltd. (UK) ja Thomas Hansen, appSolutions a/s (DK). Ohjelma koostui kahdesta osasta: OOABL:n teoriasta, ja sen mukaisesti yksinkertaisista ohjelmaesimerkeistä ja toiseksi "Maia" sovelluskehittimestä ja sen tavasta käsitellä tietokantaobjekteja luokkina OOABL:n keinoin. Ensimmäisessä jaksossa tutuksi tulivat olio-ohjelmoinnin peruskäsitteet luokat, paketit, instanssit, propertyt, set/get, konstruktorit, metodit, interfacet, polymorfimit ja muut. Tuttua? Niin pitäisi ollakin. Julianin ja Thomasin viesti oli, ettei perinteisiä proseduureja ei kannata enää kirjoitella, vaan kaikki ohjelmointi kannattaa tehdä luokilla! Miksi? Koska tällöin SIVU 23 FINPUG NEWS SIVU 24 saavutetaan hyötyjä, joita ei ole mahdollista saada perinteisellä proseduuritekniikalla menettämättä mitään. Sitä paitsi luokka- ja proseduuraalista koodia voi yhdistellä melko vapaasti. Mitä hyötyjä? Mainitsen vain tärkeimpiä: Tyyppisuojaus: Jos proseduureissa kutsuu ohjelmaa tai funktiota väärällä nimellä tai väärillä parametreilla, saa ajoaikaisen virheen, mikä on erittäin turhauttavaa. Luokissa nämä asiat tarkistetaan käännösvaiheessa, jolloin ohjelmistosta tulee huomattavasti vankempi. Polymormismi: Samoja metodeja voidaan kutsua eri parametreilla. Kun kääntäjä löytää soveliaan metodin, sitä käytetään. Tällöin uusien parametrien lisääminen metodeihin ei vaadi kaikkien sen käyttökohteiden korjaamista, Kapselointi: Data ja metodit käsitellään samoissa objekteissa, mikä selkeyttää ohjelmistoa. Se myös vaatii huolellisempaa suunnittelua kuin proseduraalisessa mallissa. Koodin uudelleenkäyttö: Luokkahierarkian avulla koodia voi periyttää super-luokasta aliluokalle. (Näin voidaan tehdä myös SUPER-proseduureilla, mutta siellä ei ole olemassa tyyppisuojausta.) Konferenssin annista voisi kertoa enemmänkin, ja mahdollisesti tähän kannattaa palata, kun esitysten aineistot tulevat jakeluun. Teppo Määttänen Julian Lyndon-Smith ja Thomas Hansen vauhdissa FINPUG NEWS Progress Technologies / Pietari Minulla oli tilaisuus vierailla 28.7.2014 Pietarissa Progress Technologiesyrityksessä. Se on Progress Softwaren jakelija eli distributor Venäjällä ja muissa IVY-maissa kuten Kazakstanissa. Päätoimisto on Pietarissa, toinen Moskovassa. Tämä käyntini lähti siitä, että opastin vuoden 2013 FinPUG-seminaarin jälkeen Valeriy Bashkatovia ja Alex Leonenkoa Turussa. Tällöin he toivottivat minut tervetulleiksi Pietariin. Omaa sovelluskehitystä ei yrityksessä tehdä, vaan toimitaan kuten Progressin tytäryhtiöt muissa maissa. Toiminta on markkinointia, lisenssimyyntiä, koulutusta, konsultointia jne. Erikseen mainittakoon laaja käännöstyö: OpenEdge ja muiden Progress-tuotteiden, White Papereiden jne. englanninkielisiä sisältöjä käännetään venäjän kielelle kirjoiksi ja pdf:ksi. Aluksi keskustelimme toimiston päällikön Yuri Gusevin ja Valerin kanssa ajankohtaisista Progress-asioista. Huomasimme, että meillä oli aika paljon yhteistä historiaa, joka heillä alkoi 1990-luvun puolivälissä. Valeriy Bashkatov ja Yuri Gusev Progress tuli Pietariin ja Venäjälle Baltian kautta. Itse olin aikoinaan Virossa mukana Progressin myynnissä sekä julkishallinnossa että yrityksissä, erityisesti pankeissa. Pankkiohjelmistot tulivat ensimmäisenä Venäjälle ja valmisohjelmistona oli "Platon". Samaa merkkipohjaista ohjelmistopakettia olin tukemassa myyntimielessä Virossa, jossa se hankittiin melkein jokaiseen pankkiin 1990-luvun puolivälissä. Ohjelmiston toimittaja oli maailmanlaajuinen New Yorkissa toimistoaan pitänyt yritys, ja myyntiedustajana korealainen herra nimeltä Chuck Park. SIVU 25 FINPUG NEWS SIVU 26 Progress Technologies on monena vuonna palkittu Progress Softwaren parhaana jakelijana, ja toimistossa onkin vahva tuloksen tekemisen tuntu. Progressin linjauksia seurataan aika huolellisesti ja minulta kyseltiinkin, miten itse suhtauduin näihin käänteisiin. Esimerkiksi Sonic-tuotteista luopuminen merkitsi sitä, että PT edustaa nyt niitä Aurea Softwaren kautta. Minulta kysyttiin myös näkemyksiäni Progress Pacific:sta, joka tällä hetkellä on Progressin markkinoinnin ykkösasia. Ja ykköstuote on Progress Rollbase. Valitettavasti minulla oli hyvin vähän kerrottavaa Rollbase-kokemuksista Suomessa. Kysymys pilvipalveluista nousi myös esille. Käsitykseni mukaan Suomen yrityksissä käytetään vielä runsaasti omia laitteistojaan, vaikka erityisesti pienyrityksissä järkevä kehityssuunta on pilvisovellusten käyttö myös ERP:ssä. Mutta onko näitä vielä tarjolla? Päätimme jatkaa keskusteluja tulevissa EMEA-konferensseissa. Teppo Määttänen http://www.progress-tech.ru/ FinPUG:illa on informaatiokanavat: www.finpug.fi finpuglista @ finpug.fi pughallitus @ finpug.fi Facebook-sivusto: https://www.facebook.com/pages/FinPUGry/177590147010 Avoin sivusto. Jos tykkäät tästä sivustosta, saat ylläpitäjien julkaisut. Omat julkaisusi tälle sivustolle menevät ylläpitäjille. Facebook-ryhmä: https://www.facebook.com/groups/finpug/ Suljettu ryhmä, jossa jokaisen jäsenen julkaisut välitetään kaikille. Soveltuu kysymyksille ja keskusteluille. Muita: Progress - OpenEdge Zone https://www.facebook.com/groups/progress4gl.jobs Progress Software https://www.facebook.com/progresssw FINPUG NEWS SIVU 27 EMEA PUG Challenge, Düsseldorf, 19 - 21.11.2014 Yksi kuva kertoo enemmän kuin tuhat sanaa. Tässä yli 6000 sanan raportti: Taulujen partitioinnin työpajassa opittiin jakamaan taulu tai indeksi eri talletusalueelle. OpenEdge-työpajassa käsiteltiin sovelluksen liittämistä Corticonliiketoimintasääntöihin ja BPMliiketoimintaprosesseihin. EMEA PUG Challengen järjestelyistä vastaa toimikunta, jossa FinPUG:ia edustaa Matti Kiviranta. Progress Softwaren johto oli hyvin edustettuna (Colleen Smith, Olf Jännsch, Karen Tegan Padir ja Jerry Rulli) Yleisistunnossa esiteltiin Progressin tiekarttaa. Suomalaisia Progress-käyttäjiä oli mukana eri ikäluokista. SIVU 28 FINPUG NEWS Jos viime tai sitä edelliset vuodet jäivät väliin, nyt uusi tilaisuus! Tee mielenkiintoinen USA-matka kesän alkuun! JO VIIDES PUG CHALLENGE AMERICAS-KONFERENSSI 7.-10.06.2015 WESTFORD, MASSACHUSETTS Saatat saada paljon informaatiota ja suoraa huomiota Progressilta. Mutta vaikka niin onkin, on vaikeaa viedä tärkeätäkään tietoa alas etulinjan taisteluhautoihin ja saada sana kaikkiin koppeihin. Katsomme, että tämä konferenssi on ylivoimaisesti paras saatavilla oleva koulutustilaisuus Progress-yhteisölle! Olemme kaikki auttamassa sinua maksimoimaan käytössäsi olevan OpenEdge-tekniikan hyödyt. Samalla valmistelemme sinua tiedoilla, jota tarvitset huomisen haasteissa. Pidä kiirettä! • 04.04.15 Early Bird ilmoittautuminen päättyy (475 $) • 31.05.15 Ilmoittautuminen päättyy (normaali hinta 550 $) • Executive hinta: 1 995 $ (Edellyttää pukeutumista solmioon. Sisältää kullanvärisen kaulanauhan ja varatun paikan yleisistunnon eturivissä. Sisältää markkinointimateriaalia niin paljon kuin jaksaa kantaa.) • Perhejäsenet: 95 $ (iltaohjelmat) • 7-10.06.15 Konferenssi! http://pugchallenge.org/ - Ilmoitus-