DM131 - 3. semesterUgeplan for Softwarearkitektur og Distribuerede ProgrammerTema: Tråde og socket - Gå til uge: 05, 06, 07, 09 |
Sidst ændret: 2014.02.14
Uge 05 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Mandag | 08:30 - | Introduktion til 3. semester - fag og eksamen - forventninger - studieaktivitet m.m. - SDP indhold |
Semesteroversigt (se fronter) Basis skema (se fronter) DM131_SDP_Grovplan.htm |
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 - | Gennemgang af opgave 1+2 fra
sidste gang 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) |
- 10:00 | Opgaveløsning (socket opgave 4-5) |
Opgaver med socket server og socket-klient |
|
10:20 - | Gennemgang af socket-opgave 3-5 fra
sidste gang
Kodeeksempler Synkronisering af tråde Design med tråde
|
.Net app(**) kap 4.3.1-4.3.3 (Thread) Core C# (*) kap 13.1 (Thread intro) Core C# (*) kap 13.4 (Thread Synchronization) Slides om tråde og synkronisering
Trådeksempel1 - primitiv enkel tråd
Trådeksempel5_Sync - synkronisering - primitiv uden resource-monitor
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 indgår også som øvelser for CDS Løsningseksempel på trådopgave 5 version1 |
Trådopgaver (1-6) | |
Fredag | 08:30 - | Opsamling på tråde? | |
- 10:00 | |||
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 indgår også som øvelser for CDS |
Afleveringsopgaver (obligatoriske) denne uge: Socketopgave 5 - Der skal desuden afleveres en status på trådopgaver (hvor langt er du nået / er der problemer?) |
(*) 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 emnerne 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 ------------------------------------------------------------------------------- Tråde: Multithreaded Programming Using C# - CodeProject MSDN -Thread Class -Threading Objects and Features -Thread Pooling -Timer -Monitor -Interlocked -ReaderWriterLock |
Uge 06 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Mandag | 08:30 - | Opsamling på tråde fra sidste uge Synkronisering af tråde
Design af tråde og fælles resourcer Producer-Consumer mønsteret (push - pull) |
Slides om tråde og synkronisering
Supplement fra internettet:
evt. alternativ /uddybende om tråde - Core
C#(*) kap 13.3
(Working with Thread)
Den designmæssige gode løsning:
Trådeksempel_Parkeringshus_NO_pulseall (fejl! manglende og for
tidlig notification) |
Design af socket-programmering
- fortsat VI KAN MULIGVIS IKKE NÅ DE NÆSTE 2 EMNER, MEN MÅ SÅ TAGE DEM IND LIDT NÆSTE GANG og NÆSTE UGE Oplæg til chat-server Lidt om protokoller (vi ser kort på http)
|
SocketEchoComandBased (eksempler med opdeling i kommunikation og
behandling) Indeholder tekstfil med indholdsbeskrivelse og PowerPoint Medtages: - SocketServerCmdBasedStatic - SocketServerCmdConnected - SocketServerCmdDisconnected_V01 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 blive færdig med trådopgaver 1-6 - disse opgaver indgår også som øvelser for CDS Løsningseksempel på trådopgave 5 version1 Du skal herefter starte på trådopgave 7 (spørgsmål 1 er obligatorisk) |
Trådopgaver (7-8) |
|
Onsdag | 08:30 - | Alm. undervisning Flere eksempler på brug af Producer-Consumer mønsteret (push - pull) - flere producer/consumer til samme ressource - med bounded buffer problem Lidt generelt om delegater
|
TrådEksempel9_ProducerConsumer_Buffer
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 på egen hånd (tråd opgave 7 og 8) 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 7.1 P-HUS: Producer-Consumer & Guarded Suspention |
Trådopgaver (7-8) | |
Fredag | 08:30 - |
Opsamling på tråde, delegater og events Om tråde og GUI - Invoke |
ObserverPattern_Tråde_og_Gui ObserverPattern_Tråde_og_Gui_Winform_og_WPF (Ny erstatning) |
- 10:00 | |||
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 tråd opgave 7 og 8 |
Trådopgaver (7-8) | |
Opgaveløsning (tråd opgave 9 - obligatorisk til næste uge) 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
|
Afleveringsopgaver (obligatoriske) denne uge: Afleveringsopgaver (obligatoriske) denne uge: Trådopgave 7 spørgsmål 1 (du må gerne aflevere svar på hele opgaven) |
(*) 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 emnerne 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 ------------------------------------------------------------------------------- Tråde: Multithreaded Programming Using C# - CodeProject MSDN -Thread Class -Threading Objects and Features -Thread Pooling -Timer -Monitor -Interlocked -ReaderWriterLock |
Uge 07 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Mandag | 08:30 -
Opsamling onsdag |
Alm. undervisning Opsamling på tråde, delegater og events Om tråde og GUI - Invoke (gentages pga sygdom sidste uge)
|
ObserverPattern_Tråde_og_Gui ObserverPattern_Tråde_og_Gui_Winform_og_WPF (Ny erstatning) Tråde-og-GUI (Det centrale - tricket i ovenstående) |
Design af socket-programmering - fortsat (evt. først onsdag)
|
SocketEchoComandBased (eksempler
med opdeling i kommunikation og behandling) Indeholder tekstfil med indholdsbeskrivelse og PowerPoint Medtages: - SocketServerCmdBasedStatic - SocketServerCmdConnected - SocketServerCmdDisconnected_V01 |
||
12:30- 14:00 |
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. |
Opgave 9 - termometer med alarm-event | |
Onsdag | 08:30 - | Opsamling fra sidste fredag og mandag - pga sygdom | |
Mere design med tråde: - (simulering af ) fysiske processer - buffer - producer, consumer - splitter, sorter - løs kobling med observer, eventbaseret overvågning |
Opgave 10 med øl-sodavand soteringsanlæg Du kan evt. bruge elementer fra: TrådEksempel9_ProducerConsumer_Buffer
|
||
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 (tråd opgave 9)
Opgaveløsning (tråd opgave 10 - obligatorisk til næste uge) |
Opgave 9 - termometer med alarm-event
Opgave 10 med øl-sodavand soteringsanlæg
|
|
Fredag | 08:30 - | Opsamling på ugens emner samt opgaveløsning | |
- 10:00 | |||
12:30 - 14:00 | Opgaveløsning - se opgaver onsdag | ||
Afleveringsopgaver (obligatoriske) 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 emnerne 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 ------------------------------------------------------------------------------- Tråde: Multithreaded Programming Using C# - CodeProject MSDN -Thread Class -Threading Objects and Features -Thread Pooling -Timer -Monitor -Interlocked -ReaderWriterLock |
Uge 08 - ingen undervisning (vinterferie)
Uge 09 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Mandag | 08:30 - |
Opsamling fra uge 7
Socket-chatserver design: Broadcasting
|
Eksempel på design-muligheder: Chat server design i trin mod observer-mønster ekstra: tilsvarende design for echoserver -> service klasse |
Proxy-mønsteret
Diskussion af ideer og design af chatserver med brug af producer-consumer mønster med buffer og mulighed for ikke at holde socket åben under hele chat'en
|
Slides om Proxy mønster Eksempel på brug af proxy-mønster til echoservice'en fra tidligere
|
||
12:30 - 14:00 |
Opgaveløsning (tråd opgave
10 - obligatorisk) 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 |
Opgave 10 med øl-sodavand soteringsanlæg Du kan evt. bruge elementer fra: TrådEksempel9_ProducerConsumer_Buffer |
|
Onsdag | 08:30 - | Opsamling på tråd og
socketopgaverne til nu Kommunikation på lidt højere
abstraktionsniveau
|
Om WebClient klassen: |
12:30 - 14:00 |
Evt. opstart af Projekt 1 (tilgang vil fremgå af nyhed i fronter-rum) | Se fronter | |
Fredag | 08:30 - 10:00 | Projektarbejde - socketprojekt (vejledning - bjbu) | Se fronter |
Afleveringsopgaver (obligatoriske) 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 |
Løsningseksempel på Øl-Vand opgave Løsningseksempel på Termometeropgave |
Uge 10 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Mandag | 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 | ||
Fredag | 08:30 - - 10:00 | Projektarbejde - socketprojekt (vejledning - bjbu) | Se fronter |
10:00 - | Projektarbejde |