RMI med BlueJ. Tutorial lavet af Jákup W. Hansen TSU semester 11. desember 2007
|
|
|
- Ada Mølgaard
- 10 år siden
- Visninger:
Transkript
1 RMI med BlueJ Tutorial lavet af Jákup W. Hansen TSU 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 skal arbejde sammen. Så kan man sagtens bruge socket programmering. Men når programmerne bliver mere og mere kompliceret og man ønsker også at det skal kunne udvikle sig efter at det er taget i brug, så er socket programmering noget bøvlet. Med socket skal VI nemlig holde styr på det hele. Hvis vi ønsker at kalde et objekt hos en anden applikation/maskine, så må vi sende en besked og i denne besked må der ligge en beskrivels af hvad objekt og metode vi ønsker at kalde, og så må modtageren selvfølgelig også læse denne besked og gøre det vi beder om. Sagt på en anden måde, når man arbejder med socket programmering, så skal vi lave hele protokollen, dvs. med ifsætninger skal vi modtage tekst og så pege vider på metoderne. Man kan set at der kommer et extra lag når vi bruger socket, nemlig det lag som modtager og sender beskeder. RMI fjerner helt dette lag/protokol. Det resulterer i, at når jeg har fået et objekt som ligger på en anden maskine (et remot objekt), så kalder jeg bare direkte de metoder som jeg ønsker, lige som om det var et objekt som jeg havde lokalt på min maskine. Det gør programmeringsarbejdet noget nemmere, og vi kan bevare fokus på det abstraktions nivo som er vigtigt og ikke skulle ned i detaljerne/protokollen. Hvis du ikke kan se det smarte med RMI så skyldes det nok at du ikke har arbejdet nok med sockets, fordi det er kompliceret for RMI at holde styr på alle de Remote Objekter som ligger over hele verdenen, således at jeg kan bruge dem som om de ligger lokalt. Vi skal slet ikke gå ind i hvordan RMI gør alt dette, men hvis man ikke sætter pris på det vi får fra RMI, så håber jeg at denne gennemgang vil hjælpe på det. BlueJ: Er et udviklingsværktøj som er gratis, og som er lavet til undervisningsbrug. Det kan hents fra 1
2 Java JDK: Når man bruger RMI er det meget forskellig hvordan koden skrives og hvordan man kompiler, alt afhængig af hvilken JDK man bruger. I denne tutorial bruger vi den nyeste, som medfører at der hverken bruges (synlig for os) Skeletons eller Stubs, og det gør det arbejde med RMI meget nemmer. Dertil behøver vi heller ikke at bruge en speciel RMI kompiler, som man måte bruge før. Se hvordan min opsætning ser ud i BlueJ. 2
3 Der er en god foklaring på wikipedia om udvikling, jeg har taget noget af den ned og markeret det som jeg syns er mest relevant i denne her diskusion. Java remote method invocation From Wikipedia, the free encyclopedia A typical implementation model of Java-RMI using Stub and Skeleton objects. Since Java 2 SDK, Standard Edition, v1.2 there is no need of Skeleton. The Java Remote Method Invocation API, or Java RMI, is a Java application programming interface for performing the object equivalent of remote procedure calls. There are two common implementations of the API. The original implementation depends on Java Virtual Machine (JVM) class representation mechanisms and it thus only supports making calls from one JVM to another. The protocol underlying this Javaonly implementation is known as Java Remote Method Protocol (JRMP). In order to support code running in a non-jvm context, a CORBA version was later developed. Usage of the term RMI may denote solely the programming interface or may signify both the API and JRMP, whereas the term RMI-IIOP, read RMI over IIOP, denotes the RMI interface delegating most of the functionality to the supporting CORBA implementation. The original RMI API was generalized somewhat to support different implementations, such as an HTTP transport. Additionally, work was done to CORBA, adding a pass by value capability, to support the RMI interface. Still, the RMI-IIOP and JRMP implementations are not fully identical in their interfaces. The package name is java.rmi. Note that with Java versions up to 5.0 it was necessary to compile RMI stubs in a separate compilation step using rmic. Version 5.0 of Java and beyond no longer require this step. 1 August All text is available under the terms of the GNU Free Documentation License. (See Copyrights for details.) Wikipedia is a registered trademark of the Wikimedia Foundation, Inc., a U.S. registered 501(c)(3) tax-deductible nonprofit charity. Your continued donations keep Wikipedia running! 3
4 Eksempel 1: Det første eksempel bruger 2 servere og 1 klient. Hvor næste eksempel, som kommer efter dette, har 1 server og 2 klienter,,,men det kommer vi til. Koden følger her, men jeg vil ikke gå ind i Koden, fordi den har selv rimeligt gode beskrivelser. Men lad mig først vise hvordan klasse-diagrammet ser ud i BlueJ. 4
5 Så er det koden... //Server. import java.rmi.*; import java.util.vector; import java.rmi.regis.*; Server public class Server private final String HOST1 = "localhost:2002"; //Vi bruger localhost fordi alt kører på én pc, men hvis du skal kommuniker med // en anden pc, så må du skriv dens ip addresse her, efterfulgt af :2002. private KontoObjektet KONTO; public Server() throws Exception KONTO = new KontoObjektet(); LocateRegis.createRegis(2002); //Starter er RMIRegis med PORT String rmiobjectname = "rmi://" + HOST1 + "/Account"; //vi giver vores objekt det samme navn som Server2, Naming.rebind(rmiObjectName,KONTO); //det kan vi fordi der er // to rmiregis en på port 2002 og en på System.out.println("Binding complete...\n"); public int henttal () return KONTO.interfaceGetTal(); catch(exception ex) return 0; public void ændretal(int t) KONTO.interfacePlus(t); System.out.println("SERVEREN har ændret værdien, som nu er: " + henttal()); catch(exception ex) 5
6 import java.rmi.*; import java.util.vector; import java.rmi.regis.*; Server2 public class Server2 private final String HOST2 = "localhost:2007"; private KontoObjektet KONTO; public Server2() throws Exception LocateRegis.createRegis(2007); KONTO = new KontoObjektet(); String rmiobjectname2 = "rmi://" + HOST2 + "/Account"; //Could omit host name, since 'localhost' would be //assumed by default. Naming.rebind(rmiObjectName2,KONTO); System.out.println("Binding complete...\n"); public int henttal2 () return KONTO.interfaceGetTal(); catch(exception ex) return 0; public void ændretal2(int t) KONTO.interfacePlus(t); System.out.println("SERVEREN 2 har ændret værdien, som nu er: " + henttal2()); catch(exception ex) KontoObjektet //Implementation of RMI interface. import java.rmi.*; import java.rmi.server.*; //Det er denne klasse vi laver ét objekt af i Bank1Server, som bliver det //objekt vi deler med clienten. I interfacet Bank1 har vi lovet at lave //2 metoder pluss() og gettal(), men her kan du også se at vi har lagt en //field med navnet TAL til, det kan man ikke se i interfacet. Så det er faktisk //ikke kun metoderne vi deles om, men selve objektet med både metoder og fields. public class KontoObjektet extends UnicastRemoteObject implements Konto private int TAL; public KontoObjektet ()throws RemoteException TAL = 5; public void interfaceplus(int tal) throws RemoteException TAL = tal+tal; public int interfacegettal() throws RemoteException return TAL; 6
7 Konto //RMI interface. import java.rmi.*; import java.util.vector; public interface Konto extends Remote public void interfaceplus(int tal ) throws RemoteException; public int interfacegettal() throws RemoteException; import java.rmi.*; public class Client private final String HOST1 = "localhost:2002"; private final String HOST2 = "localhost:2007"; Client private Konto KONTO1; private Konto KONTO2; public Client() KONTO1 = (Konto)Naming.lookup("rmi://" + HOST1 + "/Account"); //KONTO1 til Remote Objektet Account på port KONTO2 = (Konto)Naming.lookup("rmi://" + HOST2 + "/Account"); //KONTO2 til Remote Objektet Account på port System.out.println("KLIENTEN, har oprettet kontakt til begge Account objekter"); catch(connectexception conex) System.out.println("Unable to connect to server!"); System.exit(1); catch(exception ex) ex.printstacktrace(); System.exit(1); public int hentekonto1() return KONTO1.interfaceGetTal(); catch(exception ex) return 0; // se her,,,hvis vi ikke får fat på objektet, så returneres 0 public void ændrekonto1(int t) KONTO1.interfacePlus(t); System.out.println("KLIENTEN har ændret værdien, som nu er: " + hentekonto1()); catch(exception ex) public int hentekonto2() return KONTO2.interfaceGetTal(); catch(exception ex) return 0; // se her,,,hvis vi ikke får fat på objektet, så returneres 0 public void ændrekonto2(int t) KONTO2.interfacePlus(t); System.out.println("KLIENTEN 2 har ændret værdien, som nu er: " + hentekonto2()); catch(exception ex) 7
8 Sådan kører du eksempel 1: Start tre identiske projekter,,det vil se sådan ud... Du laver så som der vises, et objekt af Server, et af Server2 og et af Client, og alle i deres eget projekt. Det er vigtigt at det er 3 projektet. 8
9 Nu skal du ændre værdien på de Dist. Objekter ved at ændre i clienten. Du kan også ændre hos serveren hvis du vil. Og du ser at værdien ændres, og du kan/bør også kikke hos Serveren for at se, at de viser samme værdi som clienten. Det betyder at det må være samme objekt vi snakker med. Her har du fat i hovedfiduse med RMI. For at gøre det endnu klarere, prøv så og luk Clienten ned, som billedet viser. Lav så et nyt client objekt, og kald så hentkonto1() og hentkonto2() metoderne, og du vil se at værdien stadigvæk er den samme. Du kan også lave flere client objekter, og de vil alle vise det samme. Og ændrer du i værdien fra en client så gælder den for samtlige clienter og Serveren selvfølgelig. Det vigtigste for dig at forstå her er, at det har ingen indflydelse om clienten/clienterne lukker ned, det remote/dist. Objekt lever fint videre alligevel. Jeg håber at du forstår bedre hvordan det hele hænger sammen. Men lad os lige lave en test mere. 9
10 Her bygger vi vider på det som vi allerede har kørende. Altså vi har de tre Projekter kørende ligesom før. Først skal du Reset Machine Server1 objektet, det resulterer i at det hele i dette projekt bliver fjernet. Så skal vi...se efterfølgende billede. 10
11 Hvis du nu prøver at kalde det objekt som tilhører det projekt som du lige har lukket/resettet i mit tilfælde er det hentkonto1() så vil den returnere 0, som er det samme som at clienten ikke har fået fat på objektet se koden. Og det er også logisk, fordi objektet er væk. Nu skal vi gå over til det næste eksempel, som ligner en del, men dog viser med mere tydelighed nogle facetter som ikke kommer 100% frem her... 11
12 Eksempel 2: Dette eksempel ligner som sagt meget det første eksempel, men har i stedet for 2 servere kun én server men så 2 clienter i stedet for en. Så man kan sige at dette eksempel er en spejling af det første. Men vi får belyst noget tydeligere, hvor referencerne ligger, og vi skal også i dette eksempel SENDE referencer rundt, og vise at disse referencer også er Remote objekter. Det er faktisk fantastisk at det kan lade sig gøre,,,lad os starte. Før skal du se Klasse-Diagrammet. Så skal vi se koden, og lige som før, så vil jeg ikke diskutere koden, også fordi der er tekst i koden til at beskriv det vigtigst. 12
13 import java.rmi.*; import java.rmi.server.*; import java.util.vector; import java.rmi.regis.*; Server public class Server extends UnicastRemoteObject implements ServerInterface private static final String HOST = "localhost"; //Grunden til at vi ikke skal skrive portnummer dvs. localhost:1099 er ClientInterface client1; //kommer af at 1099 er standard port ligesom 80 er det for websider. ClientInterface client2; public Server() throws RemoteException LocateRegis.createRegis(1099); String rmiobjectname = "rmi://" + HOST + "/Connection"; Naming.rebind(rmiObjectName, this); System.out.println("Binding complete...\n"); catch(exception e) public void bindclient(clientinterface c) throws RemoteException if(client1 == null) client1 = c; String navn = c.getnavn(); System.out.println("SERVEREN: " + navn + " is now Client1"); c.printtext("besked FRA SERVEREN: You are now Client1"); else client2 = c; String navn = c.getnavn(); System.out.println("SERVEREN: " + navn + " is now Client2"); c.printtext("besked FRA SERVEREN: You are now Client2"); catch(exception e) public void ConnectClients() throws RemoteException client1.setotherclient(client2); client2.setotherclient(client1); public ClientInterface getclient1() throws RemoteException return client1; public ClientInterface getclient2() throws RemoteException return client2; 13
14 import java.rmi.*; import java.util.vector; ServerInterface public interface ServerInterface extends Remote public void bindclient(clientinterface c) throws RemoteException; public ClientInterface getclient1() throws RemoteException; public ClientInterface getclient2() throws RemoteException; import java.rmi.*; import java.util.vector; ClientInterface public interface ClientInterface extends Remote public void bindmetoserver() throws RemoteException; public void printtext(string text) throws RemoteException; public void setotherclient(clientinterface c) throws RemoteException; public String getnavn() throws RemoteException; public void talktootherclient(string text) throws RemoteException; 14
15 import java.rmi.*; import java.rmi.server.*; import java.io.serializable; Client public class Client extends UnicastRemoteObject implements ClientInterface public String Navn; private static final String HOST = "localhost"; private ServerInterface server; private ClientInterface OtherClient; public Client(String navn) throws RemoteException Navn = navn; server = (ServerInterface)Naming.lookup("rmi://" + HOST + "/Connection"); System.out.println("Connection established"); catch(connectexception conex) System.out.println("Unable to connect to server!"); System.exit(1); catch(exception ex) ex.printstacktrace(); System.exit(1); public String getnavn() return Navn; public void bindmetoserver() throws RemoteException server.bindclient(this); public void printtext(string text) System.out.println("KLIENT: Jeg er: " + getnavn() + " Har modtaget denne besked: " +text); public void setotherclient(clientinterface c) OtherClient = c; System.out.println("KLIENT: Jeg er: " + getnavn() + " Har fået en klient at snakke med"); public void talktootherclient(string text) throws RemoteException OtherClient.printText(Navn + " says: " + text); 15
16 Sådan kører du eksempel 2: Lav 3 projekter af samme type. Og kør så en server og to klienter. Se billedet... Nu kan klienterne snakke sammen, fordi de har fået referencerne til hinanden fra serveren. Det er måske ikke så imponerende, men hvis du tænker over hvor nemt det ser ud i koden, fordi man bare kalder direkte på referencen. Men vi er ikke helt færdige endnu, vi mangler faktisk hele fidusen. Mens du stadigvæk har det hele kørende (alle 3 projekter) skal vi lave en ændring. Vi skal nemlig slukke serveren. Det kan man gøre ved enten at højreklikke på bjælken over server objektet o vælge Reset machine eller man kan lukke hele projektet ned ved at kke på overste højre kryds, det er ligemeget. 16
17 Det interessante her er, at Clienterne kan blive ved med at kommunikere selv efter at serveren er lukket helt ned. Vi bruger således i dette eksempel kun serveren til at etablere en forbindelse i mellem clienterne, og efter det er serveren overflødig. Man kan filosofere over hvordan det kan lade sig gøre, men det behøves vi ikke, vi skal bara vide at det er alt dette vi får serveret fra RMI. Når er objekt bliver til et Remote Objekt så kan man deles om det. Den måde hvorpå RMI ved om et objekt skal være Remote (et objekt vi deler) og ikke en kopi, er ved at klassen bruger UnicastRemoteObject, som siger RMI, at dette objekt er et Remote objekt. Resten klarer RMI. 17
18 RMI illustration: Tak for denne gang. Jákup Wenningstedt Hansen. 18
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
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
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
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
MySQL i Java. Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007
MySQL i Java Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007 Hvad er MySQL? Det er et database system, som er gratis for os at bruge. Det er lidt mere besværligt i starten at bruge
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
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øsning af skyline-problemet
Løsning af skyline-problemet Keld Helsgaun RUC, oktober 1999 Efter at have overvejet problemet en stund er min første indskydelse, at jeg kan opnå en løsning ved at tilføje en bygning til den aktuelle
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
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
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 [email protected]. Besvarelsen skal
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
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,
Google App Engine. Google App Engine som platform. Claus Myglegaard Vagner og Jacob von Eyben
GoogleAppEngine GoogleAppEnginesomplatform ClausMyglegaardVagnerogJacobvonEyben Abstract CloudcomputingerenteknologidervinderfremidengenerelleITinfrastruktur. SocialemediersåsomLinkedIn,TwitterogFacebookharøgetbehovetfor
Netværk & elektronik
Netværk & elektronik Oversigt Ethernet og IP teori Montering af Siteplayer modul Siteplayer teori Siteplayer forbindelse HTML Router (port forwarding!) Projekter Lkaa Mercantec 2009 1 Ethernet På Mars
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...
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
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
Side 1 af 9. SEPA Direct Debit Betalingsaftaler Vejledning
Side 1 af 9 SEPA Direct Debit Betalingsaftaler Vejledning 23.11.2015 1. Indledning Denne guide kan anvendes af kreditorer, som ønsker at gøre brug af SEPA Direct Debit til opkrævninger i euro. Guiden kan
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.
Citrix CSP og Certificate Store Provider
Project Name Document Title TDC Citrix Citrix og Certificate Store Provider Version Number 1.0 Status Release Author jkj Date 5-10-2006 Trademarks All brand names and product names are trademarks or registered
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
SEPA Direct Debit. Mandat Vejledning 2013.03.15. Nets Lautrupbjerg 10 DK-2750 Ballerup
SEPA Direct Debit Mandat Vejledning 2013.03.15 Nets Lautrupbjerg 10 DK-2750 Ballerup Indholdsfortegnelse 1. Indledning... 3 1.1 Tilknyttet dokumentation... 3 1.2 Kontakt til Nets... 3 2. Krav til SEPA
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.
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:
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
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
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
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:
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
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
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
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,
Implementing SNOMED CT in a Danish region. Making sharable and comparable nursing documentation
Implementing SNOMED CT in a Danish region Making sharable and comparable nursing documentation INTRODUCTION Co-operation pilot project between: The Region of Zealand Their EHR vendor - CSC Scandihealth
FairSSL Fair priser fair support
Microsoft IIS 6 Certifikat administration Følgende vejledning beskriver hvordan man installere et certifikat på en IIS 6 For support og hjælp til anvendelsen af denne vejledning kan du kontakte FairSSL
Design by Contract. Design and Programming by Contract. Oversigt. Prædikater
Design by Contract Design and Programming by Contract Anne Haxthausen [email protected] Informatics and Mathematical Modelling Technical University of Denmark Design by Contract er en teknik til at specificere
Operation Manual SMS Air Conditioner Remote Controller Model No.: SR-001
Operation Manual SMS Air Conditioner Remote Controller Model No.: SR-001 Ls venligst denne instruktions manual igennem inden brug af produktet Thank you for purchasing our product. This smart unit is not
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
Hosted CRM Outlook client connector setup guide. Date: Version: 1. Author: anb. Target Level: Customer. Target Audience: End User
Hosted CRM 2011 Outlook client connector setup guide Date: 2011-09-08 Version: 1 Author: anb Target Level: Customer Target Audience: End User Language: da-dk Page 1 of 19 LEGAL INFORMATION Copyright 2011
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
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
Skriftlig Eksamen Beregnelighed (DM517)
Skriftlig Eksamen Beregnelighed (DM517) Institut for Matematik & Datalogi Syddansk Universitet Mandag den 31 Oktober 2011, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger, notater etc.) samt brug af lommeregner
JEG GL DER MIG I DENNE TID PDF
JEG GL DER MIG I DENNE TID PDF ==> Download: JEG GL DER MIG I DENNE TID PDF JEG GL DER MIG I DENNE TID PDF - Are you searching for Jeg Gl Der Mig I Denne Tid Books? Now, you will be happy that at this
User Manual for LTC IGNOU
User Manual for LTC IGNOU 1 LTC (Leave Travel Concession) Navigation: Portal Launch HCM Application Self Service LTC Self Service 1. LTC Advance/Intimation Navigation: Launch HCM Application Self Service
Hosted CRM Outlook client connector setup guide. Date: Version: 1. Author: anb. Target Level: Customer. Target Audience: End User
Hosted CRM 2011 Outlook client connector setup guide Date: 2011-06-29 Version: 1 Author: anb Target Level: Customer Target Audience: End User Language: da-dk Page 1 of 16 LEGAL INFORMATION Copyright 2011
Model Control Design by Jens Juul Eilersen
85 x 182 cm 70 x 182 cm 85 x 182 cm 70 x 182 cm English: Dansk: Control is the ultimate reclining chair. Here you can control your sitting and Control er den ultimative hvilestol. Her kan du kontrollere
Tredjepart webservices
Tredjepart webservices 4. juni 2015 USS Dok. Klik her for at angive tekst. 1/12 Indholdsfortegnelse Introduktion... 3 Miljøer... 3 Adgang... 3 API kald... 4 GET: /authorizations... 4 Input 4 Output 4 Output
Linear Programming ١ C H A P T E R 2
Linear Programming ١ C H A P T E R 2 Problem Formulation Problem formulation or modeling is the process of translating a verbal statement of a problem into a mathematical statement. The Guidelines of formulation
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
WT-1011RC Programmer User Guide
WT-1011RC Programmer User Guide Firmware Version 1.9 Note: 1. Information in this manual is subject to change without notice and does not represent a commitment of manufacturer. 2. Manufacturer shall not
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
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
Serverteknologi I Project task list
Dato: 31. marts 2016 Skrevet af John Have Jensen & Anders Dahl Valgreen Introduktion Velkommen til faget ServerTeknologi I. Denne uge er planlagt som en projektuge hvor du selv eller din gruppe skal opbygget
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,
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
F# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank
F# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank 03-10-2018 Rune Ibsen Softwareudvikling Seniorkonsulent Mentoring 10 konsulenter F# Programmeringssprog som oversættes til.net Functional-first,
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
Westermo GDW-11 GSM Modem forbindelse til CXxxxx
APP-NOTE 609005 Beckhoff Application Note Date: 1/5/2007 Document Status: First Draft Beckhoff Automation Aps Naverland 2, DK-2600 Glostrup Phone +45 43 46 76 20 Fax +45 43 46 63 35 Westermo GDW-11 GSM
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
Unitel EDI MT940 June 2010. Based on: SWIFT Standards - Category 9 MT940 Customer Statement Message (January 2004)
Unitel EDI MT940 June 2010 Based on: SWIFT Standards - Category 9 MT940 Customer Statement Message (January 2004) Contents 1. Introduction...3 2. General...3 3. Description of the MT940 message...3 3.1.
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
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
Teknologispredning i sundhedsvæsenet DK ITEK: Sundhedsteknologi som grundlag for samarbejde og forretningsudvikling
Teknologispredning i sundhedsvæsenet DK ITEK: Sundhedsteknologi som grundlag for samarbejde og forretningsudvikling 6.5.2009 Jacob Schaumburg-Müller [email protected] Direktør, politik og strategi Microsoft
Adressering af ind- og ud gange på CXxxxx IEC1131 PLC uden TC system manager
APP-NOTE 610003 Beckhoff Application Note Date: 11/13/2006 Document Status: First Draft Beckhoff Automation Aps Naverland 2, DK-2600 Glostrup Phone +45 43 46 76 20 Fax +45 43 46 63 35 Adressering af ind-
Miniprojekt2011. Formålet er at lære og indlære god objektorienteret programudvikling og programmering med Java, samt undervejs at opfylde studiekrav.
Miniprojekt2011 Projektbeskrivelse Der skal fremstilles en lille java application på PC, hvor brugeren kan foretage interaktioner med en simpel database på disken via et grafisk brugerinterface. Formålet
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
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
Bypassing the. Brian Marick
Bypassing the GUI Brian Marick Problemer med GUI GUI er designet for mennesker, ikke automatisering Automatiseret test af GUI kræver specialiseret værktøjer Har tildens til at bryde ned når der sker ændringer
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
