﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-牙牙窝-文章分类-架构师历程</title><link>http://www.blogjava.net/bigbigtooth/category/9861.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 14 May 2008 03:35:14 GMT</lastBuildDate><pubDate>Wed, 14 May 2008 03:35:14 GMT</pubDate><ttl>60</ttl><item><title>自己的话：关于join的用法</title><link>http://www.blogjava.net/bigbigtooth/articles/176703.html</link><dc:creator>大牙</dc:creator><author>大牙</author><pubDate>Mon, 21 Jan 2008 03:31:00 GMT</pubDate><guid>http://www.blogjava.net/bigbigtooth/articles/176703.html</guid><wfw:comment>http://www.blogjava.net/bigbigtooth/comments/176703.html</wfw:comment><comments>http://www.blogjava.net/bigbigtooth/articles/176703.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bigbigtooth/comments/commentRss/176703.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bigbigtooth/services/trackbacks/176703.html</trackback:ping><description><![CDATA[<br />
虽然join很少用到，但是我老是忘记它的用法，这里也记录一下。<br />
<br />
join方法主要用于在等待某个线程死亡。这个方法会堵塞，等到线程死亡后，在往下执行。<br />
<br />
例如：<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">Thread&nbsp;a&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Thread();<br />
a.start();<br />
a.join();&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">这里会一直停在这，直到线程死亡<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">do&nbsp;something<br />
</span></div>
<br />
上面例子表示，当执行join方法时，会产生堵塞。<br />
<br />
如果线程一直不死亡，则这个堵塞会一直持续下去。使用的时候要注意。<br />
<img src ="http://www.blogjava.net/bigbigtooth/aggbug/176703.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bigbigtooth/" target="_blank">大牙</a> 2008-01-21 11:31 <a href="http://www.blogjava.net/bigbigtooth/articles/176703.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自己的话：关于ThreadLocal的用法</title><link>http://www.blogjava.net/bigbigtooth/articles/176693.html</link><dc:creator>大牙</dc:creator><author>大牙</author><pubDate>Mon, 21 Jan 2008 02:48:00 GMT</pubDate><guid>http://www.blogjava.net/bigbigtooth/articles/176693.html</guid><wfw:comment>http://www.blogjava.net/bigbigtooth/comments/176693.html</wfw:comment><comments>http://www.blogjava.net/bigbigtooth/articles/176693.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/bigbigtooth/comments/commentRss/176693.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bigbigtooth/services/trackbacks/176693.html</trackback:ping><description><![CDATA[<br />
关于ThreadLocal类经常在多线程教程里面用到，很容易搞明白，但是我自己老是记不住。<br />
<br />
前几天又有一位同事问起，我居然一下答不上来，这里用我自己的话写写，方便自己记得清楚。<br />
<br />
ThreadLocal主要作用在于：当多线程程序访问自己的成员变量时，由于会发生同一个类会有多个实例在内存中出现，因此，在变量访问时，会容易出现冲突的情况。<br />
<br />
ThreadLocal就是为了解决线程私有数据访问而创建出来的。顾名思义，每个被放入ThreadLocal中的变量，都只能由其初始线程所访问，而其它线程无法访问，因此达到一个线程私有数据访问的目的。<br />
<br />
至于ThreadLocal的实现，其实也比较简单。就是在ThreadLocal放入一个Map，然后已当前线程作为Key，变量为Value。就能很轻松的分辨出每个线程的私有变量。<br />
<br />
<br />
<img src ="http://www.blogjava.net/bigbigtooth/aggbug/176693.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bigbigtooth/" target="_blank">大牙</a> 2008-01-21 10:48 <a href="http://www.blogjava.net/bigbigtooth/articles/176693.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA版Socket平台的设计文档</title><link>http://www.blogjava.net/bigbigtooth/articles/110142.html</link><dc:creator>大牙</dc:creator><author>大牙</author><pubDate>Thu, 12 Apr 2007 05:02:00 GMT</pubDate><guid>http://www.blogjava.net/bigbigtooth/articles/110142.html</guid><wfw:comment>http://www.blogjava.net/bigbigtooth/comments/110142.html</wfw:comment><comments>http://www.blogjava.net/bigbigtooth/articles/110142.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bigbigtooth/comments/commentRss/110142.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bigbigtooth/services/trackbacks/110142.html</trackback:ping><description><![CDATA[<br>
<h1 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><a name=_Toc165264430><span style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font color=#000000><font size=5>1. </font><span style="FONT: 7pt 'Times New Roman'"><span style="mso-spacerun: yes">&nbsp;</span></span></font></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font color=#000000 size=5>总体设计</font></span></a></h1>
<h2 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><span style="mso-bookmark: _Toc165264433"><font color=#000000><span lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font size=5>1.1&nbsp;</font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font size=5>基本设计概念和处理流程</font></span></font></span></h2>
<h3 style="MARGIN: 12pt 0cm 6pt; TEXT-INDENT: 0cm"><a name=_Toc165264434><span lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size=5>1.1.1 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font size=5>程序划分</font></span></a></h3>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.2pt; mso-char-indent-count: 2.02"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">主要分为服务端和客户端两个部分。</span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.2pt; mso-char-indent-count: 2.02"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">客户端部分又分为同步与异步两种模式。</span></p>
<h3 style="MARGIN: 12pt 0cm 6pt; TEXT-INDENT: 0cm; tab-stops: list 36.0pt"><a name=_Toc165264435><span lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size=5>1.1.2 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font size=5>处理流程描述</font></span></a></h3>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.2pt; mso-char-indent-count: 2.02"><span lang=EN-US>JAVA</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">版接口平台主要实现与外部接口的服务端和客户端的通讯。并提供业务接口，允许基于当前内核实现各种业务。</span></p>
<h1 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><a name=_Toc165264436><span style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font color=#000000><font size=5>2. </font><span style="FONT: 7pt 'Times New Roman'"><span style="mso-spacerun: yes">&nbsp;</span></span></font></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font color=#000000 size=5>平台设计思想</font></span></a></h1>
<h2 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><a name=_Toc165264437><span style="mso-ansi-language: ZH-CN; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font color=#000000><font size=5>2.1 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN"><font color=#000000 size=5>业务无关性</font></span></a><span style="mso-bookmark: _Toc165264437"></span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></h2>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.2pt; mso-char-indent-count: 2.02"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">本平台设计的核心思想是实现通讯平台的核心功能，尽可能使代码与业务剥离，提高代码的可重用性。</span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></p>
<h2 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><a name=_Toc165264438><span style="mso-ansi-language: ZH-CN; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font color=#000000><font size=5>2.2 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN"><font color=#000000 size=5>核心功能模块</font></span></a><span style="mso-bookmark: _Toc165264438"></span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></h2>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.2pt; mso-char-indent-count: 2.02"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">本平台主要由几个核心模块所组成对各种业务的支持</span></p>
<h3 style="MARGIN: 12pt 0cm 6pt; TEXT-INDENT: 0cm"><a name=_Toc165264439><span lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size=5>2.2.1 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font size=5>通信模块</font></span></a></h3>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.2pt; mso-char-indent-count: 2.02"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">使用</span><span style="mso-ansi-language: ZH-CN">JAVA1.4+</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">版本提供的无堵塞</span><span style="mso-ansi-language: ZH-CN">IO</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">实现服务端和客户端的通讯，并提供同步和异步处理两种方式</span></p>
<h3 style="MARGIN: 12pt 0cm 6pt; TEXT-INDENT: 0cm"><a name=_Toc165264440><span lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size=5>2.2.2 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font size=5>线程池服务</font></span></a></h3>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.2pt; mso-char-indent-count: 2.02"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">使用了</span><span style="mso-ansi-language: ZH-CN">JDK 1.5 </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">带的线程池，提供一个线程池的服务，为服务端或客户端提供多线程处理的功能。本身实现了</span><span style="mso-ansi-language: ZH-CN">Singleton</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">模式和自带了监控线程，实现了自我管理。</span></p>
<h3 style="MARGIN: 12pt 0cm 6pt; TEXT-INDENT: 0cm"><a name=_Toc165264441><span lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size=5>2.2.3 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font size=5>字节处理模块</font></span></a></h3>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21.2pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为解析协议提供简便的方法处理字节数组。</span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></p>
<h2 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><a name=_Toc165264442><span style="mso-ansi-language: ZH-CN; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font color=#000000><font size=5>2.3 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN"><font color=#000000 size=5>主要接口</font></span></a><span style="mso-bookmark: _Toc165264442"></span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></h2>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">为了实现通信平台的业务无关性，本平台设计了一些接口提供给业务开发实现。</span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></p>
<h3 style="MARGIN: 12pt 0cm 6pt; TEXT-INDENT: 0cm"><a name=_Toc165264443><span lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size=5>2.3.1 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font size=5>协议解析接口</font></span></a></h3>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为所有解析协议提供统一协议解析类接口。主要是为了统一协议解析的方式。</span></p>
<h3 style="MARGIN: 12pt 0cm 6pt; TEXT-INDENT: 0cm"><a name=_Toc165264444><span lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size=5>2.3.2 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font size=5>业务接口</font></span></a></h3>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">业务接口主要有两种：业务逻辑接口和业务实现接口。</span></p>
<h4 style="MARGIN: 6pt 0cm; TEXT-INDENT: 0cm"><span style="FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">2.3.2.1 <span style="FONT: 7pt 'Times New Roman'">&nbsp; </span></span></span><font face=宋体>业务逻辑接口</font></h4>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">主要为了处理每一个指令的业务流程，例如先读取，再处理业务，再返回结果；或者先发送指令，再等待返回结果。</span></p>
<h4 style="MARGIN: 6pt 0cm; TEXT-INDENT: 0cm"><span style="FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">2.3.2.2 <span style="FONT: 7pt 'Times New Roman'">&nbsp; </span></span></span><font face=宋体>业务实现接口</font></h4>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">主要处理每个协议中每一个指令所对应的业务网处理。</span></p>
<h3 style="MARGIN: 12pt 0cm 6pt; TEXT-INDENT: 0cm"><a name=_Toc165264445><span lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size=5>2.3.3 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font size=5>注册器接口</font></span></a></h3>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">专门为客户端登录服务器时提供的统一的注册方式。</span></p>
<h1 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><a name=_Toc165264446><span style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font color=#000000><font size=5>3. </font><span style="FONT: 7pt 'Times New Roman'"><span style="mso-spacerun: yes">&nbsp;</span></span></font></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font color=#000000 size=5>平台设计</font></span></a></h1>
<h2 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><a name=_Toc165264447><span lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font color=#000000><font size=5>3.1 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font color=#000000 size=5>服务端的设计</font></span></a></h2>
<h3 style="MARGIN: 12pt 0cm 6pt; TEXT-INDENT: 0cm"><a name=_Toc165264448><span style="mso-ansi-language: ZH-CN; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size=5>3.1.1 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN"><font size=5>模块设计图</font></span></a></h3>
<h3 style="MARGIN: 12pt 0cm 6pt; TEXT-INDENT: 0cm"><a name=_Toc165264449><span style="mso-ansi-language: ZH-CN; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size=5>3.1.2 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN"><font size=5>功能</font></span></a><span style="mso-bookmark: _Toc165264449"></span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></h3>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42.2pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo2; tab-stops: list 42.2pt"><span lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">通讯服务</span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42.2pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo2; tab-stops: list 42.2pt"><span style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-ansi-language: ZH-CN; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">并发处理客户端请求</span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42.2pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo2; tab-stops: list 42.2pt"><span style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-ansi-language: ZH-CN; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">自监控</span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42.2pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo2; tab-stops: list 42.2pt"><span style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-ansi-language: ZH-CN; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">可自定义的业务接口</span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></p>
<h2 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><a name=_Toc165264450><span lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font color=#000000><font size=5>3.2 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font color=#000000 size=5>客户端设计</font></span></a></h2>
<h3 style="MARGIN: 12pt 0cm 6pt; TEXT-INDENT: 0cm"><a name=_Toc165264451><span style="mso-ansi-language: ZH-CN; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size=5>3.2.1 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN"><font size=5>模块设计图</font></span></a></h3>
<h3 style="MARGIN: 12pt 0cm 6pt; TEXT-INDENT: 0cm"><a name=_Toc165264452><span lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size=5>3.2.2 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN"><font size=5>功能</font></span></a></h3>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42.2pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo2; tab-stops: list 42.2pt"><span lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">与服务端通讯</span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42.2pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo2; tab-stops: list 42.2pt"><span lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可自定义的业务接口</span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42.2pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo2; tab-stops: list 42.2pt"><span lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">支持异步模式</span></p>
<h1 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><a name=_Toc165264453><span style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font color=#000000><font size=5>4. </font><span style="FONT: 7pt 'Times New Roman'"><span style="mso-spacerun: yes">&nbsp;</span></span></font></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font color=#000000 size=5>业务接口设计</font></span></a></h1>
<h2 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><a name=_Toc165264454><span lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font color=#000000><font size=5>4.1 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font color=#000000 size=5>服务端业务接口</font></span></a></h2>
<h3 style="MARGIN: 12pt 0cm 6pt; TEXT-INDENT: 0cm"><a name=_Toc165264455><span style="mso-ansi-language: ZH-CN; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size=5>4.1.1 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN"><font size=5>业务逻辑接口</font></span></a><span style="mso-bookmark: _Toc165264455"></span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></h3>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">通过继承一个业务逻辑类接口和一个抽象业务逻辑类实现统一的业务逻辑接口实现。主要功能有：</span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo3; tab-stops: list 57.0pt"><span style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-ansi-language: ZH-CN; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">读取请求内容</span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo3; tab-stops: list 57.0pt"><span style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-ansi-language: ZH-CN; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">发送请求</span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo3; tab-stops: list 57.0pt"><span style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-ansi-language: ZH-CN; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">读取配置文件</span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo3; tab-stops: list 57.0pt"><span style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-ansi-language: ZH-CN; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">协议解析</span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo3; tab-stops: list 57.0pt"><span style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-ansi-language: ZH-CN; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">反射调用业务实现接口</span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></p>
<h3 style="MARGIN: 12pt 0cm 6pt; TEXT-INDENT: 0cm"><a name=_Toc165264456><span style="mso-ansi-language: ZH-CN; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size=5>4.1.2 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN"><font size=5>业务实现接口</font></span></a><span style="mso-bookmark: _Toc165264456"></span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></h3>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">对于单个指令的业务实现</span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></p>
<h2 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><a name=_Toc165264457><span lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font color=#000000><font size=5>4.2 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font color=#000000 size=5>客户端业务接口</font></span></a></h2>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">通过继承客户端类，通过调用通讯接口实现客户端的业务流程，主要功能有：</span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo3; tab-stops: list 57.0pt"><span style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-ansi-language: ZH-CN; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">发送指令</span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo3; tab-stops: list 57.0pt"><span style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-ansi-language: ZH-CN; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">接收指令</span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo3; tab-stops: list 57.0pt"><span style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-ansi-language: ZH-CN; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">重置连接</span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></p>
<h1 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><a name=_Toc152728141></a><a name=_Toc165264458><span style="mso-bookmark: _Toc152728141"><span style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font color=#000000><font size=5>5. </font><span style="FONT: 7pt 'Times New Roman'"><span style="mso-spacerun: yes">&nbsp;</span></span></font></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font color=#000000 size=5>系统自我监控设计</font></span></span></a><span style="mso-bookmark: _Toc152728141"></span></h1>
<h2 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><span style="mso-bookmark: _Toc152728141"><a name=_Toc165264459><span lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font color=#000000><font size=5>5.1 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font color=#000000 size=5>客户端</font></span></a></span></h2>
<h3 style="MARGIN: 12pt 0cm 6pt; TEXT-INDENT: 0cm"><span style="mso-bookmark: _Toc152728141"><a name=_Toc165264460><span style="mso-ansi-language: ZH-CN; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size=5>5.1.1 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN"><font size=5>断开连接后重连</font></span></a></span><span style="mso-bookmark: _Toc165264460"></span><span style="mso-bookmark: _Toc152728141"><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></span></h3>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt"><span style="mso-bookmark: _Toc152728141"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">客户端连接到服务端时会自动判断是否正常连接，如果在通讯过程中，发现网络中断，将重新发起一个连接请求，并自动注册到服务器上。</span></span><span style="mso-bookmark: _Toc152728141"><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></span></p>
<h3 style="MARGIN: 12pt 0cm 6pt; TEXT-INDENT: 0cm"><span style="mso-bookmark: _Toc152728141"><a name=_Toc165264461><span style="mso-ansi-language: ZH-CN; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size=5>5.1.2 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN"><font size=5>同步通信超时</font></span></a></span><span style="mso-bookmark: _Toc165264461"></span><span style="mso-bookmark: _Toc152728141"><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></span></h3>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt"><span style="mso-bookmark: _Toc152728141"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">客户端提供异步通信和同步通信。在同步通信是一个线程堵塞的方法，该方法会等待结果的返回才退出该方法。但如果等待时间超过配置的超时时间，会抛出一个通信超时的异常，并退出该方法。</span></span><span style="mso-bookmark: _Toc152728141"><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></span></p>
<h2 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><span style="mso-bookmark: _Toc152728141"><a name=_Toc165264462><span lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font color=#000000><font size=5>5.2 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font color=#000000 size=5>服务端</font></span></a></span></h2>
<h3 style="MARGIN: 12pt 0cm 6pt; TEXT-INDENT: 0cm"><span style="mso-bookmark: _Toc152728141"><a name=_Toc165264463><span style="mso-ansi-language: ZH-CN; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font size=5>5.2.1 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN"><font size=5>线程回收</font></span></a></span><span style="mso-bookmark: _Toc165264463"></span><span style="mso-bookmark: _Toc152728141"><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></span></h3>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt"><span style="mso-bookmark: _Toc152728141"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务端处理请求都是使用线程池处理每个客户端的请求。在客户端通讯的过程中如果连接断开了，或者发生了一些特定的异常，则线程池监控线程会将该线程中的连接断开，并将线程回收到线程池中。</span></span></p>
<h1 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><span style="mso-bookmark: _Toc152728141"><a name=_Toc165264464><span style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font color=#000000><font size=5>6. </font><span style="FONT: 7pt 'Times New Roman'"><span style="mso-spacerun: yes">&nbsp;</span></span></font></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font color=#000000 size=5>协议解析设计</font></span></a></span></h1>
<h2 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><span style="mso-bookmark: _Toc152728141"><a name=_Toc165264465><span lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font color=#000000><font size=5>6.1 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font color=#000000 size=5>协议接口</font></span></a></span></h2>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt"><span style="mso-bookmark: _Toc152728141"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">实现一个协议接口和一个协议抽象类，每个通信节点所使用的协议都必须实现该接口，里面封装了一些协议基本的信息和一些基本的协议解析方法。主要包含方法：</span></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo4; tab-stops: list 57.0pt"><span style="mso-bookmark: _Toc152728141"><span lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议完整性校验接口</span></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo4; tab-stops: list 57.0pt"><span style="mso-bookmark: _Toc152728141"><span lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">指令解析接口</span></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo4; tab-stops: list 57.0pt"><span style="mso-bookmark: _Toc152728141"><span lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设置包头长度</span></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo4; tab-stops: list 57.0pt"><span style="mso-bookmark: _Toc152728141"><span lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设置包体长度</span></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo4; tab-stops: list 57.0pt"><span style="mso-bookmark: _Toc152728141"><span lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设置包尾长度</span></span></p>
<h2 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><span style="mso-bookmark: _Toc152728141"><a name=_Toc165264466><span lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font color=#000000><font size=5>6.2 </font><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font color=#000000 size=5>指令接口</font></span></a></span></h2>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt"><span style="mso-bookmark: _Toc152728141"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">实现一个协议里每个指令的调用，设计目的是将指令的字符转化为对象，可以方便地面向对象开发。主要包含方法：</span></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo4; tab-stops: list 57.0pt"><span style="mso-bookmark: _Toc152728141"><span lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">指令初始化接口</span></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo4; tab-stops: list 57.0pt"><span style="mso-bookmark: _Toc152728141"><span lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">请求参数接口</span></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo4; tab-stops: list 57.0pt"><span style="mso-bookmark: _Toc152728141"><span lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应答参数接口</span></span></p>
<h1 style="MARGIN: 12pt 0cm; TEXT-INDENT: 0cm"><span style="mso-bookmark: _Toc152728141"><a name=_Toc165264467><span style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><font face="Times New Roman"><font color=#000000><font size=5>7. </font><span style="FONT: 7pt 'Times New Roman'"><span style="mso-spacerun: yes">&nbsp;</span></span></font></font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font color=#000000 size=5>系统出错处理设计</font></span></a></span></h1>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: ZH-CN">所有的日志信息和出错信息会抛出到同一个方法中，由系统统一处理。</span><span style="mso-ansi-language: ZH-CN"><o:p></o:p></span></p>
<img src ="http://www.blogjava.net/bigbigtooth/aggbug/110142.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bigbigtooth/" target="_blank">大牙</a> 2007-04-12 13:02 <a href="http://www.blogjava.net/bigbigtooth/articles/110142.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于Spring配置文件的动态载入的修改</title><link>http://www.blogjava.net/bigbigtooth/articles/85756.html</link><dc:creator>大牙</dc:creator><author>大牙</author><pubDate>Wed, 06 Dec 2006 01:38:00 GMT</pubDate><guid>http://www.blogjava.net/bigbigtooth/articles/85756.html</guid><wfw:comment>http://www.blogjava.net/bigbigtooth/comments/85756.html</wfw:comment><comments>http://www.blogjava.net/bigbigtooth/articles/85756.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/bigbigtooth/comments/commentRss/85756.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bigbigtooth/services/trackbacks/85756.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一、        																				概述																																																Spring MVC				的开发是基于				action-servlet.xml				进行配置，但不支持开发模式下进行动态的配置文件载入。本文主要是介绍如何修改	...&nbsp;&nbsp;<a href='http://www.blogjava.net/bigbigtooth/articles/85756.html'>阅读全文</a><img src ="http://www.blogjava.net/bigbigtooth/aggbug/85756.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bigbigtooth/" target="_blank">大牙</a> 2006-12-06 09:38 <a href="http://www.blogjava.net/bigbigtooth/articles/85756.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA类动态载入的实现</title><link>http://www.blogjava.net/bigbigtooth/articles/42972.html</link><dc:creator>大牙</dc:creator><author>大牙</author><pubDate>Tue, 25 Apr 2006 03:25:00 GMT</pubDate><guid>http://www.blogjava.net/bigbigtooth/articles/42972.html</guid><wfw:comment>http://www.blogjava.net/bigbigtooth/comments/42972.html</wfw:comment><comments>http://www.blogjava.net/bigbigtooth/articles/42972.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bigbigtooth/comments/commentRss/42972.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bigbigtooth/services/trackbacks/42972.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JAVA						类动态载入的实现																										1								       														前言														前段时间因为项目的需要，我搞了一套类似														Servlet												重新载入的一个框架，实现了类的动态载入过...&nbsp;&nbsp;<a href='http://www.blogjava.net/bigbigtooth/articles/42972.html'>阅读全文</a><img src ="http://www.blogjava.net/bigbigtooth/aggbug/42972.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bigbigtooth/" target="_blank">大牙</a> 2006-04-25 11:25 <a href="http://www.blogjava.net/bigbigtooth/articles/42972.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>