codinghouse 2012-03-16
前两天在博客上,发了一篇博文,概述了java qq设计中的几个重要的问题,及其解决方案,有的人求源代码,其实得到源代码也未必能看懂的详细结构,原因之一就是代码太多,二是鄙人的代码编写水平很有限,所以为方便那些拿到代码的朋友的阅读,特此连载详细设计思路、详细设计图、及伪代码。
今天第一部分写一下概述,今后几天会连续更新出来其他的。重申:代码水平有限,肯定会有设计不周及小bug的地方,请大家提提建议或意见,勿拍板砖,谢谢
(一)接口
一、外部接口
1、用户界面
在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。外观上也要做到合理化,考虑到用户多对WINDOW 风格较熟悉,应尽量向这一方向靠拢。在设计语言上,已决定使用 Java se进行编程,在界面上可使用Java2 se 所提供的可视化组件,向WINDOWS 风格靠近。 其中服务器程序界面要做到操作简单,易于管理。在设计上采用下拉式菜单方式,在出错显示上可调用Java2 se 库中的错误提示函数。
总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用
2、软件接口
服务器程序可使用Java2 se 提供的对 SQL SERVER 的接口,进行对数据库的所有访问。服务器程序上可使用SQL SERVER 的对数据库的备分命令,以做到对数据的保存。在网络软件接口方面,使用一种无差错的传输协议,采用滑动窗口方式对数据进行网络传输及接收。
3、硬件接口
在输入方面,对于键盘、鼠标的输入,可用Java2 se的标准输入/输出,对输入进行处理。
在输出方面,打印机的连接及使用,也可用Java2 se的标准输入/输出对其进行处理。在网络传输部分,在网络硬件部分,为了实现高速传输,将使用高速ATM。
二、内部接口
内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。具体参数的结构将在下面数据结构设计的内容中说明。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。
(二)运行设计
一、运行模块的组合
客户机程序在有输入时启动接收数据模块,通过各模块之间的调用,读入并对输入进行格式化。
在接收数据模块得到充分的数据时,将调用网络传输模块,将数据通过网络送到服务器,并等待接收服务器返回的信息。接收到返回信息后随即调用数据输出模块,对信息进行处理,产生相应的输出。
服务器程序的接收网络数据模块必须始终处于活动状态。接收到数据后,调用数据处理/查询模块对数据库进行访问,完成后调用网络发送模块,将信息返回客户机。
运行控制运行控制将严格按照各模块间函数调用关系来实现。在各事务中心模块中,需对运行控制进行正确的判断,选择正确的运行控制路径。
在网络传方面,客户机在发送数据后,将等待服务器的确认收到信号,收到后,再次等待服务器发送回答数据,然后对数据进行确认。服务器在接到数据后发送确认信号,在对数据处理、访问数据库后,将返回信息送回客户机,并等待确认。
二、出错处理设计
1、出错处理对策
所有的客户机及服务器都必须安装不间断电源以防止停电或电压不稳造成的数据丢失的损失。若真断电时,客户机上将不会有太大的影响,主要是服务器上:在断电后恢复过程可采用 SQL SERVER 的日志文件,对其进行ROLLBACK 处理,对数据进行恢复。
在网络传输方面,可考虑建立一条成本较低的后备网络,以保证当主网络断路时数据的通信。
在硬件方面要选择较可靠、稳定的服务器机种,保证系统运行时的可靠性。
2、安全保密设计
不好意思,这一方面做的最差,可以说为了进度,几乎完全没考虑,请拿到源代码的朋友完善一下,完善后可以分享一下
3、维护设计
维护方面主要为对服务器上的数据库数据进行维护。可使用 SQL SERVER 的数据库维护功能机制。例如,定期为数据库进行Backup,维护管理数据库死锁问题和维护数据库内数据的一致性等。