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

Størrelse: px
Starte visningen fra side:

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

Transkript

1 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 godt kendskab til Java og til basal RMI. Skrevet den 16. Feb 2010 af arne_v I kategorien Programmering / Java Historie: V1.0-14/03/ original V1.1-16/02/ smårettelser Forudsætning For det basal RMI se: Problemerne Følgende praktiske problemer skal ofte løses for virkelige applikationer: 1) starte RMIRegistry sammen med server for at undgå at skulle starte 2 processer på server 2) kontrollere hvilke porte serveren lytter for at kunne lukke op for disse i firewall/router 3) bruge pakker og bundte klient og server i hver sin jar filer for nem distribution 4) sikre server og client mod misbrug 5) gøre det muligt for serveren at kalde klienten Løsningerne Problemerne løses ved: 1) lade serveren create registry 2) lade serveren bruge en socket factory med kendte porte 3) have 3 pakker common + client + server og 2 jar filer client.jar (med common + client) og server.jar (med common + server) 4) bruge security manager og policy fil

2 5) bruge callback mekanismen Eksempel Her kommer et eksempel som implementerer alle 5 løsninger. Eksemplet er et simpelt halvfærdigt chat framework. Der er kommentarer i koden hvor det interessante sker. MyClient.java package test.common; import java.rmi.remote; // client interface public interface MyClient extends Remote { public void notify(string msg) throws RemoteException; MyClientImpl.java package test.client; import java.rmi.server.unicastremoteobject; import test.common.myclient; // client implementation public class MyClientImpl extends UnicastRemoteObject implements MyClient { public MyClientImpl() throws RemoteException { public void notify(string msg) { System.out.println(msg); MyClientMain.java package test.client; import java.net.malformedurlexception; import java.rmi.naming;

3 import java.rmi.notboundexception; import java.rmi.rmisecuritymanager; import test.common.myclient; import test.common.myserver; // client hoved program public class MyClientMain { public static void main(string[] args) { try { // enable security System.setSecurityManager(new RMISecurityManager()); // lookup remote server MyServer srv = (MyServer) Naming.lookup("rmi://" + args[0] + ":60000/MyServer"); // create client object og registrer på server MyClient cli = new MyClientImpl(); srv.register(cli); // test call srv.send("a"); srv.send("bb"); srv.send("ccc"); // afregistrer srv.unregister(cli); // afslut System.exit(0); catch (MalformedURLException e) { catch (RemoteException e) { catch (NotBoundException e) { MyServer.java package test.common; import java.rmi.remote; // server interface public interface MyServer extends Remote { public void send(string msg) throws RemoteException; public void register(myclient c) throws RemoteException; public void unregister(myclient c) throws RemoteException;

4 MyServerImpl.java package test.server; import java.util.list; import java.util.arraylist; import java.rmi.server.unicastremoteobject; import test.common.myserver; import test.common.myclient; // server implementation public class MyServerImpl extends UnicastRemoteObject implements MyServer { private List list; public MyServerImpl() throws RemoteException { list = new ArrayList(); // send message til alle client public void send(string msg) throws RemoteException { synchronized(list) { for(int i = 0; i < list.size(); i++) { MyClient c = (MyClient)list.get(i); c.notify(msg); // registrer client public void register(myclient c) { synchronized(list) { list.add(c); System.out.println("Number of clients: " + list.size()); // afregistrer client public void unregister(myclient c) { synchronized(list) { list.remove(c); System.out.println("Number of clients: " + list.size()); MyServerMain.java package test.server; import java.io.ioexception; import java.net.malformedurlexception; import java.rmi.naming;

5 import java.rmi.rmisecuritymanager; import java.rmi.server.rmisocketfactory; import java.rmi.registry.locateregistry; // server hoved program public class MyServerMain { public static void main(string[] args) { try { // enable security System.setSecurityManager(new RMISecurityManager()); // sæt socket factory RMISocketFactory.setSocketFactory(new FixedPortRMISocketFactory()); // start registry LocateRegistry.createRegistry(60000); // bind server objekt Naming.rebind("rmi://localhost:60000/MyServer", new MyServerImpl()); catch (RemoteException e) { catch (MalformedURLException e) { catch (IOException e) { FixedPortRMISocketFactory.java package test.server; import java.io.ioexception; import java.net.socket; import java.net.serversocket; import java.rmi.server.rmisocketfactory; public class FixedPortRMISocketFactory extends RMISocketFactory { private static int socketnumber = 60000; // lav normal udgående socket public Socket createsocket(string host, int port) throws IOException { System.out.println("Connecting port : " + port); return new Socket(host, port); // lav indgående socket // hvis eksplicit bedt om bestent port så // brug den port // ellers // vælg en fortløbende port udfra basis porten public ServerSocket createserversocket(int port) throws IOException { if(port == 0) { socketnumber++;

6 port = socketnumber; System.out.println("Listening port : " + port); return new ServerSocket(port); socket.policy // grant alle indgående og udgående socket (kunne godt restrictes mere med // specifik adresse og port!) // grant mulighed for at sætte socket factory grant { permission java.net.socketpermission "*:*", "connect,accept,resolve"; permission java.lang.runtimepermission "setfactory"; ; build.bat rem compile java -> class javac -classpath. test\common\*.java javac -classpath. test\server\*.java javac -classpath. test\client\*.java rem compile implementation class -> stub & skeleton class rmic -classpath. test.server.myserverimpl rmic -classpath. test.client.myclientimpl rem create jar filer jar cf client.jar test\common\*.class test\client\*.class test\server\*stub.class jar cf server.jar test\common\*.class test\server\*.class test\client\*stub.class server.bat rem Angiv classpath til jar fil rem Angiv policy fil rem Angiv serverens eksterne navn java -classpath server.jar -Djava.security.policy=socket.policy -Djava.rmi.server.hostname=xxx.domain.dk test.server.myservermain client.bat

7 rem Angiv classpath til jar fil rem Angiv policy fil rem Angiv serverens eksterne navn java -classpath client.jar -Djava.security.policy=socket.policy test.client.myclientmain xxx.domain.dk Noter socket.policy kan strammes lidt mere op med en clientsocket.policy som kun tillader serverens adresse (xxx.domain.dk) og en serversocket.policy som kun tillader relevante port ( ). Da serveren connecter til RMIRegistry så er det vigtigt at navnet xxx.domain.dk også virker på indvendig side af firewall/router. RMISocketFactory kan også bruges til at lade kommunikationen gå over SSL sockets. Oprindeligt var RMI tænkt til at kunne bruges fra applets med enkeltstående class filer og derfor anbefaler SUN dokumentation normalt at man ikke putter stubs i normalt classpath men downloader dem fra en web server ved at angive -Djava.rmi.server.codebase= Det kan jeg ikke se den helt store pointe i ved en client applikation og brug af jar filer. Og til applets vil jeg ofte anbefale HTTP fremfor RMI. Men hvis vi snakker applets så husk tricket. Kommentar af simonvalter d. 15. Mar God artikel, besvarer en masse spørgsmål som jeg selv har siddet og rodet med tidligere. Kommentar af dna d. 18. Mar Artiklen omhandler nogle kendte problemer fra Java! - Artiklen indeholder nok kode til, at man selv er igang på kort tid! Good job!

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

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

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

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

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

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

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

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

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

Test med JUnit 3. Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det.

Test med JUnit 3. Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det. Denne guide er oprindeligt udgivet på Eksperten.dk Test med JUnit 3 Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab

Læs mere

Singleton pattern i C#

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

Læs mere

Introduktion til ant. Denne artikel beskriver Apache ant, som er et værktøj til at builde Java applikationer med.

Introduktion til ant. Denne artikel beskriver Apache ant, som er et værktøj til at builde Java applikationer med. Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til ant Denne artikel beskriver Apache ant, som er et værktøj til at builde Java applikationer med. Den beskriver nogle af de mest brugte

Læs mere

Note om RMI af Peter Kjærsgaard

Note om RMI af Peter Kjærsgaard 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

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

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

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

Logging i Java. Den forudsætter kendskab til Java og noget generel udviklings erfaring. Denne guide er oprindeligt udgivet på Eksperten.

Logging i Java. Den forudsætter kendskab til Java og noget generel udviklings erfaring. Denne guide er oprindeligt udgivet på Eksperten. Denne guide er oprindeligt udgivet på Eksperten.dk Logging i Java Denne artikel beskriver baggrunden for logging frameworks og viser hvordan man bruger 2 af de mest almindelige: Apache Log4J og J2SE/Java

Læs mere

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Denne guide er oprindeligt udgivet på Eksperten.dk Prepared Statements Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Skrevet den 18. Feb 2010

Læs mere

Den forudsætter kendskab til XML og C# men ikke til brug af XML i C#.

Den forudsætter kendskab til XML og C# men ikke til brug af XML i C#. Denne guide er oprindeligt udgivet på Eksperten.dk Brug af XML i C# Denne artikel vil vise lidt om hvordan man kan bruge XML i C#. Den forudsætter kendskab til XML og C# men ikke til brug af XML i C#.

Læs mere

Forskellige Java versioner

Forskellige Java versioner Denne guide er oprindeligt udgivet på Eksperten.dk Forskellige Java versioner Denne artikel beskriver lidt om de forskellige Java versioner. Den forklarer J2SE/J2ME/J2EE, plugin/jre/sdk og Sun Java/Microsoft

Læs mere

Nye Java XML API'er

Nye Java XML API'er Denne guide er oprindeligt udgivet på Eksperten.dk Nye Java XML API'er Denne artikel beskriver nye XML features i Java 1.6 - StAX og JAXB, samt XStreams. Den forudsætter kendskab til Java og brug

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

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

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API. Denne guide er oprindeligt udgivet på Eksperten.dk Brug af MySQL i C++ Denne artikel bygger ovenpå artiklen "MySQL C API" og forklarer hvordan man kan programmere mere objekt orienteret. Den forudsætter

Læs mere

Geografisk lokalisering i JSP

Geografisk lokalisering i JSP Denne guide er oprindeligt udgivet på Eksperten.dk Geografisk lokalisering i JSP Denne artikel forklarer lidt om hvorfor og hvordan man laver geografisk lokalisering og viser noget kode. Der er andre artikler

Læs mere

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Der findes en tilsvarende artikel med

Læs mere

Bits, bit operationer, integers og floating point

Bits, bit operationer, integers og floating point Denne guide er oprindeligt udgivet på Eksperten.dk Bits, bit operationer, integers og floating point Denne artikel beskriver hvordan data gemmes som bits og hvordan man kan manipulere med bits. Den forudsætter

Læs mere

Tilfældige tal. Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge.

Tilfældige tal. Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge. Denne guide er oprindeligt udgivet på Eksperten.dk Tilfældige tal Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge. Den forudsætter

Læs mere

applikation----x----odbc driver manager----foobar ODBC driver----foobar database

applikation----x----odbc driver manager----foobar ODBC driver----foobar database Denne guide er oprindeligt udgivet på Eksperten.dk ODBC i C/C++ Denne artikel beskriver hvordan man bruger ODBC i C/C++. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab

Læs mere

Nye features i Java 1.7/7.0

Nye features i Java 1.7/7.0 Denne guide er oprindeligt udgivet på Eksperten.dk Nye features i Java 1.7/7.0 Denne artikel beskriver nye features i Java 1.7/7.0, som blev releaset 28. juli 2011. Den forudsætter et vist kendskab til

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

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

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

Offset til terminalskærm i Java

Offset til terminalskærm i Java Denne guide er oprindeligt udgivet på Eksperten.dk Offset til terminalskærm i Java Ikke en atikkel - men en Classe til java der gør det nemt at skrive ud på avancerede måder når man kun opererer i dosvindue.

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

Hvilket sprog er hurtigst

Hvilket sprog er hurtigst Denne guide er oprindeligt udgivet på Eksperten.dk Hvilket sprog er hurtigst Denne artikel forsøger at aflive forskellige myter om hvilke sprog der er hurtigst. Den forudsætter ikke noget særligt. Skrevet

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

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

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

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

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

Java web applikationer med Tomcat

Java web applikationer med Tomcat Denne guide er oprindeligt udgivet på Eksperten.dk Java web applikationer med Tomcat Denne artikel beskriver hvordan man kan konfigurere container managed security og en database connection pool i Tomcat.

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

I denne artikel vil vi bruge en User klasse som vi så vil gruppere på forskellige måder.

I denne artikel vil vi bruge en User klasse som vi så vil gruppere på forskellige måder. Denne guide er oprindeligt udgivet på Eksperten.dk Collections i.net Når du kigger i namespacet System.Collections finder du over 10 forskellige klasser. At vælge den rigtige til netop din applikations

Læs mere

J2EE for begyndere. Denne artikel introducerer J2EE. Den fortæller lidt om de forskellige teknologier i J2EE og kommer med små simple eksempler.

J2EE for begyndere. Denne artikel introducerer J2EE. Den fortæller lidt om de forskellige teknologier i J2EE og kommer med små simple eksempler. Denne guide er oprindeligt udgivet på Eksperten.dk J2EE for begyndere Denne artikel introducerer J2EE. Den fortæller lidt om de forskellige teknologier i J2EE og kommer med små simple eksempler. Den forudsætter

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

MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.

MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Denne guide er oprindeligt udgivet på Eksperten.dk MySQL C API Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab

Læs mere

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til VB.NET og ADO.NET. Der findes en tilsvarende artikel

Læs mere

Den forudsætter kendskab til XML og VB.NET men ikke til brug af XML i VB.NET.

Den forudsætter kendskab til XML og VB.NET men ikke til brug af XML i VB.NET. Denne guide er oprindeligt udgivet på Eksperten.dk Brug af XML i VB.NET Denne artikel vil vise lidt om hvordan man kan bruge XML i VB.NET. Den forudsætter kendskab til XML og VB.NET men ikke til brug af

Læs mere

Geografisk lokalisering i ASP.NET

Geografisk lokalisering i ASP.NET Denne guide er oprindeligt udgivet på Eksperten.dk Geografisk lokalisering i ASP.NET Denne artikel forklarer lidt om hvorfor og hvordan man laver geografisk lokalisering og viser noget kode. Der er andre

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

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

Nye features i Java 1.5/5.0

Nye features i Java 1.5/5.0 Denne guide er oprindeligt udgivet på Eksperten.dk Nye features i Java 1.5/5.0 Denne artikel beskriver nye features i Java 1.5/5.0, som lige er kommet i final (ikke-beta) udgave. Den forudsætter et vist

Læs mere

JNI. Denne artikel beskriver JNI (Java Native Interface) som er måden hvorpå Java kan kalde native kode.

JNI. Denne artikel beskriver JNI (Java Native Interface) som er måden hvorpå Java kan kalde native kode. Denne guide er oprindeligt udgivet på Eksperten.dk JNI Denne artikel beskriver JNI (Java Native Interface) som er måden hvorpå Java kan kalde native kode. Den viser et simpelt eksempel og forklarer hvordan

Læs mere

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen. Indledning...2 Variabler...13 Eksempel: 1...13 Eksempel 2:...13 Eksempel 3:...15 Eksempel 4:...16 Metoder...17 Metode (intet ind og intet ud)...17 Metode (tekst ind)...18 Metode (tekst ind og tekst ud)...19

Læs mere

Database design for begyndere

Database design for begyndere Denne guide er oprindeligt udgivet på Eksperten.dk Database design for begyndere Denne artikel beskriver hvordan man kommer fra ide til database design. Den stopper inden normal former. Den forudsætter

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

Datalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 - forstå datastrukturer og algoritmer (teoretisk forståelse og intuition)

Datalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 - forstå datastrukturer og algoritmer (teoretisk forståelse og intuition) Datalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 Datastrukturer og algoritmer Henning Christiansen henning@ruc.dk http://www.ruc.dk/~henning Formål: at kunne - forstå datastrukturer og algoritmer

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

Specifikationsdokument for PDF Validator API

Specifikationsdokument for PDF Validator API Nets DanID A/S Lautrupbjerg 10 DK 2750 Ballerup T +45 87 42 45 00 F +45 70 20 66 29 info@danid.dk www.nets-danid.dk CVR-nr. 30808460 Specifikationsdokument for PDF Validator API DanID A/S 17. august 2012

Læs mere

Test med NUnit. Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det.

Test med NUnit. Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det. Denne guide er oprindeligt udgivet på Eksperten.dk Test med NUnit Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab

Læs mere

Introduktion til AOP i C#

Introduktion til AOP i C# Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til AOP i C# Denne artikel giver en introduktion AOP (Aspect Oriented Programming) i C#. Den forudsætter et pænt kendskab til programmering,

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

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

Specifikationsdokument for PDF Validator API

Specifikationsdokument for PDF Validator API Nets DanID A/S Lautrupbjerg 10 DK 2750 Ballerup T +45 87 42 45 00 F +45 70 20 66 29 www.nets.dk CVR-nr. 30808460 Specifikationsdokument for PDF Validator API DanID A/S december 2016 Side 1-8 Indholdsfortegnelse

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

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Denne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS.

Denne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS. Denne guide er oprindeligt udgivet på Eksperten.dk XML i ASP Denne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS. Den forudsætter

Læs mere

Hvilket sprog skal jeg lære?

Hvilket sprog skal jeg lære? Denne guide er oprindeligt udgivet på Eksperten.dk Hvilket sprog skal jeg lære? Denne artikel snakker lidt løst og fast om den kendte problem stilling med hvilket sprog man skal lære (generelle programmerings

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

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

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

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

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

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

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

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

IT projekt person galleri

IT projekt person galleri Denne guide er oprindeligt udgivet på Eksperten.dk IT projekt person galleri Denne artikel forsøger at forklare lidt om hvilke funktioner der ligger bag ved de forskellige titler som deltagerne i et IT

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

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2013 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 5. marts, 2013 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

Undtagelseshåndtering i C#

Undtagelseshåndtering i C# Denne guide er oprindeligt udgivet på Eksperten.dk Undtagelseshåndtering i C# I modsætning til C++ kan man i C# ikke skrive et program uden undtagelseshåndtering, så derfor har jeg skrevet denne guide

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

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

Mere om tilfældige tal

Mere om tilfældige tal Denne guide er oprindeligt udgivet på Eksperten.dk Mere om tilfældige tal Denne artikel bygger oven på den forrige artikel om tilfældige tal. Den forudsætter at man har læst den forrige artikel og har

Læs mere

Introduktion til NAnt

Introduktion til NAnt Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til NAnt Denne artikel beskriver NAnt, som er et værktøj til at builde.net applikationer med. Den beskriver nogle af de mest brugte NAnt

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

CVS som KS-værktøj E3-104. Branching, Merging m.v.

CVS som KS-værktøj E3-104. Branching, Merging m.v. CVS som KS-værktøj E3-104 Branching, Merging m.v. Gennemgang af Oprettelse af CVS-træ Tilføj filer Commit Fil forskelle Merging Branching Ekstra værktøjer Avanceret Oprettelse af CVS-træ report graphics

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

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 3 Skabende designmønstre Skabende designmønstre: Fabrikeringsmetode/Fabrik, Singleton, Abstrakt fabrik (Toolkit), Prototype, Objektpulje Eksempel: Forskellige slags

Læs mere

I denne artikel vil jeg gennemgå hvordan en side for RSS "Live Bogmærke" kan se ud.

I denne artikel vil jeg gennemgå hvordan en side for RSS Live Bogmærke kan se ud. Denne guide er oprindeligt udgivet på Eksperten.dk RSS "Live Bogmærke" I denne artikel vil jeg gennemgå hvordan en side for RSS "Live Bogmærke" kan se ud. Skrevet den 10. Feb 2009 af madsass I kategorien

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

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

CodeDOM - Dynamisk generering og kompilering af kode

CodeDOM - Dynamisk generering og kompilering af kode Denne guide er oprindeligt udgivet på Eksperten.dk CodeDOM - Dynamisk generering og kompilering af kode Med CodeDOM kan man på runtime generere kode, kompilere det og derefter afvikle det. I denne artikel

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

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 6 Mandag

Forelæsning Uge 6 Mandag Forelæsning Uge 6 Mandag Tingene i denne forelæsning er ikke eksamenspensum Forelæsningen afrunder kurset, og forklarer nogle af de begreber, som I har mødt under kurset uden at få detaljeret forklaring

Læs mere

Sikker netværkskommunikation

Sikker netværkskommunikation Eksamensprojekt IT Sikker netværkskommunikation Af Nicklas Bo Jensen Klasse 3.4 RTG Vejleder: Piotr Dzierzynsky Side 1 af 14 Indholdsfortegnelse Indledning... 3 Netværk... 4 Sniffing... 4 Løsning... 6

Læs mere

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk Denne guide er oprindeligt udgivet på Eksperten.dk Database tips Denne artikel vil give nogle forskellige små praktiske råd om ting man skal tænke på når man arbejder med databaser og applikationer som

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2015 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 3. marts, 2015 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere