August 2005 Nr 31, Årgang 6 ISSN Pris: kr. 300,00 ex moms #31. Af Holger Dindler Rasmussen.

Størrelse: px
Starte visningen fra side:

Download "August 2005 Nr 31, Årgang 6 ISSN 1600-5147 Pris: kr. 300,00 ex moms www.oracleekspert.dk #31. Af Holger Dindler Rasmussen. www.books24x7."

Transkript

1 August 2005 Nr 31, Årgang 6 ISSN Pris: kr. 300,00 ex moms LIVE 23 DesWeb SIG - Modelbaseret udvikling: 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 NYHEDER 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 ORACLE ekspert 2005 Den 31. august Pris: kr i abonnentrabat - Vind en HP Server med Windows XP! - Læs mere på side 3 #31 Questioning Solutions Since 2OOO OBJEKTORIENTEREDE P ROBLEMER 2 Af Marc de Oliveira ORACLE APPLICATION S ERVER 10G: SIZING, TUNING OG PERFORMANCE 4 Af Holger Dindler Rasmussen B ENTES B AMSERS BØGER 8 N ØRGAARD S N EWS 10 EN MÅDE AT INDLÆSE REGNEARK I ORACLE 13 Af Christian Bastlund, CSC MENINGSMÅLINGEN 15 Objektorienteret udvikling er bedre end struktureret udvikling/information engineering F ITTING DESIGNER INTO THE ZACHMAN F RAMEWORK - PART 2 16 Af Marc de Oliveira MENINGSMÅLINGEN - ER DU ENIG? Outsourcing er en fordel Sponsor søges Stem på - Du kan vinde en ipod Shuffle

2 LEDER Af Marc de Oliveira OBJEKTORIENTEREDE PROBLEMER Det Objektorienterede paradigme har været i stærk medvind i de seneste år. Først som et programmeringskoncept og senere også til både analyse og design. I de 20 år som er gået siden jeg studerede på Datalogisk Institut ved Københavns Universitet, det var årene hvor Objektorienteret Programmering kom frem, har det undret mig, at der kun har været meget lidt kritik af denne, væsentligt anderledes tilgang til systemudvikling. Jeg ser en del problemområder ved denne naturlige og intuitive udviklingsmetode (specielt den Objektorienterede Analyse), som jo er funderet i hjernens egen måde at huske og klassificere fænomener (objekter) i den virkelige verden, og kun få gør opmærksom på disse problemer. Når jeg taler med folk fra den Objektorienterede verden, har de ofte ingen eller meget mangelfuld viden om traditionel Relationel metode og Struktureret Analyse. Det er som om undervisere har været så sikre på styrken i den Objektorienteret Metode, at man næsten er holdt helt op med at undervise i andet. Ide mest grelle tilfælde virker visse Objektorienterede metoder (feks Agile, Xtreme, Scrum etc) mest af alt som 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, for at slippe for det. Lad mig blot fremhæve nogle enkelte elementer, som jeg finder betydeligt svagere i den Objektorienterede metode. Fokus på brugeren: Et mantra i den Objektorienterede verden er det absolutte fokus på brugeren. I stedet for at lave omstændige og for brugerne uforståelige programmer, sørger man som Objektorienteret udvikler for at lave de programmer, som brugeren vil have. Det betyder at objekterne skal sammensættes på den måde som brugerne finder dem naturlige og at brugergrænsefladen skal bygges, så systemer opfører sig som brugeren forventer/ønsker. Tanken lyder umiddelbart forjættende - selvfølgelig bør man lave de systemer, som brugerne vil have... Men dette bottom-up syn på udviklingsprocessen er dog meget problematisk så snart udviklingsopgaverne bliver lidt komplekse, som I følgende eksempel: Den svage Objektorienterede analytiker fokuserer så meget på de enkelte brugers ønsker, at det udviklede system ikke tager hensyn til virksomhedens interesser. Forskellige dele af systemet kan risikere at modarbejde 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 effektivt system med en effektiv datastruktur, men tilpasser objekter og brugergrænseflader til brugernes ønsker. Dette betyder at systemer på overfladen ser ud på een måde (den måde som brugerne ser verden), mens det indvendigt er helt anderledes (for at kunne tage hensyn til virksomhedens interesser). Konsekvensen er at denne inkonsistens bliver et større og større problem at bære rundt på, efterhånden som brugernes behov ændrer sig. Deres ændringsønsker vil være relateret til det fiktive billede af systemet, som de har fået via overfladen, og disse giver ikke nødvendigvis mening i den faktiske implementering af systemet. Jeg mener at den Strukturerede Analyse her har fat i den lange ende. Det er Systemanalytikerens opgave at finde frem til den mest effektive måde at løse virksomhedens opgaver, samt at kommunikere denne løsning ud til alle, så medarbejdere på alle niveauer arbejder ud fra det samme billede af systemet. Jeg mener desuden at der også er problemer med den Objektorienterede metodes brug af kontrolobjekter, sekventiel gennemløb af objekter, diagrammer og tekstfiler til dokumentation (i stedet for strukturerede databaser), måden at sikre komplette Use Cases, al for tidlig brug af skærm-layout ifm Use Cases, redundante definitioner af objekternes statustrin mv, som jeg desværre ikke kan nå at uddybe her. Der ér gode ideer i den objektorienterede tankegang, men uden en meget detaljeret viden om ikke-objektorienteret systemudvikling er der mange faldgruber ifm udviklingen af komplekse systemer. Generelt kommer mange af problemerne af: 1) at fokusere på at objekterne skal ligne virkeligheden, hvilket ofte ikke er produktivt eller fornuftigt ud fra et IT-synspunkt, 2) at det er brugernes holdning, der skal være styrende, hvilket fjerner fokus fra at løse virksomhedens kerneproblemer, og 3) manglende fokus på at undgå inkonsistens og redundans - feks er primærnøgler og normalisering ikke centrale begreber i den Objektorienterede metode. Oplag: kopier Udgives af: pythia Information Kongensvej Frederiksberg Danmark Telefon: Fax: Info@OracleEkspert.dk Web: Ansvarshavende redaktør: marc de Oliveira Marc@OracleEkspert.dk SpørgeJørgen et mogens Nørgaard Mogens@OracleEkspert.dk Bentes Bamsers Bøger: Bente Rosenkrantz-Theil Bente@OracleEkspert.dk Rettigheder: PYTHIA Information ejer alle rettigheder til indholdet af OracleEkspert. Kopiering af bladet i dele eller helhed må kun ske efter skriftligt samtykke fra PYTHIA Information. PYTHIA Information forbeholder sig rettigheder til at offentliggøre og genudgive de trykte artikler, tips mv, samt at tillade bladets læsere at anvende indholdet til såvel personlige som kommercielle formål. PYTHIA Information kan ikke drages til ansvar for eventuelle fejl og mangler i Indholdet af OracleEkspert. Artikler mv stilles tilrådighed uden garanti af nogen art. Pris: Enkeltnummer DKK 300,00 1 års abonnement (6 numre): 1. abonnement dkk 1600,00 Pr ekstra blad dkk 600,00 Annoncer: Annoncer til OracleEkspert skal være PYTHIA Information i hænde senest den 15. i måneden inden bladets udgivelse. Annoncepriser kan findes på: Password: Dolores

3 ORACLE ekspert Vind en HP Integrity RX1620 Server med Windows XP Er 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å Tilmelding: eller telefon Pris (inkl administrationstillæg): Inkl abbonnentrabat (400 kr): hovedsponsor 31. august 3150 kr 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/S Udvikling på Heterogene Databasemiljøer - Anders Groth og Dagur Dagsson, DBVision A/S Udvekslilng af Data mellem Database og Operativsystem - Christian Bastlund, CSC Consulting Transactional Flashback i 9i og 10g - Martin Jensen, Oracle Danmark A/S PL/SQL 10g New Features - PL/SQL Warnings og Need for Speed - Torben Holm, Miracle A/S Hvordan man overlever som PL/SQL-programmør - Sten Vesterli, scott/tiger Generisk kodning med Oracle Forms - Rune Mørk, NNE ASHes to ASHes, Dust to Dust - Johannes Djernæs, Miracle A/S Oracle Application Server 10g : Sizing, tuning og performance - Holger Dindler Rasmussen, Oracle Danmark A/S JDeveloper for PL/SQL-udviklere - Sten Vesterli, scott/tiger Oracle RAC på Linux - Flemming G. Jensen, scott/tiger Implementering af VPD med Oracle10g i et Data Warehouse - Henrik Verup, Sigma Business Intelligence A/S Introduktion til The Zachman Framework - Marc de Oliveira, PYTHIA Information Spørg Eksperterne - Om DBA Spørg Eksperterne - Om Udvikling Læs mere om de enkelte indlæg på 2 TIMERS EKSTRAKURSUS I NLP FOR MAKS 10 DELTAGERE Forhåndstilmelding foregår efter Først til mølle -princippet

4 TEKNISK ARTIKEL Af Holger Dindler Rasmussen ORACLE APPLICATION SERVER 10G: SIZING, TUNING OG PERFORMANCE Holger Dindler Rasmussen har arbejdet som konsulent i 3 år med Forms 3.0, CASE Designer og TopCase/TopWindows. Siden 1996 underviser hos Oracle Danmark i produkter som Oracle Designer JDeveloper og Oracle Application Server. PERFORMANCE Performance er en besynderlig relativ term. I daglig tale er performance et udtryk for hvor hurtigt requests bliver udført - underforstået at det foregår hurtigt. Men hvad er hurtigt? Det de fleste forstår ved hurtigt er, når requests foregår hurtigt nok i forhold til deres forventninger. For at tale om performance må man fastsætte hvad tilfredstillende hurtigt er. I et traditionelt udbud vover mange tilbudsgivere skindet ved at sige, at de kan opfylde de i bilag N angivne svartider, hvorefter de giver et tilbud på en hardware/software konfiguration baseret på et kvalificeret gæt. Disse gæt er ofte baseret på en given teknologi eks. Oracle Forms er inputparametre: antallet af brugere, kompleksitet af de enkelte forms, antal samtidigt kørende forms instancer pr. bruger. Output er et antal CPU er med en given MHz samt størrelsen af Memory. Dette gæt/bud har sjældent datatilgang, brugerforbrugsmønstre, brugers geografiske placering eller udviklingsframework med inde i betragtning. Forudsætningen er som regel, at CPU en % af tiden er fuldt beskæftiget med applikationen samt at OS ikke skal swappe. I eksemplet med Oracle Forms kunne applikationen være udviklet med Oracle Designer, Headstart eller helt manuelt i Oracle Forms Developer. Mængden af kode er meget forskellig, hvilket har stor betydning for memory-footprint og databaseaktivitet. Tager vi udgangspunkt i en J2EE web applikation bliver sizing og performance en anelse mere kompliceret. I sammenligning med Oracle Forms har vi ikke en persistent forbindelse med databasen. I web applikationer deles databaseforbindelser med alle andre brugere. Forbindelsen med databasen udgør som regel den største andel af den totale http requesttid. Dertil kommer, at branchen tilbeder produktivitets- og vedligeholdelsesforbedrende udviklingsframework, som skal gøre livet nemmere for udviklere. Eksempler er Struts, Tiles, Java Server Faces og Oracle Application Development Framework (ADF). Det gælder for alle frameworks, at den overvejende drivkraft er groft sagt dovenskab, også kaldet Design Patterns - udviklere hader at skrive den samme kode to eller flere gange. Nogle Design patterns er standard løsninger på ensartede problemstillinger andre er blot performancerelaterede workarounds. Det korte og det lange er, at valg af framework kan lette byrden for udviklerne med håb om højere produktivitet og bedre databaseperformance. En sidste, men ikke uvæsentlig faktor, når talen falder på performance er brugervenlighed. Ikke helt uberettiget forlanger brugere at få en fejlmeddelelse, når en fejl begåes. Det har vi lært dem gennem mange års brug af client/server applikationer. De vil ikke finde sig i, at efter at have indtastet 10 datafelter trykker submit skal have en-eller-anden beklagelse fra serveren om at en-eller-anden forretningsregel ikke var overholdt. De finder det helt utåleligt, at få en fejlmeddelelse uden for kontekst, dvs cursoren skal placeres i feltet, hvor fejlen relaterer. Endvidere vil de have samtlige fejl i ét roundtrip, så de kan rette samtlige fejl og submit e påny. For en webserver er dette en uheldig udvikling, idet udviklerne kan vælge at inkludere store mængder af Javascript kode for at imødegå kravet. Det uheldige ligger i, at responset forøges voldsomt, hvilket ikke gavner overall performance. Total Cost of Ownership (TCO) er mange gange et resultat af en kompliceret differentialligning med parametre som HW-pris, SW-pris, skalerbarhed (Grid/- cluster awareness), High availability, udviklings-/vedligeholdelseomkostninger, brugers spildtid grundet u- stabile systemer, helt eller delvist relateret til utilstrækkelig performance i netværk, web tier, business logic tier eller database tier. Konklusionen kan være: Hvad vi ikke får ind på gyngerne må vi få hjem på karrusellerne. Erfaringer med OLTP systemer er imidlertid, at databaseadgang udgør den største komponent i det totale request. Hvorfor mange performanceproblemer kan relateres til brug af databasen jeg tænker på sql performance. Af samme grund findes der bunker af tilbud af frameworks og utilities, som har det hovedformål at hjælpe en javaprogrammør helskindet igennem 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ørnævnte frameworks. Fornyeligt opdagede jeg en helt fantastisk one-liner i et Oracle J2EE kursusmateriale omtalende TopLink: The mature, robust persistence framework provided by TopLink significantly reduces the risk of using a relational database in a Java application Det kan tolkes på mange måder, men tanken er ikke helt forkert - det der med persistens og databaser er og bliver et nødvendigt onde :-). I branchen snakker man om, at sammenligninger mellem J2EE serveres hurtighed burde inkludere parametre som frameworks, udviklingstid og konfiguration, til trods for J2EE er et development framework J2EE er bare for abstrakt. Suns argumenter for at bruge J2EE er principielt de samme, som bruges idag for Oracle ADF abstraktionsniveauet er blot anderledes, og man er blevet lidt klogere. APPLICATION SERVER KOMPONENTER Ret beset består Application serveren kun af serverkomponenterne: Oracle WebCache (WC), Oracle HTTP Server (OHS), Oracle Containers for Java2 Enterprise Edition (OC4J). Oracle Reports, Forms og Discoverer har sine egne serverkomponenter som skal konfigureres næsten uafhængigt af de øvrige mht loadbalancing og clustering. Når man skal size sit system har man 2 muligheder, som afhænger af om, man har noget eksisterende hardware 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-leverandørens hjælp. Internt har vi (Oracle) adgang til et 4 August 2005 OracleEkspert

5 sizing tool som på baggrund af input som forventet antal brugere, teknologi (forms, portal, reports, J2EE etc.) og operativsystem kan komme med et kvalificeret bud på den konfiguration man bør starte ud med. Output er antal CPU er ved en give Mhz angivelse og memorykrav. Hvis det er Oracle Forms baserede systemer, kan Oracle Consulting bruge et ikke-offentligt tilgængeligt værktøj kaldet Intercept server til at loadteste eksisterende hardware. PROAKTIV/REAKTIV Groft sagt er der 2 skoler når det gælder performance: den proaktive og den reaktive. Man kan have gennemtestet (load/stress-testet) hele sitet/applikationen i god tid, så man kan nå at tage de nødvendige justeringer og forholdsregler herunder kodeændringer. Alternativt kan man sætte systemet i drift efter endt funktions/integrationstest og sætte sin lid til administratorens færdigheder og/eller Grid Control om at rapportere om og afhjælpe problemer i tide. Denne tilgang kan man godt bruge såfremt man har sikret, at applikationen er kodet efter alle kunstens regler og man har lidt ekstra hardware på lager. De problemer man vil møde vil formentligt være af ressourcemæssig karakter på applikation/database serveren. Man kan også være så heldig, at systemet bliver sat i produktion i faser mht. funktionalitet og antallet af brugere. Dette gør, at man kan imødegå problemer ved at se de performance-trends, der viser sig hen ad vejen. For ethvert performanceproblem er det vigtigt at kunne diagnosticere hurtigt, og så gøre noget ved det. Eller endnu bedre; et overvågningssystemet har advaret 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 sikkerhed. Senest har jeg oplevet, at et kursusmiljø langsomt, men naturligt, sandede til grundet for lidt memory. Det havde den sideeffekt, at OPMN-processen (HA komponent i AS 10g), som har en håndgranats tålmodighed, ikke fik svar hurtigt nok på sine httppings (HEAD requests), at den erklærede reportsservicen for værende utilgængelig, hvilket betød restart/start af OC4J_BI_Forms instansen, som igen krævede flere resourcer etc. Et Denial of Service Attack var født og maskinen var samspilramt indtil genstart. Denne destruktive opførsel kan man også opleve, hvis man har en meget stor J2EE applikation, som kræver meget lang garbage-collection runtime grundet for lille Heap (memoryallokering for JVM). HTTP-VERSIONER HTTP 1.1 protokollen er designet til optimal af brug af netværket og er default i de fleste browsere. Forskellen mellem version 1.0 og 1.1 ligger mest i bedre udnyttelse af netværket. HTTP 1.1 understøtter KeepAlive request som genbruger tcp-connections, dvs. request bliver serviceret meget hurtigere. Desuden understøttes komprimering af content således, at childprocessen kan sende response gzipencoded. Skal browseren tilgå en named based virtual host kræves også HTTP 1.1. Hvad er så problemet? HTTP 1.1 support kan slåes fra i browseren og proxies af ældre dato understøtter kun HTTP 1.0, hvilket resultere i dårlig udnyttelse af web serverens ressourcer. PARAMETRE HTTP serveren består processmæssigt af en parent process og et antal childprocesser (threads på Windows). Antallet af childprocesser styres af MaxClient directivet på Unix og ThreadsPerChild på Windows. MaxClient direktivet er egentligt for at beskytte systemet mod Saturation. Test viser, at på et 2-processer system kunne 60 childprocesser supportere 300 brugere (calibreringstest). Et 4-6 processer system havde kun lidt gavn af at sætte Maxclients fra ved et system bestående af statiske sider og servlet requests. En tommelfingerregel for ThreadsPerChild på Windows er 20 pr. CPU. Ovenstående settings er meget systemafhængige og skal derfor tages som vejledende. Loadtests er det eneste 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 (browseren) vil holde tcp-forbindelsen åben til serveren 5-10 sekunder. eller indtil MaxKeepAliveRequests er nået. Såfremt systemet har ekstremt mange brugere, request er små og ulige fordelt kan det være en fordel at slå KeepAlive fra, til dels pga at memory-forbruget er 4-5 gange så højt pr. child (over 300 brugere, 2,5 Mb). Man bør holde øje med DMS metrics på http_core.c modulet i ohs. Modulet har ansvaret for statiske filer, så hvis request-raten er høj kunne WebCache afhjælpe med en velvalgt cachingrule. SSL kan have en enorm betydning for performance, idet sessionsinitiering og kryptering/dekryptering bruger meget CPU-tid. Eksempelvis bør SSLSession- Cache konfigureres, idet der kan opnåes 80% bedre performance i SSL session-initieringsfasen. Såfremt man bruger SSL udbredt og samtidigt vælger en tung krypteringsalgoritme, grundet ønsket om høj datasikkerhed, bør man overveje clustering og/eller brug af SSL accelerator hardware. OC4J OC4J er en J2EE server, der kører i en Java Virtual Machine(JVM). Den er logisk opdelt i Web Container, EJB Container og J2EE Services. Jeg vil koncentrere mig 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/memoryallokering tilgængelig for JVM en ved at sætte minimum og maximum heapsize. Er heapsize for lille skal garbage collectoren køre ofte, hvilket kan have en ugunstig indflydelse på opmn-processens tålmodighed. Resultatet kan blive, at OC4J ikke får svaret på PM s http-pings, hvilket giver ikke-produktionstålelige restarts af OC4J instanser. Er heap en for stor skal OC4J s memorymanager bruge tid til at økonomisere med det allokeret memoryareal, hvilket kan have negativ betydning for AverageResponseTime (ART). Som så meget andet skal den fastsættes på baggrund af en loadtest. Dertil kommer at man bør sætte min. og max. heapsize til det samme, så OC4J ikke skal bruge tid på at administrere det faktiske memoryforbrug. Det dyre i en JVM og dermed Java er garbage colle- OracleEkspert August

6 ction og objektinstantiering. Siden JVM 1.4 har man kunnet kontrollere, hvilken type garbage collector (gc) man vil bruge. Disse gc er er baseret på forskellige politikker for hvornår gc skal indtræffe. I JVM 1.5 introduceres garbage collection choice by class of machine (single/multi processor). Sun beskriver, at default gc passer til de fleste applikationers behov, men kun loadtests kan afsløre om man kan få glæde af et andet valg (værktøjer som jvmstat og Mercury J2EE Deep Diagnostics kan kigge ind i maven på JVM en). Antallet af JVM processer pr. OC4J instance har også betydning. Mindst 2 processer giver OC4J high availability, men tests viser, at blot 2 instances kan give dårlige ART på selv multi-processormaskiner. Performanceproblemer ved objekt-instantiering kan imødegås ved genbrug af objekterne: threadpooling, connectionpooling, EJB pooling, tag handler instancepooling, Oracle ADF BC ApplicationModule pooling etc. Typisk er det selve J2EE serveren der kontrollerer pools, mens administratoren blot kan styre størrelsen. Pooling og caching sorterer under snyd og bedrag, men har rystende stor betydning for ART. Web Containeren er som navnet antyder web tier. OHS kommunikerer med OC4J over Apache Jserv protocollen (ajp). Ajp-porten er sammen med JMS- og RMI-porten kommunikationsporte i OC4J - alle kontrolleret af opmn. Servlets og JSP-sider kører i Web containeren. Servlets er Javaklasser, som normalt vil blive native compileret på requesttidspunktet. Af denne grund kan man specificere, <load-on-startup> i Deployment Descriptoren (DD), hvilket vil sige, at de blive kompileret ved OC4J opstart i stedet. Det forbedrer dog kun performance for den første stakkel, som requester. Den teknik kender man også fra databasen, når man pin er stored procedures. Man kan blot ikke sikre, at servlet en ikke bliver unloaded fra memory. En anden, men mere memorygrådig egenskab er instantiering af HttpSessions. Default for servlets er, at der ikke bliver lavet en session i modsætning til JSP-sider. Man skal holde øje med active og completed sessions. Er active sessions betragteligt højere end completed sessions er det sandsynligt, at sessions blive genereret til ingen verdens nytte, og man bør se nærmere på applikationskoden. Har man tilmed konfigureret HTTP clusters (replikering), så er performance-tabet/memory-forbruget endnu større. Men som sagt; problemet er tydeligst for JSP-baserede web-applikationer. Ubrugte sessioner vil time ud efter typisk 20 min. eller hvad man har sat timeout til i DD (web.xml). JSP-sider er teknisk set Servlets, men de er langt nemmere at bruge til udvikling af html-baseret applikationer. JSP-sider bliver prekompileret til Javakode, derefter kompileret til class files og kørt som en Servlet efterfølgende. Såfremt siden ændrer sig (datostempel) starter processen forfra. I et produktionsmiljø bør det ikke forekomme, så man bør prekompilere sine JSP-sider til class-filer (ojspc utility) inden deployment, og sætte main_mode til justrun i DD. Derved spares OC4J for det overhead at holde øje med ændrede JSP-filer. DATASOURCES Datasources er J2EE serverens adgang til databasen via JDBC og er AS adminstratorens eneste mulighed for at performance-tune mod databasen. Emulated datasources er wrappers omkring Oracle eller non- Oracle data source (databaser) uden fuld XA og JTA global transaktionssupport. Emulated datasource er at anbefale pga deres hurtighed, men er begrænset til lokale transaktioner og kun én database. Non-emulated datasource er rene Oracle-baserede datasources med fuld transaktionssupport. Kun emulated datasource vil blive omtalt i det følgende. Datasources skal ALTID tilgåes via JNDI-navnet i konfigurationsfilens (data-sources.xml) ; data-source ejblocation -attributten. Datasource connections der hentes herfra tages fra en connection pool. Såfremt man er kommet til at map e til location -attributten vil alle connections blive skabt som dedikerede connections til databasen. Udover at referencer til location-attributten er strongly deprecated for emulated datasources, vil connect/login-tiden blive drastisk forøget med et stort performancetab til følge. Man kan kontrollere connection pool ens størrelse med attributerne minconnections og max-connections. Sættes maxconnections for højt kan det reducere ART. Generelt tilskyndes udviklere til at bruge Prepared- Statement eller CallableStatement Javaobjekter for at reducere softparsing/roundtrips af sql-statements. Dertil kommer at administratoren kan sætte stmtcache-size og dermed cache statements pr. connection og dermed yderligere reducere roundtrips. Man kan sætte Java-optionen oracle.jdbc.dmsstatement- Metrics =true for bedre at kunne bestemme størrelsen af statement cachen. Pooling og statement caching er memory-grådige, men de er uundværlige i alle applikationer. Hvis database-performance stadig er flaskehalsen i en given applikationen, kan administratoren ikke gøre yderligere end blot beklage sin nød til udviklerne. Udover sql-tuning, kan udviklerne introducere i prioriteret rækkefølge - pagecaching i WebCache, Java Object Caching (JOC/WOC) eller fragment caching (JESI) i WebCache. Hvis man forøger antallet af instanser (JVM s) for en given OC4J-instance, skal man halvere/reducere max-connections / min-connections, 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 data direkte fra memory er bedre end at generere data onthe-fly. Dette har ikke ændret sig siden man i sin tid fedtede med Sinclair ZX-81, Spektrum og senere DOS RAM-diske. Der er 3 ting som får webservere til at performe: caching, caching og pooling. Eksempler er private cache i browseren, public cache i Proxy en, WebCache, threadpools, JDBC connection pools (mod_plsql/oc4j), SQL buffer cache etc. Basalt set bygger caching på en subtil forskel/abstraktion mellem et statisk og et dynamisk http request. Ved et statisk request måles datavaliditet TimeToLive (TTL) i dage eller uger, mens dynamiske request måles i millisekunder, timer optil dage. Caching regler på statiske sider er forholdsvis overkommelige for en administrator, mens alle andre typer caching-regler kræver mere grundige overvejelser sammen med udviklerne. Især hvis caching skal kunne invalideres dynamisk v.h.a invalidation request fra applikationen eller sågar fra databasetriggere ved brug af utl_tcp-pakken. Oracle 6 August 2005 OracleEkspert

7 AS 10g J2EE tuning kit viser, at brug af WebCache kunne forøge antallet af brugere fra 700 til 1000 for Sun s PetStore J2EE applikation. Et noget dyrere alternativ var, at skalere Application Serveren såfremt man skulle supportere 900 brugere på den givne maskinkonfiguration. Performancemæssigt kan det anbefales at lægge WebCache på sin egen maskine, idet webcache-processen af mange kategoriseres som en runaway-process, som vokser betragteligt. STRESSTEST Med ovenstående konfigurationer i mente kan et stresstestscenarie beskrives i hovedtræk. Værktøjer til diagnostisering kunne være Mercury Loadrunner (LR) herunder Mercury Virtual User Generator (VuGen). Man kunne have valgt Apache JMeter o.a som stresstool grundet en for mange, mere attraktiv licenspolitik. Dynamic Monitoring Service (DMS) i Oracle Enterprise Manager bruges til AS 10g performancemålinger selvom LR selv har mange add-on monitors som kunne bruges. LR leverer selvfølgelig fantastiske diagrammer baseret på bla ART. Kommer det til stresstest af bla Forms er LR at anbefale, idet de har implementeret den af Mercury kaldet Oracle NCA protocol. Navnet har Mercury sikkert afledt af en tidligere Oracle Applications version jeg har aldrig mødt navnet internt i Oracle. For at opstille en realistisk test må man se på sine forretningsprocesser. Man må opstille nogle konceptuelle mål for hvad applikationen skal kunne honorere. Feks antal brugere, årlig tilgang af nye brugere, søgninger må ikke være ulideligt langsomme, og man skal til enhver tid kunne gennemføre en bestilling af varer. Man skal identificere de centrale processer feks. Sign-in, Søgning på sitet, bestilling af varer. Man må derefter komme med et kvalificeret gæt på hvormange transaktioner, der forekommer på en typisk dag, og på en dag med peak load. Disse kategoriseres herefter i indhold af dynamisk generede data samt vigtighed for forretningen. Derefter sættes nogle mål for responsetider for de enkelte processer. Disse tal vil være styrende for hvornår der skal tunes eller ej. Det kan også være nødvendigt at kategorisere brugere i feks. nybegyndere og erfarne brugere. Denne kategorisering har betydning for hvor meget tænketid, der skal indbygges mellem de enkelte delprocesser, som en proces består af. Som noget af det vigtigeste startes en analyse af concurrency - hvordan er transaktionerne fordelt ud over dagen. Finder man peak time, må det antages, at hvis man stresstester systemet under disse omstændigheder, vil systemet, alt andet lige, kunne klare belastningen resten af døgnet. Endelig kan der være overvejelser omkring brugers geografiske placering dvs. netværkstilgang via WAN og/eller internet. Har vi (Oracle) estimeret en maskinkonfiguration, har man 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 gennem VuGen. Scriptene opdeles i logon, selve transaktionerne som processen består af og logout, såfremt authentikering er en del af applikationen. I LR laves flere scenarier, hvor VuGen-scriptene er input. LR best practices er at lave mindst 4 deltests (scenarier): Concurrency-test (debug run): Er en test uden tænketid bestående af 3 5 brugere. Målet er at afdække eks. låsningsproblemer. Top Time Transactions test : Målet er at finde de tungeste transaktioner og dermed dem der har længst responsetid og/eller de transaktioner som tager længere tid end det tilladte testmål ved 20% load. De flaskehalse bør tunes inden 100% loadtest og skal efterfølgende under skærpet tilsyn. Testen gennemføres uden tænketid. Full load test: Målet med denne test er, at se om systemet opfylder svartidskravene. Denne test er iterativ og med tænketid. Først lader man antallet af brugere stige langsomt mod 100%. Ofte langt inden full load vil flaskehalse vise sig. Problemet lokaliseres i OEM AS Control, OEM DB Control og/eller OEM Grid Control, og testen afbrydes. Systemet/komponenten/- applikationen tunes og testen startes igen. Når en fuld load test er gennemført, registreres denne test som baseline for alle fremtidige load tests. Scalability test: Denne test er af typen Overload/- Overdrive test. Målet er, at køre systemet i mætning mht CPU og/eller Memory (Saturation test). Derved får man et billede af, hvad en given maskinkonfiguration maksimalt kan klare. Man går efter hockey-staven det punkt hvor ART stiger urimeligt. For Oracle Forms applikationer er denne test almindelig, idet man så fastlægger det maksimale antal af brugere til 10% under det punkt hvor staven knækker. Et alternativ er en Threshold test, hvor stop-kriteriet for en CPU-bundet test kunne være 75% utilization. For en Memory bound test kunne stopkriteriet være responsetid 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 en 10 dages LoadRunner trial-licens downloades fra mercury.com og Oracle AS10g J2EE Tuning kit kan downloades fra products/ias/files/10gtuningkitj2ee.zip Vær forberedt på, at de scripts som indgår i tuningkittet skal opgraderes/tilpasses LR versionen. Afslutningsvis vil jeg minde om, at kun en tåbe frygter ikke brugerne. Tilmeld dig OracleEkspert-Konferencen 2005 via OracleEkspert August

8 BENTES BAMSERS BØGER Af Bente Rosenkrantz-Theil Denne gang bliver det en noget anden form for boganmeldelse, da det ikke er én bog, og heller ikke i papirform. Jeg tror vi alle kender til behovet for at få nogle ideer omkring et bestemt emne, uden at man ønsker at læse én hel bog eller måske endda flere. Jeg og mine konsulentkolleger har i hvert fald ofte et behov for at finde litteratur om et emne, og som altid er det interessant at høre hvad flere mener om det samme. Vi har derfor købt i første omgang ét abonnement til books24x7 for at se om det duede med bøger i elektronisk form, og det kan kort beskrives som genialt. Der ligger vel omkring bøger alle it-bøger, og man søger blot på det ønskede emne, og så får man vist en liste over de bøger der har noget om emnet, og naturligvis også hvilke kapitler der indeholder noget om emnet. Kære læser, I denne rubrik kan du læse min (og mine bamsers) mening om forskellige Oraclerelaterede bøger. Du er velkommen til at kommentere mine vurderinger i en mail til Bente@OracleEkspert.dk. Du er også velkommen til at melde dig som bamse ved at indsende din egen boganmeldelse, som du mener andre bør læse. Venlig hilsen Bente Man læser bogen på skærmen, og man kan naturligvis sætte bogmærker i, sætte en bog på ens boghylde og så købe en bog man ønsker i papirform. Der kommer meget ofte nye bøger, så man kan sagtens finde et ønsket emne, også om noget der næste lige er kommet frem. Jeg syntes det er en herlig måde at læse faglitteratur på, naturligvis suppleret med traditionelle bøger, men jeg falder ikke for ideen til skønlitteratur, hvad er bedre end et koldt glas vin og en god krimi under parasollen en sommerdag. Pris 399$ hvilket må siges at være rimeligt, da de fleste IT-bøger koster omkring 500 kr. herhjemme. Restriktioner findes der også, man må ikke bare udskrive hele bøger, nogle gange vises der en download markering, og her kan man så downloade enkelte kapitler etc., men formålet er at litteraturen skal være tilgængelig online via en browser. Til gengæld er du ikke låst til een maskine med krav om installation af specialsoftware. Du kan uden problemer sidde ude hos kunden og slå op i bøgerne alene vha et brugernavn og en adgangskode. 8 August 2005 OracleEkspert

9 Kurser i Systemanalyse One main problem with short-circuiting the analysis process is that it leads to unnecessary complex systems. It is important to understand that, while simple systems are much easier to build, they are much harder to design. - David C. Hay Introduktion til Objektorienteret Analyse Ring for tidspunkter Dette kursus giver deltagerne en indføring i den Objektorienterede udviklingsmetode og de tilhørende analyseteknikker gennem teori og øvelser. Kurset inkluderer blandt andet en gennemgang af Objekter og Klasser, nedarvning, indkapsling, den Objektorienterede udviklingsmetode, samt teknikker som UML Objektmodellering med Klassediagrammer, Statusdiagrammer, Sekvensdiagrammer og Use Case modellering. Desuden gennemgås teknikker til identificering af objekter og deres sammenhænge, strategier for dokumentation, interviews, test mv. Kurset henvender sig primært til udviklere, systemanalytikere og projektledere, der gerne vil introduceres til teorierne og teknikkerne bag Objektorienteret analyse. Forudsætninger: Ingen. Prisen inkluderer et eksemplar af bogen "An Introduction to Object-Oriented Analysis" af David William Brown (668 sider). Underviser: Marc de Oliveira Sted: Fensmarkgade 3, 2200 København N Pris: kr for tre dage OracleEkspert-abonnentrabat: 500 kr. Mere information + tilmelding: eller Systemanalyse med The Zachman Framework den september kl 9-16 Kurset giver et overblik over de metoder og teknikker der er mest egnede til systemanalyse af hhv data, aktiviteter, lokationer, personer, organisationer, tid og motivationer, når målet er at identificere og implementere den simpleste løsning på et givent problem. Med The Zachman Framework* som udgangspunkt fokuseres der gennem teori og øvelser på de kommunikationsformer, der bedst henvænder sig til de forskellige medspillere i et udviklingsprojekt. Zachman Framework er på trods af sin relativt høje alder et særdeles velegnet værktøj til håndtering af projektinformationer, hvad enten det er til strukturerede miljøer, objektorienterede miljøer eller steder, hvor man har defineret sine helt egne metoder. Kurset henvender sig til projektledere, systemanalytikere og andre centrale personer indenfor systemudvikling. Det forudsættes, at deltagerne har et basalt kendskab til datamodellering. Prisen inkluderer bogen Requirements Analysis - From Business Views to Architecture af David C. Hay (458 sider). Underviser: Marc de Oliveira Sted: Fensmarkgade 3, 2200 København N Pris: kr for tre dage OracleEkspert-abonnentrabat: kr *Kort om The Zachman Framework: Værdien i Zachmans metode er 1) at man i stedet for at tænke i udviklingsfaser, ser på forholdene i virksomheden ud fra forskellige perspektiver (planlæggerens, forretningsejerens, arkitektens, designerens og udviklerens), og 2) at man udover data og funktioner på lige fod også inkluderer steder, personer, tid og motivation i analysen. Når man kombinerer alle perspektiverne med fokusområderne får man en samlet matrix med et komplet billede af alle relevante oplysninger om virksomhedens behov.

10 NØRGAARD S NEWS Af Mogens Nørgaard STABILITY AT THE ATOMIC LEVEL If you wish to have a stable environment 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 never change any parameters, if you never change anything in Oracle s data dictionary (new objects, changing NULL to NOT NULL) and if you don t constantly gather new and exciting statistics and if you can control the concurrency of CPU-intensive jobs on your system then you are almost there. Easy, huh? At Miracle A/S we solve IT-related problems. They can be related to security, functionality and (more common) availability and performance. It s usually very exciting, since we re mostly called in when the problem is very acute. I m only covering the first part in this column, not the part about CPU-intensive jobs. VIP VISIT Mogens Nørgaard fortæller i denne rubrik om sine oplevelser og erfaringer, som alle databaseinteresserede kan have glæde af. Imagine you have to arrange a visit in London for some VIP say Hillary Clinton or Robert Mugabe. My guess is you would hire some security-savvy outfit like Control Risks Group ( to a) prepare and plan for the visit, b) gather intelligence about possible threats and risks, and c) provide the physical security during the actual visit. You see, Miracle A/S is usually called in when the VIP is either dead or bleeding from several gun wounds. Sometimes we re lucky and are called in before the VIP is attacked because somebody spotted a lot of snipers on the rooftops or a load of explosives were discovered near the route of the VIP. Usually, though, we re asked to perform first aid, field surgery and apply various walking aids in order for the VIP to complete the visit. My dream has always been to be invited to be part of phases a, b and possible c instead of just the medical emergency team. It has been my dream for about 18 years, and perhaps it might happen one day. A couple of days ago we were contacted in order to solve a big performance problem 20 minutes before a huge system was going live after a 48 hour upgrade. A couple of weeks ago we had a situation with one of our customers where management was having that sort of wonderful meeting where they have to decide to send home the 800 workers producing goods in the factory or not because the system was suddenly running very, very slow. We had a few hours to fix the problem. Nearly every time it s because a SQL statement changed execution plan. To the worse, of course. But it changed. Funny enough, execution plans is about the only thing people never monitor. The focus is usually on system level or application level performance. That s fine with me, since it won t help anybody identifying the source of a sudden slowdown. Which means they would do the Guess & Grimacing meetings around the whiteboard. Which means they would be even more desperate when they finally contact us. Which means it would be much more adrenalinbound for my guys. Ah, to be the Delta Force of the database community. Feels great. Could wear you out after a few decades. MONITORING V$SQL I call it the M2M method Money To Miracle. Seriously, though, if you want to avoid sudden surprises in your systems or your applications you need to be able to see if a SQL statement changed execution plan and whether it was for the better or the worse. We have done it for a system, but it required some tricks, including manual parsing of the most important SQL statements, our own hashing algorithm and some other trickery. The same will need to be done in 8.0 and 8i systems. In 9i and 10g you can get something primitive going in a hurry: Save data from V$SQL with regular intervals. For instance you could concentrate on the following columns: HASH_VALUE PLAN_HASH_VALUE ELAPSED_TIME EXECUTIONS BUFFER_GETS CPU_TIME You can make your own routine, you can download Miracle s Monitor (MIRMON) which has a nice webinterface, or you can use Statspack level 6 or higher (we have also ported our MIRMON web interface to Statspack, and it s free send me an if you re interested). It s up to you how often you want to do this once a day, once an hour or once very 15 minutes. I don t care. 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, and if the elapsed time increased, you might want to identify the application(s) using this SQL statement and warn 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 happen if an index becomes less efficient, if the amount of data used by this SQL statement increased and for a number of other reasons. Same plan, more work. In this case you can see if buffer_gets and cpu_time increased, and start looking at possible causes. This is what I call looking after changes at the lowest level, instead of looking at high-level (system, application) symptoms. 10 August 2005 OracleEkspert

11 GROUNDHOG DAY TUNING If you have tools that will help you identifying/managing application performance you will at least know when your users response time goes up or down (some tools don t even do this, but most do). Here s the problem with that approach (application-centric): Your application A (a report, say) consists of two SQL statements S1 and S2. S1 takes 5 seconds, S2 takes 20 seconds. Users are happy with the 25 seconds response time. Note that you don t know how long each SQL statement takes you only know the total response time. Then one day S2 takes 30 seconds instead of 20, and the total response time is therefore 35 seconds. Users complain, and you do the usual thing: Trace the application, find the heaviest SQL statement, and try to tune it. It s the same thing you do every time. In this case, it s also the right thing to do, although it could take you a while, etc. You re trying to tune the SQL statement that got worse. But what if S1 one day takes 15 seconds instead of 5? Then the total response time is also 35 seconds. You then 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 you will approach an application programmer and ask him to help you tune S2, and the poor guy will explain that he 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 and should be brought back to its 5 seconds response time if possible. In yet other words: We usually tune the wrong things even if we focus on response time. We spent a couple of decades looking at the statements with the most buffer_gets (logical IO s) before we started looking at the statements with the highest response time. Both approaches represent Groundhog Day Tuning. NOW IMPLEMENT IT :-) Whether you use your own snapshot mechanism for this, use Miracle s tools or whatever, you should at least think in these terms in order to stabilise your systems. There are a few other benefits if you monitor the elapsed time vs execution plans: You can far more safely upgrade, patch and make changes to your environment you ll be able to tell quickly what changed, and whether it was for the better or worse. You might even be able to perform what I call Shock Upgrades without any prior testing of performance. As if you didn t do that already :-). Note, that the hashing algorithm used by Oracle changed in 10g. There was a danger of collisions in the old algorithm, even though it is known as The Perfect Hashing Algorithm. However, you will find both HASH_VALUE and OLD_HASH_VALUE in V$SQL in 10g, so you can map from older versions of Oracle. In Enterprise Manager (aka Grid Control) there s a little-known feature allowing you to see if a certain SQL statement changed execution plan. But that requires that 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, and possible ways to get it back to the old execution plan. Also, be aware that a SQL statement could have execution plan X1, then change to X2, and then perhaps change back to X1, You should therefore monitor them 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 could provide you with a certain indication that you should re-org an index or turn a table into an IOT or whatever. End of Guessing. ANJO S PYRAMIDS It s tough being a director. For instance, Anjo Kolk and I have had to spend a week here in South Africa doing tech days for the SAOUG in Johannesburg (Joburg if you re local) and Cape Town (CT). It s Winter down here, and the locals are complaining profoundly about the cold weather, etc. Ha! Any of these days would qualify as a near perfect Danish Summer day, I can tell you. It s all about what you re used to. The folks from South Africa ought to visit Denmark a few days every Summer (or Winter!) and then I think they d be very, very happy with what they ve got. Anyway, Anjo had some interesting observations that I thought I d try to pass on: If you have an OLTP system, you should probably have a V-shape of your system with respect to CPUpower available: Not very much at the database level, more at the middle-tier level and a lot at the client level. V for Victory, as Anjo says. With DW/BI it s the opposite (an inverted pyramid): You should have most CPU power at the database server level and not so much on the client. Have you noticed how often you see hour-glass shapes in systems instead of the V s? In mixed environments you should probably have something more like a W or M :-). LINUX IS NOT LINUX Sometimes I read things that REALLY gets me thinking. This is an example (pardon my French): Sun was so stupid to not put their true engineering quality into Solx86 in the late 90s...so it wasn t good enough to run Oracle. Sun was just sandbaggging Solx86 as a loss leader and getting people to switch to SPARC. That Larry off, he decided to not port 9i to Solx86. That promoted this worthless anarchist piece of nightmare we deal with now called Linux into parity with Windows for Oracle... Here s one of the qualities I look for in people before and 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 time sooner, not later, in our line of work. So when someone I respect says something like the above, and it gets me thinking, I feel wonderful. Isn t it funny to have things turned on their heads (by some- OracleEkspert August

12 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 World are dying. Yeah, sure, they ll be around for many years 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 different Linux es out there. Sure, their source code is available. So what? Can you take advantage of that if you have a serious problem? Can you contact your vendor and have something urgently fixed in their code (a patch, in other words). Sure. But will it become part of the general Linux distribution or will you now run a unique version of Linux your own version? So customers are not gambling on that. They re betting on the big players supporting Linux. The big players, in turn, will make changes to their Linux according to customer demands and whatever goes on inside 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 on HP (say, Itanium) you re probably not going to save any 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 defending Microsoft. I m not dissing Oracle. I m not for or against Microsoft. I m not for or against Oracle. I m for the customer. NYHEDER Red Database Security offentliggør seks sikkerhedsfejl i Oracle Det tyske sikkerhedsfirma Red Database Security har efter sigende allerede for to år siden gjort Oracle opmærksom på fejlene og har bedt Oracle om at udsende en patch, som kunne rette dem. I frustration over at Oracle ikke har reageret, valgte firmaet at offentliggøre detaljer om fejlene. Oracle har beklaget, at disse oplysninger nu er blevet offentliggjort inden en patch var klar til at rette dem, men hævder, at de retter fejl i deres produkter så hurtigt som muligt. Fejlene er relateret til Oracle Application Server 9i og 10g, Oracle Forms og Oracle Reports. Mindst een af fejlene hævdes at tillade en hacker at overtage kontrollen over systemer, der kører Oracle-applikationer. Link Watermark Denmark dropper Oracle Watermark Denmark bliver nu en ren Axapta-forretning efter at Baan og nu Oracle er blevet opgivet Oracle opkober Profit Logic Oracle vil i lobet af juli faerdiggore opkobet af Profit Logic, som udvikler financielle analysevaerktojer. Oracle finder at opkobet er naturligt da mange af Profit Logics kunder i forvejen bruger Oracles database. USD 115 mill til Harvard University til et program om forskning i effektiviteten af globale helbredsinitiativer. En sådan donation vil være den største i Harvard University's historie Oracle Q4 resultat I Q4, som er Oracles første hele kvartal efter opkøbet af PeopleSoft, er indtjeningen steget med 3,2%. Det svarer til USD 1,02 mia eller 20 cent pr aktie. Sidste år var overskuddet for Q4 på USD 990 mill svarende til 19 cent pr aktie. Resultatet for hele året er på USD 2,89 mia, svarende til 56 cent pr aktie, hvilket er en stigning på 8% i forhold til året før, hvor overskuddet var på USD 2,68 mia, svarende til 51 cent pr aktie. Indtægterne for året er steget med 16% til USD 11,8 mia siden sidste år. Indtægterne for Q4 er steget med 26%, i forhold til året før, til 3,88 mia Tidligere Microsoft-direktør bliver co-president for Oracle Finansdirektør for Microsoft i , Gregory Maffei, er blevet ansat som finansdirektør og copresident (blandt tre) for Oracle. Oracles andre co-presidenter er Safra Catz og Charles Phillips Oracle flytter salgscenter tilbage til Danmark I en offensiv mod Microsoft i Danmark har Oracle valgt at flytte salgscenteret, som for mange år siden blev flyttet til Irland pga lempelige EU-regler, tilbage til Danmark. I den forbindelse regner man med at skulle ansætte op til 30 mennesker i Oracle Danmark Steen Knudsen bliver salgschef hos Ementor Sten Knudsen, der 11. maj blev bortvist som salgschef hos Oracle Danmark, er netop tiltrådt en ny stilling som salgschef hos Ementor Larry på vej til at donere USD 115 mill til Harvard Larry Ellison er på vej til at donere 12 August 2005 OracleEkspert

13 EN MÅDE AT INDLÆSE REGNEARK I ORACLE INDLEDNING At udveksle data mellem omverden og et databasesystem kan undertiden være problematisk. Der kan opstå ad hoc situationer, hvor der ikke er tid, budget og mulighed for at opbygge veldefinerede udtræks- og indlæsningsapplikationer, såsom rapporter, skærmbilleder og indlæsningsprogrammer. Selv i veletablerede projekter kan der komme spontane og ustrukturerede ønsker om udtræk og inddatering. Situationen forstærkes i nyopstartede projekter eller hvor der er kontakt med interessenter udenfor det organisatoriske og tekniske miljø. Der har længe været rimelig gode muligheder for at lave ad hoc udtræk, her tænkes især på SQLPLUS, hvor en kyndig programmør temmelig hurtigt og let kan lave præsentable udtræk. Derimod er indlæsning af spontandata stadig problematisk. Denne artikel præsenterer en lille applikation, der kan bruges i visse situationer, hvor man har modtaget data i regneark og hurtigt vil læse dem ind og have dokumentation for det passerede. REGNEARK ER POPULÆRE Regneark har vundet stor udbredelse. For almindelige 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 sagt kan man sige, at Microsoft Excel (regneark) og Word (tekstbehandling) er verdens mest udbredte database. Det er i øvrigt relativt nemt at konvertere fra det ene til det andet, blot man ved, at karakter 9, måske bedre kendt som tab, definerer en celle i regnearket. Prøv selv 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 i Oracle 10, der håndterer indlæsning fra (og udlæsning til) regneark. Den her præsenterede lille applikation, som er rudimentær, har en lille smule af den funktionalitet. ET SCENARIO Christian Bastlund er ansat i CSC Danmark. Han har arbejdet som konsulent i Danmark og England og er Datalog fra Københavns Universitet med bifag i Informationspsykologi. Udover at arbejde med systemudvikling og Oracle er hovedinteressen menneskemaskin samspil og formidling. Nogle brugere vil angive hvilke medarbejdere, der skal oprettes i et databasesystem under udvikling, som ikke er færdigt. Tiden er knap og applikationen, hvor de ville kunne indtaste dem under ordnede forhold, er ikke klar. Men udviklerne har brug for troværdige data. Eller forestil dig, at brugerne har udarbejdet nogle testdata, som man vil indføre i databasen. Det vil formentlig være let for disse brugere at skrive data i et regneark. Regnearket kan på forhånd være forsynet med SQL kommandoer (og således tjene som en form for brugervejledning, hvis brugerne kan forstå SQL) eller SQL kan bagefter lægges på af en programmør. Herefter kan den lille applikation læse regnearket ind, fx på stedet i samarbejde med en sælger eller projektleder. Det bør nævnes, at applikationen er et kraftigt værktøj, som i ukyndige eller ondsindede hænder kan lave ravage, og login og password bør ikke være frit tilgængeligt. TEKNISK PLATFORM Applikationen er fil RUN.SQL, fylder 6 kilobytes, og består af lidt SQLPLUS og et PL/SQL program på 163 linier samt en fil for SQL efter opdatering. Der bliver ikke lagt noget på databasen. Applikationen startes fra operativsystemet med SQL- PLUS. Som applikationen er her, kører den på Oracle 9.2 eller nyere, men den kan ændres, så den kan køre på tidligere (brug af directory erstattes med brug af environmentvariabel 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å kataloget opfører sig som Windows katalog. Hvis det ikke er tilfældet, kan man kopiere regnearket (fx ved FTP) mellem det anvendte operativsystem, typisk Unix, og Windows, hvilket er lidt klodset. BRUG Sælgeren kan have applikationen i lommen på en diskette, evt. sammen med skabelonregneark med de udarbejdede SQL udtryk. Sælgeren behøver altså ikke kende noget til SQL, andet end at forstå den simple notation, der kobler kolonner med data til det overliggende SQL udtryk. Når regnearket er lavet, lægges det på det vedtagne katalog, fx C:\ORAARK\, og der laves en kopi med det vedtagne filnavn, fx ARK.XLS. Disse ting står øverst i den lille applikation og kan ændres. Sælgeren eller anden bemyndiget person starter SQLPLUS med user_login/password op fra det vedtagne katalog, fx sådan her: C:\ORAARK> sqlplus 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, kun om hvert SQL udtryk er gået godt eller skidt (hvorved den rulles tilbage). I stedet er der fil KVITTERING_SQL.SQL, hvor SQL-kyndige kan skri- Af Christian Bastlund, CSC TEKNISK ARTIKEL OracleEkspert August

14 ve SQL efter opdateringerne; her kan man lave select-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 nummer og %-tegn foran nummeret EKSEMPLER: DECLARE update kunder set telexadresse = null; BEGIN END; DECLARE update medarbejdere set navn = %2 where initial = %1 BEGIN ABO Anne Bang Olsen NHH Niels-Henning Hansen END; Kvitteringsregnearket skriver i en linie efter hvert END; 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å der kan håndteres mere end én SQL-sætning pr. kommandoblok, men det er ikke gjort her. Eller kommentarer som /* <tekst> */ efter DECLARE for SQL eller efter BEGIN for kolonneoverskrifter, det er heller ikke gjort. Man skal være opmærksom på, at SQL en kan åbne op for farlige ting: DECLARE drop user system cascade; BEGIN END; Den er ikke god. Det er derfor user_login og password ikke skal være frit tilgængelig, og man bør derfor nok oprette en særlig Oracle-bruger, som ikke har for kraftige rettigheder. KONKLUSION Dette er en mobil letvægtsapplikation, der kan hjælpe med at krydse det tekniske gab mellem almindelige brugere med forretningsviden og data og udviklere. I starten, før der er opbygget fortrolighed mellem parterne, er det nok en god ide blot at specificere hvilke kolonner, brugerne skal udfylde, og lade udviklerne skrive SQL en på bagefter, ellers kan det være, brugerne synes, det er noget mærkeligt noget og blive utrygge. Der er noget farligt indeni! [Den omtalte kode samt eksempler kan download es fra vores hjemmeside: Red] Læser dine kunder ikke OracleEkspert? For hver ny abonnent, som oplyser dit navn ifm tegningen 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 14 August 2005 OracleEkspert

15 ER DU ENIG? 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, PFA Sponsor søges Hvis dit selskab er interesseret i at blive sponsor, ring Jeg bestyrer denne lille sektion, hvor jeg i hvert nummer af OracleEkspert diskuterer et emne, som Ialle gerne må give mig jeres mening om ved at afgive jeres stemme på (under menupunktet Meningsmålingen). Der uddeles en præmie for en af de mest interessante kommentarer. Ideer til spørgsmål, som det kunne være spændende at høre andres mening om er velkomne til Marc@OracleEkspert.dk. Der 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 holdninger. Mette Stephansen vinder overbevisende dene måneds ipod Shuffle med følgende meget livlige og dybtfølte kommentar: [...] Og så irriterer det mig GRÆNSELØST at fx Java skal være så fandens besværligt at man stort set ikke kan kode det uden en super-hyper-mega editor (for det er jo det IntelliJ/Esclipse bare er). Ingen kan nogensinde rumme tilnærmelsesvis det hele. Så alle opfinder små dybe tallerkener, eller henter diverse underlige claser/metoder fra skumle steder på nettet. Dvs. den opgave, der "i de gode gamle dage" havde må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 der alle 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ølgelig ikke helt enig i Mettes synspunkt. Han medgiver dog at han [...] ikke [er] ening i at OO er mere produktiv end Struktureret udvikling - måske snarere tværtimod, men ellers mener han at Objektorienterede modeller 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! Og genbrug understøttes helt klart også bedre af OO, da det er lettere at genbruge objekter/klasser en funktioner!. Her er Mette Stephansen uenig. Hun mener at Man har altid ved at kode fornuftigt kunne genbruge 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 funktionaltitetsæ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 blevet overbevist om det objektorienterede paradigme. Min kritik er primært orienteret omkring den objektorienterede tankegang og dens konsekvenser for analyse- og udviklingsmetode. I kan læse lidt om min holdning til emnet i lederen på side 2. Af Marc de Oliveira MENINGSMÅLINGEN 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 i Polen 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 og reaktionstider. Hvad er dine erfaringer? Skynd dig ind på og giv din stemme til kende! Du kan vinde en ipod Shuffle OracleEkspert August

16 TEKNISK ARTIKEL Af Marc de Oliveira FITTING DESIGNER INTO THE ZACHMAN FRAMEWORK - PART 2 ACTIVITIES (HOW) Marc de Oliveira from PYTHIA Information possesses a M. Sc. in Computer Science from the University of Copenhagen and has been working as system analyst and system developer for the past 15 years primarily with the Oracle Designer tools. Contact: Marc@PythiaInformation.com. The activities column of the Zachman Framework is also handled very well by Designer. As data and activities are the most ancient and fundamental areas of interest of the development practice it is not surprising that 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 general scope defining task. He/She needs to maintain a general definition of the scope of the Application System and a list of the main Business Functions that the project must address. You should define a central Application System that represents the entire business. The properties of the Application System should be used to make a general definition of what the business is about. The planner should try to use terms that every employee, customer and supplier can understand. Each essential business area should have an Application System defined for it as well. These Application Systems should be considered as sub Application Systems to the main central Application System mentioned above. The documentation should be in form of text - either as a document or a dynamic web page. A simple list of the top two levels of Business Functions can be extracted like this: select FUNCTION_LABEL from CI_FUNCTIONS where PARENT_REFERENCE is NULL or PARENT_REFERENCE in (select IRID from CI_FUNCTIONS where 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 Activity Model (cell A2) As with cell D2 this cell is about the business owner s knowledge of how the business is run. The business owner must define the details about what his/her part of the enterprise is doing and how it is done. Both BPR diagrams and Dataflow diagrams are good tools for documenting the activities of a business. They both let you define the business in multiple levels of detail and let you specify the flow of data and materials between the different Business Functions. The Business Functions defined by the business owners relates to physical functions like glue label to the bottle 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 Business Functions. These are basically the necessary Business Functions to carry out the enterprise s objectives. These can only be identified with information about the external events of the business, so you will need that information from cell T3 to build essential dataflow diagrams. That means that all Business Functions from cell A2 that do not help to carry out the enterprise s objectives should usually be removed. That could be Business Functions that are dealing with problems in the currently used technology. Also, the Business Functions of the architect should not define processes. They should describe what problem the Business Function solves not how it is solved. glue label to the bottle could be mark the bottle and complete the customer registration form could be register the customer. The result is a set of Dataflow diagrams and Function Hierarchies with all the essential Business Functions described in a technology neutral way. Because the architect will make many fundamental changes to the business owner models it is important to check-in all diagrams and functions before letting the 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 Design Transformer that converts the Business Functions to General Modules. The General Modules must then be refined by design decisions about display properties, item ordering, data sorting, usage of canvases and windows, menus, module networks etc. The designer must also identify necessary PL/SQL or Java Definitions that will be needed by the builder and define their interface in the most reusable way to avoid multiple implementations of the same functions by the system builders. In short the designer needs to make all the technolo- 16 August 2005 OracleEkspert

17 gy specific decisions that need to be done before the actual 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% of the designed code, so why do we need a builder s view? As you may know I am a firm believer of 100% generation but that certainly does not mean that no building is necessary. The builder must implement all the PL/SQL Definitions, Java Definitions and Application Logic that must 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, PLL files etc that will remain as the source of the executable files in the file system. These can be stored as Files in the Designer repository to keep an accessible overview of all the executable files of the system. The generators will also create Packages, Procedures, Functions and Triggers that will automatically be stored in the Data Dictionary from where it is easy to extract documentation about the working system. The Designer elements of cell A6 are: - Files LOCATIONS (WHERE) The Locations column of the Zachman Framework is not so visible in Designer but don t fear, you can easily manage your location information with Designer. Locations are related tightly to many of the other areas of interest, so it is necessary to look at those relationships as well. The Planner s View - Objectives and Scope (cell L1) The planner must define the Locations that the development project must include. This is done by defining a simple set of Locations in Designer. Specific constraints to take into account for the different Locations can be described here (like language requirements, special considerations related to local laws etc). Only include general Locations like countries or cities not specific offices etc. It might be helpful with a simple map with the locations marked on it. Such a map could be stored in the repository as a Document with the Path property pointing to the BMP or GIF file. By storing it as a Document rather than a File it is possible to assign a Type property that indicates that the Document is a map for the planner s view and, hence, make it possible to show the map dynamically in different kinds of documentation. The Designer elements of cell L1 are: - Locations (only general locations) - Documents The Business Owner s View - The Enterprise Location Model (cell L2) The business owner is primarily interested by the logistical issues related to Locations. What activities are dependent on other activities in different Locations? Who is communicating with who across different Locations? Where do we need to transport goods between Locations? A geographical map with the involved Locations, like offices, warehouses, delivery points, production sites etc, and lines showing the relationships is a good visual but it is important to have a structured representation of those (logistical) relationships as well. I am using the term Location about things that would usually be called Sites because Designer does not distinguish between the two. Alternatively you could create Sites as a user extension but I prefer to use the Type property of the Location element to specify what the nature of the Location is. You can define relationships between Locations in Designer in a couple of ways. Either you can go through the Documents element type by creating a Document with a description of the relationship and then assigning all the Locations with the described relationship to that Document through the Attached To Elements/Attached To Document association. Another possibility is to create a many to many association between Locations as a user extension (you could call them Location Relationships). Such a user extension can be created through the Repository Administration Utility (RAU) and should have the properties Name (mandatory), Type and Problem Level as well as the text usages Description (CDIDSC) and Notes (CDINOT). By using the Code property of the Locations element as a coordination code you can even make a web page with a map that plots in the Locations dynamically. It is even a simple task to have the map using different icons depending on the Type property of the Locations, so that plants, offices and warehouses show 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 things in more detail. He/She will also have to identify the Locations of less physical things like data, activities and knowledge. If all data will be stored on a central server that everybody has access to, the Location of data is not so important but if some data requiring activities must be performed in a Location without network access these issues must be addressed. This is done using the Location Relationships with the Type property set to something like DATA DEPENDENCE. By mapping Business Units to the Locations (and mapping Business Functions to Business Units, which is done in cell A2 and A3) you will also be able to track Dataflows that move from one geographic Location to another. These Dataflows will often be connecting problematic activities that might benefit from reengineering or relocation. The mapping of Business Units OracleEkspert August

18 to Locations is done using the Business Unit Planning Items association. A Business Function that is actually taking place in two different Locations might have to be split into two or more Business Functions because communication problems may cause each of the activity parts to work independently of each other. This will usually add complexity and time consumption to the original Business Function and should be avoided if possible. It is also important to the management of a business that people that communicate much with each other are located close to each other (this is addressed further in the section about People and Organizations). Finally, there could be dependencies between Locations and the Business Rules of the enterprise. These would be caused by local laws but could also just be caused by local management differences within the enterprise. Designer does not contain a Business Rule element type but a number of suggestions have been made on how to go about it. The CDM Rule Frame uses Business Functions to implement Business Rules while CASETech uses PL/SQL Functions. You could also place them in tables outside the repository or create user extensions to implement them. There are pros and cons to every solution but the bottom line is that some kind of Business Rule storage must be in place and that it should somehow be 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 physical distribution of hardware and software. He/She needs to document the Locations of all the involved Nodes (like servers, storage installations, printers etc), their Network Connections and the software (Databases, operating systems, Modules etc) running on them. Designer has a whole set of elements to handle this kind of documentation. Nodes are identified by properties like Name, Description, Type, Primary Usage, Manufacturer, Model and Responsibility of. Nodes can have Locations and Network Connections to other Nodes. The Network Connections are defined by properties like Protocol and Line Speed. Designer even allows you to define the Processed Modules on each Node and their frequency as well as the 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 how each Node is setup (by assigning ip addresses etc). This is usually documented in text treatment software like MS Word or Excel. These Documents can be created using any tool and then linked into the Designer repository as Documents by setting the Source Path property to point at them on the file system. Simple setup documents can be stored directly in the Notes text of the Nodes element. In general use the Description text for general descriptions that can be read by people without specific knowledge about the element being described and use the Notes text for low level technical content. This division will make it much easier to extract the correct content in reports or on dynamic web pages depending 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 status etc through a web interface. In these cases it would be a great help to store the relevant URL on the Nodes element and publish a screen of all the Nodes together with direct links to their monitor software. Designer does not have properties for this on the Nodes elements but a URL property can easily be created 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 very central to system development and often overlooked because it gets too little attention. By using the Zachman Framework to organize the interpersonal relationships in the Designer repository together with all the other project information, this area of interest can 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 political standpoints related to employees and the management of them. The planner s information should be stored with the Application System, either as a separate text type created as a user extension or as a set of Documents with a specific Document Type property, like HUMAN RESOURCE POLICY, so they can easily be extracted. The Designer elements of cell P1 are: - Application Systems (Human Resource Policy text property) or Documents (Human Resource Policy document type) The Business Owner s View - The Enterprise People Model (cell P2) The business owner must document the Business Units of his/her business area and specify the roles involved in running the business. It is important to know the relationships and communication channels between the different Business Units and roles. Roles are not handled as a separate element type in Designer, they are stored as Business Units as well. You can use the Role Flag property to indicate that a specific Business Unit is in fact a role. This information will help the architect pinpoint problem areas and suggest reorganizations that might 18 August 2005 OracleEkspert

19 simplify the business processes of the enterprise. Therefore it is important to include all the relationships - not only the management hierarchy. Often the most important relationships do not show on the traditional organizational diagrams. Designer can organize Business Units in a hierarchy but it does not handle other types of relationships between Business Units. Again you will have to create a new association type, Business Unit Relationship, as a user extension (like I described it previously for Location Relationships). Unfortunately, Designer does not provide an organizational chart, so you will either have to draw one in another tool (which I don t like, because that means that you will have to keep two redundant sets of information synchronized manually) or build your own diagram viewer that can build an organizational chart from the Business Unit data in the Designer Repository. It is not that hard to dynamically build such a diagram in HTML. Another advantage of building the dynamic diagram viewer is that you can build it so that clicking a Business Unit will reveal a relationship diagram showing all the relationships going between the chosen Business Unit and other Business Units (and even the Locations mapped in cell 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 with persons and organizations. 1) The communication channels must be analyzed to identify ineffective structures in the organizations. 2) A description of the human interaction with the system must be defined as the background for the design decisions that have to be made by the designer. As for part 1 David Hay has a good overview of how to go about it using cybernetic theory in his book Requirements Analysis From Business Views to Architecture. It contains too much material to be covered in an article like this one but I will encourage everybody to read his book which is very inspiring. Obviously, the source of such an analysis is the relationship definitions between Business Units as well as between Business Units and Locations. With the results of that analysis it is possible to define the optimal interactions between the users and the system. One way to do that is through use cases. Use cases are best know by their diagrams of stick men connected to large bubbles but the most important part of the use cases is their textual descriptions that cover all the aspects of each type of human interaction with the system. However, Designer can manage the elements of a use case. The use case actor corresponds to the low level Business Units who can be related to Business Functions using the Performing Function association. A use case corresponds to a (small) number of actors interacting with a (small) number of systems. Typically, one actor interacts with one system. To bundle these actors and Business Functions into a use case it is possible to define them as Set Members in a User Defined Set. The User Defined Set element has a Description property that can hold the textual description of the use case. If you are not using the User Defined Sets for anything else you can store use cases as described here without the need of any user extensions. If you want to be able to define other kinds of sets you will have to add a Type property to the User Defined Sets element as a user extension and set it to something like USE CASE on your use cases. As with the dynamic organization chart viewer described in cell P2 it is possible to create a simple use case viewer in HTML that will show the actors as stick 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 the user interactions like user interface, security etc. When using Designer you should try to place as much of the general usage requirements in locations where they automatically get generated into the application system, so that you don t have to remember them every time you make a screen or report. So, cell P4 is mainly about setting up the requirements for Preference Sets, templates, libraries and utility packages, as well as the template like display properties of Table Definitions and View Definitions. Also user interface related definitions of individual modules to match the architect s use case descriptions 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 requirements) - Modules (user interface properties and preferences) - 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 requirements specified by the designer by actually coding the library functions and procedures, templates, object libraries, 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 versioning as Files. The Designer elements of cell P6 are: - Files OracleEkspert August

20 TIME (WHEN) The time column has to do with events happening at specific times or with specific intervals. Events that happen at unspecified times are also handled in this column. The Planner s View - Objectives and Scope (cell T1) The planner is concerned with the general Process Events and cycles of the business, like yearly evaluation cycles, accounting or budget deadlines etc. These can be stored in Designer as Process Events. Information about the enterprise s planning horizon is also important to the project. The planner s information should be stored with the Application System, either as a separate text type created as a user extension or as a set of Documents with a specific Document Type property, like TIMING AND 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 Events document type) - Process Events The Business Owner s View - The Enterprise Time Model (cell T2) The business owner must identify the complete set of Process Events of his/her business area. It is also important to identify if the Process Event occurs as the result of a state change. What is the Entity and Attribute change that causes the Process Event? These are all data that Designer stores with the Process Event element type. It is also important to identify when Process Events are Triggering Functions. This should give you a view of what all the things are that the business must be able to react to. At the same time it tells the architect that any Business Function that is not triggered by a Process Event might very well be dispensable because nothing seems to be asking for its output. Two properties are missing from the Process Events element type to be able to fully describe state transitions: From State and To State. It is important to get an idea of reasons for each of the states and attribute can hold. Therefore it is not enough to know the Entity and the Attribute that caused the Process Event but also what 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 the life history of the Entities. So the properties From State and To State should be added to the Process Events element 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 definitions with the Entity Usages defined in cell A3 to get a picture of the life cycle of every Entity and to know how each Entity is initially created, what States it will go through during its existence and how it is deleted (or inactivated). The architect makes sure that all the necessary Business Functions have been created to implement all stages of each Entity s life cycle. Each Entity Usage should have a Comment added that describe under what conditions that entity is changed in that Business Function. With all this information in place the architect could extract a simple report describing all the State changes 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 a detail to the Entity, as Entities could be created for multiple reasons and, obviously, change between numerous States. With a little more work it is possible to create a kind of entity life history diagram dynamically from the Entity, Process Event and Entity Usage definitions in the repository. The architect will also use this information to define the 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 information provided by the architect to design all the necessary control structures in form of Database Triggers or Table API Logic. Some of the logic will be placed in reusable PL/SQL Definitions (or Java Definitions). Domains and Valid Values are used to specify valid states of attributes. Some state changes must be designed into specific Module Application Logic if they are specific to a Business 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 by the 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- 20 August 2005 OracleEkspert

Vores mange brugere på musskema.dk er rigtig gode til at komme med kvalificerede ønsker og behov.

Vores mange brugere på musskema.dk er rigtig gode til at komme med kvalificerede ønsker og behov. På dansk/in Danish: Aarhus d. 10. januar 2013/ the 10 th of January 2013 Kære alle Chefer i MUS-regi! Vores mange brugere på musskema.dk er rigtig gode til at komme med kvalificerede ønsker og behov. Og

Læs mere

LESSON NOTES Extensive Reading in Danish for Intermediate Learners #8 How to Interview

LESSON NOTES Extensive Reading in Danish for Intermediate Learners #8 How to Interview LESSON NOTES Extensive Reading in Danish for Intermediate Learners #8 How to Interview CONTENTS 2 Danish 5 English # 8 COPYRIGHT 2019 INNOVATIVE LANGUAGE LEARNING. ALL RIGHTS RESERVED. DANISH 1. SÅDAN

Læs mere

Basic statistics for experimental medical researchers

Basic statistics for experimental medical researchers Basic statistics for experimental medical researchers Sample size calculations September 15th 2016 Christian Pipper Department of public health (IFSV) Faculty of Health and Medicinal Science (SUND) E-mail:

Læs mere

Vina Nguyen HSSP July 13, 2008

Vina Nguyen HSSP July 13, 2008 Vina Nguyen HSSP July 13, 2008 1 What does it mean if sets A, B, C are a partition of set D? 2 How do you calculate P(A B) using the formula for conditional probability? 3 What is the difference between

Læs mere

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1 Project Step 7 Behavioral modeling of a dual ported register set. Copyright 2006 - Joanne DeGroat, ECE, OSU 1 The register set Register set specifications 16 dual ported registers each with 16- bit words

Læs mere

Privat-, statslig- eller regional institution m.v. Andet Added Bekaempelsesudfoerende: string No Label: Bekæmpelsesudførende

Privat-, statslig- eller regional institution m.v. Andet Added Bekaempelsesudfoerende: string No Label: Bekæmpelsesudførende Changes for Rottedatabasen Web Service The coming version of Rottedatabasen Web Service will have several changes some of them breaking for the exposed methods. These changes and the business logic behind

Læs mere

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU OUTLINE INEFFICIENCY OF ATTILA WAYS TO PARALLELIZE LOW COMPATIBILITY IN THE COMPILATION A SOLUTION

Læs mere

Engelsk. Niveau D. De Merkantile Erhvervsuddannelser September Casebaseret eksamen. og

Engelsk. Niveau D. De Merkantile Erhvervsuddannelser September Casebaseret eksamen.  og 052431_EngelskD 08/09/05 13:29 Side 1 De Merkantile Erhvervsuddannelser September 2005 Side 1 af 4 sider Casebaseret eksamen Engelsk Niveau D www.jysk.dk og www.jysk.com Indhold: Opgave 1 Presentation

Læs mere

Trolling Master Bornholm 2015

Trolling Master Bornholm 2015 Trolling Master Bornholm 2015 (English version further down) Panorama billede fra starten den første dag i 2014 Michael Koldtoft fra Trolling Centrum har brugt lidt tid på at arbejde med billederne fra

Læs mere

How Long Is an Hour? Family Note HOME LINK 8 2

How Long Is an Hour? Family Note HOME LINK 8 2 8 2 How Long Is an Hour? The concept of passing time is difficult for young children. Hours, minutes, and seconds are confusing; children usually do not have a good sense of how long each time interval

Læs mere

Engelsk. Niveau C. De Merkantile Erhvervsuddannelser September 2005. Casebaseret eksamen. www.jysk.dk og www.jysk.com.

Engelsk. Niveau C. De Merkantile Erhvervsuddannelser September 2005. Casebaseret eksamen. www.jysk.dk og www.jysk.com. 052430_EngelskC 08/09/05 13:29 Side 1 De Merkantile Erhvervsuddannelser September 2005 Side 1 af 4 sider Casebaseret eksamen Engelsk Niveau C www.jysk.dk og www.jysk.com Indhold: Opgave 1 Presentation

Læs mere

Portal Registration. Check Junk Mail for activation . 1 Click the hyperlink to take you back to the portal to confirm your registration

Portal Registration. Check Junk Mail for activation  . 1 Click the hyperlink to take you back to the portal to confirm your registration Portal Registration Step 1 Provide the necessary information to create your user. Note: First Name, Last Name and Email have to match exactly to your profile in the Membership system. Step 2 Click on the

Læs mere

Black Jack --- Review. Spring 2012

Black Jack --- Review. Spring 2012 Black Jack --- Review Spring 2012 Simulation Simulation can solve real-world problems by modeling realworld processes to provide otherwise unobtainable information. Computer simulation is used to predict

Læs mere

The River Underground, Additional Work

The River Underground, Additional Work 39 (104) The River Underground, Additional Work The River Underground Crosswords Across 1 Another word for "hard to cope with", "unendurable", "insufferable" (10) 5 Another word for "think", "believe",

Læs mere

Trolling Master Bornholm 2012

Trolling Master Bornholm 2012 Trolling Master Bornholm 1 (English version further down) Tak for denne gang Det var en fornøjelse især jo også fordi vejret var med os. Så heldig har vi aldrig været før. Vi skal evaluere 1, og I må meget

Læs mere

DK - Quick Text Translation. HEYYER Net Promoter System Magento extension

DK - Quick Text Translation. HEYYER Net Promoter System Magento extension DK - Quick Text Translation HEYYER Net Promoter System Magento extension Version 1.0 15-11-2013 HEYYER / Email Templates Invitation Email Template Invitation Email English Dansk Title Invitation Email

Læs mere

Observation Processes:

Observation Processes: Observation Processes: Preparing for lesson observations, Observing lessons Providing formative feedback Gerry Davies Faculty of Education Preparing for Observation: Task 1 How can we help student-teachers

Læs mere

The X Factor. Målgruppe. Læringsmål. Introduktion til læreren klasse & ungdomsuddannelser Engelskundervisningen

The X Factor. Målgruppe. Læringsmål. Introduktion til læreren klasse & ungdomsuddannelser Engelskundervisningen The X Factor Målgruppe 7-10 klasse & ungdomsuddannelser Engelskundervisningen Læringsmål Eleven kan give sammenhængende fremstillinger på basis af indhentede informationer Eleven har viden om at søge og

Læs mere

Shooting tethered med Canon EOS-D i Capture One Pro. Shooting tethered i Capture One Pro 6.4 & 7.0 på MAC OS-X 10.7.5 & 10.8

Shooting tethered med Canon EOS-D i Capture One Pro. Shooting tethered i Capture One Pro 6.4 & 7.0 på MAC OS-X 10.7.5 & 10.8 Shooting tethered med Canon EOS-D i Capture One Pro Shooting tethered i Capture One Pro 6.4 & 7.0 på MAC OS-X 10.7.5 & 10.8 For Canon EOS-D ejere der fotograferer Shooting tethered med EOS-Utility eller

Læs mere

QUICK START Updated:

QUICK START Updated: QUICK START Updated: 24.08.2018 For at komme hurtigt og godt igang med dine nye Webstech produkter, anbefales at du downloader den senest opdaterede QuickStart fra vores hjemmeside: In order to get started

Læs mere

QUICK START Updated: 18. Febr. 2014

QUICK START Updated: 18. Febr. 2014 QUICK START Updated: 18. Febr. 2014 For at komme hurtigt og godt igang med dine nye Webstech produkter, anbefales at du downloader den senest opdaterede QuickStart fra vores hjemmeside: In order to get

Læs mere

Hvor er mine runde hjørner?

Hvor er mine runde hjørner? Hvor er mine runde hjørner? Ofte møder vi fortvivlelse blandt kunder, når de ser deres nye flotte site i deres browser og indser, at det ser anderledes ud, i forhold til det design, de godkendte i starten

Læs mere

Trolling Master Bornholm 2013

Trolling Master Bornholm 2013 Trolling Master Bornholm 2013 (English version further down) Tilmeldingerne til 2013 I dag nåede vi op på 85 tilmeldte både. Det er stadig lidt lavere end samme tidspunkt sidste år. Tilmeldingen er åben

Læs mere

Trolling Master Bornholm 2013

Trolling Master Bornholm 2013 Trolling Master Bornholm 2013 (English version further down) Tilmeldingen åbner om to uger Mandag den 3. december kl. 8.00 åbner tilmeldingen til Trolling Master Bornholm 2013. Vi har flere tilmeldinger

Læs mere

Dagens program. Incitamenter 4/19/2018 INCITAMENTSPROBLEMER I FORBINDELSE MED DRIFTSFORBEDRINGER. Incitamentsproblem 1 Understøttes procesforbedringer

Dagens program. Incitamenter 4/19/2018 INCITAMENTSPROBLEMER I FORBINDELSE MED DRIFTSFORBEDRINGER. Incitamentsproblem 1 Understøttes procesforbedringer INCITAMENTSPROBLEMER I FORBINDELSE MED DRIFTSFORBEDRINGER Ivar Friis, Institut for produktion og erhvervsøkonomi, CBS 19. april Alumni oplæg Dagens program 2 Incitamentsproblem 1 Understøttes procesforbedringer

Læs mere

NICE Forum Ph.d. foreløbige eksplorative resultater. Ph.d. studerende - Claire Forder, NICE, Cphbusiness & RUC

NICE Forum Ph.d. foreløbige eksplorative resultater. Ph.d. studerende - Claire Forder, NICE, Cphbusiness & RUC NICE Forum Ph.d. foreløbige eksplorative resultater Ph.d. studerende - Claire Forder, NICE, Cphbusiness & RUC Agenda 1. Ph.d. forsknings mål 2. Foreløbige resultater Nyt for den akademiske verden Nyt (?)

Læs mere

Danish Language Course for International University Students Copenhagen, 12 July 1 August Application form

Danish Language Course for International University Students Copenhagen, 12 July 1 August Application form Danish Language Course for International University Students Copenhagen, 12 July 1 August 2017 Application form Must be completed on the computer in Danish or English All fields are mandatory PERSONLIGE

Læs mere

DSB s egen rejse med ny DSB App. Rubathas Thirumathyam Principal Architect Mobile

DSB s egen rejse med ny DSB App. Rubathas Thirumathyam Principal Architect Mobile DSB s egen rejse med ny DSB App Rubathas Thirumathyam Principal Architect Mobile Marts 2018 AGENDA 1. Ny App? Ny Silo? 2. Kunden => Kunderne i centrum 1 Ny app? Ny silo? 3 Mødetitel Velkommen til Danske

Læs mere

3. Har du oplevet blackout, mens du har styret skibet? Have you ever been steering the vessel, when a blackout have happened?

3. Har du oplevet blackout, mens du har styret skibet? Have you ever been steering the vessel, when a blackout have happened? Blackout på Orateca -Interview med styrmand Name Aleksander Andrzejczak Rank 1. officer / mate Years of navigator 3 years 1 year at Orateca 2 maybe 1 time during sea passage Open sea, average weather,

Læs mere

how to save excel as pdf

how to save excel as pdf 1 how to save excel as pdf This guide will show you how to save your Excel workbook as PDF files. Before you do so, you may want to copy several sheets from several documents into one document. To do so,

Læs mere

Boligsøgning / Search for accommodation!

Boligsøgning / Search for accommodation! Boligsøgning / Search for accommodation! For at guide dig frem til den rigtige vejledning, skal du lige svare på et par spørgsmål: To make sure you are using the correct guide for applying you must answer

Læs mere

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1 IBM Network Station Manager esuite 1.5 / NSM Integration IBM Network Computer Division tdc - 02/08/99 lotusnsm.prz Page 1 New esuite Settings in NSM The Lotus esuite Workplace administration option is

Læs mere

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index DET KONGELIGE Index Download driver... 2 Find the Windows 7 version.... 2 Download the Windows Vista driver.... 4 Extract driver... 5 Windows Vista installation of a printer.... 7 Side 1 af 12 DET KONGELIGE

Læs mere

Nyhedsmail, december 2013 (scroll down for English version)

Nyhedsmail, december 2013 (scroll down for English version) Nyhedsmail, december 2013 (scroll down for English version) Kære Omdeler Julen venter rundt om hjørnet. Og netop julen er årsagen til, at NORDJYSKE Distributions mange omdelere har ekstra travlt med at

Læs mere

CHAPTER 8: USING OBJECTS

CHAPTER 8: USING OBJECTS Ruby: Philosophy & Implementation CHAPTER 8: USING OBJECTS Introduction to Computer Science Using Ruby Ruby is the latest in the family of Object Oriented Programming Languages As such, its designer studied

Læs mere

COACH NETWORK MEETING

COACH NETWORK MEETING COACH NETWORK MEETING Tommerup d. 1 The presentation: Split into 4 parts: Who am i? Pre Post Ask questions anytime 2 Who am i? 23 years old Started my career in Vildbjerg Svømmeklub in 2010 Became assistant

Læs mere

Status på det trådløse netværk

Status på det trådløse netværk Status på det trådløse netværk Der er stadig problemer med det trådløse netværk, se status her: http://driftstatus.sdu.dk/?f=&antal=200&driftid=1671#1671 IT-service arbejder stadig med at løse problemerne

Læs mere

Trolling Master Bornholm 2014

Trolling Master Bornholm 2014 Trolling Master Bornholm 2014 (English version further down) Den ny havn i Tejn Havn Bornholms Regionskommune er gået i gang med at udvide Tejn Havn, og det er med til at gøre det muligt, at vi kan være

Læs mere

Kalkulation: Hvordan fungerer tal? Jan Mouritsen, professor Institut for Produktion og Erhvervsøkonomi

Kalkulation: Hvordan fungerer tal? Jan Mouritsen, professor Institut for Produktion og Erhvervsøkonomi Kalkulation: Hvordan fungerer tal? Jan Mouritsen, professor Institut for Produktion og Erhvervsøkonomi Udbud d af kalkulationsmetoder l t Economic Value Added, Balanced Scorecard, Activity Based Costing,

Læs mere

Danish Language Course for Foreign University Students Copenhagen, 13 July 2 August 2016 Advanced, medium and beginner s level.

Danish Language Course for Foreign University Students Copenhagen, 13 July 2 August 2016 Advanced, medium and beginner s level. Danish Language Course for Foreign University Students Copenhagen, 13 July 2 August 2016 Advanced, medium and beginner s level Application form Must be completed on the computer in Danish or English All

Læs mere

SAS Corporate Program Website

SAS Corporate Program Website SAS Corporate Program Website Dear user We have developed SAS Corporate Program Website to make the administration of your company's travel activities easier. You can read about it in this booklet, which

Læs mere

Bilag. Resume. Side 1 af 12

Bilag. Resume. Side 1 af 12 Bilag Resume I denne opgave, lægges der fokus på unge og ensomhed gennem sociale medier. Vi har i denne opgave valgt at benytte Facebook som det sociale medie vi ligger fokus på, da det er det største

Læs mere

USERTEC USER PRACTICES, TECHNOLOGIES AND RESIDENTIAL ENERGY CONSUMPTION

USERTEC USER PRACTICES, TECHNOLOGIES AND RESIDENTIAL ENERGY CONSUMPTION USERTEC USER PRACTICES, TECHNOLOGIES AND RESIDENTIAL ENERGY CONSUMPTION P E R H E I S E L BERG I N S T I T U T F OR BYGGERI OG A N L Æ G BEREGNEDE OG FAKTISKE FORBRUG I BOLIGER Fra SBi rapport 2016:09

Læs mere

INGEN HASTVÆRK! NO RUSH!

INGEN HASTVÆRK! NO RUSH! INGEN HASTVÆRK! NO RUSH! Keld Jensen Nr. 52, december 2018 No. 52, December 2018 Ingen hastværk! Vær nu helt ærlig! Hvornår har du sidst opholdt dig længere tid et sted i naturen? Uden hastværk. Uden unødvendig

Læs mere

Better driving experience guaranteed!

Better driving experience guaranteed! MAXIMUM RESPONCE Pedalbox, Dynamisk - BEDRE RESPONSE - Flere program trin MAXIMUM RESPONCE Better driving experience guaranteed! Pedalbox, Dynamisk - BEDRE RESPONSE - Flere program trin For at forbedre

Læs mere

Financial Literacy among 5-7 years old children

Financial Literacy among 5-7 years old children Financial Literacy among 5-7 years old children -based on a market research survey among the parents in Denmark, Sweden, Norway, Finland, Northern Ireland and Republic of Ireland Page 1 Purpose of the

Læs mere

Trolling Master Bornholm 2014

Trolling Master Bornholm 2014 Trolling Master Bornholm 2014 (English version further down) Populært med tidlig færgebooking Booking af færgebilletter til TMB 2014 er populært. Vi har fået en stribe mails fra teams, som har booket,

Læs mere

GUIDE TIL BREVSKRIVNING

GUIDE TIL BREVSKRIVNING GUIDE TIL BREVSKRIVNING APPELBREVE Formålet med at skrive et appelbrev er at få modtageren til at overholde menneskerettighederne. Det er en god idé at lægge vægt på modtagerens forpligtelser over for

Læs mere

Den Danske Esri Brugerkonference 2019 What's new in ArcGIS Enterprise og Administration af ArcGIS Enterprise

Den Danske Esri Brugerkonference 2019 What's new in ArcGIS Enterprise og Administration af ArcGIS Enterprise Den Danske Esri Brugerkonference 2019 What's new in ArcGIS Enterprise og Administration af ArcGIS Enterprise Torben Vidding Willadsen, Geoinfo Agenda Shared instances News! Hvad er ArcGIS Enterprise? (den

Læs mere

extreme Programming Kunders og udvikleres menneskerettigheder

extreme Programming Kunders og udvikleres menneskerettigheder extreme Programming Software Engineering 13 1 Kunders og udvikleres menneskerettigheder Kunder: At sætte mål og få projektet til at følge dem At kende varighed og pris At bestemme softwarefunktionalitet

Læs mere

4EKI b ;SVHW :MWMSR b.eryev] *IFVYEV] 3, 7 'S 'LEMVvW VITSVX GSRXMRYIH JVSQ TEKI certainly have a better understanding now of how and who and when than I did years ago. What if you notice a burned-out

Læs mere

Aktivering af Survey funktionalitet

Aktivering af Survey funktionalitet Surveys i REDCap REDCap gør det muligt at eksponere ét eller flere instrumenter som et survey (spørgeskema) som derefter kan udfyldes direkte af patienten eller forsøgspersonen over internettet. Dette

Læs mere

Trolling Master Bornholm 2016 Nyhedsbrev nr. 8

Trolling Master Bornholm 2016 Nyhedsbrev nr. 8 Trolling Master Bornholm 2016 Nyhedsbrev nr. 8 English version further down Der bliver landet fisk men ikke mange Her er det Johnny Nielsen, Søløven, fra Tejn, som i denne uge fangede 13,0 kg nord for

Læs mere

Vejledning til at tjekke om du har sat manuel IP på din computer.

Vejledning til at tjekke om du har sat manuel IP på din computer. Indhold Vejledning til at, komme på nettet. (DANSK)... 2 Gælder alle systemer.... 2 Vejledning til at tjekke om du har sat manuel IP på din computer.... 2 Windows 7... 2 Windows Vista... 2 Windows XP...

Læs mere

Managing stakeholders on major projects. - Learnings from Odense Letbane. Benthe Vestergård Communication director Odense Letbane P/S

Managing stakeholders on major projects. - Learnings from Odense Letbane. Benthe Vestergård Communication director Odense Letbane P/S Managing stakeholders on major projects - Learnings from Odense Letbane Benthe Vestergård Communication director Odense Letbane P/S Light Rail Day, Bergen 15 November 2016 Slide om Odense Nedenstående

Læs mere

1 What is the connection between Lee Harvey Oswald and Russia? Write down three facts from his file.

1 What is the connection between Lee Harvey Oswald and Russia? Write down three facts from his file. Lee Harvey Oswald 1 Lee Harvey Oswald s profile Read Oswald s profile. Answer the questions. 1 What is the connection between Lee Harvey Oswald and Russia? Write down three facts from his file. 2 Oswald

Læs mere

E-PAD Bluetooth hængelås E-PAD Bluetooth padlock E-PAD Bluetooth Vorhängeschloss

E-PAD Bluetooth hængelås E-PAD Bluetooth padlock E-PAD Bluetooth Vorhängeschloss E-PAD Bluetooth hængelås E-PAD Bluetooth padlock E-PAD Bluetooth Vorhängeschloss Brugervejledning (side 2-6) Userguide (page 7-11) Bedienungsanleitung 1 - Hvordan forbinder du din E-PAD hængelås med din

Læs mere

Sortering fra A-Z. Henrik Dorf Chefkonsulent SAS Institute

Sortering fra A-Z. Henrik Dorf Chefkonsulent SAS Institute Sortering fra A-Z Henrik Dorf Chefkonsulent SAS Institute Hvorfor ikke sortering fra A-Å? Det er for svært Hvorfor ikke sortering fra A-Å? Hvorfor ikke sortering fra A-Å? Hvorfor ikke sortering fra A-Å?

Læs mere

What s Love Got to Do With It?

What s Love Got to Do With It? What s Love Got to Do With It? Gram Grid Present Continuous Vi sætter verberne i ing-form, når vi vil beskrive at noget er i gang. Der er fire hovedkategorier af ing-form: 1 Den almindelige form (common

Læs mere

Brug sømbrættet til at lave sjove figurer. Lav fx: Få de andre til at gætte, hvad du har lavet. Use the nail board to make funny shapes.

Brug sømbrættet til at lave sjove figurer. Lav fx: Få de andre til at gætte, hvad du har lavet. Use the nail board to make funny shapes. Brug sømbrættet til at lave sjove figurer. Lav f: Et dannebrogsflag Et hus med tag, vinduer og dør En fugl En bil En blomst Få de andre til at gætte, hvad du har lavet. Use the nail board to make funn

Læs mere

Sport for the elderly

Sport for the elderly Sport for the elderly - Teenagers of the future Play the Game 2013 Aarhus, 29 October 2013 Ditte Toft Danish Institute for Sports Studies +45 3266 1037 ditte.toft@idan.dk A growing group in the population

Læs mere

Succesfuld Problem management. 2. December 2015 Laurine Halkjær

Succesfuld Problem management. 2. December 2015 Laurine Halkjær Succesfuld Problem management 2. December 2015 Laurine Halkjær 1 TDC s IT organisation Sidst opdateret 1. dec 2015 NB. TDC Servicedesk er organiseret i Channels divisionen for at være tæt på forretningen.

Læs mere

JOHN LENNON (DANISH EDITION) BY CYNTHIA LENNON

JOHN LENNON (DANISH EDITION) BY CYNTHIA LENNON JOHN LENNON (DANISH EDITION) BY CYNTHIA LENNON READ ONLINE AND DOWNLOAD EBOOK : JOHN LENNON (DANISH EDITION) BY CYNTHIA LENNON Click button to download this ebook READ ONLINE AND DOWNLOAD JOHN LENNON (DANISH

Læs mere

Trolling Master Bornholm 2016 Nyhedsbrev nr. 7

Trolling Master Bornholm 2016 Nyhedsbrev nr. 7 Trolling Master Bornholm 2016 Nyhedsbrev nr. 7 English version further down Så var det omsider fiskevejr En af dem, der kom på vandet i en af hullerne, mellem den hårde vestenvind var Lejf K. Pedersen,

Læs mere

SAS USER FORUM DENMARK 2017 USER FORUM. Rune Nordtorp

SAS USER FORUM DENMARK 2017 USER FORUM. Rune Nordtorp SAS USER FORUM USER FORUM Rune Nordtorp Agenda Logning Audit logning Og hvorfor er det lige pludselig blevet vigtigt Logning i SAS -platformen Ressource Inventory Model Introduktion til opsætning af logning

Læs mere

Online kursus: Content Mangement System - Wordpress

Online kursus: Content Mangement System - Wordpress Online kursus 365 dage DKK 1.999 Nr. 90213 P ekskl. moms Wordpress er et open-source content management system, som anvendes af mere end 23% af verdens 10 millioner mest besøgte hjemmesider. Det er et

Læs mere

LEADit & USEit 2018 CampusHuset - Campus Bindslevs Plads i Silkeborg 25. Oktober 2018

LEADit & USEit 2018 CampusHuset - Campus Bindslevs Plads i Silkeborg 25. Oktober 2018 LEADit & USEit 2018 CampusHuset - Campus Bindslevs Plads i Silkeborg 25. Oktober 2018 Global visibility for assets and field equipment - Enhancing efficiency, utilization, and safety Agenda Forhistorie,

Læs mere

Blomsten er rød (af Harry Chapin, oversat af Niels Hausgaard)

Blomsten er rød (af Harry Chapin, oversat af Niels Hausgaard) Blomsten er rød (af Harry Chapin, oversat af Niels Hausgaard) På den allerførste skoledag fik de farver og papir. Den lille dreng farved arket fuldt. Han ku bare ik la vær. Og lærerinden sagde: Hvad er

Læs mere

Must I be a registered company in Denmark? That is not required. Both Danish and foreign companies can trade at Gaspoint Nordic.

Must I be a registered company in Denmark? That is not required. Both Danish and foreign companies can trade at Gaspoint Nordic. General Questions What kind of information do you need before I can start trading? Please visit our webpage www.gaspointnordic.com under the heading How to become a participant Is it possible to trade

Læs mere

Bemærk, der er tale om ældre versioner af softwaren, men fremgangsmåden er uændret.

Bemærk, der er tale om ældre versioner af softwaren, men fremgangsmåden er uændret. Check dine svar på: https://dtu.codejudge.net/02101-e18/ Exercise 1: Installer Eclipse og Java. Dette kan f.eks. gøres ved at følge instuktionerne i dokumentet eclipse intro.pdf som ligger under Fildeling

Læs mere

Help / Hjælp

Help / Hjælp Home page Lisa & Petur www.lisapetur.dk Help / Hjælp Help / Hjælp General The purpose of our Homepage is to allow external access to pictures and videos taken/made by the Gunnarsson family. The Association

Læs mere

Business Opening. Very formal, recipient has a special title that must be used in place of their name

Business Opening. Very formal, recipient has a special title that must be used in place of their name - Opening English Danish Dear Mr. President, Kære Hr. Direktør, Very formal, recipient has a special title that must be used in place of their name Dear Sir, Formal, male recipient, name unknown Dear Madam,

Læs mere

Get Instant Access to ebook Udleveret PDF at Our Huge Library UDLEVERET PDF. ==> Download: UDLEVERET PDF

Get Instant Access to ebook Udleveret PDF at Our Huge Library UDLEVERET PDF. ==> Download: UDLEVERET PDF UDLEVERET PDF ==> Download: UDLEVERET PDF UDLEVERET PDF - Are you searching for Udleveret Books? Now, you will be happy that at this time Udleveret PDF is available at our online library. With our complete

Læs mere

1 s01 - Jeg har generelt været tilfreds med praktikopholdet

1 s01 - Jeg har generelt været tilfreds med praktikopholdet Praktikevaluering Studerende (Internship evaluation Student) Husk at trykke "Send (Submit)" nederst (Remember to click "Send (Submit)" below - The questions are translated into English below each of the

Læs mere

Barnets navn: Børnehave: Kommune: Barnets modersmål (kan være mere end et)

Barnets navn: Børnehave: Kommune: Barnets modersmål (kan være mere end et) Forældreskema Barnets navn: Børnehave: Kommune: Barnets modersmål (kan være mere end et) Barnets alder: år og måneder Barnet begyndte at lære dansk da det var år Søg at besvare disse spørgsmål så godt

Læs mere

INTEL INTRODUCTION TO TEACHING AND LEARNING AARHUS UNIVERSITET

INTEL INTRODUCTION TO TEACHING AND LEARNING AARHUS UNIVERSITET INTEL INTRODUCTION TO TEACHING AND LEARNING 8 BÆRENDE PRINCIPPER 1-4: BÆREDYGTIGT OG FLEKSIBELT Billigt Nemt at administrere Skalérbart Fleksibelt 5: RELEVANT Indhold organiseret i themes 6: EKSEMPLARISK

Læs mere

Trolling Master Bornholm 2016 Nyhedsbrev nr. 3

Trolling Master Bornholm 2016 Nyhedsbrev nr. 3 Trolling Master Bornholm 2016 Nyhedsbrev nr. 3 English version further down Den første dag i Bornholmerlaks konkurrencen Formanden for Bornholms Trollingklub, Anders Schou Jensen (og meddomer i TMB) fik

Læs mere

Generalized Probit Model in Design of Dose Finding Experiments. Yuehui Wu Valerii V. Fedorov RSU, GlaxoSmithKline, US

Generalized Probit Model in Design of Dose Finding Experiments. Yuehui Wu Valerii V. Fedorov RSU, GlaxoSmithKline, US Generalized Probit Model in Design of Dose Finding Experiments Yuehui Wu Valerii V. Fedorov RSU, GlaxoSmithKline, US Outline Motivation Generalized probit model Utility function Locally optimal designs

Læs mere

Generelt om faget: - Hvordan vurderer du dit samlede udbytte af dette fag?

Generelt om faget: - Hvordan vurderer du dit samlede udbytte af dette fag? Fag: Monetary Policy % 46 Samlet status % 5% 5% 75% % Ny % Distribueret 63% 9 Nogen svar % Gennemført 37% 7 Frafaldet % % 5% 5% 75% % Generelt om faget: - Hvordan vurderer du dit samlede udbytte af dette

Læs mere

To the reader: Information regarding this document

To the reader: Information regarding this document To the reader: Information regarding this document All text to be shown to respondents in this study is going to be in Danish. The Danish version of the text (the one, respondents are going to see) appears

Læs mere

Det er muligt at chekce følgende opg. i CodeJudge: og

Det er muligt at chekce følgende opg. i CodeJudge: og Det er muligt at chekce følgende opg. i CodeJudge:.1.7 og.1.14 Exercise 1: Skriv en forløkke, som producerer følgende output: 1 4 9 16 5 36 Bonusopgave: Modificer dit program, så det ikke benytter multiplikation.

Læs mere

Business Opening. Very formal, recipient has a special title that must be used in place of their name

Business Opening. Very formal, recipient has a special title that must be used in place of their name - Opening Danish English Kære Hr. Direktør, Dear Mr. President, Very formal, recipient has a special title that must be used in place of their name Kære Hr., Formal, male recipient, name unknown Kære Fru.,

Læs mere

Trolling Master Bornholm 2014

Trolling Master Bornholm 2014 Trolling Master Bornholm 2014 (English version further down) Så er ballet åbnet, 16,64 kg: Det er Kim Christiansen, som i mange år også har deltaget i TMB, der tirsdag landede denne laks. Den måler 120

Læs mere

Webside score templatedownload.org

Webside score templatedownload.org Webside score templatedownload.org Genereret Oktober 18 2015 05:21 AM Scoren er 43/100 SEO Indhold Titel FREE Template Download Længde : 22 Perfekt, din titel indeholder mellem 10 og 70 bogstaver. Beskrivelse

Læs mere

Eksempel på eksamensspørgsmål til caseeksamen

Eksempel på eksamensspørgsmål til caseeksamen Eksempel på eksamensspørgsmål til caseeksamen Engelsk niveau E, TIVOLI 2004/2005: in a British traveller s magazine. Make an advertisement presenting Tivoli as an amusement park. In your advertisement,

Læs mere

Trolling Master Bornholm 2013

Trolling Master Bornholm 2013 Trolling Master Bornholm 2013 (English version further down) Tilmeldingerne til 2013 I dag nåede vi op på 77 tilmeldte både. Det er lidt lavere end samme tidspunkt sidste år. Til gengæld er det glædeligt,

Læs mere

Trolling Master Bornholm 2015

Trolling Master Bornholm 2015 Trolling Master Bornholm 2015 (English version further down) Sæsonen er ved at komme i omdrejninger. Her er det John Eriksen fra Nexø med 95 cm og en kontrolleret vægt på 11,8 kg fanget på østkysten af

Læs mere

Appendix 1: Interview guide Maria og Kristian Lundgaard-Karlshøj, Ausumgaard

Appendix 1: Interview guide Maria og Kristian Lundgaard-Karlshøj, Ausumgaard Appendix 1: Interview guide Maria og Kristian Lundgaard-Karlshøj, Ausumgaard Fortæl om Ausumgaard s historie Der er hele tiden snak om værdier, men hvad er det for nogle værdier? uddyb forklar definer

Læs mere

Arkitektur for begyndere

Arkitektur for begyndere Denne guide er oprindeligt udgivet på Eksperten.dk Arkitektur for begyndere Denne artikel beskriver forskellige basale n-tier arkitekturer. Som man bør kende og have valgt inden man går igang med at udvikle

Læs mere

Our activities. Dry sales market. The assortment

Our activities. Dry sales market. The assortment First we like to start to introduce our activities. Kébol B.V., based in the heart of the bulb district since 1989, specialises in importing and exporting bulbs world-wide. Bulbs suitable for dry sale,

Læs mere

Part 5 Leisure Time and Transport

Part 5 Leisure Time and Transport Part 5 Leisure Time and Transport Lesson 3 Situation and Listen & Practice Situation Line and Louise are colleagues. They meet at a café before work. Line is late because h bike had a puncture on the way.

Læs mere

DENCON ARBEJDSBORDE DENCON DESKS

DENCON ARBEJDSBORDE DENCON DESKS DENCON ARBEJDSBORDE Mennesket i centrum betyder, at vi tager hensyn til kroppen og kroppens funktioner. Fordi vi ved, at det er vigtigt og sundt jævnligt at skifte stilling, når man arbejder. Bevægelse

Læs mere

Vejledning til brugen af bybrandet

Vejledning til brugen af bybrandet Vejledning til brugen af bybrandet Indhold Hvorfor bruge bybrandet? s. 3-4 Inspiration/ big idea s. 5-10 Syv former for bybranding s. 11-18 Brug af logoet s. 19-21 Find desuden flere cases, designelementer

Læs mere

FORVANDLENDE FORBINDELSER: Et studie af migranters forbindelser til hjemstavnen og deres visioner for at deltage i lokal udvikling

FORVANDLENDE FORBINDELSER: Et studie af migranters forbindelser til hjemstavnen og deres visioner for at deltage i lokal udvikling FORVANDLENDE FORBINDELSER: Et studie af migranters forbindelser til hjemstavnen og deres visioner for at deltage i lokal udvikling Ditte Brøgger PhD studerende / Geografi Agergaard, J. and Brøgger, D.

Læs mere

Terese B. Thomsen 1.semester Formidling, projektarbejde og webdesign ITU DMD d. 02/11-2012

Terese B. Thomsen 1.semester Formidling, projektarbejde og webdesign ITU DMD d. 02/11-2012 Server side Programming Wedesign Forelæsning #8 Recap PHP 1. Development Concept Design Coding Testing 2. Social Media Sharing, Images, Videos, Location etc Integrates with your websites 3. Widgets extend

Læs mere

VEDLIGEHOLDELSE AF SENGE

VEDLIGEHOLDELSE AF SENGE DK VEDLIGEHOLDELSE AF SENGE VEDLIGEHOLDELSE AF SENGE Sengen er typisk det møbel i hjemmet som bruges i flest timer gennem døgnet. Det betyder at sengen udsættes for et stort slid, og det er derfor vigtigt

Læs mere

Chameleon, Additional Work

Chameleon, Additional Work 44 (104) Chameleon, Additional Work Chameleon Crosswords Across 1 The facial expression of sudden pain (5) 4 When something is too small to be useful or important (e.g wages) (6) 6 Another word for "unfaithfulness"

Læs mere

Generelt om faget: (Eventuelle kommentarer til højre) - Givet målbeskrivelsen ovenfor, hvordan vurderer du så pensum?

Generelt om faget: (Eventuelle kommentarer til højre) - Givet målbeskrivelsen ovenfor, hvordan vurderer du så pensum? Generelt om faget: (Eventuelle kommentarer til højre) - Givet målbeskrivelsen ovenfor, hvordan vurderer du så pensum? Meget Godt 4 20,0% Godt 12 60,0% Gennemsnitligt 4 20,0% Dårligt 0 0,0% Meget Dårligt

Læs mere

Danskhjælpen er en lille opslagsgrammatik. Her kan du læse om de grammatiske emner, før eller imens du arbejder med dine Grammar-opgaver.

Danskhjælpen er en lille opslagsgrammatik. Her kan du læse om de grammatiske emner, før eller imens du arbejder med dine Grammar-opgaver. Danskhjælpen Danskhjælpen er en lille opslagsgrammatik. Her kan du læse om de grammatiske emner, før eller imens du arbejder med dine Grammar-opgaver. Adjektiver (At Risk) 2 Present Continuous (What s

Læs mere

Meget formel, modtager har en meget speciel titel som skal bruges i stedet for deres navne

Meget formel, modtager har en meget speciel titel som skal bruges i stedet for deres navne - Åbning Engelsk Dansk Dear Mr. President, Kære Hr. Direktør, Meget formel, modtager har en meget speciel titel som skal bruges i stedet for deres navne Dear Sir, Formel, mandelig modtager, navn ukendt

Læs mere