﻿<?xml version="1.0" encoding="utf-8" ?> 
<?xml-stylesheet type="text/xsl" href="../../webpages/courses.xsl" ?>
<!--
/////////////////////////////////////////////////////////////////////////////
//  CSE681codeL23.xml - provides links Lecture #12 materials                 //
//                     on the ECS college server                           //
//                                                                         //
//  Jim Fawcett, CST 2-187, Syracuse University, jfawcett@twcny.rr.com     //
/////////////////////////////////////////////////////////////////////////////
-->

<courses name="Fawcett">

  <btitle>CSE681 Lecture #23</btitle>
  <theme src="../../webpages/CodeTheme.css" />

  <visible>
  <title>CSE681 - Software Modeling and Analysis</title>
  <subtitle>Lecture #23 - Asynchronous Systems</subtitle>
  <revised>07 November 2010</revised>
  
  <hilight>
    <ifile title="Home">../../webpages/FawcettHome.xml</ifile>&#32;
    <ifile title="Courses">../../webpages/Courses.xml</ifile>&#32;
    <ifile title="Code">../../webpages/Code.xml</ifile>&#32;
    <ilink title="Handouts">www.ecs.syr.edu/faculty/fawcett/handouts</ilink>&#32;
    <ifile title="CoreTech">../../webpages/CoreTechnologies.xml</ifile>&#32;
    <ifile title="Books">../../webpages/Books.xml</ifile>&#32;
    <ifile title="Articles">../../webpages/Articles.xml</ifile>&#32;
    <ifile title="Math">../../webpages/Mathematics.xml</ifile>&#32;
    <ifile title="Research">../../webpages/research.xml</ifile>&#32;
    <ifile title="Masters Projects">../../webpages/MastersProjects.xml</ifile>&#32;
    <ifile title="SWDev">../../webpages/swdev.xml</ifile>&#32;
    <ifile title="WebDev">../../webpages/webdev.xml</ifile>&#32;
    <ifile title="News">../../webpages/news.xml</ifile>&#32;
    <ifile title="OtherLinks">../../webpages/OtherLinks.xml</ifile>&#32;
    <ifile title="SiteDesign">../../webpages/SiteDesign.xml</ifile>&#32;
    <ifile title="Graduates">../../webpages/graduates.xml</ifile>&#32;
    <ifile title="AllPages">../../webpages/AllPages.xml</ifile>&#32;
    <ifile title="Office Hours">../../webpages/OfficeHours.xml</ifile>&#32;
    <notice title="Notices">../../webpages/notices.xml</notice>&#32;
    <html><a href="#contents">Contents</a></html>&#32;
  </hilight>

  <!-- <include src="CoursesNavBar.xml"/> -->

  <hilight>
    <ifile title="CSE681-SWMAA">../../webpages/CSE681.xml</ifile>&#32;
    <ifile title="CSE686-IP">../../webpages/CSE686.xml</ifile>&#32;
    <ifile title="CSE687-OOD">../../webpages/CSE687.xml</ifile>&#32;
    <ifile title="CSE775-DO">../../webpages/CSE775.xml</ifile>&#32;
    <ifile title="CSE776-DP">../../webpages/CSE776.xml</ifile>&#32;
    <ifile title="CSE778-AWP">../../webpages/CSE778.xml</ifile>&#32;
    <ifile title="CSE784-SWS">../../webpages/CSE784.xml</ifile>
  </hilight>

  <hilight>
    <ifile title="Lecture #01">../Lectures/CSE681CodeL1.xml</ifile>&#32;
    <ifile title="Lecture #02">../lectures/CSE681CodeL2.xml</ifile>&#32;
    <ifile title="Lecture #03">../Lectures/CSE681CodeL3.xml</ifile>&#32;
    <ifile title="Lecture #04">../Lectures/CSE681CodeL4.xml</ifile>&#32;
    <ifile title="Lecture #05">../Lectures/CSE681CodeL5.xml</ifile>&#32;
    <ifile title="Lecture #06">../Lectures/CSE681CodeL6.xml</ifile>&#32;
    <ifile title="Lecture #07">../Lectures/CSE681CodeL7.xml</ifile>&#32;<br/>
    <ifile title="Lecture #08">../Lectures/CSE681CodeL8.xml</ifile>&#32;
    <ifile title="Lecture #09">../Lectures/CSE681CodeL9.xml</ifile>&#32;
    <ifile title="Lecture #10">../Lectures/CSE681CodeL10.xml</ifile>&#32;
    <ifile title="Lecture #11">../Lectures/CSE681CodeL11.xml</ifile>&#32;
    <ifile title="Lecture #12">../Lectures/CSE681CodeL12.xml</ifile>&#32;
    <ifile title="Lecture #13">../Lectures/CSE681CodeL13.xml</ifile>&#32;
    <ifile title="Lecture #14">../Lectures/CSE681CodeL14.xml</ifile>&#32;<br/>
    <ifile title="Lecture #15">../Lectures/CSE681CodeL15.xml</ifile>&#32;
    <ifile title="Lecture #16">../Lectures/CSE681CodeL16.xml</ifile>&#32;
    <ifile title="Lecture #17">../Lectures/CSE681CodeL17.xml</ifile>&#32;
    <ifile title="Lecture #18">../Lectures/CSE681CodeL18.xml</ifile>&#32;
    <ifile title="Lecture #19">../Lectures/CSE681CodeL19.xml</ifile>&#32;
    <ifile title="Lecture #20">../Lectures/CSE681CodeL20.xml</ifile>&#32;
    <ifile title="Lecture #21">../Lectures/CSE681CodeL21.xml</ifile>&#32;<br/>
    <ifile title="Lecture #22">../Lectures/CSE681CodeL22.xml</ifile>&#32;
    <ifile title="Lecture #23">../Lectures/CSE681CodeL23.xml</ifile>&#32;
    <ifile title="Lecture #24">../Lectures/CSE681CodeL24.xml</ifile>&#32;
    <ifile title="Lecture #25">../Lectures/CSE681CodeL25.xml</ifile>&#32;
    <ifile title="Lecture #26">../Lectures/CSE681CodeL26.xml</ifile>&#32;
    <ifile title="Lecture #27">../Lectures/CSE681CodeL27.xml</ifile>&#32;
    <ifile title="Lecture #28">../Lectures/CSE681CodeL28.xml</ifile>&#32;
  </hilight>
  
  <hilight>
    <html>
      <a href="../../webpages/cse681.xml#Syllabus">Syllabus</a>
    </html>&#32;
    <ifile title="SG-SMA">StudyGuideSMA.xml</ifile>&#32; 
    <ifile title="SG-OCD">StudyGuideOCD.xml</ifile>&#32;
    <ifile title="SG-Notes">StudyGuideNotes.xml</ifile>
  </hilight>
  
  <section title="Web Resources:">
      <ilink title="UML">bdn.borland.com/article/0,1410,31863,00.html</ilink>&#32;
      <ilink title="XML,&#160;HTML">www.w3schools.com</ilink>&#32;
      <ilink title="Code&#160;Project">www.codeproject.com/</ilink>&#32;
      <ilink title="Microsoft&#160;Developer's&#160;Network">www.msdn.microsoft.com</ilink>&#32;
      <ilink title="DevelopMentor">www.develop.com/devresources/default.aspx</ilink>&#32;
      <ilink title="XML">xml.com</ilink>&#32;
      <ilink title="Sells&#160;Brothers">sellsbrothers.com</ilink>&#32;
      <ilink title="Windows&#160;Developer's&#160;Journal">www.ddj.com/windows/?cid=vnav</ilink>&#32;
      <ilink title="WindowsClient.net">windowsclient.net//</ilink>&#32;
      <ilink title="DotNetJunkies">www.dotnetjunkies.com</ilink>&#32;
      <ilink title="dotnet quickstart tutorials">asp.dotnetheaven.com/</ilink>&#32;
      <ilink title="C#&#160;Corner">www.c-sharpcorner.com</ilink>&#32;
      <ilink title="Mono&#160;Project">www.go-mono.com</ilink>&#32;
      <ilink title="Performance&#160;Counters">msdn.microsoft.com/en-us/library/w8f5kw2e(VS.71).aspx</ilink>&#32;
  </section>
  
  <isection title="Office Hours:">
    <ifile title="Instructor &amp; TAs">../../webpages/officeHours.xml</ifile>
  </isection>
  
  <section title="Content:">
  This lecture is concerned with Asynchronous Systems and Project #5.
    <olist>
      <litem>
        <html>
          The <a href="../../webpages/CSE681.xml#Syllabus">Syllabus</a> describes topics to be covered,
          reading material for you to digest <u>before coming to class</u>, and due dates
          for the assigned projects.
        </html>
      </litem>
<!--
      <litem>
        <file title="Midterm Makeup Exam - due December 13th, 2006">../midterm/MTMUF06.doc</file>
        This is a take home make up examination.  You are required to do two things:<br/>
        <olist>
          <litem>
            Review your exam solution, and, for each question, describe what was wrong with your answer, if
            anything.  Please do not feedback my solutions.
          </litem>
          <litem>
            Complete the Makeup Examination, linked above.
          </litem>
        </olist>
        If you complete these two tasks nearly flawlessly, your midterm grade will be
        raised to an 85, but no higher.  You may ask any question you wish about the examination.  The TA and
        I will give clear answers about how to tackle the problem in question.
      </litem>
      <litem>
        <html><h2>Helpers for Project #4:</h2></html>
        <ind>
          <file title="DLL Loading - implicit and explicit (Lecture #7)">../code/DynamicLinkLibraries</file>
          How the Executives attach to the parts they manage.<p/>
          <file title="Message Framing Socket Receiver (Lecture #5)">../../CoreTechnologies/SocketsAndRemoting/code/MessageFraming</file>
          Communication component receivers need to do this.<p/>
          <file title="Base64Encoding (Lecture #5)">../code/Base64Encoding</file>
          Any component that wants to send, possibly binary, files needs to do this.<p/>
          <file title=".Net Process Creation (Lecture #6)">../../CoreTechnologies/ThreadsAndSynchronization/code/ProcessDemoDotNet</file>
          Shows how to wrap a legacy EXE.<p/>
          <file title="concurrent file access">../code/ConcurrentFileAccess</file>
          Uses exceptions thrown when files can't be opened to try later.<p/>
          <link title="Safe Thread Synchronization, Jeffrey Richter">msdn.microsoft.com/msdnmag/issues/03/01/NET/</link>
        </ind>
      </litem>
-->
      <llitem label="Projects:">
        <tblock>
        <ifile title="Project #3">../projects/Pr3f10.doc</ifile>, 
        <ifile title="Project #4">../projects/Pr4f10.doc</ifile>, 
        <ifile title="Project #5">../projects/Pr5f10.doc</ifile> 
        <p/>
        <file title="WCF Communication Prototype - helper for Pr#4">../../CoreTechnologies/SocketsAndRemoting/code/WCF_Fawcett_Examples/WCF_MessagePassingComm</file>
        </tblock>
      </llitem>
      <litem>
        <html><h3>Another interesting way of implementing message passing:</h3></html>
        <ind>
          <file title="ADAM-Wrapper-Prototype, updated with Comm component">../code/ADAM-Wrapper-Prototype</file>
          All message handlers, e.g., virtually all parts, inherit from AWrapper, except for UIs that already
          inherit implementation from Form.  UIs need to create a message handler that does inherit from AWrapper.<p/>
        </ind>
      </litem>
      <llitem label="Asynchronous Communication">
        <tblock>
          <file title="Asynchronous Systems Presentation">../presentations/AsynchSys.ppt</file>
          <p/>
          <file title="Queued Messages">../../CoreTechnologies/ThreadsAndSynchronization/code/QueuedMessages</file>
          Deposit messages in a queue for later retrieval by another thread.
          <p/>
          <file title="Asynchronous Calls Demo">../../CoreTechnologies/ThreadsAndSynchronization/code/AsynchCallback</file>
          Use delegates asynchronous BeginInvoke and EndInvoke methods.
          <p/>
          <file title="Form with BeginInvoke">../../CoreTechnologies/WindowsProgramming/code/FormBeginInvokeDemo</file>
          Use the same asynchronous delegate, but now dequeue with a UI thread.
          <p/>
          <file title="ThreadPool Demo">../../CoreTechnologies/ThreadsAndSynchronization/code/ThreadPoolDemo</file>
          Dispatch work items to members of a thread pool.
          <p/>
          <file title="Form's BackgroundWorker">../../CoreTechnologies/ThreadsAndSynchronization/code/FormWithTask</file>
          The Form provided BackgroundWorker wraps the use of a ThreadPool to simplify a developer's implementation.
          <p/>
          <link title="You can use the BackgroundWorker with WPF, accorting to this blog post">pavanpodila.spaces.live.com/blog/cns!9C9E888164859398!246.entry</link>
          <p/>
          <file title="Abstract Task Model">../../CoreTechnologies/ThreadsAndSynchronization/code/Tasks</file>
          This is an attempt to implement a Task abstraction.
        </tblock>
      </llitem>
<!--
      <litem>
          <file title="Queued Messages with synchronized methods">../../CoreTechnologies/ThreadsAndSynchronization/code/QueuedMessagesWithSynchronizedMethods</file>
          <file title="Blocking Queue">../../CoreTechnologies/ThreadsAndSynchronization/code/BlockingQueueCS</file>
          <file title="Threaded Mediator">../code/Mediator/MediatorCode</file>
          <file title="Thread Problems">../../CoreTechnologies/ThreadsAndSynchronization/code/ThreadProblems</file>
          <file title="Synchronization">../../CoreTechnologies/ThreadsAndSynchronization/code/synch</file>
      </litem>
-->
      <litem>
        <file title="Peer-to-Peer Prototype">../code/PeerToPeerPrototype</file>
        Illustrates use of bilateral remoting with SingleCall activation to establish Peer-To-Peer communication.
      </litem>
      <litem>
        <file title = "Program Structure">../presentations/ProgramStructure.pptx</file>
      </litem>
      <litem>
        <file title="Software Design">../presentations/SoftwareDesign.ppt</file>
      </litem>
      <litem>
        <file title="Software Structure Research - motivation for Pr #5">../presentations/SoftwareStructureResearchExcerpts.ppt</file>
      </litem>
<!--
      <litem>
        <html><h2>Helpers for Project #5</h2></html>
        <ind>
          <file title="Riddhiman Ghosh - Best Final Reports">../presentations/rghosh5.rtf</file>
          <file title="Saket Satta - Best Final Reports">../presentations/sjsatta5.doc</file><p/>
          <file title="Project Center Use Cases">../presentations/ProjectCenterUseCases.ppt</file>
        </ind>
      </litem>
-->
    </olist>
  </section>  
  <p/><hr/><p/>
  </visible>
</courses>
