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-