<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6266756813167351102</id><updated>2024-09-01T04:42:15.514-04:00</updated><title type='text'>WCF PeerChannel</title><subtitle type='html'>The purpose of this blog is post my findings on WCF PeerChannel in conjunction with my CIS 695 Masters Project for the University of Michigan - Dearborn.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://peerchannel.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6266756813167351102/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://peerchannel.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Bob Karaban</name><uri>http://www.blogger.com/profile/04172666087291490445</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXs_OTznK266EJlZTV9PBaFDjf354CMshpF3j4M9CK4YVluyV771qFc8mQHxzG7mYqey51EXo2yc46TAjrTLXT87fnKY0dyN5iYN1JyhHH2Pgidbs8T2BdAyxk6P4FJw/s220/Bob.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6266756813167351102.post-456813701872010172</id><published>2008-04-01T04:41:00.002-04:00</published><updated>2008-04-01T04:51:36.888-04:00</updated><title type='text'>ServiceHost vs InstanceContext</title><content type='html'>&lt;span xmlns=&quot;&quot;&gt;&lt;p&gt;Well, I might be missing something but from what I can tell using &lt;a href=&quot;http://msdn2.microsoft.com/en-us/library/system.servicemodel.servicehost.aspx&quot;&gt;ServiceHost &lt;/a&gt;doesn&#39;t make very much sense in PeerChannel application. From my experiments if you create a ServiceHost and then create a DuplexChannel, when you invoke a service operation on the channel the message actual appears to arrive twice. Also creating a &#39;regular&#39; Channel (&lt;a href=&quot;http://msdn2.microsoft.com/en-us/library/ms751400.aspx&quot;&gt;ChannelFactory &lt;/a&gt;instead of &lt;a href=&quot;http://msdn2.microsoft.com/en-us/library/ms576164.aspx&quot;&gt;DuplexChannelFactory&lt;/a&gt;) doesn&#39;t push the message to all nodes – it seems like only some of the nodes actually receive the message. There are a few examples out there using a &#39;regular&#39; Channel – but when I run more that than 3 nodes using that configuration each node just does not get the message.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;So – What I do recommend is using &lt;a href=&quot;http://msdn2.microsoft.com/en-us/library/system.servicemodel.instancecontext.aspx&quot;&gt;InstanceContext &lt;/a&gt;housed in a separate thread and DuplexChannels for all sending of data. A quick sample might look like this…&lt;/p&gt;&lt;blockquote&gt;[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,&lt;br /&gt;                               ConcurrencyMode = ConcurrencyMode.Reentrant,     &lt;br /&gt;                               UseSynchronizationContext = false)]&lt;br /&gt;public class ServiceImplementation: IPeerServiceContract&lt;br /&gt;    { /* snip */ }&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;public static class WorkerThread&lt;br /&gt;{&lt;br /&gt;      /* snip variables */&lt;br /&gt;      public static void Run()&lt;br /&gt;      {&lt;br /&gt;                   service = new ServiceImplementation();&lt;br /&gt;                   host = new  InstanceContext(service);&lt;br /&gt;                   host.Open();&lt;/p&gt;&lt;p&gt;&lt;br /&gt;                   channelFactory = new&lt;br /&gt;                                      DuplexChannelFactory&lt;ipeerperformancechannel&gt;(service,&lt;br /&gt;                                                         &quot;WCFPeerPerformance&quot;);&lt;br /&gt;                   channelFactory.Credentials.Peer.MeshPassword = MeshPassword;&lt;br /&gt;                   channel = channelFactory.CreateChannel();&lt;br /&gt;                   channel.Open();&lt;br /&gt;         }&lt;br /&gt;}&lt;/p&gt;&lt;/blockquote&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://peerchannel.blogspot.com/feeds/456813701872010172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6266756813167351102/456813701872010172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6266756813167351102/posts/default/456813701872010172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6266756813167351102/posts/default/456813701872010172'/><link rel='alternate' type='text/html' href='http://peerchannel.blogspot.com/2008/04/servicehost-vs-instancecontext.html' title='ServiceHost vs InstanceContext'/><author><name>Bob Karaban</name><uri>http://www.blogger.com/profile/04172666087291490445</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXs_OTznK266EJlZTV9PBaFDjf354CMshpF3j4M9CK4YVluyV771qFc8mQHxzG7mYqey51EXo2yc46TAjrTLXT87fnKY0dyN5iYN1JyhHH2Pgidbs8T2BdAyxk6P4FJw/s220/Bob.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6266756813167351102.post-3525739507144649997</id><published>2008-04-01T04:28:00.002-04:00</published><updated>2008-04-01T04:31:17.285-04:00</updated><title type='text'>PeerChannel Performance Improvement</title><content type='html'>&lt;span xmlns=&quot;&quot;&gt;&lt;p&gt;My advisor wanted me to drill down into the following areas to make sure I was doing things correctly since the performance was so bad on my first test runs through. Specifically he wanted me to look into:&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Why was I getting &quot;The system hit the limit set for throttle MaxConcurrentCalls&quot;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How does the graph pruning work?&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Well, after digging into the protocol spec and hitting Google about a few interesting sections – I&#39;ve &lt;span style=&quot;TEXT-DECORATION: line-through&quot;&gt;refactor&lt;/span&gt; rewritten the pretty much the entire application. And the good news is that my application runs ridiculously better, and so here are some of the tips/hits I figured out (with the help of some great Microsoft folks out there, MVPs and other bloggers)…&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Threading Issues&lt;/strong&gt;&lt;br /&gt;First, the biggest tip off should have been that the WinForm I was using kept locking up and not responding. Having WCF run within the WinForm context &lt;span style=&quot;TEXT-DECORATION: underline&quot;&gt;is a very bad idea&lt;/span&gt;. If your WinForm freezes or locks up, I would start here looking at fixing that first. There are few articles[&lt;a href=&quot;http://blogs.msdn.com/mahjayar/archive/2006/11/07/winfx-usesynchronizationcontext-usage.aspx&quot;&gt;Here&lt;/a&gt;, &lt;a href=&quot;http://blogs.msdn.com/hoop/archive/2006/08/28/729192.aspx&quot;&gt;Here&lt;/a&gt;, or &lt;a href=&quot;http://nevmehta.blogspot.com/2006/12/what-is-usesynchronizationcontext.html&quot;&gt;Here&lt;/a&gt;] that talk about the &lt;a href=&quot;http://msdn2.microsoft.com/en-us/library/system.servicemodel.servicebehaviorattribute.usesynchronizationcontext.aspx&quot;&gt;UseSynchronizationContext&lt;/a&gt; and how that should be false to improve performance (as stated in the articles, it doesn&#39;t synchronize your callbacks to the UI thread). It seems (to me at least) that if you decorate your actual WinForm with the ServiceBehavior setting the &lt;a href=&quot;http://msdn2.microsoft.com/en-us/library/system.servicemodel.instancecontextmode.aspx&quot;&gt;InstanceContextMode&lt;/a&gt;, the &lt;a href=&quot;http://msdn2.microsoft.com/en-us/library/system.servicemodel.concurrencymode.aspx&quot;&gt;ConcurrencyMode&lt;/a&gt; and &lt;a href=&quot;http://msdn2.microsoft.com/en-us/library/system.servicemodel.servicebehaviorattribute.usesynchronizationcontext.aspx&quot;&gt;UseSynchronizationContext&lt;/a&gt; it would still get nonresponsive as I added more nodes to the mesh (testing on a single box currently).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;For some reason that seems to be the popular way to setup the samples out on the net – IMHO it seems much better to separate out the responsibilities into three classes 1) The UX View, 2) The Service Implementation Class, and 3) The Worker Thread Class. The Service Implementation class contains the ServiceBehavior and handles any incoming calls. The Worker Thread Class collaborates with the Service and contains both InstanceContext (which gets an instance of the Server Class) and the DuplexChannel that implement the ServiceContract. Finally the View just launches the Worker Thread on a dedicated thread. Take a look at &lt;a href=&quot;http://www.codeplex.com/peerchannelperf/SourceControl/ListDownloadableCommits.aspx&quot;&gt;Perf2 version on CodePlex&lt;/a&gt; Version 1.0 if you want to see it in action...&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Graph Pruning&lt;/strong&gt;&lt;br /&gt;When I was originally running my tests, I also created a simple way to see who was connected to who. The strange thing was that it always looked fully connected. In short, the mistake I made here is that you can&#39;t assume it will start pruning right off the back. The two most important things here are Maintenance Timer needs to run clean up nodes, but that can only be effective after the LinkUtility is calculated which runs on another Timer. I need to run some more tests on this, but to be sure but it does appear to be removing some connections, just slowly… The biggest helps here were reading the actual &lt;a href=&quot;http://download.microsoft.com/download/9/5/e/95ef66af-9026-4bb0-a41d-a4f81802d92c/%5BMC-PRCH%5D.pdf&quot;&gt;Peer Channel Protocol Specification&lt;/a&gt;, the &lt;a href=&quot;http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&amp;amp;Sect2=HITOFF&amp;amp;p=1&amp;amp;u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&amp;amp;r=1&amp;amp;f=G&amp;amp;l=50&amp;amp;co1=AND&amp;amp;d=PG01&amp;amp;s1=20060212592.PGNR.&amp;amp;OS=DN/20060212592RS=DN/20060212592&quot;&gt;Patent&lt;/a&gt; and the blog post &quot;&lt;a href=&quot;http://blogs.msdn.com/peerchan/archive/2007/05/07/how-many-channels-can-a-mesh-handle.aspx&quot;&gt;How many channels can a mesh handle?&lt;/a&gt;&quot;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://peerchannel.blogspot.com/feeds/3525739507144649997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6266756813167351102/3525739507144649997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6266756813167351102/posts/default/3525739507144649997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6266756813167351102/posts/default/3525739507144649997'/><link rel='alternate' type='text/html' href='http://peerchannel.blogspot.com/2008/04/peerchannel-performance-improvement.html' title='PeerChannel Performance Improvement'/><author><name>Bob Karaban</name><uri>http://www.blogger.com/profile/04172666087291490445</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXs_OTznK266EJlZTV9PBaFDjf354CMshpF3j4M9CK4YVluyV771qFc8mQHxzG7mYqey51EXo2yc46TAjrTLXT87fnKY0dyN5iYN1JyhHH2Pgidbs8T2BdAyxk6P4FJw/s220/Bob.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6266756813167351102.post-7434899253443862228</id><published>2008-03-29T13:32:00.002-04:00</published><updated>2008-03-29T13:40:15.863-04:00</updated><title type='text'>PeerChannel Specs</title><content type='html'>&lt;span xmlns=&quot;&quot;&gt;&lt;p&gt;While searching for detailed information about the internals of Peer Channel I came across the actual specification for the Peer Channel and the actual patent that Microsoft submitted for it. This information should be really helpful, and is actual pretty interesting just in the sense of how a company like Microsoft thinks and lays out software design. The links are below in case anyone else is interested…&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Peer Channel Protocol Specification&lt;br /&gt;&lt;a href=&quot;http://download.microsoft.com/download/9/5/e/95ef66af-9026-4bb0-a41d-a4f81802d92c/%5BMC-PRCH%5D.pdf&quot;&gt;http://download.microsoft.com/download/9/5/e/95ef66af-9026-4bb0-a41d-a4f81802d92c/%5BMC-PRCH%5D.pdf&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;US Patent&lt;br /&gt;&lt;a href=&quot;http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&amp;amp;Sect2=HITOFF&amp;amp;p=1&amp;amp;u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&amp;amp;r=1&amp;amp;f=G&amp;amp;l=50&amp;amp;co1=AND&amp;amp;d=PG01&amp;amp;s1=20060212592.PGNR.&amp;amp;OS=DN/20060212592RS=DN/20060212592&quot;&gt;http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&amp;amp;Sect2=HITOFF&amp;amp;p=1&amp;amp;u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&amp;amp;r=1&amp;amp;f=G&amp;amp;l=50&amp;amp;co1=AND&amp;amp;d=PG01&amp;amp;s1=20060212592.PGNR.&amp;amp;OS=DN/20060212592RS=DN/20060212592&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; Update: Just noticed the release date on the document: Thursday, March 13, 2008 - no wonder I never found it before...&lt;/p&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://peerchannel.blogspot.com/feeds/7434899253443862228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6266756813167351102/7434899253443862228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6266756813167351102/posts/default/7434899253443862228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6266756813167351102/posts/default/7434899253443862228'/><link rel='alternate' type='text/html' href='http://peerchannel.blogspot.com/2008/03/peerchannel-specs.html' title='PeerChannel Specs'/><author><name>Bob Karaban</name><uri>http://www.blogger.com/profile/04172666087291490445</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXs_OTznK266EJlZTV9PBaFDjf354CMshpF3j4M9CK4YVluyV771qFc8mQHxzG7mYqey51EXo2yc46TAjrTLXT87fnKY0dyN5iYN1JyhHH2Pgidbs8T2BdAyxk6P4FJw/s220/Bob.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6266756813167351102.post-4627441514380790274</id><published>2008-02-27T16:46:00.001-05:00</published><updated>2008-02-27T16:46:26.515-05:00</updated><title type='text'>Project Update</title><content type='html'>&lt;span xmlns=&#39;&#39;&gt;&lt;p&gt;Alright, the project is starting to come together. Here is the current feature list&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Launching the Monitor/Controller on multiple machines allows you launch and manage multiple Nodes from one any Monitor/Controller.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You can toggle between sending messages through PeerChannel or TCP&lt;br /&gt;&lt;/li&gt;&lt;li&gt;At the end, each node can be told to upload it&#39;s data collected to the central SqlExpress server&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You can enable Graph Monitoring which uses a Microsoft Research Project called GLEE (Graph Layout Execution Engine) to graphically show the connections between machines for the Peer Network (Traditional TCP obviously looks like a star)&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Here is a link the &lt;a href=&#39;http://research.microsoft.com/research/downloads/Details/c927728f-8872-4826-80ee-ecb842d10371/Details.aspx&#39;&gt;GLEE&lt;/a&gt; – it works really well.  The biggest problem with my implementation is that the nodes are being updated periodically, and my graph view only updates on button click events which copies the data that was being stored.  So it&#39;s not well synchronized or anything yet – and so if you click quickly it can show you different graphs.  That is a pretty easy bug to address.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The next plan is get the software running on multiple machines and start testing the performance.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Once again – here is the link to the CodePlex Project -- &lt;a href=&#39;http://www.codeplex.com/peerchannelperf&#39;&gt;http://www.codeplex.com/peerchannelperf&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://peerchannel.blogspot.com/feeds/4627441514380790274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6266756813167351102/4627441514380790274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6266756813167351102/posts/default/4627441514380790274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6266756813167351102/posts/default/4627441514380790274'/><link rel='alternate' type='text/html' href='http://peerchannel.blogspot.com/2008/02/project-update.html' title='Project Update'/><author><name>Bob Karaban</name><uri>http://www.blogger.com/profile/04172666087291490445</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXs_OTznK266EJlZTV9PBaFDjf354CMshpF3j4M9CK4YVluyV771qFc8mQHxzG7mYqey51EXo2yc46TAjrTLXT87fnKY0dyN5iYN1JyhHH2Pgidbs8T2BdAyxk6P4FJw/s220/Bob.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6266756813167351102.post-6078147000089242459</id><published>2008-02-16T16:31:00.001-05:00</published><updated>2008-02-16T16:31:17.819-05:00</updated><title type='text'>PeerChannel Performance Code</title><content type='html'>&lt;span xmlns=&#39;&#39;&gt;&lt;p&gt;We use Team Foundation Server at work, and now that I&#39;ve been playing with my PeerChannel Performance application – I&#39;m realizing how much I miss having source control.  So I put my entire source up on CodePlex.  The project is a Visual Studio 2008 – and I&#39;m using TFS Explorer 2008 to connect to it. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here is the Project Page  -- &lt;a href=&#39;http://www.codeplex.com/peerchannelperf&#39;&gt;http://www.codeplex.com/peerchannelperf&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://peerchannel.blogspot.com/feeds/6078147000089242459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6266756813167351102/6078147000089242459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6266756813167351102/posts/default/6078147000089242459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6266756813167351102/posts/default/6078147000089242459'/><link rel='alternate' type='text/html' href='http://peerchannel.blogspot.com/2008/02/peerchannel-performance-code.html' title='PeerChannel Performance Code'/><author><name>Bob Karaban</name><uri>http://www.blogger.com/profile/04172666087291490445</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXs_OTznK266EJlZTV9PBaFDjf354CMshpF3j4M9CK4YVluyV771qFc8mQHxzG7mYqey51EXo2yc46TAjrTLXT87fnKY0dyN5iYN1JyhHH2Pgidbs8T2BdAyxk6P4FJw/s220/Bob.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6266756813167351102.post-2889121162670468892</id><published>2008-02-10T14:04:00.001-05:00</published><updated>2008-02-10T14:04:10.068-05:00</updated><title type='text'>Starting a Masters Project</title><content type='html'>&lt;span xmlns=&#39;&#39;&gt;&lt;p&gt;Getting started on this project is much harder than I expected.  I&#39;m about 6 weeks in and feel very behind – being in New Hampshire all last week for work didn&#39;t help either.  So far I have created two prototypes of WCF PeerChannel applications – one to simulate a Computer Aided Dispatch solution using PeerChannel and the beginnings of sample Chat Application.  Both focus on the one way transmittal of information across the mesh and have gotten more specific in terms of handling people joining and leaving the mesh and finally creating a &lt;a href=&#39;http://blogs.msdn.com/peerchan/archive/2006/08/25/Peer-Channel-and-MessagePropagationFilter.aspx&#39;&gt;MessagePropagationFilter&lt;/a&gt; to avoid receiving any locally created messages (Thanks Peer Channel Team Blog).  The next big task for a real implementation would most likely be synchronization of new nodes with the existing nodes – but for this project I&#39;ll focus on determining good ways to log and determine the performance limitations of the system.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Now that I have gotten my hands a little dirty with WCF, I really wanted to focus on the paper and getting an outline for my project created.  I really didn&#39;t know where to start, so I started where I always start when I don&#39;t know what to do -- Google for it.  So one quick Google for &#39;master thesis outline&#39; and I have some where to start.  A few articles seem very helpful and so I wanted to post them here…&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&#39;http://www.sce.carleton.ca/faculty/chinneck/thesis.html&#39;&gt;How to Organize your Thesis&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;&lt;a href=&#39;http://cs.fit.edu/~wds/guides/howto/&#39;&gt;How to Write a Master&#39;s Thesis in Computer Science&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://peerchannel.blogspot.com/feeds/2889121162670468892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6266756813167351102/2889121162670468892' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6266756813167351102/posts/default/2889121162670468892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6266756813167351102/posts/default/2889121162670468892'/><link rel='alternate' type='text/html' href='http://peerchannel.blogspot.com/2008/02/starting-masters-project.html' title='Starting a Masters Project'/><author><name>Bob Karaban</name><uri>http://www.blogger.com/profile/04172666087291490445</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXs_OTznK266EJlZTV9PBaFDjf354CMshpF3j4M9CK4YVluyV771qFc8mQHxzG7mYqey51EXo2yc46TAjrTLXT87fnKY0dyN5iYN1JyhHH2Pgidbs8T2BdAyxk6P4FJw/s220/Bob.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6266756813167351102.post-5246045742696441013</id><published>2008-01-28T20:59:00.000-05:00</published><updated>2008-01-28T22:10:23.250-05:00</updated><title type='text'>My Masters Project Kickoff...</title><content type='html'>Welcome, I&#39;ve created this site to help document and track my progress on my Masters Project for the &lt;a href=&quot;http://www.umd.umich.edu/&quot;&gt;University of Michigan - Dearborn&lt;/a&gt;.  I&#39;ve been attending school for the last 3 years working towards my &lt;a href=&quot;http://www.engin.umd.umich.edu/CIS/grad_prog/&quot;&gt;Masters in Computer and Information Science&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;My final project is a study on the latency of a &lt;a href=&quot;http://msdn2.microsoft.com/en-us/library/bb756931.aspx&quot;&gt;WCF PeerChannel&lt;/a&gt; application when applied to systems where the message delivery is time sensitive and critical.  One specific system that I will investigate though out my work which contains these types of constraints is a &lt;a href=&quot;http://www.leitsc.org/Publications.htm&quot;&gt;Law Enforcement Computer Aided Dispatch&lt;/a&gt; application.&lt;br /&gt;&lt;br /&gt;I also have created a &lt;a href=&quot;http://PeerChannel.googlepages.com/&quot;&gt;googlepages site&lt;/a&gt; to store any documents created and research notes that I find along the way.&lt;br /&gt;&lt;br /&gt;My hope is that this helps others and at the same time keeps me honest on my progress and my findings.  Thanks</content><link rel='replies' type='application/atom+xml' href='http://peerchannel.blogspot.com/feeds/5246045742696441013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6266756813167351102/5246045742696441013' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6266756813167351102/posts/default/5246045742696441013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6266756813167351102/posts/default/5246045742696441013'/><link rel='alternate' type='text/html' href='http://peerchannel.blogspot.com/2008/01/my-masters-project-kickoff.html' title='My Masters Project Kickoff...'/><author><name>Bob Karaban</name><uri>http://www.blogger.com/profile/04172666087291490445</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXs_OTznK266EJlZTV9PBaFDjf354CMshpF3j4M9CK4YVluyV771qFc8mQHxzG7mYqey51EXo2yc46TAjrTLXT87fnKY0dyN5iYN1JyhHH2Pgidbs8T2BdAyxk6P4FJw/s220/Bob.JPG'/></author><thr:total>0</thr:total></entry></feed>