1 VISIE Oracle Gebruikersclub Holland Najaar 2007 Jaargang 12 Nummer 2 h 7,50 Onderdeel van Onderdeel van: Eerste OBUG Benelux Userconference Oracle 1...
VISIE Najaar 2007 • Jaargang 12 • Nummer 2 • h 7,50
Oracle Gebruikersclub Holland Onderdeel van
Onderdeel van:
Eerste OBUG Benelux Userconference
Oracle 11g voor ontwikkelaars
Oracle Forms integreren in ADF Faces
Oracle as it is meant to be Uw keuze voor Oracle is een bewuste keuze. Niet alleen voor de techniek, maar ook voor de visie van Oracle. De vraag is dan ook niet waar u heengaat, maar hoe u er komt. Volgt u altijd de ideale lijn of moet u onderweg toch afremmen? Meant2B heeft het vermogen om met Oracle techniek onderscheidende toepassingen te maken. We benaderen ICT vraagstukken zoals Oracle dat bedoelt. Pragmatisch, zonder het denkwerk uit het oog te verliezen. Leuk, vanwege het enthousiasme én de kennis van onze medewerkers. Effectief, want uiteindelijk telt het resultaat. Wilt u de ideale lijn volgen?
Met heel veel genoegen breng ik hierbij het najaarsnum-
Colofon
mer 2007 onder uw aandacht. Het is een gedenkwaardig nummer want er wordt onder andere stilgestaan bij het feit dat de OGh dit jaar 20 jaar bestaat. Het
Redactie
20-jarig jubileum zal op een later tijdstip nog op ge-
H. Gerritse (hoofdredacteur) R. Buitenhuis L. Jellema M. Uitentuis
paste wijze worden gevierd, zoals u dat van ons gewend bent. De OGh-leden zullen hierover nog nader worden
Redactie-adres
Oracle Gebruikersclub Holland Utrechtseweg 48c, 3704 HE Zeist Postbus 701, 3700 AS Zeist E [email protected]
Drukkerij Donath B.V. T (030) 69 22 887 F (030) 69 181 34 E [email protected]
Organisatie
Utrechtseweg 48c, 3704 HE Zeist A.J. van der Weijden T (030) 699 70 65 F (030) 696 23 78 E [email protected] www.ogh.nl
- hebben met enorme inzet en energie de OBUG Userconference gemaakt tot het
Ik wens u veel leesplezier.
succes dat het is geworden. Namens de
Ruud Bos
Werving sprekers/onderwerpen Th. Koster Conclusion Communication [email protected]
OGh wil ik nogmaals iedereen bedanken
Voorzitter Oracle Gebruikersclub Holland
Bestuur OGh
Inhoud
Gebruikersbijeenkomsten/congres
Voorzitter R. Bos Delta Lloyd NV T +31 (0)20 594 2360 E [email protected] Penningmeester G.G. Timmerman Amis Services BV T +31 (0)30 601 6000 E [email protected] Overige bestuursleden R. Buitenhuis Ciber Nederland BV T +31 (0)40232 9090 E [email protected] Y. Fu Itude Technology T +31 (0)30 656 6171 E [email protected]
Voorwoord door Ruud Bos
3
Eerste gezamenlijke OBUG conferentie in teken van ‘cross-over’
4
Column – Een DBA is een dwerg door Jeroen Evers
7
Oracle 11g voor ontwikkelaars door Lucas Jellema en Alex Nuijten
8
Lang leve de dikke database door Toon Koppelaars
12
Systeemvernieuwing onder SOA met Oracle e-Business Suite
Vertegenwoordiger SIM M. Uitentuis Atlis Informatiesystemen T +31 (0)30 602 0070 E [email protected]
door Balt Leenman en Björn Vos
15
Oracle Database 11 verder geoptimaliseerd voor grid computing
18
Oplage 7.000
door Ronald Rood
OGh Visie is een uitgave van Oracle Gebruikersclub Holland en wordt verzonden aan al haar leden. U kunt zich aanmelden via de website www.ogh.nl of d.m.v. het inschrijfformulier in OGh Visie en u ontvangt dan automatisch OGh Visie. Voor losse (gratis) abonnementen kunt u zich ook aanmelden bij de website www.ogh.nl
Oracle Forms integreren in ADF Faces door Wilfred van der Deijl
Geo-ICT: een bijzonder vak
22
door Han Wammes
28
Oracle databaseserver centraal op RedDatabase Symposium
30
OBUG Benelux Userconference
Eerste gezamenlijke OBUG conferentie in teken van ‘cross-over’ De eerste gezamenlijke conferentie van de Oracle gebruikersverenigingen, verenigd in de Oracle Benelux User Group, vond op 16 oktober jl. plaats in het Euretco Expo Center in Houten. Het thema van deze OBUG Benelux Userconference was ‘Cross-over - kijken over traditionele grenzen’. Ruim 850 Oraclegebruikers uit Nederland en België hadden de files – onderweg en voor de inschrijfbalies – getrotseerd om deze eerste OBUG bijeenkomst bij te wonen.
Voorzitter Ruud Bos opende de eerste OBUG Benelux Userconference.
ruim dertig parallelle sessies deelden
met de datering van haar presentatie,
Oracle gebruikers en ontwikkelaars
waarvan op sommige sheets ‘Oracle
hun ervaring en oplossingen vanuit
OpenWorld 2006’ stond vermeld.
verschillende stromingen: technolo-
De Oracle Vice President behandelde
gy, middleware en applications. Ge-
vervolgens de belangrijkste features
durende de dag – en in de vooravond
van de nieuwe releases van de ver-
– werden verschillende OGh hands-
schillende productlijnen. Zij gaf aan
on sessies gehouden, waarin de deel-
dat bij de ontwikkeling van nieuwe
nemers kennis konden maken en zelf
productversies nadrukkelijk wordt
aan de slag konden met Oracle-pro-
gekeken naar de andere productlij-
ducten. Oracle University verzorgde
nen en gebruik gemaakt wordt van
gedurende de dag een aantal mini-
de ‘best-of-breed’ applicatiecompo-
lessen over actuele technologieën. In
nenten daaruit. Centraal in Oracle’s
de centrale hal van het Expo Center
productontwikkelingstrategie ‘staat
was een vendor showcase ingericht,
de toepassing van ‘next generation
waar bijna veertig Oracle-partners
technology, zoals XML, SOA, Busi-
“Cross-over staat voor kijken over
hun producten en diensten aan de
ness Process Manager.
traditionele grenzen, de overstap van
congresgangers presenteerden.
Er zijn ook al volgende nieuwe re-
bestaande technieken naar nieuwe technologieën,
4
conventies
door-
leases gepland voor de verschillende Applications Unlimited
breken op het gebied van conven-
Openingsspreker Doris Wong, Vice
tionaliteit, technologie en tooling”,
President en General Manager Ap-
stelde Ruud Bos, voorzitter van de
plication Development van Oracle
Oracle Benelux User Group, in zijn
Corp., verschafte de toehoorders
openingswoord. “Nieuwe mogelijk-
inzicht in Oracle’s applications stra-
heden voor business intelligence,
tegie. Zij benadrukte dat Oracle blijft
andere functionaliteiten aanbieden
investeren in alle huidige applica-
binnen bestaande oplossingen, maar
tions productlijnen. In het kader
ook de toenemende rol van appli-
van deze Applications Unlimited
catieservers en technologie om nog
strategie zijn recent nieuwe versies
meer uit IT-investeringen te halen.
uitgebracht van de PeopleSoft, JD
Bestaande grenzen binnen het Ora-
Edwards en Siebel productlijnen,
cle productportfolio zullen hierdoor
terwijl ook Oracle’s eigen E-Business
verder vervagen.”
suite een nieuwe release beleefde.
Tijdens de conferentie gaven ver-
Opvallende afwezige in het overzicht
schillende keynote sprekers hun
dat Wong gaf was Hyperion, maar
visie op het thema Cross-over. In
dat had wellicht te maken hebben
productlijnen.
Vice President Doris Wong was uit de Verenigde Staten overgekomen om de applications strategie van Oracle toe te lichten.
OBUG Benelux Userconference
Hiermee
wordt
volgens
Wong
aansluiting zijn met het bestaande
duidelijk onderstreept dat Oracle in-
klantenbestand en cross- en upsel-
vesteringen van klanten in applica-
ling mogelijkheden bieden, de inte-
tions blijft beschermen en de waarde
gratie in de Oracle organisatie moet
van die investeringen zelfs vergroot
binnen zes maanden te realiseren
door de ontwikkeling van nieuwe
zijn, en uiteindelijk moet ook het fi-
en verbeterde productversies. In elke
nanciële plaatje kloppen.
productlijn worden innovaties door-
Industrieanalisten schatten dat Ora-
gevoerd, met als belangrijkste aan-
cle de afgelopen twee jaar meer dan
dachtsgebieden Role Based Analy-
dertig miljard dollar heeft gespend-
tics, Applicatie Integratie, Enterprise
eerd aan overnames. Oracle heeft
Management, Search, Master Data
daarmee op tal van fronten – mid-
Management en XML Repository.
dleware, CRM, ERP – een vooraan-
Parallel aan het Applications Unlimi-
staande positie verworven, dan wel De ‘Belgische premier Guy Verhofstadt’ legde het verband tussen SOA en de politieke situatie in België.
de nummer 1 positie (databases) ver-
als ‘a better way to do things.’ Zij
duidelijk verband te leggen met Ora-
van puur productle-verancier naar
noemde een aantal technologische
cle, de ‘zelfhulpgroep’ OBUG en het
Applications Integrator, aldus Bos.
ontwikkelingen die key drivers zijn
conferentiethema Cross-over. Al met
voor Fusion, zoals Web 2.0, Service
al een alleszins geslaagd optreden
Oriented Architecture, standaardisa-
van dit Belgische duo, ondanks de
tie in middleware en het gebruik van
aanvankelijke ‘conFusion’ over de
open technologiestandaarden.
werkelijke identiteit van de aange-
ted programma bouwt Oracle verder aan de Fusion Middleware stack, die door Wong werd gekarakteriseerd
der verstevigd. Oracle heeft daarmee een duidelijke over-steek gemaakt
kondigde spreker. Belgische ziekte Als eerste keynote spreker na de
Overnamestrategie
lunchpauze stond de Belgische eerste
De afsluitende keynote werd ver-
minister Guy Verhofstadt op het
zorgd door Marcel Bos, Oracle Senior
programma. Vanwege de ‘moeilijke
Vice President Consulting Western
politieke situatie in België’ bleek de
Continental Europe, die het confer-
premier te zijn vervangen door de
entiethema belichtte vanuit het per-
Vlaamse cabaretier en stemmen-
spectief van Oracle Consulting en
imitator Dirk Denoyelle. Samen met
de (overname)strategie van Oracle.
zijn vaste begeleider Kris De Jean,
Binnen Oracle heeft een cross-over
die aanvankelijk fungeerde als ‘lijf-
plaatsgevonden van productkennis
wacht’, gaf de cabaretier een aantal
naar industriekennis, stelde Bos.
rake imitaties ten beste, waarbij hij
De strategie van Oracle is gericht
treffend inhaakte op de actualiteit
op ‘completeness’ en de toepassing
en de relatie legde met Oracle, de
van (open) standaarden, waarbij in-
Hands-on sessies
OBUG en de User Conference. Als
gespeeld wordt op de vraag vanuit de
Tijdens de OBUG Userconference
‘stand-in’ voor Guy Verhofstadt liet
industrie en de klanten.
organiseerde de Oracle Gebruikers-
hij het verband zien tussen Service
Oracle heeft in de afgelopen tijd
groep Holland in samenwerking met
Oriented Architecture – SOA – en de
bijna veertig acquisities gedaan, de
Itude en Oracle Benelux User Group
bestuurlijke inrichting en politieke
voorgenomen overname van BEA
de OGh Hands-on sessies. “De doel-
situatie in België, die hij dan ook
Systems die vlak voor het congres
stelling van deze hands-on sessies is
kwalificeerde als ‘Belgische ziekte’.
bekend werd, nog niet meegerekend.
het bevorderen van de kennis van
Ook in zijn soms zeer hilarische
Oracle hanteert volgens Bos bij
de Oracle producten bij de leden en
imitaties van onder meer Bill Gates,
overnames vier criteria waaraan moet
het stimuleren van onderlinge erva-
koning Albert II, Paul van Vliet en
worden voldaan. De overname moet
ring- en kennisuitwisseling tussen
George Bush wist hij telkens een
strategisch passen, er moet
de leden”, stelt Yung Fu, bestuurslid
Marcel Bos, Oracle Senior Vice President Consulting Western Continental Europe, gaf in zijn keynote een toelichting op de overnamestrategie van Oracle.
5
OBUG Benelux Userconference
van de OGh en organisator van de
aangeboden. Vervolgens werd op de
hands-on sessies. In totaal zijn er
meegebrachte laptop een opdracht
verdeeld over de dag en de avond vier
uitgevoerd, waarin de deelnemers
rondes gehouden van zes hands-on
kennis maakten met de toolset.
sessies met elk een eigen thema:
Tijdens de opdracht werden de deel-
• JDeveloper/ADF door AMIS
nemers begeleid door in totaal meer
• Webcenter door Capgemini
dan twintig experts in de genoemde
• Business Intelligence door Ciber
kennisgebieden.
• Business Process Management
BPEL door Itude ICT
“Het ligt in de bedoeling dat de OGh
Connaisseurs
een vervolg gaat geven aan deze
• Enterprise Server Bus door
hands-on sessies”, kon Yung Fu aan
het eind van de bijeenkomst melden.
LogicaCMG
• Oracle Spatial en APEX door
Transfer Solutions.
en de beschikbaarheid van een loca-
met een korte presentatie door de
Tijdens het uitvoeren van de opdracht werden de deelnemers aan de OGh hands-on sessies begeleid door Oracle-experts van de betreffende kennispartner.
betreffende kennispartner, waarin
sessie kregen de deelnemers de
een OGh Hands-on sessie over een
kort de toolset werd geïntroduceerd
dvd’s met de complete voorgeïnstal-
specifiek thema organiseren. We zul-
en ingegaan werd op de omgeving en
leerde toolsets op VMWare onder
len onze leden daarover informeren
de case. Tijdens elk van de hands-on
Linux, plus de installatiehandleiding
via de gebruikelijke kanalen.”
De hands-on sessies werden ingeleid
6
“Afhankelijk van de belangstelling tie met de geschikte voorzieningen, willen we eenmaal per jaar in samenwerking met een kennispartner
Deelnemers aan de OGh hands-on sessies werden getrakteerd op taart ter gelegenheid van het twintigjarig bestaan van de Oracle gebruikersclub Holland. OGh-voorzitter Ruud Bos snijdt de taart aan, onder het goedkeurend oog van de overige bestuursleden (vlnr) Yung Fu, Milan Uitentuis, Robin Buitenhuis en Gerwin Timmerman.
Column
Column
OGh Visie verwelkomt Jeroen Evers als columnist. Jeroen Evers is Oracle DBA bij Fameus Automatisering BV. Hij studeerde Toegepaste Wiskunde aan de Universiteit Twente, is Oracle Certified Master en lid van het Oaktable Network.
Een DBA is een dwerg Door Jeroen Evers
Oracle 10g kwam met heel veel A’s;
mee. Nieuwe features verhogen de
oplossing blijkt niet te werken.
de A van Automatic. Automatic [Da-
complexiteit. Hoe meer een Ora-
De dwerg blijft worstelen met z’n
tabase Diagnostic Monitor|Shared
cle database kan, hoe meer init.ora
Automatic SQL Tuning Advisor om
Memory Management|Workload
parameters, hoe meer v$-views, hoe
het slecht performende statement te
Repository|StorageManagement
meer apart gelicenseerde opties die
tunen. No way dat ie gaat proberen
|Tuning
desondanks
aanwezig
dat SQL statement van drie pagina’s
Advisor|Segment Advisor|Optimizer
zijn, des te complexer het stukje soft-
zelf te tunen. Een Automatic State-
Statistics Collection].
ware onvermijdelijk moet zijn.
ment Generator (ASG) heeft drie
Optimizer|SQL
Tuning
‘standaard’
En we hadden al Automatic
pagina’s SQL-chaos geproduceerd,
[Undo Management|Segment Space
Laten we echter optimistisch zijn en
we hebben andere A’s nodig om het
Management|PGA Management].
aannemen dat alle A’s in staat zijn
weer in orde te krijgen. Had hij er-
Een Automatic Diagnostics Reposi-
de verhoogde complexiteit volledig te
varing opgedaan met simpele state-
tory ligt in Oracle Database 11g op
compenseren. Dus wat er aan com-
ments en was hij doorgegroeid met
ons te wachten.
plexiteit bij komt per release, wordt
wat ingewikkelder spul, dan had ie
volledig gecompenseerd door wat er
dat drie pagina-statement ook nu
Ook voordat het Automatic heette,
aan complexiteit af gaat door meer
wel ontleed en getuned. De weg naar
was de trend duidelijk zichtbaar.
en betere A’s.
de schouders van de reus is een ge-
Oracle Managed Files had ongetwij-
leidelijke en kan niet op commando
feld AMF geheten als de feature in
De relativiteitstheorie waardoor ie-
met een jump worden overbrugd.
Oracle 10g was geïntroduceerd en
dereen Einstein kent, is tegenwoor-
de SPFILE was wellicht een APFILE
dig eerstejaarsstof op de universiteit.
Op het gebied van performance op-
geweest. Een advies over het juiste
Voortgang in de wetenschap wordt
timalisatie en troubleshooting zal
aantal block buffers kon in mid-
wel eens beschreven met de meta-
de realiteit steeds in staat blijken
deleeuwse versies van de database al
foor van een dwerg op de schouders
vraagstukken voort te brengen waar
opgevraagd worden. .De geschiede-
van een reus. Die studenten zijn echt
de A’s (nog) niet mee overweg kun-
nis van de Oracle Advisors gaat ove-
niet slimmer dan Einstein, maar ze
nen. Door de verbeteringen in de
rigens terug tot voor de christelijke
leren nu dingen die Albert nooit heeft
A’s zullen dergelijke vraagstukken
jaartelling. De bekendste was wel die
geweten. De dwerg ziet verder dan de
steeds complexer worden (al hebben
in Delphi, berucht om de dubbelzin-
reus, niet omdat ie betere ogen heeft,
A’s soms ook de neiging de eenvou-
nige adviezen.
maar omdat ie gebruik maakt van
digste oplossingen over het hoofd te
de hoogte die de reus reeds bereikt
zien) en de behoefte aan specialisten
Bedoeling is natuurlijk dat alles wat
heeft. De reus groeit door het inzicht
die niet afhankelijk zijn van A’s om
automatisch gaat geen aandacht no-
dat de dwerg toevoegt en de volgende
trouble te shooten en performance
dig heeft en de praktijk leert dat wei-
dwerg kan nog weer verder kijken.
te optimaliseren, wordt alleen maar
nig DBA’s vandaag de dag inderdaad
groter.
nog zoveel tijd kwijt zijn aan het ma-
In de wereld van de Oracle data-
nagen van extents in tablespaces als
base verstoren de A’s het patroon;
Hoe goed een DBA ook is in zijn vak,
ten tijde van Oracle 7.2.
de nieuwe DBA blijft een dwerg op
hij zal zich moeten realiseren dat hij
Ook de meeste andere A’s maken
de grond en de oude reus schrom-
een dwerg is. De vraag die je je als
hun belofte behoorlijk goed waar, al
pelt langzaam ineen, niemand klimt
DBA dan ook moet stellen is dan of
is dat niet altijd meteen in de release
meer op z’n schouders. En dan doet
je dat als een tuinkabouter laag bij de
waarin de feature geïntroduceerd
zich een situatie voor waarin de A’s
grond wilt zijn, of toch liever op de
wordt. Ontsnappen aan de wet van
het antwoord schuldig moeten blij-
schouders van een reus.
behoud van ellende valt echter niet
ven. De automatisch gegenereerde
7
Oracle 11g
Oracle 11g voor ontwikkelaars Door Lucas Jellema en Alex Nuijten
Oracle Database 11g release 1 is bezig beschikbaar te komen. De 11.1.0.6 Productie Release voor Linux staat al sinds begin september op Oracle Technology Network en de Windows editie is sinds eind oktober officieel beschikbaar. In eerste instantie lijkt deze release voor ontwikkelaars niet de meest spannende release te zijn. Maar schijn bedriegt: er zitten toch weer een heleboel features in waar je veel plezier van kunt hebben - omdat ze nuttig en waardevol en soms ook best lollig zijn. In dit artikel nemen we een aantal van de nieuwe features onder de loep.
8
Vele kleine verbeteringen
melding: ORA-04068:
Er zijn vele ‘kleine’ verbeteringen
state of packages has been
DBA’s.
gemaakt waar je als ontwikkelaar
discarded
De meeste aankondigingen van Ora-
mee te maken kunt gaan krijgen.
Stel dat je een package hebt die
cle 11g bevatten overzichten van
Bijvoorbeeld: waar je voorheen altijd
iets doet met een tabel, niet geheel
de nieuwe functionaliteit. Meestal
een SELECT statement nodig had om
ondenkbaar. En je wilt een extra
gaan deze in op de beheeraspecten
de eerstvolgende waarde uit een se-
kolom aan die tabel toevoegen, dan
van de database, met nadruk op
quence te bepalen, is het nu mogelijk
wordt de Package Body invalid. Een
performance, beschikbaarheid, bev-
om middels een direct assignment de
gebruiker van het betreffende pack-
eiliging en beheergemak. Dit artikel
volgende waarde te verkrijgen.
age kan dan deze melding krijgen.
is nadrukkelijk bedoeld voor Oracle
var := sequence.nextval;
Eigenlijk is dat raar, maar zo was
ontwikkelaars, maar laten we kort
Iets minder code, een stuk eleganter.
nu het eenmaal. In Oracle 11g is
even de lijst doornemen van wat
existing
11g Nieuwe Functionaliteit voor
dit opgelost. Door het wijzigen van
deze nieuwe release voor DBA’s zo
Oracle 10g Release 2 introduceerde
iets waar de package niets mee doet,
interessant maakt:
de Compilation Warnings, meldin-
bijvoorbeeld die extra kolom, zal de
• SQL Performance Analyzer
gen die kunnen helpen bij het schrij-
package niet meer invalid worden.
• Database Replay
ven van code. In 11g krijg je een war-
Voor gebruikers van packages is dit
• SQL Plan Management
ning indien je een exception handler
toch een stuk vriendelijker. Onder
• SQL Repair Advisor
WHEN OTHERS hebt, maar er geen
de noemer Fine Grained Depend-
• Hangman Utility
RAISE of RAISE_APPLICATION_ER-
ency Tracking is dit terug te vinden
• Hot Patching en Feature based
ROR in hebt staan. Dit wordt gezien
in de documentatie. De integratie
als ‘slechte codering’.
tussen SQL en PL/SQL is weer iets
• Automatic Memory
dichter bij elkaar gekomen nu het
Een extra toevoeging in LOOP con-
mogelijk is om een named notation
• Automated Storage Load
structies is het CONTINUE state-
te gebruiken voor functie aanroepen
ment. Hiermee kun je aangeven
vanuit SQL. In PL/SQL is dit al heel
• Automatic Diagnostic Repository
dat de iteratie een keertje mag over-
lang mogelijk. Met de named nota-
• Incident Packaging Service om
slaan.
tion geef je expliciet de parameter
problemen aan te melden bij
begin
naam aan bij het aanroepen van de
Oracle Support
fori in 1..3
functie:
• ILM – Information Lifecycle
loop
select ename, f_get_emp_sal (p_
patching Management Balancing
Management
dbms_output_line
ename => ‘KING’)
• Advanced Table Compression
(‘i=’||to_char(i));
from emp;
• Audit Vault
continue when (i = 2);
De positie van de database in SOA
• Invisible Indexes
d b m s _ o u t p u t . p u t _
omgevingen is verder uitgebreid met
• Gebruik the Data Guard
line(‘Alleen als i ongelijk is
de Native WebServices. Deze stellen
Physical Standby Database
aan 2?);
ons in staat om PL/SQL Packages di-
voor queries
rect te publiceren als SOAP WebServ-
• Snellere DML Triggers
end;
ice, aanroepbaar van buiten de data-
Waarschijnlijk is dit wel een bekende
base en mogelijk zelfs de firewall!
• BLOB limiet (van 4Gb naar 8 TB
end loop;
(tot 25% sneller)
Oracle 11g
tot 128 TB)
• SecureFiles (opvolger van
de LOB’s): Transparante
encryptie, deduplicatie en
compressie én: ‘Faster than Unix
files to read/write’
• Partitionering: Interval Based
een UNPIVOT operatie. Deze laat
kunnen opvragen, maar dat de da-
(met automatische Partition
zich losjes omschrijven als: splits
tabase die waarde niet opslaat maar
Creatie) en met Reference
iedere rij in meerdere resultaatrijen,
tijdens de query opnieuw bepaalt.
Partitioning (kind-tabel volgt
afhankelijk van het aantal UNPIVOT
Bijvoorbeeld:
het partition-schema van
kolommen. Iedere resultaat-rij heeft
alter table emp
zijn ouder-tabel)
alle niet-UNPIVOT kolommen uit
ADD
de originele rij, een UNPIVOT-type
(income
Pivot en Unpivot Operaties
kolom en een UNPIVOT-waarde ko-
nvl(comm,0)))
Pivot is een wat lastig te vertalen term.
lom. De UNPIVOT-type kolom geeft
creëert een Virtual Column die IN-
Pivot Table - in Excel een bekend
aan voor welke UNPIVOT kolom
COME heet in de tabel EMP. Het
begrip - vertaald als ‘draaitabel’. En
deze rij is gecreëerd en de UNPIVOT-
inkomen wordt bepaald door de
dat maakt het een stuk duidelijker...
waarde kolom geeft de waarde uit die
waarden van SAL en COMM bij
Pivot in termen van SQL queries is een
kolom. Een simpel voorbeeld is het
elkaar op te tellen, en is dus een de-
term die beschrijft hoe meerdere rijen
splitsen van tijd-registratierecords -
normaal gegeven. De INCOME ko-
in een query resultaat worden samen-
met kolommen voor de dagen van
lom kunnen we in queries gewoon
gevoegd waarbij een of meer waarden
de week - in records per dag.
gebruiken, alsof het een echte kolom
in iedere rij een nieuwe kolom in de
AS
(sal
+
is.
samengevoegde rij opleveren. Een
Virtual Columns
select ename
voorbeeld is een query die voor alle
Normalisatie is een belangrijk onder-
, sal
Departments in de EMP tabel per
deel van het maken van een data-
, comm.
jaar (van 1980 tot 1982) het aantal
baseontwerp. Afleidbare gegevens,
, income
medewerkers oplevert dat in dat jaar
hoe vaak ze ook nodig zijn voor rap-
from emp
in dienst is gekomen. We willen graag
portages en op schermen, dienen uit
We kunnen uiteraard geen waarde
voor ieder department een aparte rij,
het ontwerp gebannen te worden.
inserten of updaten in een Virtual
en voor ieder jaar een aparte kolom.
Als we het vaste salaris en de bonus
Column. Wat we wel kunnen doen
Met Oracle 11g hebben we nu een
per maand weten, kunnen we het to-
is de Virtual Column opnemen in
echte PIVOT operator, die in dit geval
tale inkomen altijd afleiden. Als we
Constraint definities en Indexen.
kan worden gebruikt:
de geboortedatum weten kunnen we
Zowel Unique, Foreign Key als Check
select *
de leeftijd altijd berekenen. En dus
Constraints kunnen Virtual Col-
from (select deptno
gaan we de denormale inkomen en
umns bevatten. Bijvoorbeeld - het
leeftijd kolommen uit ons definitieve
inkomen mag niet hoger zijn dan
ontwerp schrappen. Jammer is dan
8000:
wel dat iedere keer dat die gegevens
alter table emp
nodig zijn, we ze opnieuw expliciet
add constraint emp_income_ck
in queries moeten opnemen. Of we
check ( income < 8000)
moeten een view maken op de tabel
De expressie waarmee we een Vir-
waarin die kolommen zijn opgeno-
tual Column definiëren mag alle
,
extract (year from
hiredate) hireyear from emp ) pivot ( count(hireyear) count_emps for hireyear in (1980, 1981, 1982)
men. 11g Virtual Columns zijn on-
echte (non virtual) kolommen van
NB: Er kunnen meerdere cellen
dermeer een oplossing voor dit prob-
de tabel gebruiken, evenals alle stan-
worden gedefinieerd, met naast het
leem. We kunnen de denormale,
daard Oracle SQL functies én onze
aantal medewerkers in een jaar bij-
afleidbare gegevens nu toch opne-
eigen PL/SQL functies! Door dat
voorbeeld ook een gemiddelde of
men in de tabel-definitie, als Virtual
laatste ontstaan interessante moge-
totale salaris. Dit resulteert in extra
Column. Dat betekent dat we bij een
lijkheden. In Check Constraints bij-
kolommen voor ieder jaar.
DESC van de tabel de kolom zien,
voorbeeld kunnen geen User Defined
Naast de PIVOT kent Oracle 11g ook
dat we er te allen tijde de waarde van
Functions benaderd worden. Maar
)
9
Oracle 11g
nu via de Virtual Columns kan dat
Een Flashback Archive heeft een
en die in beide tabellen staan, maar
via een omweg toch.
specifieke RETENTION: de periode
wel met verschillende waarden. Bij
Stel dat we een functie income_
gedurende
datawijzigingen
de vergelijking kunnen we een lijst
checker( p_sal in number, p_comm
moeten worden bewaard. We creëren
van de kolommen opgeven die in de
in number) return varchar2 heb-
hier een Flashback Archive waarin
vergelijking moet worden betrokken
ben die op een ingewikkelde manier
transactiegegevens gedurende 15 jaar
- zodat bijvoorbeeld een Last_Modi-
bepaalt of een inkomen al dan niet
bewaard blijven.
fied_Date niet ten onrechte an-
toegestaan is. We kunnen niet het
CREATE
volgende check constraint aanmaken:
LONGTERM_ARCHIVE
vergeleken tabellen kunnen zich bev-
check
TABLESPACE HISTORY
inden in hetzelfde schema, dezelfde
comm)=‘Y’)
RETENTION 15 YEAR
database of in twee verschillende
Wat we wel kunnen doen nu in 11g,
Om ons te verzekeren van 15 jaar
databases. De vergelijking vindt in
en wat op hetzelfde neerkomt, is:
flashback voor tabel EMP gebruiken
dat laatste geval plaats via een data-
alter table EMP
dit statement:
base link. Nadat we een vergelijking
ADD
ALTER TABLE EMP
hebben gemaakt, kunnen we ervoor
(income_chk AS
FLASHBACK ARCHIVE LONGTERM_
kiezen om een merge operatie uit te
income_checker( sal
ARCHIVE;
voeren, waarbij de vergeleken ob-
+ nvl(comm,0)
Als we in databaseontwerp heb-
ject gelijkgetrokken worden. Hierbij
)
ben vastgelegd dat we voor bepaalde
moeten we kiezen welke tabel de
)
tabellen over historische data be-
correcte situatie aangeeft - en welke
en vervolgens:
schikken, dan kunnen we in onze
tabel daaraan gelijk moet worden ge-
check (income_chk =‘Y’)
rapportages en applicaties echt ge-
maakt.
(income_checker(sal,
welke
FLASHBACK
ARCHIVE
derszins gelijke rijen rapporteert. De
bruik gaan maken van Flashback Oracle Total Recall - Flashback
operaties. Bijvoorbeeld een query
Partial Flashback Table - flash-
nu ook voor ontwikkelaars
om de salarisontwikkeling van onze
back van subset van rijen of
In Oracle 9i begon de opmars van de
medewerkers ten opzichte van vorig
kolommen
Flashback technologie. Met Flash-
jaar te beoordelen:
Een combinatie van twee 11g fea-
back stelt Oracle ons in staat om
select e1.ename
tures - dbms_comparison en total re-
data te reconstrueren zoals die er een
, e1.sal
call (ofwel Flashback Data Archive)
aantal transacties geleden uitzag. We
. e2.sal
- stelt ons in staat om de volgende
kunnen als het ware in een tijdma-
, (e2.sal - e1.sal)/ e1.sal
krachtige operatie uit te voeren: een
chine stappen, teruggaan naar een
* 100 percentuele_wijziging
partiële flashback van een tabel! De
uur, een dag of zelfs een jaar geleden,
from emp e1
standaard Flashback Table operatie
een query uitvoeren.
, emp AS OF timestamp( sys-
draait alle wijzigingen in een tabel
Voor applicatieontwikkelaars was de
timestamp - 365) e2
terug naar een eerder tijdstip, voor
Flashback functionaliteit hooguit een
where e1.empno = e2.empno
alle rijen en voor alle kolommen.
leuk speeltje: er was eigenlijk nooit
Oracle Total Recall maakt Journal-
Hoewel dat een zeer krachtige ope-
voldoende zekerheid van de beschik-
ling tabellen en andere vormen van
ratie is, is deze ook nogal grof. Als
baarheid van historische data die
archivering die we tot nu hoe hebben
bijvoorbeeld een import operatie alle
voldoende ver terug kon kijken in de
gebruikt in onze applicaties grotend-
Order-data van een bepaalde regio
tijd, om daadwerkelijk in applicaties
eels overbodig!
mismaakt heeft, maar in dezelfde
gebruik te maken van Flashback.
10
periode correcte wijzigingen zijn
Met Oracle Total Recall - of eigenlijk
DBMS_COMPARISON - vergelijk
gemaakt op de Order-gegevens van
met FLASHBACK DATA ARCHIVE
en merge
tien andere regio’s, is Flashback Ta-
- gaat dit veranderen. In 11g kan
Het nieuwe supplied package dbms_
ble niet ideaal: om de incorrecte im-
heel gericht voor een tabel Flash-
comparison laat ons de inhoud van
port ongedaan te maken kunnen we
back Data bijgehouden worden. De
twee tabellen of views vergelijken.
een Flashback Table naar vlak voor
eerste stap is het aanmaken van een
Het package biedt een nauwkeurig
de import uitvoeren, maar verliezen
Flashback Archive - een opslagplaats
rapport van rijen die in de ene tabel
we alle wel correcte wijzigingen.
voor Flashback data die door meer-
en de andere tabel niet voorkomen
Vergelijkbaar is de situatie waarbij
dere tabellen kan worden gedeeld.
- en andersom - en ook van de rij-
een batch-proces nieuwe salarissen
Oracle 11g
heeft berekend en vastgelegd voor alle medewerkers - maar de bereke-
fel, en toch ook weer een heleboel
COMPOUND TRIGGER
ning op verkeerde algoritmes was gebaseerd (of achterhaalde CAO
nieuwe release, veel marketing-gerof-
FOR UPDATE OF sal ON emp -- deze variabelen bestaande
Die de voorsprong van de Oracle Da-
tijdens het statement
afspraken). Tegen de tijd dat we dit
waardevolle nieuwe functionaliteit.
num_
tabase op de concurrentie nogmaals
ontdekken zijn er ook andere wijzin-
tbl(); -- lijst van alle opge-
bevestigt. Die veel van de eerder in 9i
gen in de medewerker-gegevens ge-
waarde medewerkers
en 10g ingeslagen wegen verder aflegt
emp_list
num_tble:=
maakt, die we niet willen verliezen.
AFTER STATEMENT IS
en nog waardevoller maakt. En die
Flashback Table kan ons niet uit de
BEGIN
ook laat zien hoe zowel SQL als PL/
brand helpen.
-- loop door emp_list en controleer iedere medewerker
SQL in ontwikkeling blijven, mede onder de invloed van ontwikkelingen
Compound Trigger - elegante
END AFTER STATEMENT;
zoals in moderne programmeertalen
oplossing voor mutating table
AFTER EACH ROW IS
(bijvoorbeeld Java) en industriestand-
fouten
BEGIN
aarden (bijvoorbeeld rondom XML
Naast de verschillende tabel triggers
-- als het salaris wordt
en SQL/XML maar ook de Native PL/
die er al zijn- before statement, after
verhoogd, voeg empno toe aan
SQL WebServices). Uiteraard zullen
statement, before row en after row- is
emp_list
vooral DBA’s hun hart kunnen opha-
er een nieuw type trigger toegevoegd,
END AFTER EACH ROW;
len bij de 11g Release: hun werk is
de Compound Trigger. Deze trigger
END compound_trigger;
weer verder gespecialiseerd, met meer
kan alle trigger momenten bevat-
/
weer ‘alledaagse’ zaken overgenomen
ten.Stel: je wilt de volgende business
door de Automatic processen en in-
rule implementeren: ‘Een mede-
SQL en Function Result Caches
telligente Advisors. Maar ook databa-
werker mag niet meer salaris krijgen
Een van de verbeteringen in Oracle
seontwikkelaars kunnen interessante
dan zijn directe manager.’ Aangezien
Database 11g is de mogelijkheid tot
gereedschappen aan de kist toevoe-
medewerkers en managers in dezelfde
cachen van result sets. Door middel
gen. De belangrijkste is misschien
tabel staan, is deze regel niet zomaar
van de RESULT_CACHE hint kun
wel de doorbraak van Flashback tech-
te implementeren. Als je zou trachten
je aangeven dat de result set moet
nologie tot in de applicatie, maar dat
in een row-level trigger de medew-
worden gecached. Dit werkt over
is maar een van de vele. We hopen de
erkers tabel te querien om het salaris
verschillende sessies heen. Bijvoor-
lezer met het topje van de ijsberg in
van de manager te bepalen, dan krijg
beeld:
dit artikel op zijn minst nieuwsgierig
je een foutmelding: ORA-04091:
select /*+ result_cache */
gemaakt te hebben naar 11g!
table XXXX is mutating, trigger/
value
function may not see it
,
displayLabel
Bronnen
Voor dit mutating table probleem is
from
domain_values
Oracle 11g Documentation -
een aantal oplossingen mogelijk. De
where
name = ‘some domain’
http://download.oracle.com/
meest bekende is met drie triggers en
Naast de RESULT_CACHE hint voor
docs/cd/B28359_01/serv-
een package. Omdat je pas vanuit
SQL queries, kun je ook voor functies
er.111/b28279/toc.htm
een statement-level trigger je eigen
aangeven dat de resultaten gecached
tabel mag queriën, moet de controle
moeten worden. Indien de functie
Auteurs
van deze business rule in deze trigger
nog een keer wordt aangeroepen met
Alex Nuijten en Lucas Jellema zijn werk-
worden uitgevoerd. Het package is
dezelfde input parameters, wordt het
zaam bij AMIS als Technisch Consult-
nodig om bij te houden welke werk-
resultaat onmiddellijk teruggegeven.
ant. Dit artikel is de neer- slag van hun
nemers een salarisverhoging hebben
Ook dit werkt over verschillende ses-
presentatie Oracle 11g voor Ontwikke-
gehad en te kunnen controleren of
sies heen:
laars op de afgelopen OBUG Usercon-
zij niet meer dan hun directe man-
create or replace function test_
ference. Zie voor een uitgebreidere be-
ager verdienen. Met Oracle 11g kan
result_cache (p_in in number)
schrijving en codevoorbeelden de online
je in een enkele trigger de volledige
business rule implementatie uit-
cache...
return
number
result_
ger
TRIGGER
compound_trig-
amis.nl/tech_artikelen.php?id=533. De presentatie is te vinden op de web-
voeren: de Compound Trigger. CREATE
versie van dit artikel op http://www.
Conclusie Oracle lapt het hem toch weer. Een
site van de OGh www.ogh.nl.
11
Dikke database
Lang leve de dikke database Door Toon Koppelaars In zijn presentatie tijdens de
sexy, maar volgend jaar verouderd en
geswitcht waarschijnlijk kleiner is
OBUG User Conference behan-
verguisd.
ten opzichte van de kans dat er naar
delde Toon Koppelaars, Senior IT
Voor bedrijfskritische applicaties die
Oracle toe geswitcht wordt. Maar die
Architect van Centraal Boekhuis
een lifespan hebben van vijf of mis-
observatie doet er even niet toe nu.
het concept van de ‘dikke data-
schien wel meer dan tien jaar ver-
Het punt is dat de DBMS technolo-
base’. In dit concept wordt ‘alle’
oorzaakt deze technologiedynamiek
gie die toegepast wordt in een bedrijf,
applicatiefunctionaliteit
de
aanzienlijke problemen in het behe-
de technologie is die van alle andere
database gerealiseerd, en slechts
ren en onderhouden van de applica-
technologieën die betrokken zijn bij
de user interface (heel dun) door
tiesoftware. In dit artikel willen we
de bouw van een bedrijfsapplicatie
middel van een technologie daar-
u wijzen op een alternatief dat zich
waarschijnlijk het minst vaak veran-
buiten. Applicaties die volgens
in de praktijk al jaren bewezen heeft:
dert.
dit concept gebouwd worden,
De Dikke Database.
in
zijn hoog immuun voor de steeds
12
Wat Willen de Gebruikers
maar weer veranderende user in-
Het Huidige Denken
Gebruikers zal het een worst wezen
terface-technologieën, stelt Kop-
“Het moet database (management
door middel van welke technologie
pelaars. En oh ja, ze performen
system) onafhankelijk zijn.” Kent u
(stack) een applicatie gebouwd is.
ook nog bijzonder goed en zijn
die? Lang leve het object model en de
Gebruikers willen maar één ding:
prima te onderhouden en te be-
Java container. We willen van DBMS
efficiënt kunnen werken met het
heren.
kunnen switchen, zonder dat dit veel
geautomatiseerde systeem dat hen
impact heeft. SQL en PL/SQL zijn
ondersteunt in het dagelijkse werk.
Technologie Explosie
proprietary en dat is blijkbaar een
En hiervoor zijn zij continu afhan-
Tegenwoordig hebben we een enorm
vies woord. Maar dat houdt toch niet
kelijk van bedrijfsgegevens (data).
arsenaal aan technologieën en pro-
in dat SQL en PL/SQL slechte tech-
De systemen bieden hen de ‘win-
grammeertalen tot onze beschik-
nologie is? Let wel: deze program-
dows’ op deze gegevens: ik noem
king waarmee we (web)applicaties
meeromgeving is al bijna 20 jaar oud
deze systemen dan ook vaak Win-
kunnen bouwen: Javascript, HTML/
en als bijzonder robuust en rijk qua
dow-on-Data
XML, Java, JDBC, SQL, Enterprise
functionaliteit te betitelen. Je kunt
Heel simpel gezien kun je stellen
Java Beans, JavaServer Pages, Struts,
het zo gek niet bedenken of de PL/
dat gebruikers slechts twee type ac-
Tapestry, iBATIS, Hivemind, Toplink,
SQL omgeving heeft er wel een of
tiviteiten uitvoeren in zo’n WoD
Xquery, PL/SQL, Hibernate, Spring,
andere supplied package of feature
applicatie. Ze querien gegevens en
.Net, LINQ, PHP, AspectJ, Maverick,
voor. Deze taal staat zeker niet stil
ze transacten gegevens. By the way,
APEX, Cocoon2, UIX, ADF-BC, Web-
is evolueert continu mee met de
wist u dat een DBMS ontworpen is
work, Wicket, Webforms, JavaServer
gangbare IT trends. Desalniettemin,
om precies dit te doen? En dat ze
Faces, JHeadstart, Ajax, Ruby on
moeten we toch alles in Java (of iets
daar ondertussen ook bijzonder goed
Rails, Adobe/Flex-Actionscript, Dru-
anders buiten het DBMS) program-
in zijn geworden. Mits, dat moet er
pal, WCF, Netbeans, Python, Groo-
meren?
wel bij gezegd worden, het onderlig-
vy, Grails, F#. En ga maar door.
Laten we nou eens even reëel wor-
gend fundament van elke WoD ap-
den. Hoe vaak bent u de afgelopen
plicatie in orde is. Dat fundament
Dit speelveld is tevens erg dyna-
tijd van DBMS geswitcht? Ik doe
wordt gevormd door het onderlig-
misch: nieuwe tools, frameworks en
een gok voor u: ten hoogste net zo
gend relationeel database design (ik
programmeertalen komen en gaan
vaak als dat het hoofdkantoor van
vermijd bewust de term datamodel,
op jaarbasis. De technologie stack
het bedrijf waar u voor werkt, veran-
om redenen waarmee ik u hier niet
die toegepast wordt bij het bouwen
derd is. En dat is niet vaak. Daarbij
lastig zal vallen). Ik gebruik hierbij
van een applicatie neigt steeds meer
komt trouwens dat als er geswitcht
met opzet het woord relationeel, om
naar een ‘du-jour’ stack: nu hot en
wordt, de kans dat er van Oracle weg
aan te geven dat object orientatie, op
(WoD)
applicaties.
Dikke database
het gebied van gegevensmodellering,
technologie de meest stabiele is, en
nologie te switchen. Immers de bulk
simpelweg niet van toepassing is. Als
dat daarbuiten, sinds zo ongeveer
van je applicatielogica zit in de dikke
onder uw applicaties hiërarchische
eind jaren negentig, al continu een
database en die is nagenoeg 100%
object modellen ‘gepersisteerd’ zijn,
technologie explosie gaande is, kom
onveranderd herbruikbaar met een
dan vermoed ik dat het fundament
ik tot een heel andere conclusie dan
nieuwe UI technologie. Je desinves-
van die applicatie voor verbetering
het eerder genoemde huidige den-
tering is dus minimaal. Iets wat we
vatbaar is. Maar ook dit is eigenlijk
ken. ‘Gij zult niet DBMS onafhan-
nu bij Centraal Boekhuis direct er-
besides the point. Gebruikers willen
kelijke applicaties bouwen’, waarbij
varen bij het migreren van meerdere
gegevens opvragen en ze willen gege-
naast UI ook BL en DL code in een
met JDeveloper gebouwde applica-
vens onderhouden.
‘du-jour technologie’ geïmplemen-
ties naar Apex.
teerd wordt. In tegendeel, gij zult
Als tweede belangrijke voordeel wil
WoD Code Classificatie
du-jour technologie-onafhankelijke
ik nog noemen: performance. In de
Elke regel code van een WoD appli-
applicaties bouwen.
dikke database benadering zal alle
catie kan toegewezen worden aan één
De manier om dit voor elkaar te krij-
query en transactie processing in
van de volgende drie code classes:
gen is om alle BL en DL code in het
één context, zijnde de databaseses-
• user interface (UI) code
DBMS te implementeren, en slechts
sie, plaatsvinden. Er hoeft niet van
• business logic (BL) code
de user interface, heel dun, in een
context geswitcht te worden. Con-
• data logic (DL) code
technologie daarbuiten. Als je met
text switching (van data tier, naar
UI-code creëert user interface voor
deze bril naar de dynamiek van de
business logic tier, naar web tier etc.)
de gebruiker. Deze code heeft ook
technologie gaat kijken, wordt de
is niet zelden de performance- en
tot taak om te reageren op UI-events
wereld ineens heel eenvoudig: elke
schaalbaarheid-killer van een WoD
(geïnitieerd door de gebruiker) en
nieuwe hype kan (en ga) je beoorde-
applicatie die dom omgaat met de
dan doorgaans BL-code aan te roe-
len slechts op haar merites in het ge-
database.
pen.
bied van user interface development. Want de bulk van je applicatiecode
Overige voordelen van de dikke data-
DL-code is alle code die gebouwd is
zit lekker veilig in de stabiele dikke
base benadering zijn te vinden op het
met als doel om de integriteit van de
database.
gebied van beheer en monitoring.
gegevens in het databaseontwerp te
U dient de dikke database wel be-
Denk bijvoorbeeld aan de instru-
waarborgen. Elk databaseontwerp
heersbaar in te richten om te voor-
mentatie van het DBMS door middel
is doorgaans doordrenkt van data-
komen dat het één grote bak met PL/
van bijvoorbeeld SQL tracing, maar
integriteit constraints. Code die deze
SQL spaghetti gaat worden. Om dit
ook aan diverse in-flight change mo-
constraints bij uitvoering van trans-
voor elkaar te krijgen moet er aan-
gelijkheden. Naast de zeer rijke func-
acties (komend vanuit BL-code)
dacht worden besteed aan 1) het ge-
tionaliteit voor ontwikkelaars, heeft
controleert, behoort tot de DL-code
scheiden houden van DL en BL code
het DBMS ook op dit gebied een
classe.
en 2) aan het expliciet introduceren
voorsprong van ruim 20 jaar. Een
BL-code is de rest: als de regel code
van database API’s ten behoeve van
voorsprong die met de komst van
niet tot UI-code of DL-code behoort,
de user interface.
Database 11g ruim aanwezig blijft,
dan betreft het BL-code.
zo niet nog verder wordt vergroot.
Het moge duidelijk zijn dat in een
De Voordelen van de Dikke
gemiddelde WoD applicatie, de bulk
Database
van alle procedurele code regels toe-
Primair voordeel van de dikke da-
gewezen kan worden aan DL en BL
tabase benadering is de verworven
code. En het efficiënt uitvoeren van
immuniteit voor du-jour techno-
dit soort code is, om het toch nog
logie. Eigenlijk moet ik ‘dat anders
een keer te herhalen, één van de be-
verwoorden: je creëert voor jezelf
langrijkste ontwerpcriteria van een
de mogelijkheid om agile te zijn
DBMS.
met betrekking tot het adopteren van nieuwe UI technologie. Door-
Gij Zult Technologie
dat je dit soort technologie a priori
Onafhankelijk Zijn
heel dun inzet, ben je ook in staat
Gegeven de observatie dat de DBMS
om relatief eenvoudig van UI tech-
13
Ervaren in it-dienstverlening. Toonaangevend in Oracle Solutions. Neem eens een kijkje op de nieuwe kennispagina’s van CIBER: http://knowledge.ciber.nl
CIBER Nederland | Eindhoven - Nieuwegein - Den Bosch I: www.ciber.nl E: [email protected] T: +31 40 232 90 90
SOA-casus-CJIB
Systeemvernieuwing onder SOA met Oracle e-Business Suite “Organisaties zouden een business case moeten maken om stapsgewijs naar een Service Oriented Enterprise te groeien. Voorbeelden als het CJIB werken inspirerend: veel kan nú al en de gereedschappen als BPEL-PM gaan beslist een grote verschuiving teweegbrengen, al is het alleen om het simpele feit dat het nu technologisch allemaal mogelijk is.” Een verslag van de transitie van het CJIB naar een Service Oriented Enterprise. “In februari 2005, tijdens een work-
richten.” Aan de pilot van deze Mas-
uitdagingen waar het CJIB op dat
shop bij Oracle in Redwood Shores,
ter Class nam een architect deel die
moment voor stond. De verbinding
hoorde ik voor de eerste keer over
op dat moment een adviesopdracht
tussen CxO Fusion Experience en
Project Fusion, Oracle’s plan om
uitvoerde voor het Centraal Justitieel
het programma NoorderWint was
een volledig nieuwe SOA applica-
Incasso Bureau (CJIB), aldus Leen-
toen snel gemaakt. Door gebruik
tiesuite te ontwikkelen’, vertelt Balt
man. “Het CJIB werd geconfronteerd
te maken van Capgemini’s Integra-
Leenman, EMEA Oracle Alliance
met een aantal trends in de markt,
ted Architecture Framework (IAF)
manager bij Capgemini. “We waren
zoals de focus op kostenreductie,
werd er een generiek procesmodel
als strategisch partner van Oracle
politieke verwachtingen met betrek-
ontwikkeld. In dit procesmodel wa-
uitgenodigd op het hoofdkantoor
king tot het toevoegen van nieuwe
ren de reeds bestaande diensten te-
van Oracle. Het was in de periode
diensten en de snelheid van verande-
ruggebracht naar hun elementaire
kort na de overname van PeopleSoft
ringen in de bestaande diensten. Het
activiteiten. Bij de vertaling van dit
en JD Edwards. Oracle voerde een
ICT-landschap van het CJIB was ech-
procesmodel naar een IT-oplossing
campagne ‘Oracle PeopleSoft, Bet-
ter verouderd en bestond uit maat-
koos het CJIB, waar mogelijk, voor
ter Together’. Met mijn achtergrond
werkoplossingen voor iedere dienst.
de standaardmodules van de Oracle
in architectuur wist ik heel goed wat
Het uitvoeren van een nieuwe wet
e-Business Suite, die opgedeeld wer-
SOA was, maar nog nooit had ik
betekende in feite het ontwikkelen
den in herbruikbare componenten.
SOA in verband gebracht met ERP en
van weer een nieuwe applicatie.”
Voor CJIB-specifieke deelprocessen
bedrijfsprocessen.”
Jan van Dijk, Unitdirecteur Infor-
zullen SOA maatwerk componenten
matietechnologie & ICT-innovatie
gebouwd worden die ‘georkestreerd’
Innovatie programma
bij CJIB wilde een opener, flexibeler
worden tot een geïntegreerd proces
Vanaf dat moment is bij Capgemini
systeem, waarin continuïteit, flexi-
door middel van Oracle BPEL-PM.
een initiatief gestart om organisaties
biliteit en efficiency voorop stonden.
“Het is geen gemakkelijk proces”, legt
de zakelijke voordelen (business be-
Om deze visie te realiseren, werd bij
Jan van Dijk uit. “Ons uitgangspunt
nefits) van SOA te laten begrijpen
het CJIB het programma Noorder-
was: uitsluitend proven technology
en er voordeel mee te behalen.”Ons
Wint opgestart. Met zijn achtergrond
toepassen. Nu is BPEL Process Ma-
programma kreeg de cryptische naam
als IT-manager bij de Postbank, waar
nager een stabiel en bewezen product
CxO Fusion Experience mee. CxO
hij een soortgelijke beweging had
maar we hebben moeten ondervin-
voor zakelijke voordelen op boar-
meegemaakt, had Van Dijk ervaring
den dat Oracle B2B een stuk minder
droom niveau, C-level: dus CEO,
met ‘component based applications’
volwassen is. Als we niet de directe
CFO, CIO, maar het is ook een ver-
en zag hierin de oplossing voor de
support van Oracle (HQ) Develop-
wijzing naar Capgemini en Oracle: CxO”, legt Leenman uit. “Een van de activiteiten die is opgepakt is de Architectuur en Oracle Fusion Master Class, een training waarin architecten, lead consultants en projectleiders drie dagen samenwerken rondom een casus om een bedrijfsproces op een service oriented manier in te
Centraal Justitieel Incasso Bureau - CJIB
Het Centraal Justitieel Incasso Bureau (CJIB) is een agentschap van het Ministerie van Justitie. Als uitvoeringsorganisatie in de justitiële keten is het CJIB onder meer verantwoordelijk voor de afhandeling van boetes, straffen en andere sancties. De belangrijkste opdrachtgevers van het CJIB zijn het Openbaar Ministerie, het VROM en een aantal grote bestuursorganen zoals de Nederlandsche Bank en de inspectie Verkeer en Waterstaat.
15
SOA-casus-CJIB
ment hadden, dan was het erg las-
deze flexibiliteit moet geen doel op
hebben hier ook nog moeite mee.
tig geworden. Nu is het ook wel erg
zich zijn, maar een middel om een
Dit is echter wel de basisgedachte
innovatief wat CJIB aan het doen is,
(business) doel te bereiken.”In de
achter Fusion! Waar het begon met
maar het gaat ons zeker lukken.”
situatie van CJIB is de voortdurend
een Architecture Master Class, zou-
veranderende wetgeving aanleiding
den we ook zo moeten doorzetten,
SOE
om flexibele bedrijfsprocessen toe
in een mix van ervaren architecten,
“De CJIB-casus is een heel mooi
te passen. Ook moet het systeem
applicatie consultants en middle-
voorbeeld van een SOE: een Service
voldoende flexibel zijn om reeds be-
ware specialisten, zodat dezelfde taal
Oriented Enterprise”, zegt Balt Leen-
staande processen te kunnen herge-
wordt gesproken en men de begrip-
man. “Wij zien SOA als een ‘design
bruiken. Voor zulke processen heeft
pen deelt.”
principle’,
ontwerpfilosofie,
het CJIB services gedefinieerd. Deze
Balt Leenman merkt tenslotte op dat
waarbij je een opdeling in drie lagen
een
services kunnen vanuit verschillende
wat CJIB doet inderdaad erg inno-
kunt maken.”
wetgevingen worden aangeroepen.
vatief is. “Het is een gedurfd staal-
Laag 1 - SOI, Service Oriented In-
Bijvoorbeeld het proces ‘inhouding
tje visionair ondernemerschap: de
frastructure, de hard- en software-
rijbewijs’. Dit proces wordt zowel ge-
manier waarop CJIB voorop loopt in
infrastructuur. Hier betekent SOA
bruikt wanneer een bestuurder ver-
het SOE denken. Voorop lopen be-
het virtualiseren van IT middelen.
oordeeld is omdat er veel te hard is
tekent ook de kastanjes uit het vuur
Niet langer een één-op-één kop-
gereden, als wanneer er sprake was
halen. Wat ik erg sterk van het CJIB
peling tussen een applicatie en een
van overmatig drankgebruik. Het de-
en van Jan van Dijk vind is het ver-
server maar bijvoorbeeld GRID com-
finiëren van dit proces als een service,
mogen om ook Oracle Development
puting. Zo ook het toepassen van
geeft het CJIB de mogelijkheid het te
te mobiliseren. Er zijn ook goede les-
een Enterprise Service Bus (ESB), in
hergebruiken in plaats van het op
sen te leren voor andere organisaties,
plaats van losse interfaces.
meerdere plekken te onderhouden.
die misschien niet zo voorop lopen,
Laag 2 - SOApps, Service OrienConclusies
SOI laag kun je applicaties toepassen
Concluderend merkt Jan van Dijk
waarvan de processen opgedeeld zijn
op: “Het is haalbaar om vandaag al
“Organisaties zouden een business
in logische bouwstenen, componen-
SOA toe te passen op basis van een
case moeten maken waarbij aange-
ten, die je tot een proces kunt sa-
standaardapplicatie als e-Business
ven wordt waar en waarom een be-
menvoegen door middel van moder-
Suite R11, waarbij standaard com-
paalde flexibiliteit in bestaande en
ne orkestratie tools, zoals BPEL-PM
ponenten
toekomstige bedrijfsprocessen nodig
van Oracle. Het is hierbij van belang
met
De
is. Deze business case kan vervol-
om helder te hebben welke delen
‘sleutel tot succes’ is de beschikbaar-
gens gebruikt worden om stapsge-
van de bedrijfsprocessen standaard
heid van middleware producten. Een
wijs naar een Service Oriented En-
processen zijn en waar flexibiliteit
goed gedefinieerde architectuur (bij-
terprise te groeien. Voorbeelden als
gewenst is.
voorbeeld op basis van IAF) is daar-
het CJIB werken inspirerend: veel is
Laag 3 - SOE, Service Oriented
bij cruciaal.’ In de nabije toekomst
nú al mogelijk en de gereedschappen
Enterprise. We spreken over een
verwacht Jan veel heil van verdere
als BPEL-PM gaan beslist een grote
SOE wanneer een organisatie op
ontwikkeling van e-Business Suite in
verschuiving teweegbrengen, al is het
CxO niveau een duidelijke visie op
de richting van Fusion Applications,
alleen om het simpele feit dat het nu
SOA heeft vanuit een business per-
waarmee een verdere uitbouw naar
technologisch allemaal mogelijk is.”
spectief. Een SOE heeft op CxO ni-
een completere SOA met nog meer
veau een visie op IT als enabler voor
flexibiliteit en hergebruik bereikbaar
Auteurs: Balt Leenman, EMEA Ora-
de business ofwel ‘business aligned
wordt. “Het gaat niet allemaal even
cle Alliance Manager bij Capgemini,
IT’.
gemakkelijk’, zegt Jan van Dijk. “Er
Björn Vos, Consultant bij Capgemini,
is veel onontgonnen gebied, het CJIB
met medewerking van Jan van Dijk,
leert veel en onze leveranciers (in-
Unitdirecteur Informatietechnologie &
Flexibiliteit
nology’ te implementeren.”
worden
gecombineerd
maatwerkcomponenten.
een
clusief Oracle) ook. Het uitgangs-
ICT-innovatie bij CJIB. De CJIB casus
technische insteek, stelt Leenman.
punt om een pakket als basis voor
is door Leenman en Van Dijk gepresen-
“Bij SOA gaat het vaak over kosten-
SOA te zien lijkt een ‘contradictio
teerd tijdens de OBUG Benelux User-
verlaging én om flexibiliteit. Maar
in termini’, de meeste consultants
conference.
Veel
16
zoals het principe om ‘proven tech-
ted Applications. Boven op een
SOA-projecten
hebben
10, 11 & 12 MAART 2008 n H Hotel Den Haag HET ONAFHANKELIJKE EVENEMENT GERICHT OP DE ORACLE DATABASE 5% E X TR A G KO R TI N VO O R UG OGh / OB LE D E N
SPREKERS Mogens Nørgaard Mark Rittman Christian Antognini Julian Dyke Lucas Jellema Carel-Jan Engel Daniel Fink
Onderwerpen Oracle server tuning, Query optimization en SQL tuning, Advanced application development, Oracle data guard, Datawarehousing met Oracle 11g, Oracle RAC en meer. Onderwerpen speciaal voor de Oracle ontwikkelaar of Oracle DBA. http://www.reddatabase-symposium.com voor een compleet programmaoverzicht en alle details.
Wat is RedDatabase Symposium? RedDatabase Symposium duurt drie dagen met elke dag een keuze uit drie diepgaande, dagvullende masterclasses. Alle sprekers zijn internationale experts op hun gebied en zeer ervaren sprekers. Ze vormen de crème de la crème van de Oracle community.
Prijzen 1 dag is
799, 2 dagen
1339 en 3 dagen
1819 (ex. BTW)
Kortingen tot 35% 10% Vroegboekkorting, 15% Groepskorting 5% OGh/OBUG Leden, 5% RedStone Members Word gratis RedStone Member via de website. Dit geeft u recht op 5% extra korting op alle evenementen van RedStone Innovations. RedDatabase Symposium wordt georganiseerd door:
HTTP://WWW.REDDATABASE-SYMPOSIUM.COM
Oracle Database 11g
Diverse verbeteringen en uitbreiding van functionaliteit in nieuwste versie
Oracle Database 11g verder geoptimaliseerd voor grid computing Oracle heeft de nieuwste versie van haar database geïntroduceerd: Oracle Database 11g. Net als bij de voorgaande versie 10g, die in 2004 werd uitgebracht, geeft de benaming aan dat Oracle Database 11g speciaal is ontworpen voor grid computing. De nieuwe database is volgens Oracle op tal van punten verbeterd op het gebied van beschikbaarheid, schaalbaarheid, performance, beheer en security. Ook is de nodige functionaliteit toegevoegd, zoals nieuwe data partitioning- en compressiemogelijkheden en nieuwe features als Oracle Real Application Testing, Active Data Guard, Total Recall en FastFiles.
18
In een presentatie tijdens de OBUG
automatisch advies geeft over hoe
mogelijkheid een tijddimensie toe te
gebruikersconferentie
John
tables en indexes kunnen worden
voegen aan verschillende typen data
Abrahams van Oracle Nederland een
gepartitioneerd om de performance
voor change tracking, Information
aantal van de belangrijkste nieuwe
te verbeteren. Verder voorziet 11g
Life Cycle Management, auditing en
eigenschappen van Oracle Database
nu in automatische, unified tuning
compliance. Flashback Data Archive
11g de revue passeren. Abrahams gaf
van zowel System Global Area (SGA)
zorgt voor automatische en gestruc-
aan dat de nieuwe database verder is
als Program Global Area (PGA) me-
tureerde storage van ‘ change’ data,
geoptimaliseerd voor grid computing
mory buffers en zijn de diagnostics
zodat heel efficiënt queries op data
en effectief gebruikt kan worden op
voor database clusters verbeterd en
uit het verleden kunnen worden op-
zowel kleine blade servers als grote
uitgebreid.
gehaald. De DBA kan ook beleidsre-
SMP-servers, en elk formaat cluster.
De ADDM (Automatic Database
gels instellen voor het automatisch
Met Oracle Database 11g kunnen
Diagnostiek Monitor) biedt nu een
wissen van data wanneer het systeem
gebruikers alle typen informatie be-
beter totaaloverzicht van de perfor-
een bepaalde drempelwaarde voor le-
heren, van traditionele bedrijfsinfor-
mance in Oracle RAC omgevingen
vensduur bereikt.
matie tot XML en 3D spatial infor-
en verbeterde mogelijkheden voor
matie.
vergelijkende performance-analyse.
Performance en schaalbaarheid
In de nieuwe release zijn Oracle’s
Oracle Database 11g bevat een nieu-
Op het vlak van performance en
unieke mogelijkheden op het gebied
we Support Workbench die een een-
schaalbaarheid kent Database 11g
van database clustering, datacen-
voudig te gebruiken interface bevat
een aantal nieuwe en verbeterde fea-
ter automation en workload ma-
die beheerders incidenten laat zien
tures, zoals Query Result Caches, die
nagement verder uitgebreid, aldus
en daarbij informatie geeft over hoe
de prestatie van applicaties verbetert
Abrahams. In combinatie met be-
incidenten snel kunnen worden op-
door caching en hergebruik van de
drijfszekere en schaalbare grids van
gelost.
resultaten van veelgebruikte data-
voordelige servers en storage is de
Oracle Data Guard, de functie die het
base queries en functies in database-
Oracle technologie daarmee geschikt
onderhoud en de synchronisatie van
en applicatie tiers. Database Resi-
voor de meest veeleisende toepassin-
de database tussen lokale en remote
dent Connection Pooling voorziet in
gen op het gebied van OLTP, datawa-
servers coördineert, heeft in 11g een
connection pooling voor niet-multi-
rehousing en content management.
aantal significante verbeteringen en
threaded applicaties, waardoor de
uitbreidingen ondergaan. Het is nu
schaalbaarheid van webgebaseerde
Beheer
mogelijk real-time queries en reco-
systemen verbetert.
In Oracle Database 11g zijn de mo-
very te doen op een fysieke stand-by
In de nieuwe versie zijn ook aan-
gelijkheid voor self-management en
database, waarmee het stand-by sy-
zienlijke performance verbeteringen
automation management verbeterd
steem kan worden ingezet voor rap-
gerealiseerd in XML DB, een fea-
en uitgebreid. Nieuwe beheermoge-
portage, back-up, testen en ‘ rolling’
ture van de database die gebruikers
lijkheden zijn onder meer Automatic
upgrades van productiedatabases.
in staat stelt native XML data op te
SQL en memory tuning, een nieuwe
Oracle Total Recall met Flashback
slaan en te manipuleren. XML DB
Partitioning Advisor die beheerders
Data Archive biedt beheerders de
ondersteunt nu ook binary XML en
liet
Oracle Database 11g
biedt de mogelijkheid XML data te
maakt het mogelijk om eenvoudig
manipuleren via industriestandaard
actuele productie workloads op da-
interfaces, met ondersteuning voor
tabaseniveau vast te leggen in flat
XQuery, JSR-170 en SQL/XML stan-
file formaat en vervolgens ‘af te spe-
daarden.
len’ in een nieuwe testomgeving, zodat de impact van changes volledig
Ook u kunt lid worden van de OGh en ontvangt automatisch OGh Visie!
Meld u aan via www.ogh.nl Niet-leden kunnen zich gratis abonneren op OGh Visie via www.ogh.nl
19
Change Data Capture
Toepassen van Change Data Capture (CDC) Door Ronald Rood
Op de OBUG User Conference gaf Ronald Rood een presentatie over Change Data Capture (CDC). CDC is een verdere verfijning om het laden van wijzigingen (delta’s) in datawarehouses eenvoudiger te maken. Een verslag van een onderzoek naar de toepasbaarheid van CDC bij Eneco.
Vanwege de steeds groter wordende
3) Het overhalen van de delta naar
zal werken, maar met een handvol
databases bij Eneco wordt het voor
patches is het op een 9.2.0.7 bron
staging duurt lang.
ons hoog tijd om het laden van wijzi-
met een 10.2.0.3 staging database
gingen uit de transactieverwerkende
Nu was het al voor Oracle 10 mo-
wel draaibaar te krijgen. De proble-
systemen weer eens onder de loep te
gelijk om logminer te gebruiken om
men die ik ben tegen gekomen zijn
nemen. Toen we met Business In-
wijzigingen in een database mee te
opgelost in 9.2.0.8 en in 10.2.0.4
telligence (BI) begonnen, deden we
achterhalen, maar dat is nog niet
(hopelijk komt die nu snel).
dat rechtstreeks op het productiesys-
zo simpel. Het proces heeft nogal
teem. Het bleek al vlot dat het tot
wat stappen. Die kunnen natuurlijk
Er zijn diverse voorwaarden waar-
een botsing kwam tussen de belan-
gescript worden, maar het blijft een
aan moet worden voldaan om een
gen van het callcenter en de BI ge-
wiebelig systeem. Anders dan zo heel
werkende CDC installatie te maken.
bruikers, die de database regelmatig
af en toe eens een undo transactie
De bron database moet natuurlijk in
plat legden met hun ad hoc queries
genereren uit de archives heb ik er
ARCHIVELOG mode draaien maar
en rapporten waardoor het callcen-
eigenlijk nooit iets zinnigs mee ge-
ook met SUPLEMENTAL logging. Dit
ter niet normaal kon werken.
daan.
is om er voor te zorgen dat de sleutel
len nog steeds een ellenlange ver-
Met Oracle 10gR1 kwam daar Chan-
waarden van een rij mee gaan naar
schillen procedure worden gedraaid
ge Data Capture (CDC) om de hoek
de logging, als een niet-sleutelveld
om de delta ten opzichte van de vo-
kijken. Een goed begin, maar voor
wordt aangepast. Bij het opzetten
rige lading te bepalen.
ons niet bruikbaar. Het werkte alleen
van een CDC opstelling moet wor-
Dat zijn gelijk al drie zaken die ver-
maar synchroon – via triggers – en
den gewerkt vanuit de 10gR2 data-
traging veroorzaken:
kon niet overweg met een 9iR2 data
base. Via een database link worden
source zoals dat in ons geval nodig
procedures in de source database
1) De stand-by wordt dagelijks
is. In 10gR2 werd de ‘asynchrone
aangeroepen om de publicatie van
distributed hotlog mode’ geïntrodu-
wijzingen te regelen. We kunnen op
2) Het bepalen van de delta duurt
ceerd en die neemt onze bezwaren
kolom niveau aangeven in welke ta-
weg. Niet dat dit direct probleemloos
bellen we geïnteresseerd zijn.
Vandaar dat voor BI een eigen physical stand-by database werd gemaakt die kon worden gebruikt voor raadpleegfuncties. Daarnaast kwam dan de warehouse database die moest proberen om wijzigingen uit de stand-by database te halen. Door de huidige groei is het bepalen van een delta echter niet meer goed te doen. In de productieapplicatie zijn op een aantal plekken historie/log/audit tabellen ingebouwd, maar lang niet overal. Daardoor moet in veel geval-
20
gerecovered. lang.
Change Data Capture
In de staging database wordt een
ces dan enkel Oracle databases. Dan
gebaseerd kan zijn en dat het dus
change set aangemaakt met daarin
ligt het voor de hand om te gaan
niet meer een alles of niets systeem
de change tabellen waarop subscri-
denken aan een systeem dat dient
is. Het zou kunnen zijn dat een sys-
ber views komen. Via deze subscriber
om wijzigingen te distribueren over
teem met vaste intervallen wil kun-
views kan een abonnee de nieuwe
geïnteresseerde
systemen.
nen werken. Zo zou het kunnen zijn
data binnen halen. Onder water
Eventueel zou dat via de centrale
dat in blokken van een uur gelezen
wordt Streams gebruikt.
staging database kunnen gebeuren.
moet kunnen worden. Nu in 10g
Door dit toe te passen kunnen we
Via deze database zouden applicaties
lukt dat niet.
die moeten worden geschreven. Het
hun belevenissen kunnen uit wisse-
De asynchrone vorm van Change
is niet moeilijk om die langer te laten
len en elkaar van nieuwe feiten op de
Data Capture biedt hele interessante
duren dan dat de verversing van een
hoogte houden.
mogelijkheden waar we zeker gebruik
database duurt. Voor die gevallen zal
Dat geeft mogelijkheden maar ook
van gaan maken. Ik heb er vertrou-
toch echt in de code gekeken moeten
weer nieuwe uitdagingen. Op het ge-
wen in dat we dit goed aan de praat
worden of daar wat slimmers in te
bied van back-up maar zeker ook op
gaan krijgen, al zal het niet zonder
doen is.
het gebied van recovery. Wat moet je
slag of stoot gaan.
Het kan zijn dat de verwerking van
doen als X een weekje terug moet in
een update met miljoenen rijen via
tijd, terwijl X1 al de nodige berichten
Ronald Rood is DBA bij Ciber Neder-
CDC te traag door komt naar de sta-
van X heeft verwerkt? Als het een in-
land.
ging database. Als dat zo is, dan kan
tern systeem is, dan is dat nog wel op
via een tag en een stream rule ervoor
te lossen maar wat als het een mailsys-
worden gezorgd dat de changes van
teem is? Dit is natuurlijk niet nieuw
de getagde transactie niet via CDC
maar wordt nu wel ineens weer een
naar de staging database gaat. In
stuk actueler. Ik denk dat het zaak
dat geval moet het bijvoorbeeld via
is om deze berichtendatabase enige
een direct path insert buiten CDC
historie te laten behouden zodat ook
om worden gedaan. Of het echt een
op een later moment nog te zien is
probleem zal geven, weet ik helaas
welke berichten naar welk systeem
nog niet. Goede load tests moeten
zijn gegaan en daarmee die historie
we nog gaan doen, maar dit zal zeker
kan worden gebruikt om eventuele
een punt van aandacht zijn.
herstelacties mee te maken.
andere
flink wat tijd winnen in het laadproces, en vergeet ook niet dat er een forse besparing te behalen is door het elimineren van de standby database. Die heeft ook zo zijn exploitatiekosten en die kunnen op jaarbasis aardig oplopen. Met de introductie van CDC in het systeem is het ineens weer mogelijk om over vrijwel live data te kunnen beschikken en dat zonder een noemenswaardige load op de brondatabase te veroorzaken. Dat telt. Nu zal CDC niet alle problemen in BI land oplossen, er zijn nog steeds queries
Maar er is meer mogelijk dan alleen het voeden van een staging database
Wat brengt 11G voor extra’s?
ten behoeve van BI. Streams staat toe
In 11g is alles natuurlijk nog beter
dat er bi-directioneel kan worden ge-
en fraaier. Voor CDC is het handig
werkt en ook met andere data sour-
te weten dat de purge nu ook op tijd
21
Oracle Forms integreren in ADF Faces
Oracle Forms integreren in ADF Faces Door Wilfred van der Deijl
Oracle Forms kan al prima in een webbrowser draaien sinds 1999 en Oracle heeft aangegeven Forms in ieder geval tot 2013 te ondersteunen. Aan de andere kant is er een snelle groei en acceptatie van Java/J2EE technologie in de markt. Met JDeveloper en ADF is het mogelijk om rijke Java Server Faces (JSF) webapplicaties te bouwen. Dit artikel beschrijft een combinatie van bestaande technieken waarmee het mogelijk is om deze twee werelden te integreren. Deze techniek en het bijbehorende white paper zijn onlangs door de Oracle Development Tools User Group onderscheiden met een Editor’s Choice Award tijdens het jaarlijkse ODTUG congres.
Dit artikel beschrijft een extreme
Het Forms menu, knoppenbalk
wordt om ADF Faces pagina’s
vorm van de integratie van Oracle
en statusbalk zijn niet zichtbaar.
aan te roepen voor specifieke
Forms en ADF Faces. De integratie
Dit zorgt ervoor dat de gebruiker
taken.
is dusdanig vergaand dat de eindge-
de intuïtieve interface krijgt die
bruiker het verschil niet merkt tus-
hij verwacht van een webappli-
• Wat wellicht niet zo duidelijk is,
sen 100% ADF Faces webpagina’s en
catie en niet de eigenzinnige
is dat alleen de orders van een
pagina’s waar een bestaand Form in
interface
Forms.
specifieke klant worden getoond.
is geïntegreerd. Zie Afbeelding 1 voor
Dit maakt het mogelijk om
De huidige geselecteerde klant is
een simpel voorbeeld van deze inte-
individuele Forms te migreren
te zien via het (100% ADF Faces)
gratie. Alleen het multi-record blok
van Oracle Forms naar ADF
Customers tabblad. Dit betekent
met de orders is een bestaand Oracle
Faces
impact.
dat het nummer van de geselec-
Form, de rest van de pagina is ADF
In dit voorbeeld is het gemakke-
teerde klant is doorgegeven aan
Faces.
lijk om het Oracle Form te ver-
Oracle
vangen door een
records te kunnen selecteren.
van
met
Oracle
minimale
echte
ADF
tabel
zonder
de
goede
Faces dat
• Oracle Forms is in deze integra
tie ook in staat om informatie
ken. In sommige
terug te communiceren naar
situaties
deze
ADF Faces. Wanneer de ge-
extreme integratie
bruiker door het multi-record
wellicht iets te veel
blok met orders bladert, dan
is
van het goede en
wordt de detail ADF Faces tabel
zouden het menu,
knoppenbalk
met
orderregels
automatisch
ververst. Dit bewijst dat het
en/of de statusbalk
ordernummer
toch
geven aan ADF Faces en dat
beschikbaar
kunnen
22
om
gebruikers dit mer-
de
Afbeelding 1 Form geïntegreerd in ADF Faces
Forms
worden
wordt
terugge-
Forms in staat is om events
gesteld. Er zou net
(verversen van de detail tabel)
zo goed voor een
door te geven aan ADF Faces.
oplossing gekozen
In dit voorbeeld staat de ADF
kunnen
worden
Faces tabel op dezelfde pagina,
waarbij de gebruiker
maar deze zou net zo goed op een
Dit voorbeeld demonstreert een aan-
gebruik blijft maken van de
andere pagina kunnen staan.
tal zaken:
bekende multi-document inter-
Het belangrijkste is dat Forms
• Het Form is visueel sterk geïnte-
face
en
in staat is om informatie en
waarbij deze technologie gebruikt
events door te geven aan ADF Faces.
greerd met de ADF Faces pagina.
van
Oracle
Forms
Oracle Forms integreren in ADF Faces
• De ADF Faces pagina heeft ook
Normaal gesproken wordt deze hele
een ‘Save Form’ knop. Deze ADF
webpagina beschikbaar gesteld door
Faces knop stuurt een event naar
de Oracle Forms servlet. In dit con-
Oracle Forms dat er voor zorgt
cept vertrouwen we niet langer op de
dat Oracle Forms de wijzigingen
Forms servlet om de noodzakelijke
opslaat. Dit toont aan dat het
HTML te leveren. De HTML die no-
ook mogelijk is om events door
dig is om de applet te starten moet
te geven van ADF Faces naar
nu immers in ADF Faces webpagina’s
Oracle Forms.
worden ingebakken.
formModuleName java. lang.String
Vervolgens kun je deze region met • Wat niet te zien is in het screen-
De mooiste oplossing zou zijn om
hergebruiken in iedere
shot is dat het Oracle Form gelijk
een JSF component te maken die al
gewenste ADF Faces pagina waar een
getoond wordt bij het openen
deze afhandeling verzorgt. Een der-
Oracle Form in moet komen:
van de webpagina en dat niet
gelijke component is ook in de maak
eerst gewacht hoeft te worden
en zal binnenkort gepubliceerd wor-
op het starten van de Forms Java
den. In dit artikel maken we gebruik
regionType=‘com.example.ora-
applet. Normaal gesproken duurt
van ADF Faces regions, zodat duide-
cleFormRegion’>
dit enkele seconden. Wanneer
lijk te zien is hoe de integratie tussen
een gebruiker navigeert tussen
JSF en Forms onder water werkt. Als
name=‘formModuleName’
ADF
waarvan
eerste maak je een JSPX bestand dat
value=‘orders.fmx’ />
sommige een Form bevatten, dan
de ADF Faces tags bevat die nodig
is het niet acceptabel wanneer
zijn om de Oracle Forms HTML naar
hij
de client te sturen:
wachten op het starten van
de
waar
gebruikt wordt.
Faces
iedere applet
pagina’s
keer op
een
zou
moeten
iedere
pagina
Oracle
Form
De applet opnemen in de pagina
Het gebruik van en zorgt er voor dat je de
HTML en JavaScript die nodig is om
xmlns:af=‘http://xmlns.oracle. com/adf/faces’> . . . { actual HTML and JavaScript goes here } . . .
Inbound JavaScript API
een Oracle Form te starten, maar één keer hoeft te definiëren en vervolgens in iedere gewenste ADF Faces pagina kunt hergebruiken.
De eerste uitdaging is er voor te zorgen dat het Oracle Form getoond wordt in een ADF Faces webpagina. Afbeelding 2 laat zien hoe een Oracle Form in een webbrowser draait. Conceptueel draait het Oracle Form in een Java applet in een webpagina in de browser van de gebruiker.
De crux van dit hele concept is een techniek om Oracle Forms en ADF Faces aan elkaar te koppelen. Het moet voor beide technologieën mogelijk zijn om met de andere te communiceren. Dit is nodig om gegevens
Vervolgens registreer je deze region
(zoals het ID van het geselecteerde
in het META-INF/region-metadata.
record) door te geven aan de andere
xml bestand:
technologie, maar ook om events in de andere technologie te laten af-
Afbeelding 2 Concept van een Forms applet in een webpagina
gaan. Dit kan bereikt worden met een API gebaseerd op JavaScript. Een ADF Faces pagina kan JavaScript bevatten om Oracle Forms aan te roepen en Oracle Forms moet in staat zijn om JavaScript uit te voeren om te communiceren met ADF Faces. De eerste techniek die hier beschreven wordt is de Inbound JavaScript API die ADF Faces in staat stelt om
23
Oracle Forms integreren in ADF Faces
een event in Oracle Forms af te la-
moet nog wel een trigger laten af-
ten gaan en daardoor PL/SQL code
gaan in het actieve Form. Dit is niet
in Forms te activeren. Een simpel
iets wat je direct kunt doen. Geluk-
voorbeeld is de ‘Save Form’ knop in
kig ondersteunt Oracle Forms PJC’s
het screenshot aan het begin van het
(Pluggable Java Components). Een
Uiteindelijk kunnen we met PL/SQL
artikel waarmee Oracle Forms de
PJC is een JavaBean die een subklas-
het bericht analyseren en actie on-
instructie krijgt een commit uit te
se is van oracle.forms.ui.VBean. Een
dernemen:
voeren.
PJC kan worden opgenomen in een
Forms 1ogR2 en eerdere versies heb-
Form. We kunnen zelf een generieke
ben geen JavaScript API. Dit is een
PJC maken die de JavaScript com-
feature die in Forms versie 11 wordt
municatie afhandelt. Zorg er voor
geïntroduceerd. Gelukkig kun je deze
dat deze PJC in ieder Form wordt op-
API zelf implementeren in versie
genomen. De publieke methode van
10gR2 (of eerdere versies). JavaScript
de aangepaste Forms applet kan op
in een webpagina kan publieke me-
zoek gaan naar de PJC in het actieve
thoden van een Java klasse aanroe-
Form en het bericht doorgeven aan
char2(1000);
pen. De Forms applet is zelf een Java
die PJC (zie stap 2 in afbeelding 3):
begin
klasse. Als deze klasse een publieke
e.printStackTrace(); } }
declare BeanEventDetails
ParamList;
ParamType
number :=
text_parameter; Event
var-
char2(1000); Payload
var-
BeanEventDetails := get_pa-
methode zou hebben, dan kan die
public void raiseEvent(String
rameter_list(:system.custom_
dus aangeroepen worden met behulp
event, String payload) {
item_event_parameters);
van JavaScript.
CommunicatorBean communicator = findFirstCommunicator(); if (null != communicator) { communicator.
get_parameter_ attr(BeanEventDetails, ‘Event’,
ParamType, Event);
get_parameter_
sendMessageToForms(event, pay-
attr(BeanEventDetails, ‘Pay-
load);
load’, ParamType, Payload);
}
if event=’do_key’ then
}
do_key(payload); end if;
Een
PJC
Forms Afbeelding 3 Inbound JavaScript API
kan
trigger
vervolgens
een
end;
WHEN-CUSTOM-
ITEM-EVENT laten afgaan (zie stap
Dit voltooit de keten van JavaScript
3 in afbeelding 3):
in de client tot PL/SQL code in het
De Forms applet, zoals door Oracle
Form. Het begon met JavaScript in
geleverd, bevat geen publieke metho-
public
void
de webbrowser die een publieke me-
den, maar je kunt deze wel zelf toe-
sendMessageToForms(String
thode aanroept van de eigen sub-
voegen. Maak een subklasse van de
event, String payload) {
klasse van de Forms applet (stap 1).
Forms applet klasse oracle.forms.engine.Main en voeg een publieke methode raiseEvent() toe. Deze nieuwe publieke methode kan dan worden aangeroepen vanuit JavaScript in de client en een bericht doorgeven aan Oracle Forms (zie stap 1 in afbeelding 3):
De publieke methode van de applet
try { // set properties to pass to
geeft het bericht vervolgens door aan de PJC van het actieve Form (stap
Oracle Forms mHandler.setProperty(PROP_
2). De PJC activeert vervolgens een Forms
EVENT, event); mHandler.setProperty(PROP_
trigger
WHEN-CUSTOM-
ITEM-EVENT (stap 3). Uiteindelijk kan de PL/SQL van deze trigger het
PAYLOAD, payload); // trigger WHEN-CUSTOM-
verzoek afhandelen.
ITEM-EVENT trigger in Forms document.formsapplet.
24
CustomEvent
ce
raiseEvent(‘do_key’, ‘com-
CustomEvent(mHandler,
mit_form’);
MSG_TO_FORMS);
=
new
EVENT_
dispatchCustomEvent(ce);
Deze publieke raiseEvent() methode
} catch (FException e) {
Outbound JavaScript API Vervolgens moeten we nog zorgen dat Oracle Forms ook events kan doorgeven aan de webpagina waar het Form in draait. Dit kan gebruikt
Oracle Forms integreren in ADF Faces
worden om gegevens door te geven
property, Object value) {
aan de webapplicatie. Een typisch voorbeeld is het bladeren door een
if (PROP_EVAL_EXPR == property) {
multi-record blok in Oracle Forms
JSObject appletWindow =
de pagina weg navigeert. Wanneer je gebruik maakt van Sun’s Java Virtual Machine versie 1.4.2 of hoger dan is er echter een extra pa-
terwijl het ID van het geselecteerde
JSObject.getWindow(mHandler.
rameter die je mee kunt geven aan
record wordt doorgegeven aan de
getApplet());
de applet, genaamd legacy_lifecycle.
webapplicatie.
Object evalResult = ap-
Deze parameter zorgt er voor dat de
Deze communicatie kan worden op-
pletWindow.eval(value.toSt-
Java Virtual Machine de applet niet
gezet met de zogenaamde Outbound
ring());
vernietigt wanneer de gebruiker naar
JavaScript API. Deze API stelt Forms in staat JavaScript aan te roepen
een andere pagina navigeert. Integendeel, de applet zal blijven draaien in de achtergrond in iets wat de Legacy Lifecycle Cache wordt genoemd. De applet wordt weer geactiveerd wanneer de gebruiker op een webpagina komt waarin de exact zelfde applet declaratie voorkomt. Dit betekent
Afbeelding 4 Outbound JavaScript API
Dit voorbeeld zet de waarde van een
wel dat de HTML die gebruikt wordt
(waarschijnlijk onzichtbaar) invul-
om de applet in de pagina op te ne-
veld van de webpagina. Je kunt de-
men volledig identiek moet zijn om
zelfde Outbound JavaScript API ook
er voor te zorgen dat de lifecycle ca-
gebruiken om de webpagina op te
che de oude applet hergebruikt. Dit
sturen naar de webserver. In feite
is een andere reden waarom het be-
gebeurt er dan hetzelfde als wanneer
langrijk is de HTML slechts eenma-
Deze API werkt met dezelfde Plugga-
de gebruiker zelf een ordernummer
lig te declareren met een ADF Faces
ble Java Component die we gebruikt
invult en op de Submit knop drukt.
region of een JSF component.
hebben voor de Inbound JavaScript
Met deze mogelijkheid wordt de ap-
API. Vanuit PL/SQL kun je parame-
Pauzeren en herstarten van de
plet slechts één keer gestart voor de
ters doorgeven aan de PJC met de
applet
hele browsersessie. De opstarttijd
built-in
Oracle Forms gebruikt een Java ap-
van de applet wordt volledig omzeild
plet in de webbrowser om het Form
wanneer de gebruiker navigeert tus-
te tonen en alle gebruikershandelin-
sen pagina’s met en zonder een Ora-
gen af te handelen. Het opstarten
cle Form.
SET_CUSTOM_PROPERTY
(zie stap 1 in afbeelding 4): begin -- set the Order ID
van een zware Java applet zoals die
set_custom_property(‘BLK_
van Oracle Forms kan enkele secon-
Actie ondernemen op het hervat-
den duren. Dit is geen probleem bij
ten van de applet
PJC.PJC’, 1, ‘EvalExpression’,
een doorsnee Oracle Forms applica-
Een applet wordt hervat vanuit de
getElementById(‘’frm:ordid’’).
tie omdat de applet slechts eenmalig
cache in de exacte staat waar de ap-
value=’ || :ord.ordid);
wordt gestart aan het begin van de
plet in was toen deze werd gepau-
end;
sessie. Vervolgens werkt de gebrui-
zeerd. Dit betekent dat het Form
‘document.
ker langere tijd in deze applet zonder
van de vorige webpagina nog draait.
In dit geval wordt de uit te voeren Ja-
naar andere webpagina’s te navige-
Meestal zullen we extra acties wil-
vaScript code aan de PJC doorgegeven
ren. Echter, in de architectuur zoals
len toevoegen aan het hervatten
als een property. De PJC kan dan op
we die hier introduceren kan een
van de applet. Jammer genoeg gaat
zoek gaan naar de Applet waar deze
gebruiker continu navigeren tussen
er geen enkele Oracle Forms trigger
PJC in draait (zie stap 2 in afbeelding
verschillende webpagina’s. Sommige
af tijdens het hervatten. Echter, de
4). De applet heeft vervolgens een
zullen een Oracle Form bevatten en
show() methode van de Forms ap-
methode om JavaScript uit te voeren
sommige niet. Het standaard gedrag
plet wordt wel aangeroepen tijdens
(zie stap 3 in afbeelding 4):
van een webbrowser en de Java Vir-
de hervatting. We kunnen deze me-
tual Machine is om de applet te ver-
thode aanpassen:
public boolean setProperty(ID
nietigen wanneer de gebruiker van
25
Oracle Forms integreren in ADF Faces
pagina’s 100% identiek is.
public void show() {
door springt de controle terug naar de oneindige lus van het generieke
ven aan Oracle Forms. Ook dit kan door een parameter toe te voegen
-- get the form name
aan de HTML om de Forms applet te
set_custom_property(‘BLK_
starten. Dat zou weer betekenen dat
attr(BeanEventDetails, ‘Event’,
van de geselecteerde order doorgeje niet op de normale manier doen
begin
get_parameter_
PJC.PJC’, 1, ‘EvalExpression’,
get_parameter_
‘document.getElementByI
de HTML verschillend wordt voor iedere order en dat schakelt de legacy
attr(BeanEventDetails, ‘Pay-
d(‘’frm:oraFormRegion:formnam
lifecycle uit.
load’, ParamType, Payload);
e’’).value’);
Ook hier kunnen we het probleem
if event=’WHEN-APPLET-ACTIVATED’ then -- add handling here
formName := get_custom_
cript API. Je kunt het ordernummer
‘EvalResult’);
(of wat voor parameter dan ook) op-
-- start the form
nemen als onzichtbaar veld in de we-
call_form(formName);
bpagina. Het Oracle Form kan dan
if (get_custom_
de waarde ophalen in de WHEN-
end;
Noodzaak voor een generiek start
property(‘BLK_PJC.PJC’, 1,
Form
‘AppletActive’)=’FALSE’ then
Je kunt verschillende webpagina’s hebben in je applicatie die allemaal
-- exit the loop if the user is closing the browser
een Oracle Form kunnen bevatten.
exit;
Deze verschillende pagina’s gebrui-
end if;
ken waarschijnlijk ook verschillende
end loop;
Forms. Je kunt de naam van het Form
omzeilen met de Outbound JavaS-
property(‘BLK_PJC.PJC’, 1,
end if;
end;
niet als normale parameter meege-
26
ten.
NEW-FORM-INSTANCE-TRIGGER declare orderID
number;
begin -- get the order ID set_custom_property(‘BLK_ PJC.PJC’, 1, ‘EvalExpression’,
ven aan de applet. Dit zou verschil-
Wanneer de applet wordt hervat van-
‘document.
lende HTML vereisen op iedere web-
uit de lifecycle cache, dan draait het
getElementById
pagina en dat zou er voor zorgen dat
‘echte’ Form nog. Dat Form moet,
(‘’frm:orderID’’).value’);
de legacy lifecycle cache niet werkt.
zoals eerder beschreven, het hervat-
Die cache vereist dat de HTML om de
ten vanuit de cache afvangen en
property(‘BLK_PJC.PJC’, 1,
applet te starten op de verschillende
zichzelf afsluiten (exit_form). Hier-
‘EvalResult’);
customerID := get_custom_
Oracle Forms integreren in ADF Faces
:parameter.
een kleine uitsnede die alleen het
vervangen worden door ‘echte’ web-
ordid:=orderID;
relevante deel van het Oracle Form
pagina’s. Met deze migratie kan dan
-- execute query (where
toont. Dit wordt in afbeelding 5 aan-
gewacht worden tot er een reden is
clause refers :parameter.
gegeven door het rood gestippelde
om dit Form aan te passen. De tech-
ordid)
deel:
niek biedt dus de mogelijkheid voor een gefaseerde migratie van Oracle
do_key(‘execute_query’); Samenvatting
Forms naar een webtechnologie.
Met deze integratie van Oracle Forms
Iets wat voorheen niet mogelijk was.
trigger:
en ADF Faces (of iedere andere web-
Er zijn echter nog veel meer mo-
Visuele integratie
technologie) is het mogelijk om be-
gelijkheden te bedenken voor deze
Je kunt er voor kiezen om een enkel
staande Oracle Forms applicaties uit
technologie. Zo wordt het mogelijk
Form op te nemen in een webpagina
te breiden met nieuwe functionali-
Forms te hergebruiken in portals
en de gebruiker niet in staat te stel-
teit die gebouwd wordt in webtech-
en portlets. Ook is het mogelijk een
len om naar andere Forms te navi-
nologie. Dit zorgt er voor dat de or-
Oracle Form in te zetten in een hu-
geren. Je kunt daarmee zelfs zo ver
ganisatie niet langer ‘gevangen’ zit in
man task scherm in een BPEL proces.
gaan dat gebruiker niet meer merkt
het Oracle Forms product. Het is nu
Deze techniek kan dus aan de basis
dat deze gebruik maakt van Ora-
mogelijk om voor nieuwbouw wel te
liggen van een hele reeks nieuwe
end;
mogelijkheden. Verder lezen… Dit artikel heeft grofweg aangegeven hoe het mogelijk is om Oracle Forms te integreren met ADF Faces (of iedere andere webtechnologie). Als hierdoor de interesse is gewekt, dan zijn op
http://www.oratransplant.nl/
oracle-forms-as-web-component/ meer details te vinden. Er staat een stap-voor-stap handleiding hoe deze demo zelf te bouwen, meer gedetailleerde artikelen en een voorbeeld ap-
Afbeelding 5 Uitsnede maken uit een Form
plicatie. Ook zal daar binnenkort een cle Forms. Hiervoor moet je zaken
kiezen voor webtechnologie zonder
JSF component gepubliceerd worden
als het menu, de knoppenbalk, de
dat de hele applicatie moet worden
waarmee alle onderliggende techniek
statusbalk en de omlijsting van de
omgebouwd.
van de integratie wordt verborgen van zowel de Forms ontwikkelaar als
Forms verwijderen. Deze techniek kan ook gebruikt wor-
de webpagina ontwikkelaar.
Dit is het makkelijkst te doen door
den om in één keer om te schakelen
een uitsnede van de Forms applet te
van de typische Oracle Forms manier
Over de auteur
maken. In de HTML van de pagina
van werken naar de intuïtieve manier
Wilfred van der Deijl is de senior sys-
kun je de applet omgeven met een
van werken van webapplicaties. Ini-
teemarchitect bij Eurotransplant en
element, wat een rechthoekig
tieel kunnen bestaande Forms herge-
heeft meer dan 12 jaar ervaring met
gebied is. De breedte en hoogte van
bruikt worden als objecten in webpa-
Oracle tools. Hij heeft een Oracle ge-
deze
kunnen kleiner worden
gina’s. Alle sturing en navigatie van
relateerd weblog – OrgaTransplant– en
ingesteld dan de maten van de ap-
de applicatie wordt dan afgehandeld
is lid van Oracle’s Customer Advisory
plet die in de
zit. Ook kunnen
door de webtechnologie. Dit geeft per
Board voor Development Tools.
de x- en y-positie van de Forms ap-
direct de intuïtieve gebruikservaring,
plet op negatieve waarden worden
terwijl het toch mogelijk is om be-
gezet. Deze posities zijn relatief ten
staande Oracle Forms te hergebrui-
opzichte van het omliggende
ken. Vervolgens kunnen, indien ge-
element. Door dit alles creëer je
wenst, Oracle Forms stuk-voor-stuk
27
Geo-ICT
Geo-ICT: een bijzonder vak Door Han Wammes
28
Ondanks de riante toekomstmo-
processen van organisaties zoals het
gaat het uiteindelijk om de efficiency
gelijkheden van het Geo-ICT vak-
Ministerie van V&W, LNV, VROM of
en de effectiviteit van de informa-
gebied is er nauwelijks interesse
Defensie, alle gemeenten, nuts- en
tievoorziening van de organisatie,
om vervolgopleidingen op dit
telecombedrijven. Of om diensten te
waarbij alle componenten aan elkaar
vlak te volgen en lijken sommige
bieden op basis van geo-informatie
gerelateerd zijn. Mogelijkerwijs gaat
opleidingen tekort te schieten in
zoals het Kadaster, MNP, maar ook
Web 2.0 en met name de Enterprise
met name ICT onderdelen hier-
commerciële diensten zoals Tele-
Mashups een belangrijke rol spelen
van. Overigens lijkt er, wat dit as-
Atlas, TomTom en Google Maps/
in EIM (Enterprise Information Ma-
pect betreft, ook in dezelfde vij-
Earth.
nagement, bestaande uit BI, ECM en
ver gevist te worden als die van de
Deze laatste hebben niet alleen de
GIS?).
meer algemene ICT opleidingen,
zichtbaarheid bevorderd, maar ma-
waar ook nauwelijks instroom is.
ken het ook evident dat vooral op
Technologie ontwikkeling
Wellicht dat meer samenwerking
het gebied van Openbare Orde en
Het vak Geo-ICT is ontstaan uit twee
tussen verschillende vakgebieden
Veiligheid en Milieu een goede be-
parallelle ontwikkelingen in de ICT
hier soulaas biedt.
schikbaarheid van geo-informatie
branche. Enerzijds ontstond dertig
van levensbelang kan zijn. Dit naast
jaar geleden de behoefte om het ma-
In dit artikel wordt vanuit een his-
de economische waarde en de bij-
ken van kaarten te automatiseren en
torisch perspectief gekeken naar
drage aan de rechtszekerheid die het
de kaartinformatie ook te kunnen
behoefte, technologie en kennisont-
al bood.
gebruiken voor analysedoeleinden.
wikkeling van het Geo-ICT vakge-
De Geo-ICT wereld moet echter wel
Via de CAD-wereld (Computer-
bied. Met name de geringe coördina-
bepalen wie ze wil zijn: een aparte
Aided Design) ontstond het begrip
tie en het kijken naar de werkelijke
ontwikkeling, een stroming bin-
‘Mapping’ - met name Intergraph
problematiek binnen het vakgebied
nen de ICT of gewoon ICT. In die
is hier destijds groot mee geworden
lijken hiervan de oorzaak te zijn. Dit
zin kunnen we parallellen trekken
- en iets later het begrip ‘GIS’ (Ge-
artikel tracht een aanzet te geven tot
met andere stromingen binnen de
ografisch Informatie Systeem, niet
een beter begrip van de problematiek
ICT als Content Management en
te verwarren met het begrip GIS dat
en de mogelijke oplossing hiervan.
Business Intelligence. Deze vereisten
tegenwoordig veel meer omvattend
weliswaar een specialistische kennis,
is), waar vooral ESRI furore mee
Behoefteontwikkeling
met soms speciale technieken, maar
maakte.
Het Geo-ICT vak is weliswaar een
uiteindelijk zijn het ICT technieken
Anderzijds was dit de periode van de
jong vak, maar het ‘GIS’ vak dateert
waarmee ze geïmplementeerd wor-
ontwikkeling van Relationele Data-
eigenlijk al van de oude Egyptena-
den.
bases en SQL. Deze ontwikkelingen
ren, die hun ‘percelen’ optekenden
Overigens hebben deze stromingen
verliepen volledig los van elkaar en
op kleitabletten. Waar dertig jaar ge-
hetzelfde probleem gehad. Ze hadden
hadden ook een andere insteek; de GIS
leden vooral de behoefte lag om het
allemaal iets met ICT maar ook weer
ontwikkeling was vooral technisch- en
tekenproces te automatiseren, is de
niet, want je had tenslotte geo-speci-
doelgroep-gericht, de RDBMS ontwik-
hele Geo-ICT ontwikkeling vooral
alisten, documentalisten of statistici
keling, hoewel technisch van aard,
gericht op naadloze integratie met
nodig om er iets mee te kunnen, of-
vooral functioneel en gericht op een
de meer algemene ICT en met name
wel GIS kwam uit de kelder, Content
breed gebruik. Pas rond ongeveer
de ontwikkelingen rondom service
Management uit de (archief)kast en
1990 ontstond de behoefte om van-
gerichte architecturen.
Business Intelligence uit de (ivoren)
uit het GIS gebruik te gaan maken
Dat dit met de nodige perikelen
toren, maar ze hadden niets te ma-
van standaard relationele databases,
gepaard is gegaan en nog zal gaan,
ken met ICT, die riant als centrale
waarbij in eerste instantie alleen
mag duidelijk zijn, maar uiteindelijk
afdeling zijn ERP-applicatie bestierde
ging om de koppeling van A/N ken-
is de primaire doelstelling om geo-
voor de informatievoorziening van de
merken aan geografische objecten.
informatie een integraal onderdeel
organisatie. Hoe dan ook, ondanks
Pas sinds een jaar of tien is het be-
te laten zijn van de primaire bedrijfs-
deze Babylonische spraakverwarring
grip ruimtelijke databases ontstaan,
Geo-ICT
waarmee bedoeld werd het beheren
enabler voor Geo versie 1.0, juli
gehouden met de technologische
van ook de geografische objecten
2007; zie ook: www.geonovum.nl),
ontwikkeling. Met name de steeds
in een standaard relationele data-
het blijkt dat de OGC geo-services
nauwere integratie met ICT is sterk
base, zodat een bredere toepassing
behoorlijk uit de pas lopen met de
achtergebleven, hoewel de vraag
van geo-informatie mogelijk wordt.
SOAP en WSDL standaarden.
hierna enorm is toegenomen. Dit
Onder andere Oracle doet dat met
Uit een Geo-SOA testbed (Geoboer)
heeft enerzijds misschien te maken
Oracle Spatial. In deze periode is ook
in juli 2007 uitgevoerd door het GIS
met het ‘blijf van mijn vakgebied’
het OGC (Open Geospatial Consor-
Competence Center van het Minis-
syndroom of ‘ik weet het toch be-
tium) ontstaan om op informatieni-
terie van Landbouw, Natuurbeheer
ter’ en anderzijds met de enorme
veau de interoperabiliteit tussen de
en Voedselkwaliteit in samenwer-
tekorten in de algemene ICT. Recent
inmiddels tientallen GIS systemen te
king met Oracle, ESRI en Geodan,
tijdens het politieke debat over het
kunnen waarborgen. Met name het
bleek dat het nauwelijks mogelijk
geo-onderwijs op de Geo-innovatie-
OGC is ook de aanjager geweest voor
was om met de standaard (OGC)
dagen werd dit maar al te duidelijk;
de ontwikkeling van ‘standaard’ op
geo-services
BPEL
er was geen politicus te vinden en
XML gebaseerde geo-services, ove-
(BPM: Webservice Orchestratie) een
de discussie ging primair over het
rigens nog voordat de definitie van
bedrijfsproces in te richten, terwijl
aardrijkskunde onderwijs. Op zich is
webservice, zoals het W3C (World
de generieke standaard SOAP servi-
dat laatste prima, met name omdat
Wide Web Consortium) dit om-
ces die ESRI biedt op ArcGIS Server,
het heel erg sterk ontbreekt aan in-
schrijft, bestond. Dit laatste ken-
naadloos integreerbaar waren. Dit
stroom vanuit het middelbaar onder-
merkt overigens het vak Geo-ICT;
zegt overigens niets over de kwaliteit
wijs naar de meer Geo/ICT gerichte
technologisch zeer geavanceerd, vaak
van de services, maar wel alles over
opleidingen, maar wellicht moeten
vooroplopend, maar daardoor soms
het niet aansluiten van Geo-ICT en
we het profiel van geo-informaticus
uit de pas lopend.
ICT standaarden, met name INSPIRE
en de opleidingen gaan herbezien of
In onderstaande afbeelding is dit
(EC gemandateerde uitwisseling van
combineren (omdat ze nogal ver-
inzichtelijk gemaakt; integratie met
milieu gerelateerde geo-informatie
snipperd zijn) en gaan kijken wat er
geo-databases is geen enkel probleem
tussen de verschillende lidstaten)
echt nodig is om aan de vraag van
(meer) en integratie door middel
zal hier geen last van hebben, maar
de markt te kunnen voldoen. Dit
van EAI of EIP is door steeds betere
NORA (Nederlandse Overheid Re-
werd op 30 mei 2007 tijdens de the-
acceptatie van ICT standaarden op
ferentie Architectuur, zie www.e-
mabijeenkomst Onderwijs van het
deze vlakken, steeds minder een pro-
overheid.nl) wel, omdat deze de SOA
BGI ook duidelijk. Onderzoek bij
bleem. De grote uitdaging ligt echter
concepten aanhangt.
15 leden had aangetoond dat er op
met
(Oracle)
met name op het vlak van webser-
jaarbasis een tekort is van 50 Geo-
vices en moderne servicegerichte
Kennisontwikkeling
ICT’ers op met name HBO en Uni-
(SOA) architecturen, zoals ook on-
Helaas heeft de kennisontwikke-
versitair niveau en dat leidde tot een
derkend door Geonovum (SOA als
ling van Geo-ICT geen gelijke tred
omzetderving van € 120.000. Me dunkt een mooie marge om een Geo-ICT’er een goede boterham te laten verdienen. Conclusie Geo-ICT is een bijzonder vak en een vak met toekomst. Er kan niet alleen een behoorlijke boterham mee verdiend worden, maar het draagt ook bij aan de ondersteuning van de informatiebehoeften van organisaties. Het ontbreekt niet aan innovatieve technologieën en maatschappelijke verantwoordelijkheid
wordt
niet
uit de weg gegaan. Er moet nog wel Gewenste samenhang OGC/W3C (Geo-) Services (Bron: Oracle 11g Spatial/Mapviewer)
Vervolg op pagina 30
29
Oracle Databaseserver
10-12 maart 2008 in NH Den Haag
Oracle databaseserver centraal op RedDatabase Symposium Van 10-12 maart 2008 wordt in hotel NH Den Haag het RedDatabase Symposium gehouden. Tijdens dit driedaagse evenement, dat wordt georganiseerd door RedStone Innovations, zullen gerenommeerde, onafhankelijke sprekers in sessies van een volle dag verschillende aspecten van de Oracle databaseserver en aanverwante onderwerpen grondig en diepgaand behandelen. “De focus van het gehele evenement
de deelnemer heeft keuze, en elke
ligt op de Oracle databaseserver”,
sessie duurt een volle dag zodat de
stelt Rick van der Lans van RedS-
spreker voldoende tijd heeft om een
tone Innovations, organisator van
onderwerp grondig en diepgaand te
het RedDatabase Symposium. “Alle
behandelen.”
sessies zullen volledig gericht zijn op
Rick van der Lans
de Oracle databaseserver of een aan-
Gerenommeerde sprekers
palend onderwerp behandelen, maar
Tijdens het RedDatabase Sympo-
die tijdens het driedaagse evenement
dan wordt dat onderwerp wel vanuit
sium zullen vier bekende interna-
zullen worden behandeld zijn on-
de optiek van de databaseserver be-
tionaal sprekers optreden: Mogens
der meer: Bridging the gap between
sproken. Elke sessie wordt verzorgd
Nørgaard, Mark Rittman, Christian
traditional Oracle development and
door een onafhankelijke spreker met
Antognini en Julian Dyke. Ook de
JEE/SOA/BPEL, Optimizing Oracle
veel Oracle expertise. Het evenement
vier Nederlandse sprekers zijn er-
RAC, Analytics and Data Warehou-
heeft ook een kenmerkende formule,
kende topexperts op Oracle-gebied:
sing using Oracle 11g and Oracle
waarin de voordelen van een confe-
Harold Gerritsen, Anjo Kolk, Lucas
BIEE, Advanced Application Deve-
rentie met parallelle sessies en een
Jellema en Carel-Jan Engel. Vijf van
lopment with the Oracle Database,
workshop zijn gecombineerd. Elke
de sprekers zijn lid van het befaamde
Query Optimizer and SQL Tuning
dag zijn er drie parallelle sessies, dus
OakTable Network. Onderwerpen
en Oracle Data Guard. Het volledige programma van het RedData-
Geo-ICT: een bijzonder vak Vervolg van pagina 29
base Symposium met gedetailleerde beschrijvingen van de sessies is te vinden op
behoorlijk aan de weg getimmerd worden om de politieke bewustwording en
www.reddatabase-symposium.com.
instroom uit het middelbaar onderwijs te realiseren en het vervolgonderwijs
De deelnamekosten voor het drie-
aangepast moeten worden, maar als we echter de samenwerking zoeken ook
daagse evenement bedragen E 1819
met niet vakgenoten, dan ligt er absoluut een toekomst.
per persoon, excl. BTW. Het is ook mogelijk het RedDatabaseSympo-
30
Over de schrijver
sium één of twee dagen bij te wonen.
Han Wammes is opgeleid als Landmeetkundig Ingenieur en is via Intergraph,
Leden van de OGh en andere bij de
waar hij de functie van GIS-adviseur vervulde, bij Oracle terechtgekomen als
OBUG aangesloten gebruikersver-
Solution Architect Geo-Informatie Management. Op dit moment is hij bij di-
enigingen krijgen een speciale kor-
verse activiteiten betrokken om het vak te promoten. Zo is hij fellow van UNI-
ting van 5% boven op de andere kor-
GIS, adviseur van de Geo-Informatie Management (SIM) commissie van de
tingen die van kracht zijn, zoals een
Oracle Gebruikersclub Holland (OGh), voorzitter van de onderwijscommissie
‘early bird’ korting en een groepskor-
van het Bedrijvenplatform Geo-Informatie (BGI) en betrokken bij een onder-
ting. Indien een deelnemer nog geen
zoek uitgevoerd door Geonovum naar harmonisatie van Geo-ICT (OGC) en
lid is van de OGh/OBUG dan is het
ICT (W3C/OASIS) standaarden (Inspire /NORA), daarnaast is hij colum-
de moeite waard eerst lid te worden,
nist bij Geo-Informatic, een Europees vakblad over geo-informatica.
alvorens men zich aanmeldt.
Wie zoekt kent Conspect niet, wie Conspect kent zoekt niet... Wij zijn gespecialiseerd in:
Yung Fu, Partner Itude “Itude staat voor creativiteit, vrijheid in denken en vrijheid in doen. Daarom kies ik voor Itude!”
“Vernieuwen doen wij omdat de toekomst nu begint!” Technologieën komen en gaan. Het bepalen van welke technologie voor u belangrijk is, is de kracht van Itude. Onze medewerkers volgen de nieuwste ontwikkelingen op de voet en passen die in de praktijk toe. Itude biedt u de ICT basis van waaruit u uw dienstverlening kunt vernieuwen en nieuwe markten kunt bedienen. Itude is continu in beweging: pionieren en innoveren. Daarom kunnen wij u de beste oplossingen bieden met de juiste technologie.
Technologieën die wij toepassen in onze projecten: REPORTS
1992
DATABASE DISCOVERER SQL HEADSTART
SPATIAL
APPLICATION SERVER XML DB DESIGNER SSO MAPVIEWER WEBSERVICES MOBILE SERVER J2EE TOPLINK FORMS PORTAL INTERCONNECT BPEL JAVA JDEVELOPER ADF