LectureMopp - Projekt i Nätverksprogrammering



Relevanta dokument
Nätverksprogrammering, EDA095

Startanvisning för Bornets Internet

FIRSTCLASS. Innehåll:

Integration med Vitec Express

Beskrivning av gesällprov RMI Chat Mikael Rydmark

Videochat. Denna manual beskriver Högskolan Dalarnas Videochat som används vid direktsända (streamade) föreläsningar.

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

RealPresence Desktop 3.1

Projektrapport. MegaLoad. Nätverksprogrammering EDA

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Guide för byte av SIP-server

BluStar Agent IP telefon

LEX INSTRUKTION LEX LDAP

Gränssnitt för FakeGranska. Lars Mattsson

version: Sidan 1 av 5

Installation och setup av Net-controller AXCARD DS-202

Snabbguide för användare SourceTech Telllus

E-posthantering med Novell Groupwise WebAccess

Installationsanvisningar. till IST Analys

Inlämningsuppgift 11e Nätvärksskrivare

Messenger. Novell 1.0 HITTA DOKUMENTATIONEN ÖVER NOVELL MESSENGER. SNABBSTART

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Användarhandledning. Redaktör: Anders Toverland Version 1.0. Status. LiTH Fordonssimulator. Granskad Godkänd. TSRT71 Anders Toverland

IT-Café: SKYPE (videosamtal)

INSTALLATION AV KLIENT

Administrationsmanual ImageBank 2

Lathund för webbmail (OWA) Innehåll:

SNABBGUIDE för Windows Media Encoder (media kodaren) - Sänd live med din webbkamera

Dialect Unified MAC-klient

Kapitel 1 Ange din kontoinformation

Användarmanual för. Internetbokningen. Version 1.0

Guide för byte av SIP-server

TW100-S4W1CA. Bredbandsrouter (med 4-ports switch) (vers. E) Snabbinstallationsguide

Startguide för Administratör Kom igång med Microsoft Office 365

Samsung NVR SRN-473S/873S/1673S Quick guide till web/app anslutning

Dokumentnamn/Document Name: Installation Blankett.doc

Guide för fjärråtkomst av Gigamedia IP-kamerakit

Datakommunika,on på Internet

Biometria Violweb. Kom-igång-guide. Mars Sammanfattning Den här anvisningen är till för dig som ska börja använda dig av Biometrias tjänster.

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

Lathund för BankID säkerhetsprogram

PM Dokumentation

Handledning för Installation av etikettskrivare

CMA Desktop PC baserad Video och Chat

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

Mumble FAQ. Jack-Benny Persson 2 maj 2012

INSTALLATION AV KLIENT

Vad är Google Hangouts?

Laboration i ett applikationsprotokoll

Kom igång med Skype (PC)

Referensmanual. De olika lägena. Idle. Movie. Synchronous. Asynchronous

Hur du sänder i HD 720p med FMLE på cams.com

BluStar Agent mobiltelefon (MEX)

Innehåll. Dokumentet gäller från och med version

Installationsguide för mysql och OLA Server/OLA Klient

Piff och Puffs Chatsystem

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

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

Sony Swedish Web Portal Instructions

Installation av Android-mobiler

Vop handledning. Användarhandledning till Vop applikationen. UPPGJORD: Mattias Gyllsdorff GODKÄND:Mattias Gyllsdorff REV: A DATUM:

Hur man ändrar från statisk till automatisk tilldelning av IP i routern.

Användarhandbok OE/OSSpeaker V.10.3

Tjänstebeskrivning Extern Åtkomst COSMIC LINK. Version 1.0

Skicka SMS/e-post påminnelser från Microsoft Excel

Användarmanual TextAppen Online

Åtkomst och användarhandledning

Lärarhandledning. Felix börjar skolan

Dialect Unified. Användarmanual PC-klient

Starta Egenrapportering automatiskt i Windows

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

Copyright AB Regin, Sverige, CLOUDigo användarhandledning

GUIDE FÖR POWERPOINT PRESENTATIONER MICROSOFT OFFICE, POWERPOINT 2007

CMA Desktop PC baserad Video och Chat

Logga in som gäst eller värd

Innehållsförteckning:

Konfigurationer Video- och distansmöte Bilaga till Tekniska anvisningar

FactoryCast HMI. Premium & Quantum PLC. FactoryCast HMI epost-tjänst

Manual licenserver. Installations och konfigurations-manual för Adtollo licenserver

Klientinstallation VSS Driftservice

Användarmanual Uno Fast Snom 300/360

Installationsguide för FAR Komplett Offline 2.1.2

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

Telia Centrex IP Administratörswebb Handbok

Skriv före adressen och lämna bort www enligt modellen:

Kursvärdering. Denna manual beskriver hur du kan skapa en mapp i Fronter som heter Kursvärdering där du ladda upp reslutat från kursutvärderingar.

Installation av. Vitec Online

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

1 Photo Story Steg 1 - Hämta och fixa dina bilder

Manual för BAMS. Svenska Bangolfförbundet

Dialect Unified. Användarmanual mobilapplikation ios

Handbok för Din Turs mobila tjänster - för äldre mobiler som inte är smartphones

INSTALLATION AV KLIENT

REGION SKÅNE VDI KLIENTINSTALLATION

Introduktion till MySQL

Datatal Flexi Presentity

DOLD.SE. Installationsguide Mac OS

Visma.net Approval. Versionsbrev

Transkript:

LectureMopp - Projekt i Nätverksprogrammering Anders Forslund (d04afr@student.lth.se) Anders Lund (et05al1@student.lth.se) Christopher Swanson (et05cs4@student.lth.se) 24 maj 2009

3 MODELL 1 Bakgrund När projektidéerna för vår grupp började diskuteras kom vi snabbt fram till att vi ville göra något som en användare kunde interagera med i sin webbläsare för i dagens IT-värld börjar allt fler applikationer flytta dit. Ett bra exempel är Eclipse som i nästa version skall kunna köras direkt i en webbläsare. Det spånades och spånades och resultatet blev idén att kunna streama film från föreläsningar tillsammans med ljud direkt i en webbläsare utan att behöva tanka ner en full applikation. Även en chatt skulle finnas tillgänglig för att kunna ställa frågor till föreläsaren. Tekniken som skulle användas var servlets med Java EE samt JSP. Efter en tid visade det sig att vi hade tagit oss vatten över huvudet. Vi gick inte ifrån idén att ha programmet i webbläsaren men löste det istället med en applet. Den kunde heller inte streama film eller ljud men däremot visa slides från föreläsningen. Chatten fanns även med. 2 Krav Eftersom vi mitt i projektet helt fick vända om (se Bakgrund) ändrades kraven ganska rejält. De slutgiltiga kraven blev enligt nedan: En klient (vanlig applikation) för läraren med chatt samt ett gränssnitt för att byta slide. En klient (applet för att fungera i en webbläsare) för eleverna med chatt samt ett gränssnitt för att se slides som lärarklienten styr. En server som styr allt. Flera klienter kan koppla upp sig mot denna. Trådsäkert. 3 Modell 3.1 Studentklienten När programmet skulle skrivas var det vår avsikt att skriva det enligt MVCmönstret, men vi tog beslutet att slå samman View och Controller vilket visade sig vara väldigt smidigt när man arbetar med en applet som inte behöver en avancerad controller. Appleten använder sig av swing och observerar modellen. Den enda input som finns i programmet är texten användaren skriver och knappen som skickar så behövs det endast en controller som består av en egenskriven actionlistener. Modellen består av tre klasser. Två står för nätverkskommunikationen, där sender är en klass med metoden send och receiver är en tråd som hämtar packet. ClientModel sköter all logik till exempel handshaking samt behandling av packet. 2

3.2 Lärarklienten 3 MODELL 3.2 Lärarklienten Lärarklienten är till skillnad från studentklienten en vanlig Java-applikation. Den använder sig av model-view-controller och observermönstrena. Klienten kan befinna sig i tre olika states, samma states som servern använder: unconnected, connected och connected to session. Som input tar applikationen från användaren loginuppgifter, chatmeddelanden och tryckningar fram och tillbaka för slidesen. Från servern tar den meddelanden enligt protokollet som är utvecklat för projektet. När slides i form av jpeg-bilder ska visas så skickas de först till en klass som skalar ner dem till lämplig storlek. 3.3 Servern Mellan studentklienten och lärarklienten finns servern. Den är uppbyggd kring två monitorer. En monitor, ServerMonitor, innehåller all information om serverns och dess sessioners status. Den ansvarar även för de meddelandeköer som väntar på att behandlas. Den andra monitorn, ConnectionHandler, ansvarar för alla anslutningar och kommunikation. Servern innehåller två trådar som behandlar meddelanden, en för chatmeddelanden och en för signaleringsmeddelanden. Upplägget med två trådar gör att chatmeddelanden alltid snabbt vidarebefordras fast det exempelvis pågår processer som tar längre tid i anspråk. Utöver det så finns det en mottagartråd till varje ansluten klient. 3.4 Protokollet Protokollet består av tre fält. Det första, TYPE, Används för att avgöra ifall det rör sig om chatmeddelanden eller signaleringsdata. Är ett chatmeddelande så innehåller det andra fältet till vilken session meddelandet ska sändas och det tredje fältet själv chatmeddelandet. Anger TYPE-fältet signaleringsdata så följs det av fältet SUBTYPE som innehåller vilken typ av signalerningsdata meddelandet innehåller. SUBTYPE som är en int är indelat i två grupper. 0-127 innehåller förfrågningar eller information som pushas och 128-255 som innehåller svar på den förra gruppen. Det sista fältet innehåller data. + + + + TYPE SUBTYPE DATA + + + -+ + + + -+ TYPE SESSION MESSAGE + + + -+ 3

4 ANVÄNDARHANDLEDNING 4 Användarhandledning 4.1 Elevklient Markerat med nummer 1 i figuren ovan är området där eleven ser den aktuella slide:n som läraren har valt. Textrutan markerad med nummer 2 fungerar först och främst som ett gränssnitt för att koppla upp sig mot mot en server och föreläsning. För att göra detta skriver man ip;port;namn;session där ip är ipadressen till servern, port är porten servern är startad på, namn är ditt valda användarnamn och session är namnet på en specifik föreläsning. Därefter trycker man på knappen markerat med nummer 3 i figuren. Om allt har gått som det ska fungerar nu textrutan istället som en chattruta där man kan förmedla vad man vill ha sagt till föreläsaren och andra uppkopplade elever. 4

4.2 Lärarklient 5 UTVÄRDERING 4.2 Lärarklient När lärarklienten startas bestämmer man först vad man ska ha för användarnamn (nummer 1 i figuren) samt vad föreläsnings-sessionen ska heta (nummer 2). I textrutan markerat med nummer 1 i figuren ovan kan läraren se chatten där eleverna ställer frågor. I rutan bredvid (nummer 2) kan han/hon svara. Aktuell föreläsnings-slide visas i området markerat med nummer 3. För att byta slide används knapparna Next och Previous. 5 Utvärdering När vi ska utvärdera projektet är det svårt att vara riktigt nöjd. Vår ursprungliga idé fungerade inte alls. Ribban hade lagts alldeles för högt och även om vi själva anade detta till en början gav vi det ett försök och det tycker jag ändå vi gjorde rätt i. Ibland måste man chansa. Tröskeln till exempelvis Java EE var alldeles för hög och det tog oss flertalet timmar bara att få igång en fungerande Hello World!. 5

6 KÄLLKOD När vi väl kommit in på vår nya bana med den nya idén flöt arbetet på relativt bra och inga direkt stora problem uppstod. Dock lyckades vi aldrig få igång vår elevklient som en applet i webbläsaren utan endast i Eclipse egna appletviewer. I vår kod-design använder vi oss av mönstret Model-View-Controller vilket gör att våra program är väldigt lätta att komplettera och bygga vidare på. Denna lösning valde vi med anledning av osäkerheten i vår idé från början. I slutändan visade det sig vara ett väldigt bra beslut eftersom många timmars arbete kunde sparas in när den ursprungliga idén skulle skrotas. Sammanfattningsvis kan man säga att trots omständigheterna är vi relativt nöjda med slutresultatet. Vi hade förväntat oss mer av oss själva men vi har tagit lärdom och vet nu att planer inte alltid går som man vill. GUI-design är även något som vi kanske behöver jobba på. 6 Källkod Källkoden kan hittas på: http://users.student.lth.se/d04afr/source.zip 6