oracleekspert august 2005 - simplify...

24
August 2005 Nr 31, Årgang 6 ISSN 1600-5147 Pris: kr. 300,00 ex moms www.OracleEkspert.dk O BJEKTORIENTEREDE P ROBLEMER 2 Af Marc de Oliveira O RACLE A PPLICATION S ERVER 10 G : S IZING , TUNING OG PERFORMANCE 4 Af Holger Dindler Rasmussen B ENTES B AMSERS B ØGER 8 www.books24x7.com N ØRGAARD S N EWS 10 E N MÅDE AT INDLÆSE REGNEARK I O RACLE 13 Af Christian Bastlund, CSC M ENINGSMÅLINGEN 15 ”Objektorienteret udvikling er bedre end struktureret udvikling/information engineering” F ITTING D ESIGNER I NTO THE Z ACHMAN F RAMEWORK - P ART 2 16 Af Marc de Oliveira L IVE 23 DesWeb SIG - Modelbaseret udvik- ling: WebServices Dato: 17. august 2005 OracleEkspert-konferencen 2005 Dato: 31. august 2005 Kursus: Mastering Oracle SQL and SQL*Plus Dato: 5. september 2005 Oracle Open World 2005 Dato: 17. september 2005 Kursus: Avanceret Systemanalyse Dato: 28. september 2005 N YHEDER 12 - Red Database Security offentliggør seks sikkerhedsfejl i Oracle - Watermark Denmark dropper Oracle - Larry på vej til at donere USD 115 mill til Harvard - Oracle Q4 resultat - Tidligere Microsoft-direktør bliver co-president for Oracle - Oracle flytter salgscenter tilbage til Danmark - Steen Knudsen bliver salgschef hos Ementor M ENINGSMÅLINGEN - E R DU ENIG ? ”Outsourcing er en fordel” Stem på www.OracleEkspert.dk - Du kan vinde en iPod Shuffle Sponsor søges #31 Questioning Solutions Since 2OOO ORACLE ekspert 20 05 Den 31. august Pris: 3150.- 400 kr i abonnentrabat - Vind en HP Server med Windows XP! - Læs mere på side 3

Upload: others

Post on 11-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

A u g u s t 2 0 0 5 • N r 3 1 , Å r g a n g 6 • I S S N 1 6 0 0 - 5 1 4 7 • P r i s : k r . 3 0 0 , 0 0 e x m o m s • w w w . O r a c l e E k s p e r t . d k

OBJEKTORIENTEREDE PROBLEMER 2Af Marc de Oliveira

ORACLE APPL ICATION SERVER 10G :S IZ ING , TUNING OG PERFORMANCE 4

Af Holger Dindler Rasmussen

BENTES BAMSERS BØGER 8www.books24x7.com

NØRGAARD ’S NEWS 10EN MÅDE AT INDLÆSE REGNEARK I ORACLE 13Af Christian Bastlund, CSC

MENINGSMÅLINGEN 15”Objektorienteret udvikling er bedre end struktureret udvikling/information engineering”

F ITT ING DESIGNER INTO THE ZACHMANFRAMEWORK - PART 2 16Af Marc de Oliveira

L IVE 23DesWeb SIG - Modelbaseret udvik-ling: WebServices

Dato: 17. august 2005

OracleEkspert-konferencen 2005

Dato: 31. august 2005

Kursus: Mastering Oracle SQL andSQL*Plus

Dato: 5. september 2005

Oracle Open World 2005

Dato: 17. september 2005

Kursus: Avanceret Systemanalyse

Dato: 28. september 2005

NYHEDER 12- Red Database Security offentliggør

seks sikkerhedsfejl i Oracle

- Watermark Denmark dropperOracle

- Larry på vej til at donere USD 115mill til Harvard

- Oracle Q4 resultat

- Tidligere Microsoft-direktør bliverco-president for Oracle

- Oracle flytter salgscenter tilbage tilDanmark

- Steen Knudsen bliver salgschefhos Ementor

MENINGSMÅLINGEN - ER DU ENIG?”Outsourcing er en fordel”

Stem på www.OracleEkspert.dk - Du kan vinde en iPod Shuffle

Sponsorsøges

#31

Questioning Solutions Since 2OOO

ORACLEe k s p e r t2 0 0 5

Den 31. augustPris: 3150.-

400 kr i abonnentrabat-

Vind en HP Servermed Windows XP!

-Læs mere på side 3

Administrator
Bemærk: Dette tidsskrift må kun distribueres i virksomheder med OracleEkspert-medlemskab

Det Objektorienterede paradigme har været i stærkmedvind i de seneste år. Først som et programmerings-koncept og senere også til både analyse og design.

I de 20 år som er gået siden jeg studerede på DatalogiskInstitut ved Københavns Universitet, det var årene hvorObjektorienteret Programmering kom frem, har detundret mig, at der kun har været meget lidt kritik afdenne, væsentligt anderledes tilgang til systemudvikling.

Jeg ser en del problemområder ved denne ”naturlige” og ”intuitive”udviklingsmetode (specielt den Objektorienterede Analyse), som jo erfunderet i hjernens egen måde at huske og klassificere fænomener(objekter) i den virkelige verden, og kun få gør opmærksom på disseproblemer.

Når jeg taler med folk fra den Objektorienterede verden, har de ofteingen eller meget mangelfuld viden om traditionel Relationel metode ogStruktureret Analyse. Det er som om undervisere har været så sikre påstyrken i den Objektorienteret Metode, at man næsten er holdt helt opmed at undervise i andet. I de mest grelle tilfælde virker visseObjektorienterede metoder (feks Agile, Xtreme, Scrum etc) mest af altsom om de er skabt af folk, der ikke har sat sig ind i den vigtige viden,der allerede findes på området, og blot har opfundet en ny metode, forat slippe for det. Lad mig blot fremhæve nogle enkelte elementer, somjeg finder betydeligt svagere i den Objektorienterede metode.

Fokus på brugeren: Et mantra i den Objektorienterede verden er detabsolutte fokus på brugeren. I stedet for at lave omstændige og for bru-gerne uforståelige programmer, sørger man som Objektorienteretudvikler for at lave de programmer, som brugeren vil have. Det betyderat objekterne skal sammensættes på den måde som brugerne finderdem naturlige og at brugergrænsefladen skal bygges, så systemeropfører sig som brugeren forventer/ønsker.

Tanken lyder umiddelbart forjættende - selvfølgelig bør man lave desystemer, som brugerne vil have... Men dette bottom-up syn på udvik-lingsprocessen er dog meget problematisk så snart udviklingsopgaver-ne bliver lidt komplekse, som I følgende eksempel:

Den svage Objektorienterede analytiker fokuserer så meget på deenkelte brugers ønsker, at det udviklede system ikke tager hensyn tilvirksomhedens interesser. Forskellige dele af systemet kan risikere atmodarbejde hinanden og effektiviserende løsninger kan blive overset,da brugere ofte ”bare vil have det samme som før - men uden fejlene”.

Den dygtige Objektorienterede analytiker implementerer derfor et ef-fektivt system med en effektiv datastruktur, men tilpasser objekter ogbrugergrænseflader til brugernes ønsker. Dette betyder at systemer på”overfladen” ser ud på een måde (den måde som brugerne ser ver-den), mens det ”indvendigt” er helt anderledes (for at kunne tage hen-syn til virksomhedens interesser). Konsekvensen er at denne inkonsi-stens bliver et større og større problem at bære rundt på, efterhåndensom brugernes behov ændrer sig. Deres ændringsønsker vil være rela-teret til det fiktive billede af systemet, som de har fået via ”overfladen”,og disse giver ikke nødvendigvis mening i den faktiske implementeringaf systemet.

Jeg mener at den Strukturerede Analyse her har fat i den lange ende.Det er Systemanalytikerens opgave at finde frem til den mest effektivemåde at løse virksomhedens opgaver, samt at kommunikere denneløsning ud til alle, så medarbejdere på alle niveauer arbejder ud fra detsamme billede af systemet.

Jeg mener desuden at der også er problemer med den Objektoriente-rede metodes brug af kontrolobjekter, sekventiel gennemløb af objek-ter, diagrammer og tekstfiler til dokumentation (i stedet for strukturere-de databaser), måden at sikre komplette Use Cases, al for tidlig brugaf skærm-layout ifm Use Cases, redundante definitioner af objekternesstatustrin mv, som jeg desværre ikke kan nå at uddybe her.

Der ér gode ideer i den objektorienterede tankegang, men uden enmeget detaljeret viden om ikke-objektorienteret systemudvikling er dermange faldgruber ifm udviklingen af komplekse systemer. Genereltkommer mange af problemerne af: 1) at fokusere på at objekterne skalligne virkeligheden, hvilket ofte ikke er produktivt eller fornuftigt ud fraet IT-synspunkt, 2) at det er brugernes holdning, der skal være styren-de, hvilket fjerner fokus fra at løse virksomhedens kerneproblemer, og3) manglende fokus på at undgå inkonsistens og redundans - feks erprimærnøgler og normalisering ikke centrale begreber i denObjektorienterede metode.

Oplag: . . . . . . . . . . . . . . . . . . .150 kopier

Udgives af: . . . . . . . . . . . . . . . .PYTHIA Information

. . . . . . . . . . . . . . . . . . . . . .Kongensvej 3 . . . . . . . . . . . . . . . . .2000 Frederiksberg . . . . . . . . . . . . . . . . . . . . . . . . . .Danmark

Telefon: . . . . . . . . . . . . . . . . . .2627 9991Fax: . . . . . . . . . . . . . . . . . . . . .2632 9991Email: . . . . . . . [email protected]: . . . . . . . . .www.OracleEkspert.dk

Ansvarshavende redaktør: . . . . . . . . . . . . . . . . . . . .Marc de Oliveira

. . . . . . . . . . . . . [email protected]

SpørgeJørgen’et . . . . . . . . . . . . . . . . . . .Mogens Nørgaard . . . . . . . . . . [email protected]

Bentes Bamsers Bøger: . . . . . . . . . . . . . .Bente Rosenkrantz-Theil . . . . . . . . . . . . [email protected]

Rettigheder:PYTHIA Information ejer alle rettigheder tilindholdet af OracleEkspert. Kopiering af bladet i dele eller helhed måkun ske efter skriftligt samtykke fraPYTHIA Information.PYTHIA Information forbeholder sig rettig-heder til at offentliggøre og genudgive detrykte artikler, tips mv, samt at tillade blad-ets læsere at anvende indholdet til såvelpersonlige som kommercielle formål.PYTHIA Information kan ikke drages til an-svar for eventuelle fejl og mangler i Ind-holdet af OracleEkspert. Artikler mv stillestilrådighed uden garanti af nogen art.

Pris:Enkeltnummer . . . . . . . . . . . .DKK 300,001 års abonnement (6 numre):1. abonnement . . . . . . . . . .DKK 1600,00Pr ekstra blad . . . . . . . . . . . .DKK 600,00

Annoncer:Annoncer til OracleEkspert skal værePYTHIA Information i hænde senest den15. i måneden inden bladets udgivelse.

Annoncepriser kan findes på:www.OracleEkspert.dk

LEDE

R

Password: Dolores

Af M

arc

de O

livei

ra OBJEKTORIENTEREDE PROBLEMER

ORACLEe k s p e r t

Vind en HP Integrity RX1620 Server med Windows XPEr du den dygtigste Oracle-ekspert?

20 konferencedeltagere kan konkurrere om at lave den mest effektive Oracle-løsning Konkurrencepladserne fordeles efter ”først til mølle”-princippet. Indlægsholdere kan ikke deltage.

Læs mere om konkurrencen på www.OracleEkspert.dk

Tilmelding:www.OracleEkspert.dk

eller telefon 2627 9991Pris (inkl administrationstillæg): 3150 kr.Inkl abbonnentrabat (400 kr): 2750 kr.

Ved tilmelding af fem deltagere fra samme selskab er den ene registrering gratis.

Kom ind til Søpavillonen i København og hør om:Videnskabelig SQL-tuning - er det muligt? Gennemgang af seks 'metoder' - Mogens Nørgaard, Miracle A/SUdvikling på Heterogene Databasemiljøer - Anders Groth og Dagur Dagsson, DBVision A/SUdvekslilng af Data mellem Database og Operativsystem - Christian Bastlund, CSC ConsultingTransactional Flashback i 9i og 10g - Martin Jensen, Oracle Danmark A/SPL/SQL 10g New Features - PL/SQL Warnings og Need for Speed - Torben Holm, Miracle A/SHvordan man overlever som PL/SQL-programmør - Sten Vesterli, scott/tigerGenerisk kodning med Oracle Forms - Rune Mørk, NNEASHes to ASHes, Dust to Dust - Johannes Djernæs, Miracle A/SOracle Application Server 10g : Sizing, tuning og performance - Holger Dindler Rasmussen, Oracle Danmark A/SJDeveloper for PL/SQL-udviklere - Sten Vesterli, scott/tigerOracle RAC på Linux - Flemming G. Jensen, scott/tigerImplementering af VPD med Oracle10g i et Data Warehouse - Henrik Verup, Sigma Business Intelligence A/SIntroduktion til The Zachman Framework - Marc de Oliveira, PYTHIA InformationSpørg Eksperterne - Om DBASpørg Eksperterne - Om Udvikling

Læs mere om de enkelte indlæg på www.OracleEkspert.dk

2 0 0 5

hovedsponsor

31. august

2 TIMERS EKSTRAKURSUS I NLP FOR MAKS 10 DELTAGERE

Forhåndstilmelding foregår efter ”Først til mølle”-princippet

4 OracleEkspertAugust 2005

TEKN

ISK

ARTI

KEL

PERFORMANCE

Performance er en besynderlig relativ term. I dagligtale er performance et udtryk for hvor hurtigt requestsbliver udført - underforstået at det foregår hurtigt. Menhvad er hurtigt? Det de fleste forstår ved hurtigt er, nårrequests foregår hurtigt nok i forhold til deres forvent-ninger. For at tale om performance må man fastsættehvad tilfredstillende hurtigt er. I et traditionelt udbudvover mange tilbudsgivere skindet ved at sige, at dekan opfylde de i bilag N angivne svartider, hvorefter degiver et tilbud på en hardware/software konfigurationbaseret på et kvalificeret gæt. Disse gæt er ofte base-ret på en given teknologi eks. Oracle Forms er input-parametre: antallet af brugere, kompleksitet af deenkelte forms, antal samtidigt kørende forms instan-cer pr. bruger. Output er et antal CPU’er med en givenMHz samt størrelsen af Memory. Dette gæt/bud harsjældent datatilgang, brugerforbrugsmønstre, brugersgeografiske placering eller udviklingsframework medinde i betragtning. Forudsætningen er som regel, atCPU’en 75-80 % af tiden er fuldt beskæftiget medapplikationen samt at OS ikke skal swappe. I eksem-plet med Oracle Forms kunne applikationen væreudviklet med Oracle Designer, Headstart eller heltmanuelt i Oracle Forms Developer. Mængden af kodeer meget forskellig, hvilket har stor betydning formemory-footprint og databaseaktivitet.

Tager vi udgangspunkt i en J2EE web applikation bli-ver sizing og performance en anelse mere komplice-ret. I sammenligning med Oracle Forms har vi ikke enpersistent forbindelse med databasen. I web applika-tioner deles databaseforbindelser med alle andre bru-gere. Forbindelsen med databasen udgør som regelden største andel af den totale http requesttid. Dertilkommer, at branchen tilbeder produktivitets- og vedli-geholdelsesforbedrende udviklingsframework, somskal gøre livet nemmere for udviklere. Eksempler erStruts, Tiles, Java Server Faces og Oracle ApplicationDevelopment Framework (ADF). Det gælder for alleframeworks, at den overvejende drivkraft er groft sagtdovenskab, også kaldet Design Patterns - udviklerehader at skrive den samme kode to eller flere gange.Nogle Design patterns er standard løsninger på ens-artede problemstillinger andre er blot performancere-laterede workarounds. Det korte og det lange er, atvalg af framework kan lette byrden for udviklerne medhåb om højere produktivitet og bedre databaseper-formance.

En sidste, men ikke uvæsentlig faktor, når talen falderpå performance er brugervenlighed. Ikke helt uberet-tiget forlanger brugere at få en fejlmeddelelse, når enfejl begåes. Det har vi lært dem gennem mange årsbrug af client/server applikationer. De vil ikke finde sigi, at efter at have indtastet 10 datafelter trykker”submit” skal have en-eller-anden beklagelse fra ser-veren om at en-eller-anden forretningsregel ikke varoverholdt. De finder det helt utåleligt, at få en fejlmed-delelse uden for kontekst, dvs cursoren skal placeresi feltet, hvor fejlen relaterer. Endvidere vil de have

samtlige fejl i ét roundtrip, så de kan rette samtlige fejlog submit’e påny. For en webserver er dette en uhel-dig udvikling, idet udviklerne kan vælge at inkluderestore mængder af Javascript kode for at imødegåkravet. Det uheldige ligger i, at responset forøgesvoldsomt, hvilket ikke gavner overall performance.

Total Cost of Ownership (TCO) er mange gange etresultat af en kompliceret differentialligning med para-metre som HW-pris, SW-pris, skalerbarhed (Grid/-cluster awareness), High availability, udviklings-/vedli-geholdelseomkostninger, brugers spildtid grundet u-stabile systemer, helt eller delvist relateret til utilstræk-kelig performance i netværk, web tier, business logictier eller database tier. Konklusionen kan være: ”Hvadvi ikke får ind på gyngerne må vi få hjem på karrusel-lerne.”

Erfaringer med OLTP systemer er imidlertid, at data-baseadgang udgør den største komponent i det tota-le request. Hvorfor mange performanceproblemerkan relateres til brug af databasen – jeg tænker på sqlperformance. Af samme grund findes der bunker af til-bud af frameworks og utilities, som har det hovedfor-mål at hjælpe en javaprogrammør helskindet igen-nem ex. EJB Entity Beans, TopLink, JPublisher,Oracle ADF BC herunder et væld af Design Patterns,som mere eller mindre er implementeret i de før-nævnte frameworks. Fornyeligt opdagede jeg en heltfantastisk one-liner i et Oracle J2EE kursusmaterialeomtalende TopLink:

”The mature, robust persistence framework providedby TopLink significantly reduces the risk of using arelational database in a Java application”

Det kan tolkes på mange måder, men tanken er ikkehelt forkert - det der med persistens og databaser erog bliver et nødvendigt onde :-).

I branchen snakker man om, at sammenligningermellem J2EE serveres hurtighed burde inkludereparametre som frameworks, udviklingstid og konfigu-ration, til trods for J2EE er et development framework– J2EE er bare for abstrakt. Suns argumenter for atbruge J2EE er principielt de samme, som bruges idagfor Oracle ADF – abstraktionsniveauet er blot ander-ledes, og man er blevet lidt klogere.

APPLICATION SERVER KOMPONENTER

Ret beset består Application serveren kun af server-komponenterne: Oracle WebCache (WC), OracleHTTP Server (OHS), Oracle Containers for Java2Enterprise Edition (OC4J). Oracle Reports, Forms ogDiscoverer har sine egne serverkomponenter somskal konfigureres næsten uafhængigt af de øvrigemht loadbalancing og clustering.

Når man skal size sit system har man 2 muligheder,som afhænger af om, man har noget eksisterendehardware eller om man står overfor en ny anskaffelse.I begge tilfælde, vigtigst i sidstnævnte tilfælde,kan/bør man bede om Oracle’s eller HW-leve-randørens hjælp. Internt har vi (Oracle) adgang til et

ORACLE APPLICATION SERVER 10G: SIZING, TUNING OG PERFORMANCEHolger Dindler Rasmussen har arbejdet som konsulent i 3 år medForms 3.0, CASE Designer og TopCase/TopWindows. Siden 1996underviser hos Oracle Danmark i produkter som Oracle DesignerJDeveloper og Oracle Application Server.

Af H

olge

r Di

ndle

r Ra

smus

sen

5OracleEkspert August 2005

sizing tool som på baggrund af input som forventetantal brugere, teknologi (forms, portal, reports, J2EEetc.) og operativsystem kan komme med et kvalifice-ret bud på den konfiguration man bør starte ud med.Output er antal CPU’er ved en give Mhz angivelse ogmemorykrav. Hvis det er Oracle Forms baseredesystemer, kan Oracle Consulting bruge et ikke-offent-ligt tilgængeligt værktøj kaldet Intercept server til atloadteste eksisterende hardware.

PROAKTIV/REAKTIV

Groft sagt er der 2 ”skoler” når det gælder performan-ce: den proaktive og den reaktive. Man kan have gen-nemtestet (load/stress-testet) hele sitet/applikationen igod tid, så man kan nå at tage de nødvendige juste-ringer og forholdsregler herunder kodeændringer.Alternativt kan man sætte systemet i drift efter endtfunktions/integrationstest og sætte sin lid til admini-stratorens færdigheder og/eller Grid Control om atrapportere om og afhjælpe problemer i tide. Denne til-gang kan man godt bruge såfremt man har sikret, atapplikationen er kodet efter alle kunstens regler ogman har lidt ekstra hardware på lager. De problemerman vil møde vil formentligt være af ressourcemæs-sig karakter på applikation/database serveren. Mankan også være så heldig, at systemet bliver sat i pro-duktion i faser mht. funktionalitet og antallet af bruge-re. Dette gør, at man kan imødegå problemer ved atse de performance-trends, der viser sig hen ad vejen.

For ethvert performanceproblem er det vigtigt atkunne diagnosticere hurtigt, og så gøre noget ved det.Eller endnu bedre; et overvågningssystemet haradvaret mod forøget seismisk aktivitet i systemet, såen administrator kan udvise rettidig omhu og imødegået kinasyndrom - OEM Grid Control kan give den sik-kerhed. Senest har jeg oplevet, at et kursusmiljø lang-somt, men naturligt, sandede til grundet for lidt memo-ry. Det havde den sideeffekt, at OPMN-processen(HA komponent i AS 10g), som har en håndgranatstålmodighed, ikke fik svar hurtigt nok på sine http-pings (HEAD requests), at den erklærede reportsser-vicen for værende utilgængelig, hvilket betødrestart/start af OC4J_BI_Forms instansen, som igenkrævede flere resourcer etc. Et Denial of ServiceAttack var født og maskinen var samspilramt indtilgenstart. Denne destruktive opførsel kan man ogsåopleve, hvis man har en meget stor J2EE applikation,som kræver meget lang garbage-collection runtimegrundet for lille Heap (memoryallokering for JVM).

HTTP-VERSIONER

HTTP 1.1 protokollen er designet til optimal af brug afnetværket og er default i de fleste browsere.Forskellen mellem version 1.0 og 1.1 ligger mest ibedre udnyttelse af netværket. HTTP 1.1 understøtterKeepAlive request som ”genbruger” tcp-connections,dvs. request bliver serviceret meget hurtigere.Desuden understøttes komprimering af content såle-des, at childprocessen kan sende response gzip-encoded. Skal browseren tilgå en named based virtu-al host kræves også HTTP 1.1. Hvad er så proble-met? HTTP 1.1 support kan slåes fra i browseren ogproxies af ældre dato understøtter kun HTTP 1.0, hvil-ket resultere i dårlig udnyttelse af web serverens res-sourcer.

PARAMETRE

HTTP serveren består processmæssigt af en parentprocess og et antal childprocesser (threads påWindows). Antallet af childprocesser styres afMaxClient directivet på Unix og ThreadsPerChild påWindows. MaxClient direktivet er egentligt for atbeskytte systemet mod Saturation. Test viser, at på et2-processer system kunne 60 childprocesser suppor-tere 300 brugere (calibreringstest). Et 4-6 processersystem havde kun lidt gavn af at sætte Maxclients fra150 – 256 ved et system bestående af statiske siderog servlet requests. En tommelfingerregel forThreadsPerChild på Windows er 20 pr. CPU.Ovenstående settings er meget systemafhængige ogskal derfor tages som vejledende. Loadtests er deteneste pålidelige værktøj til tuning af disse direktiver,som så mange andre settings i dette skriv.

KeepAlive direktivet kan have stor indflydelse påantallet af brugere man kan slippe løs på systemet.Som regel er KeepAlive=on så http-clienten (browse-ren) vil holde tcp-forbindelsen åben til serveren 5-10sekunder. eller indtil MaxKeepAliveRequests er nået.Såfremt systemet har ekstremt mange brugere, requ-est er små og ulige fordelt kan det være en fordel atslå KeepAlive fra, til dels pga at memory-forbruget er4-5 gange så højt pr. child (over 300 brugere, 2,5 Mb).Man bør holde øje med DMS metrics på http_core.cmodulet i ohs. Modulet har ansvaret for statiske filer,så hvis request-raten er høj kunne WebCache afhjæl-pe med en velvalgt cachingrule.

SSL kan have en enorm betydning for performance,idet sessionsinitiering og kryptering/dekryptering bru-ger meget CPU-tid. Eksempelvis bør SSLSession-Cache konfigureres, idet der kan opnåes 80% bedreperformance i SSL session-initieringsfasen. Såfremtman bruger SSL udbredt og samtidigt vælger en”tung” krypteringsalgoritme, grundet ønsket om højdatasikkerhed, bør man overveje clustering og/ellerbrug af SSL accelerator hardware.

OC4JOC4J er en J2EE server, der kører i en Java VirtualMachine(JVM). Den er logisk opdelt i Web Container,EJB Container og J2EE Services. Jeg vil koncentreremig om JVM, Web Containeren herunder Servlets,Java Server Pages(JSP) samt J2EE servicen; JDBC.

Den virtuelle maskine (JVM) er selve OS-processen,som kører OC4J som en alm. Java-applikation (Java–jar oc4j.jar). Man kan bestemme heapsize/memory-allokering tilgængelig for JVM’en ved at sætte mini-mum og maximum heapsize. Er heapsize for lille skalgarbage collectoren køre ofte, hvilket kan have enugunstig indflydelse på opmn-processens tålmodig-hed. Resultatet kan blive, at OC4J ikke får svaret påPM’s http-pings, hvilket giver ikke-produktionståleligerestarts af OC4J instanser.

Er heap’en for stor skal OC4J’s memorymanagerbruge tid til at økonomisere med det allokeret memo-ryareal, hvilket kan have negativ betydning forAverageResponseTime (ART). Som så meget andetskal den fastsættes på baggrund af en loadtest. Dertilkommer at man bør sætte min. og max. heapsize tildet samme, så OC4J ikke skal bruge tid på at admi-nistrere det faktiske memoryforbrug.

Det dyre i en JVM og dermed Java er garbage colle-

6 OracleEkspertAugust 2005

ction og objektinstantiering. Siden JVM 1.4 har mankunnet kontrollere, hvilken type garbage collector (gc)man vil bruge. Disse gc’er er baseret på forskelligepolitikker for hvornår gc skal indtræffe. I JVM 1.5 intro-duceres garbage collection ”choice by class of machi-ne” (single/multi processor). Sun beskriver, at defaultgc passer til de fleste applikationers behov, men kunloadtests kan afsløre om man kan få glæde af etandet valg (værktøjer som jvmstat og Mercury J2EEDeep Diagnostics kan kigge ind i maven på JVM’en).Antallet af JVM processer pr. OC4J instance har ogsåbetydning. Mindst 2 processer giver OC4J highavailability, men tests viser, at blot 2 instances kangive dårlige ART på selv multi-processormaskiner.

Performanceproblemer ved objekt-instantiering kanimødegås ved genbrug af objekterne: threadpooling,connectionpooling, EJB pooling, tag handler instance-pooling, Oracle ADF BC ApplicationModule poolingetc. Typisk er det selve J2EE serveren der kontrolle-rer pools, mens administratoren blot kan styre størrel-sen. Pooling og caching sorterer under ”snyd ogbedrag”, men har rystende stor betydning for ART.

Web Containeren er som navnet antyder web tier.OHS kommunikerer med OC4J over Apache Jservprotocollen (ajp). Ajp-porten er sammen med JMS- ogRMI-porten kommunikationsporte i OC4J - alle kon-trolleret af opmn. Servlets og JSP-sider kører i Webcontaineren. Servlets er Javaklasser, som normalt vilblive native compileret på requesttidspunktet. Afdenne grund kan man specificere, <load-on-startup> iDeployment Descriptoren (DD), hvilket vil sige, at deblive kompileret ved OC4J opstart i stedet. Det for-bedrer dog kun performance for den første stakkel,som requester. Den teknik kender man også fra data-basen, når man pin’er stored procedures. Man kanblot ikke sikre, at servlet’en ikke bliver unloaded framemory. En anden, men mere memorygrådig egen-skab er instantiering af HttpSessions. Default for serv-lets er, at der ikke bliver lavet en session – i modsæt-ning til JSP-sider. Man skal holde øje med active ogcompleted sessions. Er active sessions betragteligthøjere end completed sessions er det sandsynligt, atsessions blive genereret til ingen verdens nytte, ogman bør se nærmere på applikationskoden. Har mantilmed konfigureret HTTP clusters (replikering), så erperformance-tabet/memory-forbruget endnu større.Men som sagt; problemet er tydeligst for JSP-basere-de web-applikationer. Ubrugte sessioner vil time udefter typisk 20 min. eller hvad man har sat timeout til iDD (web.xml).

JSP-sider er teknisk set Servlets, men de er langtnemmere at bruge til udvikling af html-baseret appli-kationer. JSP-sider bliver prekompileret til Javakode,derefter kompileret til class files og kørt som enServlet efterfølgende. Såfremt siden ændrer sig(datostempel) starter processen forfra. I et produkti-onsmiljø bør det ikke forekomme, så man bør pre-kompilere sine JSP-sider til class-filer (ojspc utility)inden deployment, og sætte main_mode til justrun iDD. Derved spares OC4J for det overhead at holdeøje med ændrede JSP-filer.

DATASOURCES

Datasources er J2EE serverens adgang til databasenvia JDBC og er AS adminstratorens eneste mulighedfor at performance-tune mod databasen. Emulateddatasources er wrappers omkring Oracle eller non-

Oracle data source (databaser) uden fuld XA og JTAglobal transaktionssupport. Emulated datasource erat anbefale pga deres hurtighed, men er begrænset tillokale transaktioner og kun én database. Non-emu-lated datasource er ”rene” Oracle-baserede datasour-ces med fuld transaktionssupport. Kun emulateddatasource vil blive omtalt i det følgende.

Datasources skal ALTID tilgåes via JNDI-navnet i kon-figurationsfilens (data-sources.xml) ; data-source ”ejb-location”-attributten. Datasource connections der hen-tes herfra tages fra en connection pool. Såfremt maner kommet til at map’e til ”location”-attributten vil alleconnections blive skabt som dedikerede connectionstil databasen. Udover at referencer til location-attribut-ten er ”strongly deprecated” for emulated datasour-ces, vil connect/login-tiden blive drastisk forøget medet stort performancetab til følge. Man kan kontrollereconnection pool’ens størrelse med attributerne ”min-connections” og ”max-connections”. Sættes ”max-connections” for højt kan det reducere ART.

Generelt tilskyndes udviklere til at bruge Prepared-Statement eller CallableStatement Javaobjekter for atreducere softparsing/roundtrips af sql-statements.Dertil kommer at administratoren kan sætte ”stmt-cache-size” og dermed cache statements pr. connec-tion og dermed yderligere reducere roundtrips. Mankan sætte Java-optionen “oracle.jdbc.DMSStatement-Metrics”=true for bedre at kunne bestemme størrelsenaf statement cachen.

Pooling og statement caching er memory-grådige,men de er uundværlige i alle applikationer. Hvisdatabase-performance stadig er flaskehalsen i engiven applikationen, kan administratoren ikke gøreyderligere end blot beklage sin nød til udviklerne.Udover sql-tuning, kan udviklerne introducere – i prio-riteret rækkefølge - pagecaching i WebCache, JavaObject Caching (JOC/WOC) eller fragment caching(JESI) i WebCache. Hvis man forøger antallet afinstanser (JVM’s) for en given OC4J-instance, skalman halvere/reducere ”max-connections”/”min-con-nections”, med mindre man er helt pjattet med at fåDBA’er til at skifte farve over i de gasblå nuancer -poolen dannes pr. JVM instans.

WEBCACHE

WebCache bygger på en antagelse om, at hente datadirekte fra memory er bedre end at generere data on-the-fly. Dette har ikke ændret sig siden man i sin tidfedtede med Sinclair ZX-81, Spektrum og senereDOS RAM-diske.

Der er 3 ting som får webservere til at performe:caching, caching og pooling. Eksempler er privatecache i browseren, public cache i Proxy’en,WebCache, threadpools, JDBC connection pools(mod_plsql/oc4j), SQL buffer cache etc. Basalt setbygger caching på en subtil forskel/abstraktion mel-lem et statisk og et dynamisk http request. Ved et sta-tisk request måles datavaliditet TimeToLive (TTL) idage eller uger, mens dynamiske request måles i mil-lisekunder, timer optil dage. Caching regler på statiskesider er forholdsvis overkommelige for en administra-tor, mens alle andre typer caching-regler kræver meregrundige overvejelser sammen med udviklerne. Isærhvis caching skal kunne invalideres dynamisk v.h.ainvalidation request fra applikationen eller sågar fradatabasetriggere ved brug af utl_tcp-pakken. Oracle

7OracleEkspert August 2005

AS 10g J2EE tuning kit viser, at brug af WebCachekunne forøge antallet af brugere fra 700 til 1000 forSun’s PetStore J2EE applikation. Et noget dyrerealternativ var, at skalere Application Serveren såfremtman skulle supportere 900 brugere på den givnemaskinkonfiguration. Performancemæssigt kan detanbefales at lægge WebCache på sin egen maskine,idet webcache-processen af mange kategoriseressom en runaway-process, som vokser betragteligt.

STRESSTEST

Med ovenstående konfigurationer i mente kan etstresstestscenarie beskrives i hovedtræk. Værktøjertil diagnostisering kunne være Mercury Loadrunner(LR) herunder Mercury Virtual User Generator(VuGen). Man kunne have valgt Apache JMeter o.asom stresstool grundet en for mange, mere attraktivlicenspolitik. Dynamic Monitoring Service (DMS) iOracle Enterprise Manager bruges til AS 10g per-formancemålinger selvom LR selv har mange add-onmonitors som kunne bruges. LR leverer selvfølgeligfantastiske diagrammer baseret på bla ART. Kommerdet til stresstest af bla Forms er LR at anbefale, idetde har implementeret den af Mercury kaldet OracleNCA protocol. Navnet har Mercury sikkert afledt af entidligere Oracle Applications version – jeg har aldrigmødt navnet internt i Oracle.

For at opstille en realistisk test må man se på sine for-retningsprocesser. Man må opstille nogle konceptuel-le mål for hvad applikationen skal kunne honorere.Feks antal brugere, årlig tilgang af nye brugere, søg-ninger må ikke være ulideligt langsomme, og manskal til enhver tid kunne gennemføre en bestilling afvarer. Man skal identificere de centrale processerfeks. Sign-in, Søgning på sitet, bestilling af varer. Manmå derefter komme med et kvalificeret gæt på hvor-mange transaktioner, der forekommer på en typiskdag, og på en dag med peak load. Disse kategorise-res herefter i indhold af dynamisk generede data samtvigtighed for forretningen. Derefter sættes nogle målfor responsetider for de enkelte processer. Disse tal vilvære styrende for hvornår der skal tunes eller ej. Detkan også være nødvendigt at kategorisere brugere ifeks. nybegyndere og erfarne brugere. Denne kate-gorisering har betydning for hvor meget tænketid, derskal indbygges mellem de enkelte delprocesser, somen proces består af. Som noget af det vigtigeste star-tes en analyse af concurrency - hvordan er transakti-onerne fordelt ud over dagen. Finder man peak time,må det antages, at hvis man stresstester systemetunder disse omstændigheder, vil systemet, alt andetlige, kunne klare belastningen resten af døgnet.Endelig kan der være overvejelser omkring brugersgeografiske placering dvs. netværkstilgang via WANog/eller internet.

Har vi (Oracle) estimeret en maskinkonfiguration, harman allerede været igennem alle disse overvejelser,

idet vi kræver nogle af de samme input.

ANDRE TEST

Forarbejdet er nu gjort og alle involverede processer,der skal indgå i et testscenarie, optages gennemVuGen. Scriptene opdeles i logon, selve transaktio-nerne som processen består af og logout, såfremtauthentikering er en del af applikationen. I LR lavesflere scenarier, hvor VuGen-scriptene er input. LRbest practices er at lave mindst 4 deltests (scenarier):

Concurrency-test (debug run): Er en test uden tæn-ketid bestående af 3–5 brugere. Målet er at afdækkeeks. låsningsproblemer.

Top Time Transactions test : Målet er at finde de tun-geste transaktioner og dermed dem der har længstresponsetid og/eller de transaktioner som tager læn-gere tid end det tilladte testmål ved 20% load. De fla-skehalse bør tunes inden 100% loadtest og skal efter-følgende under skærpet tilsyn. Testen gennemføresuden tænketid.

Full load test: Målet med denne test er, at se omsystemet opfylder svartidskravene. Denne test er ite-rativ og med tænketid. Først lader man antallet af bru-gere stige langsomt mod 100%. Ofte langt inden fullload vil flaskehalse vise sig. Problemet lokaliseres iOEM AS Control, OEM DB Control og/eller OEM GridControl, og testen afbrydes. Systemet/komponenten/-applikationen tunes og testen startes igen. Når en fuldload test er gennemført, registreres denne test sombaseline for alle fremtidige load tests.

Scalability test: Denne test er af typen Overload/-Overdrive test. Målet er, at køre systemet i mætningmht CPU og/eller Memory (Saturation test). Dervedfår man et billede af, hvad en given maskinkonfigura-tion maksimalt kan klare. Man går efter hockey-staven– det punkt hvor ART stiger urimeligt. For OracleForms applikationer er denne test almindelig, idetman så fastlægger det maksimale antal af brugere til10% under det punkt hvor staven ”knækker”. Et alter-nativ er en Threshold test, hvor stop-kriteriet for enCPU-bundet test kunne være 75% utilization. For enMemory bound test kunne stopkriteriet være respon-setid eller en forøgelse i virtual memory management.Java applikationer (OC4J) testes ofte på denne må-de.

Hvis man vil muntre sig lidt med ovenstående kan en10 dages LoadRunner trial-licens downloades framercury.com og Oracle AS10g J2EE Tuning kit kandownloades fra http://download.oracle.com/otndocs/-products/ias/files/10GTUNINGKITJ2EE.zip

Vær forberedt på, at de scripts som indgår i tuningkit-tet skal opgraderes/tilpasses LR versionen.

Afslutningsvis vil jeg minde om, at kun en tåbe frygterikke brugerne.

Tilmeld dig OracleEkspert-Konferencen 2005

via www.OracleEkspert.dk

8 OracleEkspertAugust 2005

www.books24x7.comDenne gang bliver det en noget anden form forboganmeldelse, da det ikke er én bog, og heller ikke ipapirform.

Jeg tror vi alle kender til behovet for at få nogle ideeromkring et bestemt emne, uden at man ønsker atlæse én hel bog eller måske endda flere.

Jeg og mine konsulentkolleger har i hvert fald ofte etbehov for at finde litteratur om et emne, og som altider det interessant at høre hvad flere mener om detsamme.

Vi har derfor købt i første omgang ét abonnement tilbooks24x7 for at se om det duede med bøger i elek-tronisk form, og det kan kort beskrives som genialt.

Der ligger vel omkring 6.000 bøger – alle it-bøger, ogman søger blot på det ønskede emne, og så får manvist en liste over de bøger der har noget om emnet, ognaturligvis også hvilke kapitler der indeholder nogetom emnet.

Man læser bogen på skærmen, og man kan naturlig-

vis sætte bogmærker i, sætte en bog på ens boghyl-de og så købe en bog man ønsker i papirform.

Der kommer meget ofte nye bøger, så man kan sag-tens finde et ønsket emne, også om noget der næstelige er kommet frem.

Jeg syntes det er en herlig måde at læse faglitteraturpå, naturligvis suppleret med traditionelle bøger, menjeg falder ikke for ideen til skønlitteratur, hvad er bedreend et koldt glas vin og en god krimi under parasollenen sommerdag.

Pris 399$ hvilket må siges at være rimeligt, da de fle-ste IT-bøger koster omkring 500 kr. herhjemme.

Restriktioner findes der også, man må ikke bareudskrive hele bøger, nogle gange vises der en down-load markering, og her kan man så downloade enkel-te kapitler etc., men formålet er at litteraturen skalvære tilgængelig online via en browser.

Til gengæld er du ikke låst til een maskine med kravom installation af specialsoftware. Du kan uden pro-blemer sidde ude hos kunden og slå op i bøgernealene vha et brugernavn og en adgangskode.

BENT

ESBA

MSE

RSBØ

GER

Af B

ente

Ros

enkr

antz

-The

il

Kære læser,

I denne rubrik kan du læse min (og minebamsers) mening om forskellige

Oraclerelaterede bøger.

Du er velkommen til at kommentere minevurderinger i en mail til [email protected].

Du er også velkommen til at melde dig som bamseved at indsende din egen boganmeldelse, som

du mener andre bør læse.

Venlig hilsen

Bente

K u r s e r i S y s t e m a n a l y s e“One main problem with short-circuiting the analysis process is that it leadsto unnecessary complex systems. It is important to understand that, whilesimple systems are much easier to build, they are much harder to design.”

- David C. Hay

Mere information + tilmelding:www.PythiaInformation.com eller 2627 9991

Systemanalyse med TheZachman Framework

den 28.-30. september kl 9-16

Kurset giver et overblik over demetoder og teknikker der er mest

egnede til systemanalyse af hhv data,aktiviteter, lokationer, personer, organi-sationer, tid og motivationer, når måleter at identificere og implementere densimpleste løsning på et givent problem.

Med The Zachman Framework* somudgangspunkt fokuseres der gennem teori ogøvelser på de kommunikationsformer, der bedsthenvænder sig til de forskellige medspillere i etudviklingsprojekt.

Zachman Framework er på trods af sin relativthøje alder et særdeles velegnet værktøj til hånd-tering af projektinformationer, hvad enten det ertil strukturerede miljøer, objektorienterede miljøereller steder, hvor man har defineret sine helt egnemetoder.

Kurset henvender sig til projektledere, systema-nalytikere og andre centrale personer indenforsystemudvikling. Det forudsættes, at deltagernehar et basalt kendskab til datamodellering.

Prisen inkluderer bogen “Requirements Analysis -From Business Views to Architecture” af David C.Hay (458 sider).

*Kort om The Zachman Framework: Værdien i Zachmans metode er 1) at man i stedet for at tænke iudviklingsfaser, ser på forholdene i virksomheden ud fra forskellige perspektiver (planlæggerens, forret-ningsejerens, arkitektens, designerens og udviklerens), og 2) at man udover data og funktioner på ligefod også inkluderer steder, personer, tid og motivation i analysen. Når man kombinerer alle perspektivernemed fokusområderne får man en samlet matrix med et komplet billede af alle relevante oplysninger omvirksomhedens behov.

Underviser:Marc de Oliveira

Sted: Fensmarkgade 3, 2200 København NPris: 10.900 kr for tre dage

OracleEkspert-abonnentrabat: 1.000 kr

Introduktion tilObjektorienteret Analyse

Ring for tidspunkterDette kursus giver deltagerne en ind-

føring i den Objektorienteredeudviklingsmetode og de tilhørende ana-lyseteknikker gennem teori og øvelser.

Kurset inkluderer blandt andet en gennemgang afObjekter og Klasser, nedarvning, indkapsling, denObjektorienterede udviklingsmetode, samt tek-nikker som UML Objektmodellering med Klasse-diagrammer, Statusdiagrammer, Sekvensdia-grammer og Use Case modellering. Desuden gen-nemgås teknikker til identificering af objekter ogderes sammenhænge, strategier for dokumenta-tion, interviews, test mv.

Kurset henvender sig primært til udviklere,systemanalytikere og projektledere, der gerne vilintroduceres til teorierne og teknikkerne bagObjektorienteret analyse.

Forudsætninger: Ingen.

Prisen inkluderer et eksemplar af bogen "AnIntroduction to Object-Oriented Analysis" af DavidWilliam Brown (668 sider).

Underviser:Marc de Oliveira

Sted: Fensmarkgade 3, 2200 København NPris: 9.450 kr for tre dage

OracleEkspert-abonnentrabat: 500 kr.

10 OracleEkspertAugust 2005

NØRG

AARD

’SNE

WS

STABILITY AT THE ATOMIC LEVEL

If you wish to have a stable environ-ment you must identify the things

that can de-stabilize it, then eliminate them if you can– easy, huh?

So if you never patch or upgrade Oracle, if you neverchange any parameters, if you never change anythingin Oracle’s data dictionary (new objects, changingNULL to NOT NULL) and if you don’t constantly gath-er new and exciting statistics – and if you can controlthe concurrency of CPU-intensive jobs on your sys-tem – then you are almost there.

Easy, huh?

At Miracle A/S we solve IT-related problems. They canbe related to security, functionality and (more com-mon) availability and performance. It’s usually veryexciting, since we’re mostly called in when the prob-lem is very acute.

I’m only covering the first part in this column, not thepart about CPU-intensive jobs.

VIP VISIT

Imagine you have to arrange a visit in London forsome VIP – say Hillary Clinton or Robert Mugabe. Myguess is you would hire some security-savvy outfit likeControl Risks Group (www.crg.com) to a) prepare andplan for the visit, b) gather intelligence about possiblethreats and risks, and c) provide the physical securityduring the actual visit.

You see, Miracle A/S is usually called in when the VIPis either dead or bleeding from several gun wounds.Sometimes we’re lucky and are called in before theVIP is attacked because somebody spotted a lot ofsnipers on the rooftops or a load of explosives werediscovered near the route of the VIP.

Usually, though, we’re asked to perform first aid, fieldsurgery and apply various walking aids in order for theVIP to complete the visit.

My dream has always been to be invited to be part ofphases a, b and possible c instead of just the medicalemergency team. It has been my dream for about 18years, and perhaps it might happen one day.

A couple of days ago we were contacted in order tosolve a big performance problem 20 minutes before ahuge system was going live after a 48 hour upgrade.A couple of weeks ago we had a situation with one ofour customers where management was having thatsort of wonderful meeting where they have to decideto send home the 800 workers producing goods in thefactory – or not – because the system was suddenlyrunning very, very slow. We had a few hours to fix theproblem.

Nearly every time it’s because a SQL statementchanged execution plan. To the worse, of course. Butit changed.

Funny enough, execution plans is about the only thingpeople never monitor. The focus is usually on systemlevel or application level performance.

That’s fine with me, since it won’t help anybody iden-

tifying the source of a sudden slowdown. Whichmeans they would do the Guess & Grimacing meet-ings around the whiteboard. Which means they wouldbe even more desperate when they finally contact us.Which means it would be much more adrenalin-bound for my guys.

Ah, to be the Delta Force of the database communi-ty. Feels great. Could wear you out after a fewdecades.

MONITORING V$SQLI call it the M2M method – Money To Miracle.Seriously, though, if you want to avoid sudden sur-prises in your systems or your applications you needto be able to see if a SQL statement changed execu-tion plan – and whether it was for the better or theworse.

We have done it for a 7.3.4 system, but it requiredsome tricks, including manual parsing of the mostimportant SQL statements, our own hashing algorithmand some other trickery. The same will need to bedone in 8.0 and 8i systems.

In 9i and 10g you can get something primitive going ina hurry: Save data from V$SQL with regular intervals.For instance you could concentrate on the followingcolumns:

HASH_VALUEPLAN_HASH_VALUEELAPSED_TIMEEXECUTIONSBUFFER_GETSCPU_TIME

You can make your own routine, you can downloadMiracle’s Monitor (MIRMON) which has a nice web-interface, or you can use Statspack level 6 or higher(we have also ported our MIRMON web interface toStatspack, and it’s free – send me an email if you’reinterested).

It’s up to you how often you want to do this – once aday, once an hour or once very 15 minutes. I don’tcare.

Then check for the following:Case 1: Did the PLAN_HASH_VALUE change

for the same HASH_VALUE?Case 2: Did the ELAPSED_TIME change for

the same PLAN_HAS_VALUE?

Let us look at Case 1 first. If the plan changed, andif the elapsed time increased, you might want to iden-tify the application(s) using this SQL statement andwarn the users that their response time just got worse.Then try to get the plan back to what it used to be.

With Case 2, it’s a little more subtle: This could hap-pen if an index becomes less efficient, if the amountof data used by this SQL statement increased and fora number of other reasons. Same plan, more work. Inthis case you can see if buffer_gets and cpu_timeincreased, and start looking at possible causes.

This is what I call looking after changes at the lowestlevel, instead of looking at high-level (system, appli-cation) symptoms.

Mogens Nørgaard fortæller i denne rubrik om sine oplevelser ogerfaringer, som alle databaseinteresserede kan have glæde af.

Af M

ogen

s Nø

rgaa

rd

11OracleEkspert August 2005

GROUNDHOG DAY TUNING

If you have tools that will help you identifying/manag-ing application performance you will at least knowwhen your users’ response time goes up or down(some tools don’t even do this, but most do). Here’sthe problem with that approach (application-centric):

Your application A (a report, say) consists of two SQLstatements S1 and S2. S1 takes 5 seconds, S2 takes20 seconds. Users are happy with the 25 secondsresponse time. Note that you don’t know how longeach SQL statement takes – you only know the totalresponse time.

Then one day S2 takes 30 seconds instead of 20, andthe total response time is therefore 35 seconds. Userscomplain, and you do the usual thing: Trace the appli-cation, find the heaviest SQL statement, and try totune it. It’s the same thing you do every time. In thiscase, it’s also the right thing to do, although it couldtake you a while, etc. You’re trying to tune the SQLstatement that got worse.

But what if S1 one day takes 15 seconds instead of 5?Then the total response time is also 35 seconds. Youthen perform the traditional Groundhog Day Tuning:Trace it, find the heaviest SQL statement (which is S2,which didn’t change) and try to tune it.

See the problem? This is exactly why sometimes youwill approach an application programmer and ask himto help you tune S2, and the poor guy will explain thathe just did that, and that he can’t reduce it further.

In other words: You’re looking at the wrong statement,since that statement didn’t change. S1 changed andshould be brought back to its 5 seconds responsetime if possible.

In yet other words: We usually tune the wrong thingseven if we focus on response time. We spent a cou-ple of decades looking at the statements with the mostbuffer_gets (logical IO’s) before we started looking atthe statements with the highest response time. Bothapproaches represent Groundhog Day Tuning.

NOW IMPLEMENT IT :-)Whether you use your own snapshot mechanism forthis, use Miracle’s tools or whatever, you should atleast think in these terms in order to stabilise your sys-tems.

There are a few other benefits if you monitor theelapsed time vs execution plans: You can far moresafely upgrade, patch and make changes to yourenvironment – you’ll be able to tell quickly whatchanged, and whether it was for the better or worse.

You might even be able to perform what I call “ShockUpgrades” without any prior testing of performance.As if you didn’t do that already :-).

Note, that the hashing algorithm used by Oraclechanged in 10g. There was a danger of collisions inthe old algorithm, even though it is known as ThePerfect Hashing Algorithm. However, you will find bothHASH_VALUE and OLD_HASH_VALUE in V$SQL in10g, so you can map from older versions of Oracle.

In Enterprise Manager (aka Grid Control) there’s a lit-tle-known feature allowing you to see if a certain SQLstatement changed execution plan. But that requiresthat you have identified it as a problematic statement

first. This approach should be turned up-side down:You should monitor for changes of exeuction plans,THEN go investigate the possible causes of that, andpossible ways to get it back to the old execution plan.

Also, be aware that a SQL statement could have exe-cution plan X1, then change to X2, and then perhapschange back to X1, You should therefore monitorthem historically, and not just keep the latest value.

There is a lot of work left to be done in this field, what,with dynamic SQL and other niceties sorrounding us.But it’s the way to go, I think. For instance, it couldprovide you with a certain indication that you shouldre-org an index or turn a table into an IOT or whatev-er. End of Guessing.

ANJO’S PYRAMIDS

It’s tough being a director. For instance, Anjo Kolk andI have had to spend a week here in South Africa doingtech days for the SAOUG in Johannesburg (Joburg ifyou’re local) and Cape Town (CT).

It’s Winter down here, and the locals are complainingprofoundly about the cold weather, etc. Ha! Any ofthese days would qualify as a near perfect DanishSummer day, I can tell you.

It’s all about what you’re used to. The folks from SouthAfrica ought to visit Denmark a few days everySummer (or Winter!) and then I think they’d be very,very happy with what they’ve got.

Anyway, Anjo had some interesting observations thatI thought I’d try to pass on:

If you have an OLTP system, you should probablyhave a V-shape of your system with respect to CPU-power available: Not very much at the database level,more at the middle-tier level and a lot at the clientlevel. V for Victory, as Anjo says.

With DW/BI it’s the opposite (an inverted pyramid):You should have most CPU power at the databaseserver level and not so much on the client.

Have you noticed how often you see hour-glassshapes in systems instead of the V’s?

In mixed environments you should probably havesomething more like a W or M :-).

LINUX IS NOT LINUX

Sometimes I read things that REALLY gets me think-ing. This is an example (pardon my French):

Sun was so … stupid to not put their true engineeringquality into Solx86 in the late 90s...so it wasn’t goodenough to run Oracle. Sun was just sandbagggingSolx86 as a ”loss leader” and getting people to switchto SPARC. That … Larry off, he decided to not port 9ito Solx86. That promoted this worthless anarchistpiece of … nightmare we deal with now called Linuxinto parity with Windows for Oracle....

Here’s one of the qualities I look for in people beforeand after I hire them: If they love to be proved wrong,they will go far. If they don’t like to be proven wrong,or even partly wrong, then they will have a hard timesooner, not later, in our line of work.

So when someone I respect says something like theabove, and it gets me thinking, I feel wonderful. Isn’t itfunny to have things turned on their heads (by some-

one who knows what he’s talking about, by the way –very much so, in fact)?

What we’re witnessing is that the Unix’es of the Worldare dying. Yeah, sure, they’ll be around for manyyears to come – my beloved VMS is still available, too.

It’s all about Linux and Windows now.

But is Linux Linux? Not quite. There are many differ-ent Linux’es out there. Sure, their source code is avail-able. So what? Can you take advantage of that if youhave a serious problem? Can you contact your ven-dor and have something urgently fixed in their code (apatch, in other words). Sure.

But will it become part of the general Linux distributionor will you now run a unique version of Linux – yourown version?

So customers are not gambling on that. They’re bet-

ting on the big players supporting Linux. The big play-ers, in turn, will make changes to “their” Linux accord-ing to customer demands and whatever goes oninside their organisations as such.

Then we have many Linux’es.

Instead of many Unix’es.

Still one Windows.

Fun fact: If you switch from HP/UX to Redhat Linux onHP (say, Itanium) you’re probably not going to saveany money. Support/update costs are the same.

Linux is faster than Windows. Unix is faster than VMS.Is that really an important decision parameter?

No, Dear Oracle Senior Management, I’m not defend-ing Microsoft. I’m not dissing Oracle. I’m not for oragainst Microsoft. I’m not for or against Oracle. I’m forthe customer.

12 OracleEkspertAugust 2005

NYHE

DER 2005.07.21

Red Database Security offentlig-gør seks sikkerhedsfejl i Oracle

Det tyske sikkerhedsfirma RedDatabase Security har efter sigen-de allerede for to år siden gjortOracle opmærksom på fejlene oghar bedt Oracle om at udsende enpatch, som kunne rette dem.

I frustration over at Oracle ikke harreageret, valgte firmaet at offentlig-gøre detaljer om fejlene. Oracle harbeklaget, at disse oplysninger nu erblevet offentliggjort inden en patchvar klar til at rette dem, men hæv-der, at de retter fejl i deres produk-ter så hurtigt som muligt.

Fejlene er relateret til OracleApplication Server 9i og 10g,Oracle Forms og Oracle Reports.Mindst een af fejlene hævdes at til-lade en hacker at overtage kontrol-len over systemer, der kørerOracle-applikationer. Link

2005.07.06

Watermark Denmark dropperOracle

Watermark Denmark bliver nu enren Axapta-forretning efter at Baanog nu Oracle er blevet opgivet.

2005.07.06

Oracle opkober Profit Logic

Oracle vil i lobet af juli faerdiggoreopkobet af Profit Logic, som udvik-ler financielle analysevaerktojer.

Oracle finder at opkobet er naturligtda mange af Profit Logics kunder iforvejen bruger Oracles database.

2005.07.05Larry på vej til at donere USD115 mill til Harvard

Larry Ellison er på vej til at donere

USD 115 mill til Harvard Universitytil et program om forskning i effekti-viteten af globale helbredsinitiati-ver.

En sådan donation vil være denstørste i Harvard University's histo-rie.

2005.06.29

Oracle Q4 resultat

I Q4, som er Oracles første helekvartal efter opkøbet af PeopleSoft,er indtjeningen steget med 3,2%.Det svarer til USD 1,02 mia eller 20cent pr aktie. Sidste år var over-skuddet for Q4 på USD 990 millsvarende til 19 cent pr aktie.

Resultatet for hele året er på USD2,89 mia, svarende til 56 cent praktie, hvilket er en stigning på 8% iforhold til året før, hvor overskuddetvar på USD 2,68 mia, svarende til51 cent pr aktie.

Indtægterne for året er steget med16% til USD 11,8 mia siden sidsteår. Indtægterne for Q4 er stegetmed 26%, i forhold til året før, til3,88 mia.

2005.06.24

Tidligere Microsoft-direktør bliv-er co-president for Oracle

Finansdirektør for Microsoft i 1997-2000, Gregory Maffei, er blevetansat som finansdirektør og co-president (blandt tre) for Oracle.

Oracles andre co-presidenter erSafra Catz og Charles Phillips.

2005.06.14

Oracle flytter salgscenter tilbagetil Danmark

I en offensiv mod Microsoft i Dan-mark har Oracle valgt at flyttesalgscenteret, som for mange årsiden blev flyttet til Irland pga lem-pelige EU-regler, tilbage tilDanmark.

I den forbindelse regner man medat skulle ansætte op til 30 menne-sker i Oracle Danmark.

2005.05.27Steen Knudsen bliver salgschefhos Ementor

Sten Knudsen, der 11. maj blevbortvist som salgschef hos OracleDanmark, er netop tiltrådt en ny stil-ling som salgschef hos Ementor.

13OracleEkspert August 2005

TEKNISKA

RTIKEL

INDLEDNING

At udveksle data mellem omverden og et database-system kan undertiden være problematisk.

Der kan opstå ad hoc situationer, hvor der ikke er tid,budget og mulighed for at opbygge veldefinerede ud-træks- og indlæsningsapplikationer, såsom rapporter,skærmbilleder og indlæsningsprogrammer. Selv iveletablerede projekter kan der komme spontane ogustrukturerede ønsker om udtræk og inddatering.Situationen forstærkes i nyopstartede projekter ellerhvor der er kontakt med interessenter udenfor detorganisatoriske og tekniske miljø.

Der har længe været rimelig gode muligheder for atlave ad hoc udtræk, her tænkes især på SQLPLUS,hvor en kyndig programmør temmelig hurtigt og letkan lave præsentable udtræk. Derimod er indlæsningaf spontandata stadig problematisk.

Denne artikel præsenterer en lille applikation, der kanbruges i visse situationer, hvor man har modtagetdata i regneark og hurtigt vil læse dem ind og havedokumentation for det passerede.

REGNEARK ER POPULÆRE

Regneark har vundet stor udbredelse. For almindeli-ge brugere er de nemme at lave og nemme at forstå.De er også nemme at transportere fra sted til sted,mellem forskellige tekniske platforme og via internet.Så regneark er der rigtig mange af. Lidt polemisk sagtkan man sige, at Microsoft Excel (regneark) og Word(tekstbehandling) er verdens mest udbredte databa-se.

Det er i øvrigt relativt nemt at konvertere fra det ene tildet andet, blot man ved, at karakter 9, måske bedrekendt som ”tab”, definerer en celle i regnearket. Prøvselv at ændre halen på et regneark, fx ”ark.xls”, til”ark.doc” og kig på det. Det er lidt mere tricky at gåden anden vej.

Oracle har nyligt lanceret HTML DB, et produkt iOracle 10, der håndterer indlæsning fra (ogudlæsning til) regneark. Den her præsenterede lilleapplikation, som er rudimentær, har en lille smule afden funktionalitet.

ET SCENARIO

Nogle brugere vil angive hvilke medarbejdere, derskal oprettes i et databasesystem under udvikling,som ikke er færdigt. Tiden er knap og applikationen,hvor de ville kunne indtaste dem under ordnede for-hold, er ikke klar. Men udviklerne har brug for trovær-dige data. Eller forestil dig, at brugerne har udarbejdetnogle testdata, som man vil indføre i databasen.

Det vil formentlig være let for disse brugere at skrivedata i et regneark. Regnearket kan på forhånd væreforsynet med SQL kommandoer (og således tjene

som en form for brugervejledning, hvis brugerne kanforstå SQL) eller SQL kan bagefter lægges på af enprogrammør. Herefter kan den lille applikation læseregnearket ind, fx på stedet i samarbejde med en sæl-ger eller projektleder.

Det bør nævnes, at applikationen er et kraftigt værk-tøj, som i ukyndige eller ondsindede hænder kan laveravage, og login og password bør ikke være frit til-gængeligt.

TEKNISK PLATFORM

Applikationen er fil RUN.SQL, fylder 6 kilobytes, ogbestår af lidt SQLPLUS og et PL/SQL program på 163linier samt en fil for SQL efter opdatering. Der bliverikke lagt noget på databasen.

Applikationen startes fra operativsystemet med SQL-PLUS.

Som applikationen er her, kører den på Oracle 9.2eller nyere, men den kan ændres, så den kan køre påtidligere (brug af directory erstattes med brug af envi-ronmentvariabel UTL_FILE_DIR).

Hvis man vil kigge på og ændre regnearket direkte,skal Oracle databaseserveren enten være Windows,eller der skal være mapning (fx fra Unix), så katalogetopfører sig som Windows katalog. Hvis det ikke ertilfældet, kan man kopiere regnearket (fx ved FTP)mellem det anvendte operativsystem, typisk Unix, ogWindows, hvilket er lidt klodset.

BRUG

Sælgeren kan have applikationen i lommen på endiskette, evt. sammen med skabelonregneark med deudarbejdede SQL udtryk. Sælgeren behøver altsåikke kende noget til SQL, andet end at forstå den sim-ple notation, der kobler kolonner med data til det over-liggende SQL udtryk.

Når regnearket er lavet, lægges det på det vedtagnekatalog, fx C:\ORAARK\, og der laves en kopi med detvedtagne filnavn, fx ARK.XLS. Disse ting står øverst iden lille applikation og kan ændres.

Sælgeren eller anden bemyndiget person starterSQLPLUS med user_login/password op fra det ved-tagne katalog, fx sådan her:

C:\ORAARK> sqlplus oraark_user/hemmeli @run.sql

Resultatet er:- Opdatering i databasen (forhåbentlig)- Kvitteringsregneark, KVIT_<vedtagne filnavn>- Kørseloplysninger, RUN.LST. Her ligger også

SQL fra fil KVITTERING_SQL.SQL

Kvitteringsregnearket viser ikke select-sætninger, kunom hvert SQL udtryk er gået godt eller skidt (hvorvedden rulles tilbage). I stedet er der filKVITTERING_SQL.SQL, hvor SQL-kyndige kan skri-

EN MÅDE AT INDLÆSE REGNEARK I ORACLEChristian Bastlund er ansat i CSC Danmark. Han har arbejdet somkonsulent i Danmark og England og er Datalog fra KøbenhavnsUniversitet med bifag i Informationspsykologi. Udover at arbejdemed systemudvikling og Oracle er hovedinteressen menneske-maskin samspil og formidling.

Af Christian Bastlund, CSC

14 OracleEkspertAugust 2005

ve SQL efter opdateringerne; her kan man lave se-lect-sætninger og se, hvad der er sket.

NOTATION

Hver kommandoblok i regnearket har formen:

DECLARE

<én SQL-sætning>

BEGIN

<rækker med data i kolonner, hvis relevant>

END;

SQL-sætning kan:- være dataløs, eller- referere til hver datarækkes kolonner med num-

mer og %-tegn foran nummeret

EKSEMPLER:DECLARE

update kunder set telexadresse = null;BEGINEND;

DECLAREupdate medarbejdere set navn = %2 where initial = %1

BEGINABO Anne Bang OlsenNHH Niels-Henning HansenEND;

Kvitteringsregnearket skriver i en linie efter hvertEND; om det er gået godt eller rullet tilbage.

For at forstå hvordan regnearket læses, prøv at lave*.XLS filen om til *.DOC og kig i Word.

Det er nærliggende at udvide applikationen, så derkan håndteres mere end én SQL-sætning pr. kom-mandoblok, men det er ikke gjort her. Eller kommen-tarer som /* <tekst> */ efter DECLARE for SQL ellerefter BEGIN for kolonneoverskrifter, det er heller ikkegjort.

Man skal være opmærksom på, at SQL’en kan åbneop for farlige ting:

DECLAREdrop user system cascade;

BEGINEND;

Den er ikke god. Det er derfor user_login og passwordikke skal være frit tilgængelig, og man bør derfor nokoprette en særlig Oracle-bruger, som ikke har for kraf-tige rettigheder.

KONKLUSION

Dette er en mobil letvægtsapplikation, der kan hjælpemed at krydse det tekniske gab mellem almindeligebrugere med forretningsviden og data og udviklere.

I starten, før der er opbygget fortrolighed mellem par-terne, er det nok en god ide blot at specificere hvilkekolonner, brugerne skal udfylde, og lade udviklerneskrive SQL’en på bagefter, ellers kan det være, bru-gerne synes, det er noget mærkeligt noget og bliveutrygge. Der er noget farligt indeni!

[Den omtalte kode samt eksempler kan download’esfra vores hjemmeside: www.OracleEkspert.dk, Red]

Læser dine kunder ikke OracleEkspert?

For hver ny abonnent, som oplyser dit navn ifmtegningen af sit abonnement giver vi dig:

- Et signeret og nummereret særtryk af Oraclerne- Et OracleEkspert-kaffekrus

eller- En forlængelse af dit abonnement med eet nummer

15OracleEkspert August 2005

Påstanden som blev fremlagt i OracleEkspert nr 30 lød:”Objektorienteret udvikling er bedre end struktureret udvikling/information engineering”

Opinion: 2.0 (på en skala fra 1-5, hvor 1 betyder “helt uenig” og 5 betyder “helt enig”)

OE31 Vinder: Mette Stephansen, PFADer var ikke mange deltagere i denne måneds meningsmåling. Det skyldes nok at emnet er meget svært,og at meget få kender argumenterne fra begge sider. Til gengæld var der nogle meget engagerede hold-ninger. Mette Stephansen vinder overbevisende dene måneds iPod Shuffle med følgende meget livlige ogdybtfølte kommentar:

”[...] Og så irriterer det mig GRÆNSELØST at fx Java skal være så fandens besværligt at man stort setikke kan kode det uden en super-hyper-mega editor (for det er jo det IntelliJ/Esclipse bare er). Ingen kannogensinde rumme tilnærmelsesvis det hele. Så alle opfinder små dybe tallerkener, eller henter diverseunderlige claser/metoder fra skumle steder på nettet. Dvs. den opgave, der "i de gode gamle dage" havdemåske 2-3 mulige tekniske løsninger (når nu algoritmen var fastlagt) har nu 1800 forskellige. Hver mand,sin løsning på fx bare at læse en simpel fil fra disken!

Så det vi har opnået er at vi har kompliceret vores liv yderligere - øget vedligeholdelsesbyrden, idet deralle steder anvendes et hav af hjælpeværktøjer.

Og så ... HVEM FANDEN HAR FUNDET UD AF AT DET SKAL VÆRE CaSeseNsITivt? [...]”

Karsten Schulz, som jo er en af de helt tunge drenge inden for Objektorienteret udvikling er selvfølgeligikke helt enig i Mettes synspunkt. Han medgiver dog at han ”[...] ikke [er] ening i at OO er mere produktivend Struktureret udvikling - måske snarere tværtimod”, men ellers mener han at Objektorienterede model-ler er mere egnede end ER-modeller, da de ”kan udtrykke væsentlige flere semantiske forhold i modellen,som er forståelige for brugere.”

Han mener også at ”Korte cyclus er helt klart bedre end vandfaldsmetoder - det viser alle erfaringer! Oggenbrug understøttes helt klart også bedre af OO, da det er lettere at genbruge objekter/klasser en funk-tioner!”. Her er Mette Stephansen uenig. Hun mener at ”Man har altid ved at kode fornuftigt kunne gen-bruge og "skjule" uønsket funktionalitet for ‘de ikke indviede’.”.

Angående kravændringer siger Karsten Schulz, at ”tager man et typisk kravsændringspunkt såsom funk-tionaltitetsændringer, så er OO skræddersynet til lette ændringer af sådanne!”

Generelt var de fleste ikke tilhængere af Objektorienteret udvikling, hvilket kan forekomme overraskende,når man ser hvor meget opmærksomhed emnet har fået igennem de senere år. Jeg er heller ikke selv ble-vet overbevist om det objektorienterede paradigme. Min kritik er primært orienteret omkring den objektori-enterede tankegang og dens konsekvenser for analyse- og udviklingsmetode. I kan læse lidt om min hold-ning til emnet i lederen på side 2.

Påstanden til meningsmålingen i OracleEkspert nummer 32 lyder:

”Outsourcing er en fordel”

Det hævdes, at outsourcing kan give store besparelser. Specielt er IT-ydelser iPolen og Indien væsentlig billigere end i Vesteuropa og USA.

Når man tager stilling til en outsourcingstrategi, skal man selvfølgelig ogsåvære opmærksom på elementer som feks sikkerhedsproblemer, motivation ogreaktionstider.

Hvad er dine erfaringer?

Skynd dig ind på www.OracleEkspert.dk og giv din stemme til kende!

Du kan vinde en iPod Shuffle

ER DU ENIG?Jeg bestyrer denne lille sektion, hvor jeg i hvert nummer af OracleEkspert diskuterer etemne, som I alle gerne må give mig jeres mening om ved at afgive jeres stemme påwww.OracleEkspert.dk (under menupunktet Meningsmålingen). Der uddeles en præmiefor en af de mest interessante kommentarer. Ideer til spørgsmål, som det kunne værespændende at høre andres mening om er velkomne til [email protected].

Af Marc de Oliveira

MENINGSM

ÅLINGENSponsor søges

Hvis dit selskab er inte-resseret i at blive spon-

sor, ring 2627 9991

16 OracleEkspertAugust 2005

ACTIVITIES (HOW)The activities column of the Zachman Framework isalso handled very well by Designer. As data and activ-ities are the most ancient and fundamental areas ofinterest of the development practice it is not surprisingthat they have the most focus in the Designer toolset.

The Planner’s View - Objectives and Scope (cell A1)

The planner’s interest in activities is as part of a gen-eral scope defining task. He/She needs to maintain ageneral definition of the scope of the ApplicationSystem and a list of the main Business Functions thatthe project must address.

You should define a central Application System thatrepresents the entire business. The properties of theApplication System should be used to make a gener-al definition of what the business is about. The plan-ner should try to use terms that every employee, cus-tomer and supplier can understand.

Each essential business area should have anApplication System defined for it as well. TheseApplication Systems should be considered as subApplication Systems to the main central ApplicationSystem mentioned above.

The documentation should be in form of text - eitheras a document or a dynamic web page.

A simple list of the top two levels of BusinessFunctions can be extracted like this:

select FUNCTION_LABEL from CI_FUNCTIONSwhere

PARENT_REFERENCE is NULL orPARENT_REFERENCE in

(select IRID from CI_FUNCTIONSwhere

PARENT_REFERENCE is NULL);

There is no need for diagrams at this point.

The Designer elements of cell A1 are:- Application Systems- Business Functions (just function labels)

The Business Owner’s View - The Enterprise ActivityModel (cell A2)

As with cell D2 this cell is about the business owner’sknowledge of how the business is run. The businessowner must define the details about what his/her partof the enterprise is doing and how it is done.

Both BPR diagrams and Dataflow diagrams are goodtools for documenting the activities of a business.They both let you define the business in multiple lev-els of detail and let you specify the flow of data andmaterials between the different Business Functions.

The Business Functions defined by the business own-ers relates to physical functions like “glue label to thebottle” or “complete the customer registration form”maybe even with a description about how to perform

the function.

The Designer elements of cell A2 are:- BPR diagrams- Dataflow diagrams- Business Functions (labels and descriptions)- Dataflows- Triggers- Entity and Attribute usages

The Architect’s View - The Conceptual Activity Model (cell A3)

The architect needs to focus on “essential” BusinessFunctions. These are basically the necessaryBusiness Functions to carry out the enterprise’sobjectives. These can only be identified with informa-tion about the external events of the business, so youwill need that information from cell T3 to build “essen-tial” dataflow diagrams. That means that all BusinessFunctions from cell A2 that do not help to carry out theenterprise’s objectives should usually be removed.That could be Business Functions that are dealingwith problems in the currently used technology.

Also, the Business Functions of the architect shouldnot define processes. They should describe whatproblem the Business Function solves – not how it issolved. “glue label to the bottle” could be “mark thebottle” and “complete the customer registration form”could be “register the customer”.

The result is a set of Dataflow diagrams and FunctionHierarchies with all the “essential” Business Functionsdescribed in a technology neutral way.

Because the architect will make many fundamentalchanges to the business owner models it is importantto check-in all diagrams and functions before lettingthe architect change anything.

The Designer elements of cell A3 are:- Dataflow diagrams- Function Hierarchies- Business Functions- Dataflows- Triggers- Entity and Attribute usages

The Designer’s View - The Technology Activity Model (cell A4)

The designer will be running the Application DesignTransformer that converts the Business Functions toGeneral Modules. The General Modules must then berefined by design decisions about display properties,item ordering, data sorting, usage of canvases andwindows, menus, module networks etc.

The designer must also identify necessary PL/SQL orJava Definitions that will be needed by the builder anddefine their interface in the most reusable way toavoid multiple implementations of the same functionsby the system builders.

In short the designer needs to make all the technolo-

F ITTING DESIGNER INTO THE ZACHMAN FRAMEWORK - PART 2Marc de Oliveira from PYTHIA Information possesses a M. Sc. inComputer Science from the University of Copenhagen and has beenworking as system analyst and system developer for the past 15years primarily with the Oracle Designer tools. Contact: [email protected].

Af M

arc

de O

livei

ra

TEKN

ISK

ARTI

KEL

17OracleEkspert August 2005

gy specific decisions that need to be done before theactual programming can take place.

The Designer elements of cell A4 are:- Module diagrams- General Modules- PL/SQL Definitions (general specification)- Java Definitions (general specification)

The Builder’s View - Detailed Activity Representation (cell A5)

Ideally, Designer should be able to generate 100% ofthe designed code, so why do we need a builder’sview? As you may know I am a firm believer of 100%generation but that certainly does not mean that nobuilding is necessary.

The builder must implement all the PL/SQLDefinitions, Java Definitions and Application Logic thatmust be used by the generated Modules.

The Designer elements of cell A5 are:- PL/SQL Definitions- Java Definitions- Module Application Logic

The Working System - Activities (cell A6)

The generators will create FMB files, RDF files, PLLfiles etc that will remain as the source of the exe-cutable files in the file system. These can be stored asFiles in the Designer repository to keep an accessibleoverview of all the executable files of the system.

The generators will also create Packages,Procedures, Functions and Triggers that will automat-ically be stored in the Data Dictionary from where it iseasy to extract documentation about the working sys-tem.

The Designer elements of cell A6 are:- Files

LOCATIONS (WHERE)The Locations column of the Zachman Framework isnot so visible in Designer but don’t fear, you can eas-ily manage your location information with Designer.

Locations are related tightly to many of the otherareas of interest, so it is necessary to look at thoserelationships as well.

The Planner’s View - Objectives and Scope (cell L1)

The planner must define the Locations that the devel-opment project must include. This is done by defininga simple set of Locations in Designer. Specific con-straints to take into account for the different Locationscan be described here (like language requirements,special considerations related to local laws etc). Onlyinclude general Locations like countries or cities – notspecific offices etc.

It might be helpful with a simple map with the locationsmarked on it. Such a map could be stored in therepository as a Document with the Path propertypointing to the BMP or GIF file. By storing it as aDocument rather than a File it is possible to assign aType property that indicates that the Document is amap for the planner’s view and, hence, make it possi-ble to show the map dynamically in different kinds ofdocumentation.

The Designer elements of cell L1 are:- Locations (only general locations)

- Documents

The Business Owner’s View - The Enterprise LocationModel (cell L2)

The business owner is primarily interested by thelogistical issues related to Locations. What activitiesare dependent on other activities in differentLocations? Who is communicating with who acrossdifferent Locations? Where do we need to transportgoods between Locations?

A geographical map with the involved Locations, likeoffices, warehouses, delivery points, production sitesetc, and lines showing the relationships is a good visu-al but it is important to have a structured representa-tion of those (logistical) relationships as well. I amusing the term Location about things that would usu-ally be called Sites because Designer does not distin-guish between the two. Alternatively you could createSites as a user extension but I prefer to use the Typeproperty of the Location element to specify what thenature of the Location is.

You can define relationships between Locations inDesigner in a couple of ways. Either you can gothrough the Documents element type by creating aDocument with a description of the relationship andthen assigning all the Locations with the describedrelationship to that Document through the Attached ToElements/Attached To Document association.

Another possibility is to create a many to many asso-ciation between Locations as a user extension (youcould call them Location Relationships). Such a userextension can be created through the RepositoryAdministration Utility (RAU) and should have the prop-erties Name (mandatory), Type and Problem Level aswell as the text usages Description (CDIDSC) andNotes (CDINOT).

By using the Code property of the Locations elementas a coordination code you can even make a webpage with a map that plots in the Locations dynami-cally. It is even a simple task to have the map usingdifferent icons depending on the Type property of theLocations, so that plants, offices and warehousesshow up differently on the map.

The Designer elements of cell L2 are:- Locations - Documents or Location Relationships

The Architect’s View - The Conceptual Location Model (cell L3)

The architect needs to analyze the Locations of thingsin more detail. He/She will also have to identify theLocations of less physical things like data, activitiesand knowledge.

If all data will be stored on a central server that every-body has access to, the Location of data is not soimportant but if some data requiring activities must beperformed in a Location without network access theseissues must be addressed. This is done using theLocation Relationships with the Type property set tosomething like DATA DEPENDENCE.

By mapping Business Units to the Locations (andmapping Business Functions to Business Units, whichis done in cell A2 and A3) you will also be able to trackDataflows that move from one geographic Location toanother. These Dataflows will often be connectingproblematic activities that might benefit from reengi-neering or relocation. The mapping of Business Units

18 OracleEkspertAugust 2005

to Locations is done using the Business Unit PlanningItems association.

A Business Function that is actually taking place intwo different Locations might have to be split into twoor more Business Functions because communicationproblems may cause each of the activity parts to workindependently of each other. This will usually addcomplexity and time consumption to the originalBusiness Function and should be avoided if possible.

It is also important to the management of a businessthat people that communicate much with each otherare located close to each other (this is addressed fur-ther in the section about People and Organizations).

Finally, there could be dependencies betweenLocations and the Business Rules of the enterprise.These would be caused by local laws but could alsojust be caused by local management differences with-in the enterprise. Designer does not contain aBusiness Rule element type but a number of sugges-tions have been made on how to go about it. TheCDM Rule Frame uses Business Functions to imple-ment Business Rules while CASETech uses PL/SQLFunctions. You could also place them in tables outsidethe repository or create user extensions to implementthem. There are pros and cons to every solution butthe bottom line is that some kind of Business Rulestorage must be in place and that it should somehowbe linked directly to the working system.

The Designer elements of cell L3 are:- Locations- Location Relationships- Business Unit Planning Items- Locations To Business Rules Relationships

The Designer’s View - The Technology Location Model (cell L4)

The system designer is concerned with the physicaldistribution of hardware and software. He/She needsto document the Locations of all the involved Nodes(like servers, storage installations, printers etc), theirNetwork Connections and the software (Databases,operating systems, Modules etc) running on them.

Designer has a whole set of elements to handle thiskind of documentation. Nodes are identified by prop-erties like Name, Description, Type, Primary Usage,Manufacturer, Model and Responsibility of. Nodescan have Locations and Network Connections toother Nodes. The Network Connections are definedby properties like Protocol and Line Speed.

Designer even allows you to define the ProcessedModules on each Node and their frequency as well asthe Databases running on the Nodes.

The Designer elements of cell L4 are:- Nodes- Installed at Locations - Network Connections- Processing Modules- Databases on Node

The Builder’s View - Detailed Location Representation (cell L5)

The builder is concerned with the details about howeach Node is setup (by assigning ip addresses etc).This is usually documented in text treatment softwarelike MS Word or Excel. These Documents can be cre-ated using any tool and then linked into the Designerrepository as Documents by setting the Source Path

property to point at them on the file system.

Simple setup documents can be stored directly in theNotes text of the Nodes element.

In general use the Description text for general descrip-tions that can be read by people without specificknowledge about the element being described anduse the Notes text for low level technical content. Thisdivision will make it much easier to extract the correctcontent in reports or on dynamic web pages depend-ing on the audience.

The Designer elements of cell L5 are:- Nodes- Nodes Attached To Documents - Documents

The Working System - Locations (cell L6)

Some Nodes will provide feedback about their statusetc through a web interface. In these cases it would bea great help to store the relevant URL on the Nodeselement and publish a screen of all the Nodes togeth-er with direct links to their monitor software.

Designer does not have properties for this on theNodes elements but a URL property can easily be cre-ated as a user extension.

The Designer elements of cell L6 are:- Nodes URL To Monitor Software (through user

extensions)

PEOPLE AND ORGANIZATIONS (WHO)The question about people and organizations is verycentral to system development and often overlookedbecause it gets too little attention. By using theZachman Framework to organize the interpersonalrelationships in the Designer repository together withall the other project information, this area of interestcan more easily get the focus that it requires.

The Planner’s View - Objectives and Scope (cell P1)

The planner is interested in the enterprise’s politicalstandpoints related to employees and the manage-ment of them. The planner’s information should bestored with the Application System, either as a sepa-rate text type created as a user extension or as a setof Documents with a specific Document Type proper-ty, like HUMAN RESOURCE POLICY, so they caneasily be extracted.

The Designer elements of cell P1 are:- Application Systems (Human Resource Policy

text property) or Documents (Human ResourcePolicy document type)

The Business Owner’s View - The Enterprise People Model(cell P2)

The business owner must document the BusinessUnits of his/her business area and specify the rolesinvolved in running the business. It is important toknow the relationships and communication channelsbetween the different Business Units and roles.

Roles are not handled as a separate element type inDesigner, they are stored as Business Units as well.You can use the Role Flag property to indicate that aspecific Business Unit is in fact a role.

This information will help the architect pinpoint prob-lem areas and suggest reorganizations that might

19OracleEkspert August 2005

simplify the business processes of the enterprise.Therefore it is important to include all the relationships- not only the management hierarchy. Often the mostimportant relationships do not show on the traditionalorganizational diagrams.

Designer can organize Business Units in a hierarchybut it does not handle other types of relationshipsbetween Business Units. Again you will have to createa new association type, Business Unit Relationship,as a user extension (like I described it previously forLocation Relationships).

Unfortunately, Designer does not provide an organi-zational chart, so you will either have to draw one inanother tool (which I don’t like, because that meansthat you will have to keep two redundant sets of infor-mation synchronized manually) or build your own dia-gram viewer that can build an organizational chartfrom the Business Unit data in the DesignerRepository. It is not that hard to dynamically buildsuch a diagram in HTML. Another advantage of build-ing the dynamic diagram viewer is that you can buildit so that clicking a Business Unit will reveal a rela-tionship diagram showing all the relationships goingbetween the chosen Business Unit and otherBusiness Units (and even the Locations mapped incell L3).

The Designer elements of cell P2 are:- Business Units- Sub Divisions- Business Unit Relationships

The Architect’s View - The Conceptual People Model (cell P3)

There are two main parts to the architect’s work withpersons and organizations.

1) The communication channels must be analyzedto identify ineffective structures in the organizati-ons.

2) A description of the human interaction with thesystem must be defined as the background forthe design decisions that have to be made by thedesigner.

As for part 1 David Hay has a good overview of howto go about it using cybernetic theory in his book“Requirements Analysis – From Business Views toArchitecture”. It contains too much material to be cov-ered in an article like this one but I will encourageeverybody to read his book which is very inspiring.

Obviously, the source of such an analysis is the rela-tionship definitions between Business Units as well asbetween Business Units and Locations.

With the results of that analysis it is possible to definethe optimal interactions between the users and thesystem. One way to do that is through use cases.

Use cases are best know by their diagrams of stickmen connected to large bubbles but the most impor-tant part of the use cases is their textual descriptionsthat cover all the aspects of each type of human inter-action with the system. However, Designer can man-age the elements of a use case.

The use case “actor” corresponds to the low levelBusiness Units who can be related to BusinessFunctions using the Performing Function association.A use case corresponds to a (small) number of actorsinteracting with a (small) number of systems.Typically, one actor interacts with one system. To bun-

dle these actors and Business Functions into a usecase it is possible to define them as Set Members ina User Defined Set. The User Defined Set elementhas a Description property that can hold the textualdescription of the use case.

If you are not using the User Defined Sets for anythingelse you can store use cases as described here with-out the need of any user extensions. If you want to beable to define other kinds of sets you will have to adda Type property to the User Defined Sets element asa user extension and set it to something like USECASE on your use cases.

As with the dynamic organization chart viewerdescribed in cell P2 it is possible to create a simpleuse case viewer in HTML that will show the actors asstick men and the Business Functions as bubbles.

The Designer elements of cell P3 are:- Business Units- Business Unit Relationships- Business Functions- User Defined Sets (used as use cases)

The Designer’s View - The Technology People Model (cell P4)

The designer’s interest in people is primarily to theuser interactions like user interface, security etc.

When using Designer you should try to place as muchof the general usage requirements in locations wherethey automatically get generated into the applicationsystem, so that you don’t have to remember themevery time you make a screen or report. So, cell P4 ismainly about setting up the requirements forPreference Sets, templates, libraries and utility pack-ages, as well as the template like display properties ofTable Definitions and View Definitions.

Also user interface related definitions of individualmodules to match the architect’s use case descrip-tions of their function are managed in this cell.

The Designer elements of cell P4 are:- Preference Sets- Library Modules (descriptions of requirements)- PL/SQL Definitions (descriptions of require-

ments)- Modules (user interface properties and preferen-

ces)- Table Definitions (display properties)- View Definitions (display properties)

The Builder’s View - Detailed People Representation (cell P5)

The builder will then have to flesh out the require-ments specified by the designer by actually coding thelibrary functions and procedures, templates, objectlibraries, PL/SQL packages etc.

The Designer elements of cell P5 are:- Library Modules- PL/SQL Definitions

The Working System – People and Organizations (cell P6)

All the generated or hand coded templates, libraries,packages etc can be stored in the repository for ver-sioning as Files.

The Designer elements of cell P6 are:- Files

20 OracleEkspertAugust 2005

T IME (WHEN)The time column has to do with events happening atspecific times or with specific intervals. Events thathappen at unspecified times are also handled in thiscolumn.

The Planner’s View - Objectives and Scope (cell T1)

The planner is concerned with the general ProcessEvents and cycles of the business, like yearly evalua-tion cycles, accounting or budget deadlines etc.These can be stored in Designer as Process Events.

Information about the enterprise’s planning horizon isalso important to the project.

The planner’s information should be stored with theApplication System, either as a separate text type cre-ated as a user extension or as a set of Documentswith a specific Document Type property, like TIMINGAND EVENTS, so they can easily be extracted.

The Designer elements of cell T1 are:- Application Systems (Timing and Events text

property) or Documents (Timing and Eventsdocument type)

- Process Events

The Business Owner’s View - The Enterprise Time Model(cell T2)

The business owner must identify the complete set ofProcess Events of his/her business area. It is alsoimportant to identify if the Process Event occurs as theresult of a state change. What is the Entity andAttribute change that causes the Process Event?These are all data that Designer stores with theProcess Event element type.

It is also important to identify when Process Eventsare Triggering Functions. This should give you a viewof what all the things are that the business must beable to react to. At the same time it tells the architectthat any Business Function that is not triggered by aProcess Event might very well be dispensablebecause nothing seems to be asking for its output.

Two properties are missing from the Process Eventselement type to be able to fully describe state transi-tions: From State and To State. It is important to get anidea of reasons for each of the states and attribute canhold. Therefore it is not enough to know the Entity andthe Attribute that caused the Process Event but alsowhat was the state change? Did the Order go from“Shipped” to “Payed” or from “New” to “Cancelled”?These are very different events that tell a lot about thelife history of the Entities. So the properties From Stateand To State should be added to the Process Eventselement type as user extensions.

The Designer elements of cell T2 are:- Process Events - Triggering Functions

The Architect’s View - The Conceptual Time Model (cell T3)

The architect will combine the Process Event defini-tions with the Entity Usages defined in cell A3 to get apicture of the life cycle of every Entity and to knowhow each Entity is initially created, what States it willgo through during its existence and how it is deleted(or inactivated).

The architect makes sure that all the necessaryBusiness Functions have been created to implement

all stages of each Entity’s life cycle. Each Entity Usageshould have a Comment added that describe underwhat conditions that entity is changed in that BusinessFunction.

With all this information in place the architect couldextract a simple report describing all the Statechanges of each Entity looking something like this:

<ENTITY NAME>Is created when: <Comment of Entity Usage where

Create Flag = ‘Y’> by <Business Function Name>Is updated when: <Comment of Entity Usage where

Change Flag = ‘Y’> by <Business Function Name>Changes state from: <Attribute Name> = <From

State> to <To State> when <Process Event Name>Is removed when: <Comment of Entity Usage where

Delete Flag = ‘Y’> by <Business Function Name>

Notice that each of the statements in this report is adetail to the Entity, as Entities could be created formultiple reasons and, obviously, change betweennumerous States.

With a little more work it is possible to create a kind ofentity life history diagram dynamically from the Entity,Process Event and Entity Usage definitions in therepository.

The architect will also use this information to definethe “essential” dataflow diagrams described in cell A3.

The Designer elements of cell T3 are:- Process Events - Triggering Functions- Business Functions- Entity Usages (add Comment property)

The Designer’s View - The Technology Time Model (cell T4)

The designer uses the Entity State change informa-tion provided by the architect to design all the neces-sary control structures in form of Database Triggers orTable API Logic. Some of the logic will be placed inreusable PL/SQL Definitions (or Java Definitions).

Domains and Valid Values are used to specify validstates of attributes.

Some state changes must be designed into specificModule Application Logic if they are specific to aBusiness Function.

The Designer elements of cell T4 are:- Table API Logic (general specification)- Database Triggers (general specification)- PL/SQL Definitions (general specification)- Java Definitions (general specification)- Module Application Logic (general specification)- Domains- Valid Values

The Builder’s View - Detailed Time Representation (cell T5)

The builder will implement the specifications made bythe designer.

The Designer elements of cell T5 are:- Table API Logic - Database Triggers- PL/SQL Definitions- Java Definitions- Module Application Logic

The Working System – Time (cell T6)

The Table API generator will create package and trig-

21OracleEkspert August 2005

ger DDL files that will remain in the file system. Thesecan be stored as Files in the Designer repository tokeep an accessible overview of all the executable filesof the system.

The Packages and Triggers are, of course, also auto-matically stored in the Data Dictionary from where it iseasy to extract documentation about the working sys-tem.

The Designer elements of cell T6 are:- Files

MOTIVATION (WHY)The main objective of the motivation column is totransform the vision and mission of the enterprise intospecific Business Rules that can be coded into the IT-systems.

Designer is rather weak in relation to implementingmotivation elements like missions, visions, strategies,goals, tactics, objectives, business rules etc. It couldeven be relevant to be able to define SWOT elementslike strengths, weaknesses, opportunities, threats,influences, risk/rewards etc.

It is possible to create all those things as user exten-sions but I don’t think it is worth the trouble. Instead,you could simplify the model by using the Objectiveselement type for visions, goals and objectives (usingthe Type property to distinguish them) and then createtwo user extensions for a Means element type formanaging missions, strategies and tactics and aBusiness Rule element type.

Another possibility is to build a more detailed motiva-tion repository outside the Designer repository with allthe necessary relationships into the Designer reposi-tory.

The Planner’s View - Objectives and Scope (cell M1)

The planner must formulate the enterprise Vision(about what the enterprise is aiming to become) andMission (what the enterprise will do to achieve themission) at the Application System level. This will bean important indicator of priority throughout the pro-ject.

The Designer elements of cell M1 are:- Objectives (of type VISION)- Means (of type MISSION – user extension)

The Business Owner’s View - The Enterprise MotivationModel (cell M2)

The business owner will then divide the visions intomore achievable qualitative goals that are in turn sub-divided into specific short term objectives. The mis-sions are divided into the necessary strategies toachieve the goals and the strategies are then detailedinto short term tactics to be used to achieve the spec-ified objectives.

In the end the objectives should match the BusinessFunctions. Look for objectives that are not handled byBusiness Functions and Business Functions that donot help achieve an objective. Either BusinessFunctions or objectives could be missing, or maybesome of the elements are not necessary for the busi-ness.

Now the business rules can be defined by lookingthrough each Business Function and Process Eventand identifying all the implicit decisions being made.

The goal is to extract as many decisions as possibleand convert them to business rules so that they canbe defined generically and then invoked by theBusiness Functions.

The Designer elements of cell M2 are:- Objectives (of type GOAL and OBJECTIVE)- Means (of type STRATEGY and TACTIC – user

extension)- Business Rules (user extension)- Business Functions- Process Events

The Architect’s View - The Conceptual Motivation Model(cell M3)

The architect’s task consists of making formal specifi-cations of the business rules identified in cell M2.

The actual methodology used to make these formalspecifications can depend on the business rule tech-nology used. Some business rules technologies mightmerge cell M3 and M4 because the formal specifica-tion automatically becomes the business rule design.

Even if natural language is used for the formal speci-fication of business rules they will usually not mergeinto cell M2. The business rule specifications of cellM2 must be clear and easy to understand by theusers and managers that have to approve them, whilethe formal specifications must be very precise, toavoid any doubt about how they should be imple-mented programmatically. In this case I prefer to usethe M2 definition as the base of the M3 definition andadd a Notes property where any ambiguity or neces-sary clarification can be added. This method will avoidthe problem of managing redundancies that mightoccur if the architect makes mistakes while translatingthe business rules from cell M2 to cell M3.

The Designer elements of cell M3 are:- Business Rules (user extension)

The Designer’s View - The Technology Motivation Model(cell M4)

The business rule design is very dependent of thebusiness rule technology used. Business rule toolslike those provided by Dulcian, Seeristic and otherswill automate the design and building of the businessrules engine, while a home grown business ruleengine will require the design and building to be per-formed in house.

The Designer elements of cell M4 are:Business Rules (user extension)

The Builder’s View - Detailed Motivation Representation(cell M5)

Business rules are usually implemented as data intables, so that changing the rules only means updat-ing rows in the business rule tables.

The actual enforcing of the business rules is eitherimplemented as an engine that looks up the businessrule tables at runtime or as generators that createsnative application logic (like packages and triggers)based on the content of the business rule tables.

You could build a business rule generator that readthe Business Rule definitions stored in the user exten-sions and created the necessary PL/SQL Definitionsand Database Triggers in Designer for implementationwith the Server Generator. This sounds much easier

22 OracleEkspertAugust 2005

than it is but it can be done in small steps. Start byimplementing simple business rules and then gradu-ally extend you generator to handle more and morecomplex Business Rules.

The Designer elements of cell M5 are:- Business Rules (user extension)- PL/SQL Definitions- Database triggers

The Working System – Motivation (cell M6)

Usually, it will be possible to monitor the businessrules of the working systems by looking up the busi-ness rule tables.

CONCLUSION

Hopefully, I have convinced you that Designer is avery flexible tool that could be enriched radically bycombining it with the powerful ideas on developmentmethodology behind the Zachman Framework.

Obviously, it has not been possible to go into manydetails when writing about two very rich tools asDesigner and the Zachman Framework but I hopethat I did cover enough to make you see the tremen-dous possibilities in combining the two.

Even though some user extensions are needed toimplement all the ideas that are brought forward here,I hope that it doesn’t scare you away from using them.

The necessity of these user extensions tell me thatDesigner is far from the mature tool that Oracle isclaiming it to be. There are many possibilities forenhancements that would give users a great produc-tivity enhancement. On the other hand, I am happythat Designer is flexible enough to allow us users to domany of the things we need, regardless of Oracle’sseemingly lack of interest.

Udnytter I Designer optimalt?Få udført et 1-dags eftersyn af jeres anvendelse af Designer. Eftersynet konkluderesmed en statusrapport med forslag til bedre udnyttelse af Designers muligheder.

Følgende områder vil blive analyseret:

- Metode - Konsistens - Genbrug - Preferencer - Automatik - Dokumentation - Sikkerhed - Workarea management

Pris for et 1-dags Designer-eftersyn, inkl statusrapport: DKK 9.500. Ring til 2627 9991eller læs mere på www.PythiaInformation.com.

23OracleEkspert August 2005

EventkalenderenFølg med i de nyeste databaserelaterede arrangementer ogopret helt nye arrangementer direkte på vores hjemmesidewww.OracleEkspert.dk under punktet Eventkalender.

Læs yderligere oplysninger om de enkelte arrangementerpå Eventkalenderens hjemmeside.

Det er gratis for vores abonnenter at oprette arrangementeri Eventkalenderen.

DesWeb SIG - Modelbaseret udvikling: WebServices

Dato: 17. august 2005

Tidspunkt: Kl 13:00 - 16:00

Beskrivelse: Dette møde kommer primært til at handle omWebServices.

Kontakt: Tilmelding skal ske til [email protected]

Sted: Hos Oracle Danmark i Ballerup.

Pris: Gratis

OracleEkspert-konferencen 2005

Dato: 31. august 2005

Tidspunkt: Kl 9:00-16:15

Beskrivelse:

Årets OracleEkspert-konference med stribevis af indlæg omOracle-teknologi for både udviklere, projektledere og data-baseadministratorer.

Kontakt: Tlf: 2627 9991

Sted: Søpavillonen i København

Pris: Registreringspris: dkk 3150.

Registreringspris for OracleEkspert-abonnenter: dkk 2750.

Kursus: Mastering Oracle SQL and SQL*Plus

Dato: 5. september 2005

Tidspunkt: 5.-6. september 2005 kl 9-16

Beskrivelse: Hører du også til dem som lærte SQL i version7 eller før, så har du sikkert aldrig lært de mange nyespændende features Oracle har tilført SQL i Oracle9i ogOracle 10g. Og selvom du har været på et standard kursuser der sikkert forskellige avancerede SQL features du aldrighar hørt om.

Kontakt: http://www.miracleas.dk

Sted: Byggecentrum, Lautrupvang 1, 2750 Ballerup

Pris: DKK 6000

Oracle Open World 2005

Dato: 17. september 2005

Tidspunkt: 17. - 22. september 2005

Beskrivelse:

Kontakt: Se mere på http://www.oracle.com/openworld

Sted: San Francisco, USA

Kursus: Avanceret Systemanalyse

Dato: 28. september 2005

Tidspunkt: 28.-30. september 2005

Beskrivelse:

Lær teknikkerne til at komme fra en model af hvordan virk-somheden fungerer i dag, til en model af hvordan arbejds-gangene bedst optimeres i fremtiden.

Uanset om du er en een-mands udviklingsafdeling, derunderstøtter en lille virksomhed eller sidder med mangeudviklere og laver systemer til en milliard-virksomhed, såhar din arbejdsgiver brug for, at du løser virksomhedensproblemer på den mest effektive måde.

Kurset er baseret på The Zachman Framework og giver enforståelse for de mekanismer, der bringer udviklingsprojekterfrem til det ønskede mål til den planlagte tid, pris og kvalitet.

Kontakt: 2627 9991

Sted: Fensmarkgade 3, 2200 Kbh N

Pris: DKK 10.900 (rabat på DKK 1000 til OracleEkspert-abonnenter)

Kursus: AskTom Live 2005

Dato: 24. oktober 2005

Tidspunkt: 24. – 26. oktober 2005

Beskrivelse:

3-dags seminar med Tom Kyte.

Mange udviklere og DBA’er (ikke alle, men mange) angriberdatabasen med lidt eller ingen forståelse for hvordan denvirker. Udviklere angriber Oracle i den tro at det må virkeligesom SQL Server eller værre med tanken at ”Det gør ikkenoget hvordan den virker, jeg kan abstrahere og finder nokud af det”. DBA’er angriber databasen med nysgerrighed tilhvordan tingene virker, hvilket leder dem til følgende ”Vi kanspringe back-up’en over, vi har ikke brug for det alligevel”,eller også sletter de archives fordi der ikke er mere plads.

Kontakt: http://www.miracleas.dk

Pris: DKK 9000

UKOUG Conference and Exhibition 2005

Dato: 31. oktober 2005

Tidspunkt: 31. oktober - 2. november 2005

Beskrivelse: Incorporating PeopleSoft and JD Edwards.

Kontakt: http://conference.ukoug.org/

Sted: Birmingham

LIVEAf Jesper Dyjak