TDTS04: Ett chattsystem i java baserat på corba

Relevanta dokument
TDTS04: Distansvektorroutning i java

Beskrivning av gesällprov RMI Chat Mikael Rydmark

Laboration 2: Ett kommunikationssystem

Nätverksprogrammering, EDA095

Projektuppgift - Biblioteket

Projektuppgift - Gymmet

Testtentamen i kursen TDTS04 Datornät och distribuerade system vt 2009

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Skriftlig tentamen i kursen TDTS04 Datornät och distribuerade system kl. 8 12

Skriftlig tentamen i kursen TDTS0604 och TDTS43 Datornät och distribuerade system kl. 8 12

Projektuppgift - Banken

EDA095 Nätverksprogrammering

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

TDTS04 Datornät och distribuerade system, 15 mars 2010 Svar sammanställda av Juha Takkinen, IDA,


DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Kopiering av objekt i Java

Enterprise Java Beans Assignment 1

Realtid. eda040project2010 MANUAL. - Christoffer Olsson. - Daniel Lehtonen

Tung bakgrundsaktivitet t.ex. Aktiva objekt t.ex. Animering, simulering. DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Distribuerade System, HT03

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

Distribuerad programmering med CORBA Föreläsning CORBA: vad, varför, hur?

%M UQ(LGHUElFN 1. Internetprogrammering 1999, 2D4334-föreläsning10a. Nätverk av datorer. CORBA: vad, varför, hur? Internetprogrammering F 10a

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Objektorienterad Programkonstruktion

Instruktioner för uppdatering från Ethiris 5.x till 6.0

LABORATION DATORKONSTRUKTION TSEA83 UART. Namn och personnummer. Version: (OS)

Lycka till! TENTAMEN: Objektorienterade applikationer. Läs detta! 1 (6) Tentamen

Topologi. Utförande: I exemplet så kommer vi att utgå från att man gör laborationen i en Virtuell miljö (Virtualbox).

Laboration 2 1DV416 Windowsadministraion I

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

Fakulteten för ekonomi, kommunikation och IT. Corba. Datum: Mathias Andersson

TDP005: Introduktion till Make

Besvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok.

TDDC77 Objektorienterad Programmering

Android översikt. TDDD80 Mobila och sociala applikationer

TENTAMEN. Objektorienterade applikationer CHALMERS. 2018/2019, lp 3 DAT055. Uno Holmer

TDDD78, TDDE30, 729A Grafik: Att "rita" egna komponenter

Laboration 2: Designmönster

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

Webbtjänster med API er

Skriftlig tentamen i kursen TDTS04 Datornät och distribuerade system kl

Arv och polymorfism i Java

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

TDDD80 Mobila och sociala applika1oner. Kursintroduk1on

Klientmanual. Inställningar och spelstart Windows & Linux

Nya webbservern Dvwebb.mah.se

Programmering i C++ Kompilering från kommandoraden

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets

Laboration 2: Designmönster

Javas Exceptions. DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/ Kort om Javas Exceptions Trådar i Java

TDDC74 Lab 04 Muterbara strukturer, omgivningar

Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt idnummer på varje blad (så att vi inte slarvar bort dem).

Operativsystem IS1350

Åtkomst och användarhandledning

Installationsguide Junos Pulse för MAC OS X

Instruktioner för uppdatering från Ethiris 4.10 till 5.x

Handbok SSCd. Peter H. Grasch

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

Grafiska användargränssnitt i Java

REGION SKÅNE VDI KLIENTINSTALLATION

Sockets: server. with Ada.Command_Line; use Ada.Command_Line; with Ada.Exceptions; use Ada.Exceptions; with Ada.Text_IO; use Ada.

FIRSTCLASS. Innehåll:

Lathund för publicering i KI Commons wikitjänst

Norman Endpoint Protection (NPRO) installationsguide

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

ARX på Windows Vista, Windows 7 eller Windows 2008 server

Lite mer om CGI-programmering

Repetition DK2 Middleware, P2P, Multimediatransport. Stefan Alfredsson 18 Mars 2005

Distribuerade system. CORBA eller RMI

Objektorienterad programmering i Java I

Datorsystem Laboration 2: Minnesmappade bussar

Piff och Puffs Chatsystem

Objektorienterad programmering, Java, 5p TDBA63

Installera din WordPress med 9 enkla steg

Regelverk. Infrastrukturen för vidareförmedling av grundläggande uppgifter om företag. Bilaga A. Tekniska ramverk. Version: 1.0

Uttryck, satser och strömhantering

729G04 Programmering och diskret matematik TEN kl 8-12

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Hidden Camera App. Realtidsprogrammering EDA040. Joakim Svensson (dt05js8) Torbjörn Lundberg (dt05tl3) Henrik Andersson (dt05ha1)

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Lab5 för prgmedcl04 Grafik

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

Tips: Titta på relevanta genomgångar på webbplatsen

729G04 Programmering och diskret matematik

Använda Python Laboration 1 GruDat, DD1344

LectureMopp - Projekt i Nätverksprogrammering

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

TDDD80 Mobila och sociala applikationer. Kursintroduktion

ANVÄNDAR MANUAL. SESAM 800 RX MC Manager

Användarbeskrivning ARBETSGIVARINTYG. för Sveriges alla arbetsgivare. arbetsgivarintyg.nu. En ingång för alla användare. Innehåll. Version 1.

PROGRAMMERINGSTEKNIK TIN212

Regelverk. Infrastrukturen för vidareförmedling av grundläggande uppgifter om företag. Bilaga A. Tekniska ramverk. Version: 3.0

Labora&on 1 Introduk&on &ll utvecklingsmiljön övningar/uppgi<er

För att kunna använda SmartPigs i WinPig.Net måste du köra WinPig.net med administratörsrättigheter. Gör så här:

Avancerade Webbteknologier

Grafiska användargränssnitt i Java

Transkript:

18 January 2010 TDTS04: Ett chattsystem i java baserat på corba Juha Takkinen, Ph.D. IDA, Institutionen för datavetenskap 1.0 Översikt Labb 3 består av att utforma, implementera, testa och demonstrera ett chattsystem i java och baserat på corba. Du får också ett antal följdfrågor att besvara om labben. 2.0 Systemet och dess funktionalitet Figur 1 visar vilka komponenter som ingår i chattsystemet som du ska utveckla i labben. FIGUR 1. Chattsystemet och dess komponenter 1 av 6

Installering av kodskelett Chattsystemet är tänkt att fungera på följande sätt: Klienter kan ansluta sig till servern (kommandot join) eller lämna servern (kommandot leave). När en klient ansluter sig så måste den ange sitt namn. Klienten kan endast ansluta sig om namnet inte redan finns. När en klient har anslutit sig så betraktas den som en aktiv klient. Endast aktiva klienter kan publicera inlägg (kommandot post) till hela chattgruppen som består av andra aktiva klienter. En aktiv klient kan publicera en rad åt gången. Alla klienter (passiva och aktiva) kan begära en lista (kommandot list) på alla användarnamn och aktiva klienter i systemet. Chattservern vidareförmedlar ett inlägg som publiceras till alla aktiva klienter, inklusive till den som publicerade inlägget. Chattservern vidareförmedlar på samma sätt även alla genomförda anslutningar (join) och avslutningar (leave) till alla aktiva klienter. 3.0 Installering av kodskelett Utgå från kodskelettet som finns på kurshemsidan. Den implementerar ett enkelt klient-server-baserat chattsystem som innehåller de byggstenar som du behöver för att göra labben. Börja med att kontrollera att du kan kompilera och köra koden som du har laddat ned från kurshemsidan. Lär dig tyda vad koden gör. Använd den medföljande Makefile-filen. Starta orbd-namnservern på ett valfritt portnummer. Makefile-filen använder port 1050, men du måste ändra detta eftersom det finns andra labbgrupper som också kör samma kod och på samma maskin i labbsalen. 1 Om du inte ändrar portnumret kommer du med stor sannolikhet att anropa en namnserver som tillhör en annan grupp! Här är ett exempel på hur du kompilerar chattsystemet: % make target % make clobber % make idl /usr/bin/idlj -fall Chat.idl % make c 1. Ta till exempel de fyra sista siffrorna i ditt personnummer istället. 2 av 6 TDTS04: Ett chattsystem i java baserat på corba

Installering av kodskelett /usr/bin/javac ChatClient.java ChatApp/ *.java % make s /usr/bin/javac ChatServer.java ChatApp/*.java För att sedan exekvera och demonstrera chattsystemet så behöver du ha tre öppnade terminalfönster på skärmen. Starta först namnservern i det första fönstret. Exemplet nedan antar att du har valt portnummer 1057. Se till starta namnserverprocessen i förgrunden, alltså utan &-tecken på slutet, så är det enkelt att stoppa den med ctrl-c i slutet av labben. % make orbd orbd -ORBInitialPort 1057 -ORBInitialHost localhost Starta chattservern i det andra terminalfönstret: % make server /usr/bin/java ChatServer -ORBInitialPort 1057 -ORBInitialHost localhost ChatServer ready and waiting... Starta slutligen chattklienten i det tredje fönstret: % make client /usr/bin/java ChatClient -ORBInitialPort 1057 -ORBInitialHost localhost Hello......Goodbye! När du studerar koden för att förstå hur chattsystemet är uppbyggt, se speciellt callback-funktionen som anropas av servern i klienten. Du kommer att behöva uttnyttja denna funktion. När du inte längre arbetar med labben, se till att stoppa orbd-namnserver! TDTS04: Ett chattsystem i java baserat på corba 3 av 6

Chattsystemet och körexempel 4.0 Chattsystemet och körexempel När du har installerat kodskelettet (se ovan) så är du redo att börja implementera chattsystemet. Börja med att definiera chattsystemets gränssnitt för klient-serverkommunikationen i idl (interface definition language). Detta gör du i filen Chat.idl. Försäkra dig om att all funktionalitet (post, leave m.m.) som definierats ovan kommer med i gränssnittet. Sedan ska du lägga till kod som hanterar denna funktionalitet i filerna Chat- Client.java och ChatService.java. Det räcker med att du kan demonstrera chattsystemet på en maskin. Ditt program förväntas hantera alla fel på ett snyggt sätt (se körexemplet nedan). Gör ditt program interaktivt. Till exempel, en typisk session kan se ut som nedan (meddelanden från servern är indenterade och i kursiv stil): % make client /usr/bin/java ChatClient -ORBInitialPort 1057 -ORBInitialHost localhost % join bob Error: user bob is already an active chatter join alice Welcome alice % list List of registered users: alice bob charlie % post Who is out there? alice said: Who is out there? charlie left % list List of registered users: alice bob 4 av 6 TDTS04: Ett chattsystem i java baserat på corba

Följdfrågor om labben % post Why did Charlie leave?! alice said: Why did Charlie leave?! bob said: Because you joined... bob left % list List of registered users: alice % leave Goodbye alice % quit % 5.0 Följdfrågor om labben 1. Förklara vad som är syftet med namnservern som används i chattsystemet. Hur hade ett anrop från en klient sett ut om namnservern inte hade funnits? 2. Servern i labben utnyttjar callback-funktionen, som är ett sätt att implementera asynkrona metodanrop i corba. Denna implementation av asynkrona anrop i corba påverkar inte hur objekt är implementerade i servern. Förklara varför så är fallet. Redogör även för om finns fler alternativ för att implementera asynkrona anrop i corba. 3. Jämför sättet att utveckla program i corba (labb 3) med java rmi (labb 2). Vilka skillnader och likheter finns mellan dem? 6.0 Redovisning För att slutföra labben måste du demonstrera din lösning för labbassistenten. Vid demonstrationen ska du ha igång orbd-namnserverprocessen, corba-chattservern som du har implementerat och minst tre olika instanser av corba-chattklienten. Kontrollera att du har svarat utförligt på frågorna som ställs i labbuppgiften och använd vederhäftiga källor som referenser. Innan du demonstrerar din lösning, ge din labbassistent en papperskopia av din kod inklusive Makefile-filen. TDTS04: Ett chattsystem i java baserat på corba 5 av 6

Redovisning Lämna sedan in din laborationslösning på papper i ett korrekt ifyllt och underskrivet IDA-labbomslag till laborationsassistenten. Kontrollera att du har besvarat alla frågorna i texten så utförligt som möjligt och även angett vederhäftiga källor som stöder dina svar. 6 av 6 TDTS04: Ett chattsystem i java baserat på corba