DM1302DK - 3. semesterUgeplan for Softwarearkitektur og Distribuerede ProgrammerTema: Tråde og socket - Gå til uge: 34, 35, 36, 37, 38 |
Sidst ændret: 2014.09.11
Uge 34 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Tirsdag | 08:30 - | Introduktion til 3. semester - Opsamling fra 1. år - lille programmeringsopgave/prøve - følger |
|
Netværksprogrammering med Socket Eksempel på socket-klient og socket-server
Aftestning
af server kan starte med brug af Telnet der også kan køres fra
komandoprompt
|
.Net app(**) kap 4.4
(Socket)
Slides om socket part 1 (nokn)
Eksempel på simpel socket server og klient Programmer til test af
socketforbindelser:
|
||
12:30 - 14:00 | Opgaveløsning uden
støtte fra underviser - diskuter og sammenlign, samt hjælp hinanden, men sørg for også selv at kode individuelt du forventes at arbejde med socket opgave 1-4 |
Opgaver med socket server og socket-klient |
|
Onsdag | 08:30 - | Opsamling fra sidst og evt. gennemgang af opgave 1+2 fra sidste gang (en/flere studerende fremlægger) Lidt designforbedring på server med udskillelse af håndtering af klient (Clienthandler klasse) |
Eksempler på socket echo servere og klient |
Opgaveløsning (socket opgave 3-4) - med støtte |
|||
Delegater (intro) Trådning (intro) Kodeeksempel på trådet server |
Core C# (*) kap 13.1 (Thread intro) Core C#(*) kap 3.7 om Delegates (se Fronter) C# to the point (***) kap 11.1om Delegates (se Fronter) .Net app(**) kap 4.3.1-4.3.3 (Thread)
|
||
12:30 - 14:00 |
Opgaveløsning uden støtte fra underviser - diskuter og sammenlign, samt hjælp hinanden, men sørg for også selv at kode individuelt du forventes at arbejde med socket opgave 1-5 |
||
Torsdag | 08:30 - | Opsamling fra socket server
og klient og evt. gennemgang af opgave 3+4 fra sidste gang (en/flere studerende fremlægger) |
|
Delegater (intro) Trådning (intro) Kodeeksempel på trådet server
|
C# Network
programming
s. 354-358 (Socket) Core C# (*) kap 13.1 (Thread intro) Core C#(*) kap 3.7 om Delegates (se Fronter) C# to the point (***) kap 11.1om Delegates (se Fronter) .Net app(**) kap 4.3.1-4.3.3 (Thread)
Slides om socket part 2 multitrådet (nokn) |
||
Designovervejelser - de første spæde forsøg på
yderligere forbedringer af behandling af klient (på serversiden)
- adskillelse af kommunikation og forretningslogik |
SocketEchoServerDesign | ||
12:30 - 14:00 | Opgaveløsning uden
støtte fra underviser - socket opgaver - specielt opgave 5 |
Opgaver med socket server og socket-klient |
Afleveringsopgaver denne uge: Socket opgave 5 (nr 3 multitrådet) | |
(*) Core C# and
.NET, Stephen C. Perry - se Fronter (**) .Net Application Development with C#..., Hanspeter Mössenböck - se Fronter (***) C# To the point -.., Hanspeter Mössenböck - - se Fronter |
|
Supplerende materiale for dem, som måtte
ønske mere læsestof om socket: An Introduction to Socket Programming in .NET using C# - CodeProject Socket Code Examples (MSDN) Using TCP Services (Socket server og klient - MSDN) How to C# Socket programming (csharp.net-informations.com) Network socket - Wikipedia, the free encyclopedia |
Supplerende materiale for dem, som måtte ønske mere læsestof om tråde Multithreaded Programming Using C# - CodeProject MSDN -Thread Class -Threading Objects and Features -Thread Pooling -Timer -Monitor -Interlocked -ReaderWriterLock |
Uge 35 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Tirsdag | 08:30 - | Opsamling fra socket server
og klient og evt. gennemgang af opgave5 fra sidste gang (en/flere studerende fremlægger) |
|
Design af socket-programmering
- fortsat
Proxy mønsteret (samme grænseflade på server og klient)
|
SocketEchoComandBased (eksempler med opdeling i kommunikation og
behandling) Indeholder tekstfil med indholdsbeskrivelse og PowerPoint Medtages: - SocketServerCmdBasedStatic - SocketServerCmdConnected - SocketServerCmdDisconnected_V01
Slides om Proxy mønster
SocketEchoComandBased (eksempler med opdeling i
kommunikation og behandling) |
||
Lidt mere om protokoller (vi
ser kort på http) læs specielt om GET og eksempel
|
http://en.m.wikipedia.org/wiki/Http#Technical_overview |
||
Brug af WebClient til HTTP client kommunikation - web request |
WebClientDemoConsoleApplication.zip | ||
12:30- 14:00 | Opgaveløsning uden støtte fra underviser - diskuter og sammenlign, samt hjælp hinanden, men sørg for også selv at kode individuelt Opgaver med socket og http protokollen |
Opgaver - med socket og HTTP protokollen | |
Onsdag | 08:30 - | Opsamling på design og
netværksprogrammering fra tirsdag og evt. gennemgang af opgaver fra sidste gang (en/flere studerende fremlægger) |
|
Trådning Kodeeksempler Synkronisering af tråde Design med tråde |
Slides om tråde og synkronisering
Trådeksempel1 - primitiv enkel tråd - trådmetode i egen
klasse(objekt)
Trådeksempel5_Sync - synkronisering - primitiv uden resource-monitor
- fællesdata
Den designmæssige gode løsning:
Supplement fra internettet:
evt. alternativ /uddybende om tråde - Core
C#(*) kap 13.3
(Working with Thread) |
||
12:30- 14:00 | Opgaveløsning uden støtte fra underviser - diskuter og sammenlign, samt hjælp hinanden, men sørg for også selv at kode individuelt Du forventes at arbejde med trådopgaver 1-6 - disse opgaver vedrører også CDS vedr. tråde Løsningseksempel på trådopgave 5 version1 |
Trådopgaver (1-6) | |
Torsdag | 08:30 - | Trådning fortsat - Synkronisering af tråde Design af tråde og fælles resourcer Producer-Consumer mønsteret (push - pull) |
Slides om tråde og synkronisering
Trådeksempel5_Sync - synkronisering - primitiv uden resource-monitor
- fællesdata
Den designmæssige gode løsning:
Trådeksempel_Parkeringshus_NO_pulseall (med fejl! manglende og for
tidlig notification) |
12:30- 14:00 | Opgaveløsning uden støtte fra underviser - diskuter og sammenlign, samt hjælp hinanden, men sørg for også selv at kode individuelt Du behøver ikke have løst alle trådopgaver 1-6 før du tager hul på opgave 7, men jo flere du når jo bedre Trådopgave 7 (spørgsmål 1 er
bliver en afleveringsopgave) Du kan få hjælp ved at se på løsningen hvis du går helt i stå,
men brug denne mulighed med omtanke og prøv selv at løse opgaven
først og hvis du ser løsningen, så prøv bagefter på egen hånd
forfra. |
Trådopgaver (7-8)
Du kan tage afsæt i eksemplet og udbygge det |
Afleveringsopgaver denne uge: Trådopgave 7 spørgsmål 1 (du må selvfølgelig gerne aflevere svar på hele opgaven) Der skal desuden afleveres en status på øvrige trådopgaver (hvor langt er du nået / er der problemer? - skriv i feltet egen reflektion - ingen solution behøves) |
|
(*) Core C# and
.NET, Stephen C. Perry - se Fronter (**) .Net Application Development with C#..., Hanspeter Mössenböck - se Fronter (***) C# To the point -.., Hanspeter Mössenböck - - se Fronter |
|
Supplerende materiale for dem, som måtte
ønske mere læsestof om socket: An Introduction to Socket Programming in .NET using C# - CodeProject Socket Code Examples (MSDN) Using TCP Services (Socket server og klient - MSDN) How to C# Socket programming (csharp.net-informations.com) Network socket - Wikipedia, the free encyclopedia |
Supplerende materiale for dem, som måtte ønske mere læsestof om tråde Multithreaded Programming Using C# - CodeProject MSDN -Thread Class -Threading Objects and Features -Thread Pooling -Timer -Monitor -Interlocked -ReaderWriterLock |
Uge 36 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Tirsdag | 08:30 - | Tråde fortsat Status på
opgaveløsning!! |
|
- flere producer/consumer til samme ressource - med bounded buffer problem |
|
||
Lidt generelt om delegater
|
C# to the point (***) kap 11.1 om
delegater |
||
Observer mønster (intro) - delegate / event |
ObserverPattern ObserverPattern_CascadeEvent Ekstra læsestof fra wikipedia
(publish/subscribe): |
||
12:30- 14:00 | Opgaveløsning uden støtte fra underviser - diskuter og sammenlign, samt hjælp hinanden, men sørg for også selv at kode individuelt Opgaveløsning (tråd opgave 9 ) Du kan få hjælp ved at se på løsningen hvis du går helt i stå, men brug denne mulighed med omtanke og prøv selv at løse opgaven først og hvis du ser løsningen, så prøv bagefter på egen hånd forfra. Løsning af Opgave 9 - termometer med alarm-event (Monitor og observer pattern med delegater) |
Opgave 9 - termometer med alarm-event som PDF | |
Onsdag | 08:30 - | Tråde og problematik med GUI Herunder flere eksempler på brug af observer (events) |
ObserverPattern_Tråde_og_Gui_Winform_og_WPF (Ny
erstatning) Tråde-og-GUI (Det centrale - tricket i ovenstående) |
12:30- 14:00 | Opgaveløsning uden
støtte fra underviser, se opgave fra tirsdag
|
||
Torsdag | 08:30 - | Opsamling på synkronisering og brug af observerpattern (events) | |
12:30- 14:00 | Opgaveløsning uden
støtte fra underviser, se opgave fra tirsdag |
Afleveringsopgaver denne uge: Opgave 9 (termometer-alarm-monitor) | |
(*) Core C# and
.NET, Stephen C. Perry - se Fronter (**) .Net Application Development with C#..., Hanspeter Mössenböck - se Fronter (***) C# To the point -.., Hanspeter Mössenböck - - se Fronter |
|
Supplerende materiale for dem, som måtte
ønske mere læsestof om socket: An Introduction to Socket Programming in .NET using C# - CodeProject Socket Code Examples (MSDN) Using TCP Services (Socket server og klient - MSDN) How to C# Socket programming (csharp.net-informations.com) Network socket - Wikipedia, the free encyclopedia |
Supplerende materiale for dem, som måtte ønske mere læsestof om tråde Multithreaded Programming Using C# - CodeProject MSDN -Thread Class -Threading Objects and Features -Thread Pooling -Timer -Monitor -Interlocked -ReaderWriterLock |
Uge 37 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Tirsdag | 08:30 - |
Opsamling og flere eksempler på brug af Producer-Consumer mønsteret (push - pull) - flere producer/consumer til samme ressource - med bounded buffer problem |
Slides om tråde og synkronisering
|
- (simulering af ) fysiske processer - buffer - producer, consumer - splitter, sorter - løs kobling med observer, eventbaseret overvågning |
Opgave 10 med øl-sodavand soteringsanlæg -
som PDF Du kan evt. bruge elementer fra: TrådEksempel9_ProducerConsumer_Buffer |
||
Opgaveløsning (tråd opgave 10) |
Opgave 10 med øl-sodavand soteringsanlæg -
som PDF Du kan evt. bruge elementer fra: TrådEksempel9_ProducerConsumer_Buffer |
||
12:30- 14:00 | Opgaveløsning uden støtte fra underviser - diskuter og sammenlign, samt hjælp hinanden, men sørg for også selv at kode individuelt Opgaveløsning (tråd opgave 10) Du kan få hjælp ved at se på løsningen hvis du går helt i stå, men brug denne mulighed med omtanke og prøv selv at løse opgaven først og hvis du ser løsningen, så prøv bagefter på egen hånd forfra. Løsning af trådopgave 10 Øl & Vand: Producer-Consumer Pattern med Splitter |
|
|
Onsdag | 08:30 - |
Socket-chatserver design: Broadcasting - push / observer
|
Eksempel på design-muligheder: Chat server design i trin mod observer-mønster ekstra: tilsvarende design for echoserver -> service klasse |
12:30- 14:00 | Opgaveløsning uden støtte fra underviser - diskuter og sammenlign, samt hjælp hinanden, men sørg for også selv at kode individuelt Opgaveløsning (tråd opgave 10) |
se tidligere tirsdag |
|
Torsdag | 08:30 - | Løsning på tavle af trådopgave 10 og evt. 9 - efter ønske fra studerende | |
12:30- 14:00 | Opgaveløsning uden
støtte fra underviser |
Afleveringsopgaver denne uge: Opgave 10 (øl-vand sorterings simulering) | |
(*) Core C# and .NET,
Stephen C. Perry - se Fronter (**) .Net Application Development with C#..., Hanspeter Mössenböck - se Fronter (***) C# To the point -.., Hanspeter Mössenböck - - se Fronter |
|
Supplerende materiale for dem, som måtte ønske mere læsestof om socket: An Introduction to Socket Programming in .NET using C# - CodeProject Socket Code Examples (MSDN) Using TCP Services (Socket server og klient - MSDN) How to C# Socket programming (csharp.net-informations.com) Network socket - Wikipedia, the free encyclopedia |
Supplerende materiale for dem, som måtte ønske mere læsestof om tråde Multithreaded Programming Using C# - CodeProject MSDN -Thread Class -Threading Objects and Features -Thread Pooling -Timer -Monitor -Interlocked -ReaderWriterLock |
Uge 38 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Tirsdag | 08:30 - 12:00 | Projektarbejde - socketprojekt (vejledning - bjbu) | Se fronter |
12:00 - | Projektarbejde | ||
Onsdag | 08:30 - 12:00 | Projektarbejde - socketprojekt (vejledning - bjbu) | Se fronter |
12:00 - | Projektarbejde | ||
Torsdag | 08:30 - - 12:00 | Projektarbejde - socketprojekt (vejledning - bjbu) | Se fronter |
12:00 - | Projektarbejde |