Note om RMI af Peter Kjærsgaard

Størrelse: px
Starte visningen fra side:

Download "Note om RMI af Peter Kjærsgaard"

Transkript

1 Note om RMI af Peter Kjærsgaard 1. Filosofi Filosofien i RMI er, at et objekt på en server skal kunne kaldes fra en klient, som om server-objektet lå på klienten. RMI er dermed på et højere niveau end Sockets, idet server og klienter i RMI deler objekter med hinanden, hvor man i Sockets deler datastrømme. RMI betyder Remote Method Invocation, dvs. kald af remote - dvs. (ikke-lokale)server-metoder. Miljø: RMI findes kun til Java. RMI er altså objektorienteret, og syntaksen for RMI-kald svarer til syntaksen for almindelige Java-kald. Interface Server Implementering Server-siden <<interface>> Subject -siden +request( ) Implements Proxy 1 1 RealSubject +request( ) +request( ) Proxy-mønstret (Eksempel) Princippet i RMI er, at klienten får stillet et interface (kontrakt) til rådighed, som er implementeret på server-objektet (se øverst på tegningen). For at klienten kan bruge dette interface, må der på klienten nødvendigvis være et objekt (af en klasse), som også implementerer interfacet, og som kan sende kaldet videre til server-objektet. Dette princip er netop ideen bag Proxy-mønstret (se nedre del af tegningen), som RMI benytter sig af. I Proxy-mønstret har vi to klasser, som implementerer samme interface (fx. Subject); dvs. de to klasser implementerer begge interfacets metoder (i ovenstående figur er det for enkelhedens skyld kun metoden request). Den ene klasse er den rigtige (RealSubject), dvs. den har den rigtige implementering. Den anden klasse er Proxy en, dvs. et surrogat eller en repræsentant for den rigtige klasse. Proxy-klassen implementerer også interfacet, men dens implementering består i, at kaldet til proxy-objektet sendes videre til det rigtige objekt. Dette kan proxy-objektet gøre, fordi det har en associering (reference) til det rigtige objekt. Altså, når request kaldes på proxy-objekt, dirigeres request-kaldet videre til det rigtige objekt. Otto Knudsen/Note om RMI Side 1 af 7

2 Hvorledes RMI benytter Proxy-mønstret kan illustreres med flg. eksempel: <<interface>> KontoServerI +indsaet(beloeb:float):float +haev(beloeb:float):float +getsaldo():float Server +main(args) implements implements KontoServer -kontonr -saldo uses Proxy remote reference Interfacet (KontoserverI) implementeres både af klienten (Proxy-klassen) og af den rigtige klasse på serveren (KontoServer). Proxy-klassens reference er lidt tillempet i forhold til Proxy-mønstret, idet referencen nu ikke er en associering, men derimod en såkaldt remote reference, som indeholder ip-adresse, portnr og objekt-id på serverobjektet. Vha. denne remote reference kan proxy-objektet så dirigere metode-kaldene videre til server-objektet. 2. Implementerings-koden på serveren Her vises først interfacet: import java.rmi.*; // Interface (kontrakt) for remote konto-objekt public interface KontoServerI extends Remote { public void setkontonr(string kontonr) throws RemoteException; public String getkontonr() throws RemoteException; public double indsaet(double beloeb) throws RemoteException; public double haev(double beloeb) throws RemoteException; public double getsaldo() throws RemoteException; Interfacet arver fra Remote, som er et marker interface, dvs. typen af KontoServerI er remote, dvs. de objekter, som er af klasser, der implementerer KontoServerI vil være remote objekter, dvs. RMI-objekter. Bemærk i øvrigt også, at alle interfacets metoder kaster en RemoteException, som kan fanges på klienten, så denne kan vise hvilke fejl, der evt har været i kommunikationen. Implementeringskoden ser fx således ud: import java.rmi.*; import java.rmi.server.unicastremoteobject; // UnicastRemoteObject // Implementering af (interface til) remote konto-objekt public class KontoServer extends UnicastRemoteObject implements KontoServerI { // Attributter private String kontonr; private double saldo; Otto Knudsen/Note om RMI Side 2 af 7

3 // Konstruktør public KontoServer() throws RemoteException { super(); saldo = 0.0; // Implementér metoderne fra interfacet public void setkontonr(string kontonr) throws RemoteException { this.kontonr = kontonr; public String getkontonr() throws RemoteException {return kontonr; public double indsaet(double beloeb) throws RemoteException { saldo += beloeb; return saldo; public double haev(double beloeb) throws RemoteException { saldo -= beloeb; return saldo; public double getsaldo() throws RemoteException {return saldo; // Her skal være main()-metode, se afsnit 5 Grunden til at implementeringsklassen arver fra UnicastRemoteObject forklares i afsnit Forløbet af et RMI-kald Proxy-mønstret for RMI er en logisk model, som abstraherer fra selve den fysiske kommunikation mellem klient og server over netværket. Fysisk set foregår denne kommunikation vha. Sockets. Sockets kommunikerer vha.. datastrømme. Serversiden er derfor nødt til at have et objekt, som kan modtage og fortolke datastrømmen fra Proxyen (objekt-id, metodenavn, parametre) og omsætte det til det rigtige metodekald på serverobjektet. Dette ekstra objekt på serversiden kaldes Skeleton (skelet), mens proxy-objektet på klienten kaldes en Stub. :KontoServer 1: saldo := indsaet(beloeb) 3: saldo := indsaet(beloeb) :Stub 2: "write"(objectid, "indsaet", beloeb) 4: "write"(saldo) :Skeleton På nedenstående figur er vist hvorledes et kald af RMI-metoden indsaet (jf. forrige figur) forløber. Forløbet (rækkefølgen) af kaldet er følgende: 1. en kalder stub-objektet (1) 2. Derefter opretter stubben (vha. ip-adresse og portnr fra dens remote reference) først en socket-forbindelse til skeleton en (ikke vist på figuren). Dernæst opbygger stubben en datastrøm bestående af objektid (på serverobjekt), metodenavn ( indsaet ) og parametre til metoden (i dette tilfælde beloeb). Denne proces kaldes marshallering, dvs. informationerne stilles op på en række. Endelig sender stubben (vha. en eller anden datastrøms-metode, fx write ) datastrømmen til skeleton en (2). Otto Knudsen/Note om RMI Side 3 af 7

4 3. Skeleton en modtager datastrømmen fra stubben og opbygger derudfra et metodekald på serverobjektet. Skeleton en kan finde server-objektet udfra objekt-id og metoden udfra metode-strengen. Tilsvarende indsættes parametrene fra datastrømmen som parametre i metodekaldet. Hele denne process kaldes demarshalling (det modsatte af marshalling). 4. Server-objektet returnerer saldo til skeleton 5. Skeleton opbygger en datastrøm, som skal sendes til stubben vha. socket-forbindelsen (marshalling). Datastrømmen består her kun af returværdien saldo. 6. Stubben modtager datastrømmen fra skeleton. Fra datastrømmen læses saldo, som returneres til klienten (1) (de-marshalling). Koden til stub og skeleton autogenereres af RMI udfra interface og implementeringsklasse (se evt min note om RMI og Kawa) 4. RMI er trådet, men ikke synkroniseret Hvad sker der, hvis to klienter kalder ind på samme server-objekt samtidigt? For at kunne svare på det, må vi først forstå, at runtime-delen af RMI er en del af JVM (Java Virtuel Machine), som afvikler alle Java-programmer. Dvs. både stub og skeleton kalder ned i RMI-runtime, når de skal kommunikere med hinanden. Kommunikationen (gennem socket-datastrømmene) mellem stub og skeleton foregår altså i virkeligheden mellem RMI-runtime på klient og server. RMI-runtime har altså både en klient-del og en server-del, se nedenstående illustration. Server Serverobjekt Stub Skeleton RMI-runtime () RMI-runtime (Server) Når stubben kalder ned i RMI-runtime på klienten etableres socket-forbindelsen til RMI-runtime på serveren. RMIruntime på serveren starter derefter en tråd, som vha. af denne socket modtager datastrømmen fra klienten og sender den videre til skeleton. Denne tråd på serveren sørger også for at sende returdata tilbage til klienten gennem socketforbindelsen. Tråden lever altså indtil returdata er sendt tilbage til klienten, hvorefter socket-forbindelsen lukkes ned. Når man benytter RMI skal man altså sørge for at gøre server-objektet thread-safe, dvs. lave synchronize på de metoder, der tilgår fælles ressourcer/attributter. 5. Opstart af RMI Ovennævnte beskrivelse af forløbet af et RMI-kald forudsætter, at RMI er initialiseret (startet op) på både server og klient. Opstart på Server For at RMI kan fungere, skal der først laves opstart af server-objekt på serveren. I praksis er der tre ting der skal gøres: 1. Skab remote name-server objekt 2. Skab (allokér) server-objekt 3. Bind server-objekt til name-server. Otto Knudsen/Note om RMI Side 4 af 7

5 Ad 1. Nameserver-objektet er et remote RMI-objekt, hvis klasse er færdig-implementeret af Java. Formålet med nameserver-objektet (fremover kaldt nameserveren) er at klienten vha. et symbolsk navn (alias) for server-objektet kan få en remote reference til det (remote-referencen består jo bl.a. af et objekt-id, som ikke siger brugeren (klienten) noget). Dette kan gøres vha. et opslag på nameserveren. Koden ser således ud: LocateRegistry.createRegistry(1099); På klassen LocateRegistry kaldes metoden createregistry som skaber nameserveren. Nameserveren er et remote RMIobjekt, men adskiller sig fra andre ved, at det angives med et portnr. Portnr 1099 er det normalt anvendte. For at kunne skabe nameserver-objektet skal java.rmi.registry.* importeres. Ad 2. Server-objektet skabes på normal vis med new-operatoren: KontoServer kontoserver = new KontoServer(); // Skab konto-objekt Da klassen KontoServer arver fra klassen UnicastRemoteObject kaldes dennes konstruktør, som sørger for at eksportere kontoserver-objektet til RMI-runtime. Når dette sker registreres objektet i RMI-runtimes liste over remote objekter, og objektet tildeles et objekt-id og et portnr (objekt-id og portnr bruges dog ikke af klinten, som i stedet bruger nameserveren til at skaffe en remote reference til objektet). I øvrigt er nameserveren også registreret i RMI-runtime; det skete, da nameserveren blev skabt. Ad 3. Server-objektet (kontoserver) skal nu bindes (tilmeldes) til nameserveren. Nameserveren har nemlig en liste over hvorledes hvert tilmeldt remote objekt kan mappes fra et symbolsk navn til objektets remote reference (Ikke at forveksle med RMI-runtime s liste over remote objekter). Når server-objektet bindes til nameserveren skal det symbolske navn og server-objektet derfor angives: Naming.rebind("Konto", kontoserver); Klassen Naming administrerer nameserverens liste over remote objekter. Koden for opstart af server-objektet kan fx ligges i server-klassens main-metode, således at når server-klassen køres opstartes server-objektet. Når main-metoden afsluttes kører RMI-runtime stadig (i en selvstændig tråd), og derfor eksisterer server-objektet og nameserveren også stadig, sålænge RMI-runtime har en reference til dem. Koden for server-opstart er vist her på næste figur: import java.rmi.registry.*; // LocateRegistry // Main-metode public static void main(string argv[]) { String regnavn="konto"; // Objektets reg.navn (id i regdb) try { // Start registreringdatabase-program (nameserver) på port 1099 LocateRegistry.createRegistry(1099); KontoServer kontoserver = new KontoServer(); // Skab konto-objekt // Registrer konto-objekt under navnet regnavn Naming.rebind(regNavn, kontoserver); System.out.println(regNavn + "-objekt er registreret!"); catch(exception e) { System.err.println("Fejl ved registrering: " + e); e.printstacktrace(); Otto Knudsen/Note om RMI Side 5 af 7

6 Hvad der er sket efter opstarten kan illustreres således: Server (efter opstart) F4892 kontoserver RMI-runtime Port 1099, ID F3456 Port 1266, ID F4892 KontoServer RMI-registry (Nameserver) F3456 "Konto", Port 1266, ID F4892 Altså: Der er blevet skabt to remote objekter: Nameserveren og kontoserver. De er begge blevet eksporteret til RMIruntime, som dermed har styr på deres portnumre og objektid (objektid kunne fx. tænkes at være objektets adresse). Derudover er kontoserver blevet bundet til nameserveren med det symbolske navn Konto, således at nameserveren nu har forbundet Konto med den remote reference til kontoserver. Bemærk at portnr på kontoserver (1266) og adresser på kontoserver (F4892) og nameserver (F3456) er vilkårligt valgt; de bestemmes nemlig af RMI-runtime, og vi (klienten) har ikke brug for at kende dem. Opstart på På klienten ser opstartskoden således ud: import java.rmi.*; // Klasse, som benytter remote konto-objekt public class Konto { public static void main (String argv[]) { KontoServerI konto = null; // reference til remote konto-objekt try { // Hent reference til remote konto-objekt konto = (KontoServerI)Naming.lookup("//pc353.tietgen.dk:1099/Konto"); catch (Exception e) { System.err.println("Fejl! Kan ikke få reference til konto-objekt: " + e); e.printstacktrace(); System.exit(1); // Her kan konto-reference bruges Som det ses, skaffes en remote reference til kontoserver-objekt vha. et opslag på nameserveren. Det gøres ved at bruge metoden lookup på klassen Naming og som parameter angive en tekststreng med ip-adresse (pc353.tietgen.dk), portnr på nameserveren (1099) samt det symbolske navn for kontoserver-objektet (Konto). Herved returneres en remote reference til kontoserver (konto). Bemærk at den remote reference typeconverteres til interfacet (KontoServerI). Remote referencen er nemlig ikke til et objekt af KontoServer-klassen, men derimod til stub-objektet, hvis klasse vi ikke kender navnet på. Otto Knudsen/Note om RMI Side 6 af 7

7 6. Brug af remote objekt KontoServer-objektet er nu klar til at blive brugt af klienten. Metoderne på objektet kaldes ved at bruge den remote reference (konto): try { // Brug remote konto-objekt konto.setkontonr(" "); konto.indsaet(100); konto.haev(50); System.out.println(konto.getKontonr()); System.out.println(konto.getSaldo()); catch(exception e) { System.out.println("Fejl ved brug af konto-objekt: " + e); e.printstacktrace(); System.exit(1); Læg mærke til, at klienten kan fange de exceptions, som eventuelt er blevet kastet på serveren. 7. Serialisering af lokale objekter I RMI-teorien skelner man mellem remote objekter og lokale objekter. Remote objekter er de objekter, som implementerer et interface som udvider Remote-interfacet (desuden bliver objekterne selvfølgelig først remote, når de er blevet skabt og eksporteret til RMI-runtime). Alle andre objekter er i RMI-sammenhæng lokale. Som nævnt er remote objekter identificeret vha. remote referencer, dvs. hvis man i RMI-kald overfører remote objekter som parametre/returværdi er det den remote reference, man overfører. Dette vil typisk ske, når man i et RMI-kald får returneret en remote reference til et andet remote objekt. Hvis man i RMI-kald derimod overfører lokale objekter som parametre bliver disse objekter serialiseret og sendt fra klient og server (denne serialisering (marshalling) sker i stubben, og skeleton en de-serialiserer, dvs. genopbygger objektet). Tilsvarende hvis et RMI-kald returnerer et lokalt objekt bliver dette serialiseret og sendt fra server til klient (denne serialisering (marshalling) sker i skeleton en, og stubben de-serialiserer, dvs. genopbygger objektet). Denne serialisering er nødvendig, fordi det ikke giver mening at overføre referencen til et lokalt objekt, fx. fra klient til server, idet serveren jo ikke har adgang til klientens adresserum (eller omvendt). For at lokale objekter kan overføres i RMI-kald skal man sørge for at deres klasser implementerer interfacet Serializable, således at RMI ved hvorledes de skal serialiseres. Det svarer til, at objekter som skal gemmes i en fil, også skal være Serializable. Bemærk at serialisering ikke altid er en let proces. Hvis et objekt har referencer til andre objekter skal disse også serialiseres med, for at referencen kan opbygges på den anden side i de-serialiseringen. Så vi må være glade for at Java klarer det for os! Otto Knudsen/Note om RMI Side 7 af 7

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation). Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer

Læs mere

Hvad er et distribueret objekt? Plan 12.3. Objekter, objektreferencer, metoder, parameteroverførsel. Objekter: notation

Hvad er et distribueret objekt? Plan 12.3. Objekter, objektreferencer, metoder, parameteroverførsel. Objekter: notation Plan 12.3. Oversigt over grundlæggende begreber Java: eksempel på applikation, programmering og oversættelse Uddybning af grundlæggende begreber Java RMI implementation Forklaring af øvelsen Hvad er et

Læs mere

RMI avanceret. Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer.

RMI avanceret. Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer. Denne guide er oprindeligt udgivet på Eksperten.dk RMI avanceret Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer. Den forudsætter

Læs mere

RMI med BlueJ. Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 11. desember 2007

RMI med BlueJ. Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 11. desember 2007 RMI med BlueJ Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 11. desember 2007 Hvad er RMI? Når man arbejder med Distribuerede Systemer, som igen vil sige at man ønsker at flere end én komputer

Læs mere

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004 Overvågningssystem Beskrivelse Bagagesorteringssystemet består af et antal skranker (check-in) til modtagelse og registrering af bagage, et automatiseret sorteringsanlæg samt et antal terminaler (gates),

Læs mere

Introduction til.net remoting i C#

Introduction til.net remoting i C# Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i C# Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i C#. Den forudsætter kendskab

Læs mere

Introduction til.net remoting i VB.NET

Introduction til.net remoting i VB.NET Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i VB.NET Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i VB.NET. Den forudsætter

Læs mere

SWC eksamens-spørgsmål. Oversigt

SWC eksamens-spørgsmål. Oversigt SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 6 Komponenter (og lidt Swing og MVC) Læsning: VP 4, evt. VP 6 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Grafiske komponenter

Læs mere

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java Kursus i OOP og Java Kursus i Objektorienteret programmering i Java Åben Dokumentlicens Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL) Du har derfor lov til frit at kopiere dette værk Bruger

Læs mere

Hvad er Objekter - Programmering

Hvad er Objekter - Programmering Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som

Læs mere

Ugeseddel 4 1. marts - 8. marts

Ugeseddel 4 1. marts - 8. marts Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,

Læs mere

Singleton pattern i Java

Singleton pattern i Java Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.

Læs mere

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11 DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void

Læs mere

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne. Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning

Læs mere

Jacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004

Jacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004 Genbrugelige komponenter og designmønstre i Java Jacob Nordfalk Ingeniørhøjskolen i København Nykøbing F itvisioncenter 24. februar 2004 Program Om Jacob Nordfalk introduktion (ikke-teknisk del) Komponentbaseret

Læs mere

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal

Læs mere

dmasark Aflevering - Uge 50

dmasark Aflevering - Uge 50 dmasark Aflevering - Uge 50 Michael Lind Mortensen, 20071202, DAT4 Michael Dahl, 20073943, DAT4 Katalog: http://www.daimi.au.dk/ u073943/dmasark/uge6/ 13. december 2007 Indhold 1 PingClient implementation

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2

Læs mere

Objektorienterede metoder

Objektorienterede metoder Objektorienterede metoder Denne gang: Designmønstre Skabende designmønstre: Fabrikeringsmetode/Fabrik, Singleton, Abstrakt fabrik (Toolkit), Prototype, Objektpulje Singleton eksempel: Forskellige slags

Læs mere

Netværksprogrammering!

Netværksprogrammering! Netværksprogrammering! Plan! Socket-baseret kommunikation! Fjernmetodekald (RMI)!!- Designmønsteret Proxy! Databasetilgang (JDBC)! 1! 2! Distribuerede beregninger! Kommunikation! Dagens beregningsmiljøer

Læs mere

Løsning af møntproblemet

Løsning af møntproblemet Løsning af møntproblemet Keld Helsgaun RUC, oktober 1999 Antag at tilstandene i problemet (stillingerne) er repræsenteret ved objekter af klassen State. Vi kan da finde en kortest mulig løsning af problemet

Læs mere

Anvendelse af metoder - Programmering

Anvendelse af metoder - Programmering Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur

Læs mere

Netværksprogrammering

Netværksprogrammering Netværksprogrammering 1 Plan Socket-baseret kommunikation Fjernmetodekald (RMI) - Designmønsteret Proxy Databasetilgang (JDBC) 2 Distribuerede beregninger Dagens beregningsmiljøer er distribuerede: beregningerne

Læs mere

Software Construction 1 semester (SWC) Spørgsmål 1

Software Construction 1 semester (SWC) Spørgsmål 1 Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /

Læs mere

Databaseadgang fra Java

Databaseadgang fra Java Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 5 Model View Controller arkitekturen Model View Controller arkitekturen (MVC) Evt.: Rekursion Læsning: VP 19 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html

Læs mere

Outline. Chapter 4 Remote Procedure Calls and Distributed Transactions. Remote Procedure Call. Distributed Transaction Processing.

Outline. Chapter 4 Remote Procedure Calls and Distributed Transactions. Remote Procedure Call. Distributed Transaction Processing. Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 4 Remote Procedure Calls and Distributed Transactions Outline

Læs mere

Dag 10 Flertrådet programmering

Dag 10 Flertrådet programmering Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,

Læs mere

Assignment #5 Toolbox Contract

Assignment #5 Toolbox Contract Assignment #5 Toolbox Contract Created by: René Kragh Trine Randløv E mail address cph rk70@cphbusiness.dk 23 11 2014 1 Introduktion Dette dokument indeholder en vertikal kontrakt for et system som skal

Læs mere

EG Data Inform. Byggebasen. WCF og webservices. Jens Karsø

EG Data Inform. Byggebasen. WCF og webservices. Jens Karsø EG Data Inform Byggebasen WCF og webservices Jens Karsø 10 Indholdsfortegnelse Byggebasen Services indledning... 2 Målsætning... 2 Valg af teknologier... 3 Kommunikationsmodel for byggebasen... 3 Services.byggebasen.dk...

Læs mere

SWC Elementer i klassedefinition

SWC Elementer i klassedefinition SWC Elementer i klassedefinition Indhold Eksempel... 2 Karakteristika for en klasse... 3 Karakteristika for et instance field... 4 Karakteristika for en constructor... 5 Karakteristika for en property...

Læs mere

Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i)

Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i) Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i) 1: KLASSE METODE KONSTRUKTØR EKS. PÅ TYPE (VARIABLE) PUBLIC/PRIVATE OBJECT UD FRA KLASSE KALD METODE TILFØR PARAMETER TIL METODE RETURNERE VARIBEL.

Læs mere

DANMARKS TEKNISKE UNIVERSITET

DANMARKS TEKNISKE UNIVERSITET DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler

Læs mere

Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java

Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter side 1 af 11 sider Skriftlig eksamen i Datalogi Modul 1 Sommer 2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 10% Opgave 2 10%

Læs mere

DM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11

DM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11 DM01 DM01 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 18/3-2003 Side 1 af 11 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DILEMMA:...4 2.1.1 METODER:...4

Læs mere

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

//Udskriver System.out.println(Hej  + ditfornavn +   + ditefternavn + .); System.out.println(Du er  + dinalder +  aar gammel! Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for

Læs mere

Serialization i Java

Serialization i Java Serialization i Java Tutorial lavet af Jákup W. Hansen TSU 2006 1.semester 06.novemter 2006 Hvad er Serialization? I vores tekstbog Objects First with Java bliver denne del af Java ikke gennemgået. Men

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2 DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld

Læs mere

Virkefeltsregler i Java

Virkefeltsregler i Java Virkefeltsregler i Java int i; int k; Sequence s; int j; What s in a name? Brian spillede blændende i søndags! Skolen ligger i Viby Ring til Kirsten og sig at... Et navn fortolkes i en kontekst og konteksten

Læs mere

Test af It-komponent

Test af It-komponent Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side

Læs mere

Videregående Programmering for Diplom-E Noter

Videregående Programmering for Diplom-E Noter Videregående Programmering for Diplom-E Noter 1. Uddelegering Ét af de væsentlige principper i objektorienteret programmering er, at enhver klasse selv skal kunne "klare ærterne". Enhver klasse skal altså

Læs mere

Hvordan vælger jeg dokumentprofilen?

Hvordan vælger jeg dokumentprofilen? Hvordan vælger jeg dokumentprofilen? Valget af OIOUBL profil i en konkret dokumentudveksling vil bl.a. afhænge af, hvilke OIOUBL profiler den anden part i udvekslingen understøtter. Et konkret eksempel

Læs mere

dintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4

dintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4 dintprog Manual Revision: 1241 August 24, 2010 Indhold I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4 3 Grundbegreber om modellering 4 III Sprogkonstruktioner 5 4 Klasser

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 9 Andre designmønstre Andre designmønstre: Uforanderlig, Fluevægt, Lagdelt Initialisering, Komposit/Rekursiv Komposition, Kommando/Ændring Fremlæggelse af programmering/status

Læs mere

Objektorienteret Programmering

Objektorienteret Programmering Objektorienteret Programmering Struktureret Systemudvikling Jan Bendtsen Automation and Control Indhold Lidt om programmeringssprog Klasser i Java Klasser i C++ Oversættelse og kørsel af kode Et eksempel:

Læs mere

Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering

Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering Skriftlig eksamen i Grundlæggende Programmering ITU, 20. januar 2000 Alle hjælpemidler tilladt, dog ikke datamat. Eksamen er skriftlig, fire timer, og bedømmes efter 13-skalaen. Opgavesættet består af

Læs mere

Send fra Java. Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende fra Java.

Send  fra Java. Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende  fra Java. Denne guide er oprindeligt udgivet på Eksperten.dk Send email fra Java Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende email fra Java. Simple eksempler ikke noget vildt

Læs mere

Eksamens spørgsmål Software Construction. Objekter. Spørgsmål 1: Januar Giv en beskrivelse af Objekt-begrebet og deres brug

Eksamens spørgsmål Software Construction. Objekter. Spørgsmål 1: Januar Giv en beskrivelse af Objekt-begrebet og deres brug Spørgsmål 1: Objekter Giv en beskrivelse af Objekt-begrebet og deres brug Under eksaminationen forventes du at forklare: Hvad er en type og en variabel? Hvordan erklæres en variabel? Hvad forstås ved en

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 6

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 6 DM502 Forelæsning 6 Klasser og objekter Introduktion Math-klassen Indhold Klasser vs. objekter Først et tænkt eksempel: Vi vil lave en bil i Java 1. spørgsmål: Hvad karakteriserer en bil? Model År Farve...

Læs mere

import java.awt.event.*; import java.awt.*; Container <- Panel <- Applet Component <- Button <- Checkbox <- ScrollPane <- Label

import java.awt.event.*; import java.awt.*; Container <- Panel <- Applet Component <- Button <- Checkbox <- ScrollPane <- Label Programmering 1999 Forelæsning 13, tirsdag 12. oktober 1999 Oversigt Grafiske brugergrænseflader. Komponenter: Knapper, tekstfelter, checkbokse... Vinduer (containere). Hændelser, hændelsesstyret programmering.

Læs mere

METODER ARV KLASSER. Grundlæggende programmering Lektion 5

METODER ARV KLASSER. Grundlæggende programmering Lektion 5 METODER KLASSER ARV Grundlæggende programmering Lektion 5 1 METODER Sekvenser af kode om samme emne 2 REPETITION Række af statements der udfører en handling Mindst én metode der hedder main Forskellen

Læs mere

I profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller

I profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller Upload fil Upload fil skal ses som et alternativ til at indsende tællefiler vedhæftet til mails Upload fil kan være en hurtigere og mere håndholdt måde at få data ind i Mastra på. Man starter med via Gennemse

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3 DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget

Læs mere

Abstrakte datatyper C#-version

Abstrakte datatyper C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype

Læs mere

dintprog Manual Revision: 731 September 30, 2009 1 Introduktion 3 1.1 Notation... 3 I Begreber 4 2 Grundbegreber om programmering 4

dintprog Manual Revision: 731 September 30, 2009 1 Introduktion 3 1.1 Notation... 3 I Begreber 4 2 Grundbegreber om programmering 4 dintprog Manual Revision: 731 September 30, 2009 Indhold 1 Introduktion 3 1.1 Notation................................. 3 I Begreber 4 2 Grundbegreber om programmering 4 3 Grundbegreber om modellering

Læs mere

Google App Engine. Google App Engine som platform. Claus Myglegaard Vagner og Jacob von Eyben

Google App Engine. Google App Engine som platform. Claus Myglegaard Vagner og Jacob von Eyben GoogleAppEngine GoogleAppEnginesomplatform ClausMyglegaardVagnerogJacobvonEyben Abstract CloudcomputingerenteknologidervinderfremidengenerelleITinfrastruktur. SocialemediersåsomLinkedIn,TwitterogFacebookharøgetbehovetfor

Læs mere

Beskrivelse af SFTP kommunikation mellem NS og det eksterne fagsystem.

Beskrivelse af SFTP kommunikation mellem NS og det eksterne fagsystem. Side 1 af 6 Navision Stat 5.2.01 ØKO/SKH Den 10.05.11 Beskrivelse af SFTP kommunikation mellem NS 5.2.01 og det eksterne fagsystem. Overblik Introduktion Dokumentet indeholder en beskrivelse af overførsel

Læs mere

Eksempel på en database: studenter, kurser, eksamener

Eksempel på en database: studenter, kurser, eksamener Udvidet Programmering 1999 Forelæsning 20, fredag 12. november 1999 Relationsdatabaser: relationer, tupler, attributter Forespørgselssproget SQL Databasesystemet PostgreSQL Tilgang til relationsdatabaser

Læs mere

SigmaT.

SigmaT. Java + Groovy Disposition Om SigmaT Eksempel på indlejring af Groovy Overvågning af PEM Ønske om dynamisk loaded Java uden at fifle med classloaderen Groovy til hjælp Opsamling hvad jeg ikke har fortalt

Læs mere

Real-time programming safety in Java and Ada

Real-time programming safety in Java and Ada Real-time programming safety in Java and Ada Bo Sandén Presenter: Thomas Bøgholm 25. oktober 2007 Forfatteren Artiklen Synkroniserings Begreber Bo Sandén Professor på Colorado Technical University Beskæftiger

Læs mere

Tree klassen fra sidste forelæsning

Tree klassen fra sidste forelæsning Programmering 1999 Forelæsning 12, fredag 8. oktober 1999 Oversigt Abstrakte klasser. Grænseflader. Programmering 1999 KVL Side 12-1 Tree klassen fra sidste forelæsning class Tree { int age; // in years

Læs mere

Servlets, Tomcat & BlueJ

Servlets, Tomcat & BlueJ Servlets, Tomcat & BlueJ Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 05.october 2007 Hvad er Servlets: For at forstå det, må vi først få styr på to begreber, nemlig statiske og dynamiske hjemmesider

Læs mere

Polymorfi. Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type. Coercion

Polymorfi. Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type. Coercion Polymorfi Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type Coercion Tvangskonvertering (forfremmelse og begrænsning) Oversigt Abstrakt klasse abstrakt

Læs mere

Klasser og objekter. (Afsnit i manualen)

Klasser og objekter. (Afsnit i manualen) Klasser og objekter (Afsnit 4 + 5 i manualen) Grundbegreber Klasser og objekter beskrivelse oprettelse Attributter og metoder tilstand opførsel Indkapsling afskærmning datarepræsentationsuafhængighed Klasser

Læs mere

Om binære søgetræer i Java

Om binære søgetræer i Java Om binære søgetræer i Java Mads Rosendahl 7. november 2002 Resumé En fix måde at gemme data på er i en træstruktur. Måden er nyttig hvis man får noget data ind og man gerne vil have at det gemt i en sorteret

Læs mere

DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/

DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ DM502 Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!

Læs mere

Webserverprogrammering

Webserverprogrammering Webserverprogrammering WSP fortsat - dag 11 Behandling af XML (StAX) Syndikering og RSS med XML JAXB - XML Java-objekter Projekthjælp Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html

Læs mere

Navision Stat 5.4. Beskrivelse af SFTP kommunikation mellem NS 5.4 og det eksterne fagsystem. Overblik. Side 1 af 6

Navision Stat 5.4. Beskrivelse af SFTP kommunikation mellem NS 5.4 og det eksterne fagsystem. Overblik. Side 1 af 6 Side 1 af 6 Navision Stat 5.4 ØSY/SKH Opr. d. 10.05.11 Opd. d. 04.01.13 Beskrivelse af SFTP kommunikation mellem NS 5.4 og det eksterne fagsystem. Overblik Introduktion Dokumentet indeholder en beskrivelse

Læs mere

Overblik. Class Loader. Java. Class Libraries. Bytecode. Verifier Java. Source (.java) Just in Time Compiler. Java

Overblik. Class Loader. Java. Class Libraries. Bytecode. Verifier Java. Source (.java) Just in Time Compiler. Java OOP1 Java intro. Klasser, objekter, interfaces, nedarvning, Association, Aggregation og Composition mvh. Try and catch exceptions. Package Intro. til jar filer. Overblik Compile-time Environment Run-time

Læs mere

Dag 10 Flertrådet programmering

Dag 10 Flertrådet programmering Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,

Læs mere

Danmarks Tekniske Universitet Campus Service - Lyngby

Danmarks Tekniske Universitet Campus Service - Lyngby Danmarks Tekniske Universitet Campus Service - Lyngby Standard for oprettelse Gældende fra: 08. April 2014 Campus Service DTU Nils Koppels Allé DTU, Bygning 413 DK-2800 Kgs. Lyngby Lyngby Tlf +45 45 25

Læs mere

A Profile for Safety Critical Java

A Profile for Safety Critical Java A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren

Læs mere

9.8 Kildekode. side 88. Pakke Klasse Sidenummer. fortsætter..

9.8 Kildekode. side 88. Pakke Klasse Sidenummer. fortsætter.. 9.8 Kildekode Pakke Klasse Sidenummer db Aktivitetstype 91 Behandler 91 ConnectDB 92 DagensKommentar 93 Helligdag 94 IkkePrimaerTid 94 Patient 96 Patientaftale 96 PatientAktivitet 97 Patientgruppe 98 PatientgruppeItem

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Java syntax og style guide Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Brug

Læs mere

Kursus navn: Indledende programmering Kursus nr. 02101

Kursus navn: Indledende programmering Kursus nr. 02101 Danmarks Tekniske Universitet Side 1 af 8 sider Skriftlig prøve, den 15. december 2007 Kursus navn: Indledende programmering Kursus nr. 02101 Tilladte hjælpemidler: Alle skriftlige hjælpemidler Vægtning

Læs mere

Opsætning af VPN (ikke svært!!)

Opsætning af VPN (ikke svært!!) For at få adgang til GG-intra hjemmefra, skal du først skabe en ubrydelig VPN-tunnel mellem din hjemmepc og skolen. Selve VPN'en opsættes som udførligt forklaret i næste afsnit nedenfor. Når den er etableret

Læs mere

Forelæsning Uge 1 Torsdag

Forelæsning Uge 1 Torsdag Forelæsning Uge 1 Torsdag Objekters tilstand og opførsel Java og BlueJ Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Java's for løkke Parametre i metoder Forskellige

Læs mere

XML parsning i Java. Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM.

XML parsning i Java. Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM. Denne guide er oprindeligt udgivet på Eksperten.dk XML parsning i Java Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM. Den forudsætter kendskab til Java og XML.

Læs mere

Dvs. at give dit program muligheden for at loade og bruge plugins som andre har lavet.

Dvs. at give dit program muligheden for at loade og bruge plugins som andre har lavet. Denne guide er oprindeligt udgivet på Eksperten.dk Refleksion med.net Refleksion bruges til at undersøge klasser på runtime tidspunktet. Se hvordan du f.eks. loader en klasse fra en DLL, gennemkigger dens

Læs mere

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1. Programmering 1999 Forelæsning 4, fredag 10. september 1999 Klasser og objekter Felter, konstruktorer, this Eksempler på klasser: Time, Appointment Eksempler på metoder i Time og Appointment Klassefelter:

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet

Læs mere

Java Klasse nedarvninger

Java Klasse nedarvninger Denne guide er oprindeligt udgivet på Eksperten.dk Java Klasse nedarvninger Et let lille overblik i hvordan klasse nedarvning virker i java Skrevet den 07. dec 2011 af mochners I kategorien Programmering

Læs mere

1 Domæne 2 1.1 Design valg... 2 1.1.1 User... 2. 2 Klassediagran 5

1 Domæne 2 1.1 Design valg... 2 1.1.1 User... 2. 2 Klassediagran 5 INDHOLD 1 Domæne 2 1.1 Design valg.................................... 2 1.1.1 User.................................... 2 2 Klassediagran 5 3 Serbio 7 3.1 Kommunikation..................................

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Vinter 1998/99 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 16% Opgave 2 12% Opgave 3 10% Opgave

Læs mere

DM01 DM01. 4. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 13/5-2003. Side 1 af 7

DM01 DM01. 4. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 13/5-2003. Side 1 af 7 DM01 DM01 4. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 13/5-2003 Side 1 af 7 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DNA2:...4 2.1.1 METODER:...4

Læs mere

Indholdsfortegnelse for kapitel 3

Indholdsfortegnelse for kapitel 3 Indholdsfortegnelse for kapitel 3 Kapitel 3 Design............................................................ 2 Database........................................................... 3 ER-diagram.................................................

Læs mere

Computer netværk og TCP/IP protokoller. dcomnet 1

Computer netværk og TCP/IP protokoller. dcomnet 1 Computer netværk og TCP/IP protokoller dcomnet 1 Maskinarkitektur.. fokus på intern organisation af en enkelt computer: dcomnet 2 Computer netværk.. kommunikation mellem maskiner forbindet i et netværk:

Læs mere

Vejledning til listings-pakken

Vejledning til listings-pakken Vejledning til listings-pakken Morten Ovi latex@student.dtu.dk / 6. juli 2004 Indhold 1 Om listings-pakken 1 2 Indstilling af listings 2 3 listings-pakken i praksis 2 3.1 listings i teksten............................

Læs mere

Parallelle algoritmer

Parallelle algoritmer Parallelle algoritmer 1 Von Neumann s model John von Neumann 1903-57 Von Neumanns model: Instruktioner og data er lagret i samme lager, og én processor henter instruktioner fra lageret og udfører dem én

Læs mere

14.1 Internationale programmer

14.1 Internationale programmer 14.1 Internationale programmer Når et program skal anvendes af flere kulturer og sprog opstår behov for at programtekster, beløb og datoangivelser afhænger af landet og sproget, og man må i gang med at

Læs mere

Forelæsning Uge 1 Torsdag

Forelæsning Uge 1 Torsdag Forelæsning Uge 1 Torsdag Objekters tilstand og opførsel Java og BlueJ Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Java's for løkke Parametre i metoder Forskellige

Læs mere

Tabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations

Tabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations Tabelbegrebet Klassediagrammer (III) Tabeller og qualified associations originally by Michael R. Hansen modified/extended by Anne E. Haxthausen Informatics and Mathematical Modelling Technical University

Læs mere

Integrationsmanual. Anvendelse af webservice til kursusoversigt i Campus. Brugervejledning til udviklere

Integrationsmanual. Anvendelse af webservice til kursusoversigt i Campus. Brugervejledning til udviklere Integrationsmanual Anvendelse af webservice til kursusoversigt i Campus Brugervejledning til udviklere Moderniseringsstyrelsen Webservice manual til udviklere 2016 1 1. Indholdsfortegnelse Nyt kapitel

Læs mere

Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database

Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database Kursusbeskrivelse Oprettelse af en Access-database Som eksempel på en Access-database oprettes en simpelt system til administration af kurser. Access-databasen skal indeholde: et instruktørkartotek et

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 13 valgfrie emner Evt: Introduktion til J2EE og EJB Hvordan definere egne generics Evt.: Værktøjer til forbedring af kodekvalitet kodemetrikker og audit Projektvejledning

Læs mere

Forelæsning Uge 5 Mandag

Forelæsning Uge 5 Mandag Forelæsning Uge 5 Mandag Sortering ved hjælp af klassen Collections Ved hjælp af interfacet Comparable Ved hjælp af interfacet Comparator findbest som sorteringsproblem Køreprøven i uge 7 Form Forberedelse

Læs mere

Sekvensafstand DM34 - Eksamensopgave. Jacob Aae Mikkelsen

Sekvensafstand DM34 - Eksamensopgave. Jacob Aae Mikkelsen Sekvensafstand DM34 - Eksamensopgave Jacob Aae Mikkelsen 19 10 76 kokken@grydeske.dk 27. maj 2005 Resumé Rapporten her beskriver tre forskellige rekursive metoder til at sammenligne tekst strenge med.

Læs mere