
Distribusjonssentralen: RPG-system til web
Kunden skulle konvertere et omfattende system fra RPG til Java med web grensesnitt. I tillegg skulle det etableres et utviklingsmiljø for utviklingsavdelingen slik at de selv kunne gjøre så mye av jobben som mulig.
Vi startet med å etablere et utviklingsmiljø hvor vi definerte programmeringsstandarder, satte opp CVS for versjonskontroll av kildekode og ikke minst utformet en katalogstruktur som gjenspeilet forretningsfunksjonene som skulle realiseres.
Deretter lærte vi opp utviklingsavdelingen i bruken av diverse designmønster og såkalte "best practice" teknikker for utvikling av web-baserte Java applikasjoner mot J2EE applikasjonsserver.
Etter hvert som kompetansen ble overført, sørget utviklingsavdelingen selv for å utvikle applikasjonen, med veiledning fra oss.
For å minimere risiko, var det ønskelig at den nye applikasjonen skulle fases inn stegvis. I praksis betydde det at både den nye og den gamle applikasjonen skulle kjøre mot samme database. For å løse dette utviklet vi verktøyet ejbgen som leste opp metadata fra DB2-databasen og genererte nødvendig Java-kode for "J2EE BMP Entity Bean".
Den genererte koden tok hensyn til isolasjonsnivå, transaksjonshåndtering osv. Dette ble gjort på en slik måte at eksisterende RPG programmer kunne kjøres sammen med den nye web-applikasjonen.
Det finnes allerede gode verktøy med "åpen kildekode" lisens som gjør noe tilsvarende, særlig middlegen. Så hvorfor utvikle enda et verktøy? De viktigste årsakene til at vi valgte å utvikle et nytt verktøy:
- Databasen inneholdt et database "schema"for hver klient. Hvert "schema"inneholdt samme datamodell. Applikasjonen skulle dynamisk sørge for å hente ut data fra riktig schema avhengig av hvilken klient som var pålogget. Eneste måten å løse dette på er å ha BMP-entity bønner som tar hensyn til "schema"samtidig som primærnøkkelen til alle entiteter inneholder "schema"som en del av primærnøkkelen. Så vidt oss bekjent finnes det ikke noe verktøy hverken kommersielt eller "åpen kildekode"som kan håndtere dette
- Databasen var modellert med "gamle"datatyper, som trengte modifisering på veien ut og inn av databasen. Datoer var for eksempel lagret som heltall på formatet YYYYMMDD. Alle karakterbaserte felter var fyllt ut med ekstra blanke
- Når datamodellen ble forandret skulle alle nødvendige Java-klasser bli endret tilsvarende
- De produserte "j2EE Entity Beans"må ta hensyn til at andre applikasjoner skrevet i RPG kjører mot samme tabeller
Løsningen på dette var altså å utvikle ejbgen som leser databasens metadata og deretter produserer den nødvendige Java-koden for en J2EE BMP Entity Bean. Dette fungerer så bra og effektivt at kundens programmerere ikke har trengt å lære seg noe som helst om "J2EE Entity Bean”-implementasjon.
Mer om:
- Kunder
- Prosjekter for Tollpost-Globe
- Prosjekter for AS EDB
- Prosjekter med Bankenes Betalingssentral
- SendRegning.no