开篇:润墨网以专业的文秘视角,为您筛选了一篇在线更新、跟踪确认与监控范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘 要:本论文通过分析MyCSW(My Children’s Social Worker)项目的特点,在三层系统架构的基础上,提出N层系统架构的解决方案。在MyCSW系统中,将应用服务层划分为五层,分别是:数据实体层、实体控制层、业务规则层、业务外观层和数据访问层。这样每个层次完成的功能比较单一,代码可移植性、可复用性较强。
关键词:B/S 系统架构 N层架构 Web Service
一、引言
MyCSW(My Children’s Social Worker)是北京儒讯科技发展有限公司开发的一个实际项目。此项目是美国洛杉矶郡的社区服务机构定制的一个在线工作站。利用此工作站,社区服务人员可以监督和监控已经被领养的孩子是否受到社会工作者(领养人)的关心和爱护。例如:是否定期给这些孩子检查身体,有没有被虐待,有没有上学,学校在什么地方等。同时,社区服务人员还必须关注已经登记,但是还没有被任何人领养的孩子,调查他们是不是符合被领养的条件,有没有人希望领养他们等。通过在线更新的方式,跟踪和确认每个被领养孩子的信息。监控的目的是为了保证孩子们可以享受到各种权力,并且能得到充分的照顾。
MyCSW缩减了工作人员的管理时间,使他们能抽出更多的时间去保护那些受监护人忽视或者被虐待的孩子。
二、MyCSW应用系统需求分析
公司的调研人员通过对客户的调研,得出以下的需求结果:
1.对系统的保密要求。登录系统必须进行密码验证,以保证应用系统内信息不泄漏。
2.对系统的布局要求。系统能够完成模块的定制、各个模块颜色、布局、内容的任意调整,从而满足各种用户的不同需求。
3.对系统的功能要求。工作站必须能输出小孩的详细资料,包括小孩的住址、小孩亲戚的住址、父母的情况以及小孩的住址附近有无可利用的资源,例如:学校、医院、娱乐场所等,对需要特别关注的事情都必须在事前作出提醒。工作站还必须提供论坛模块,以方便工作者之间,工作者和小孩的监护人之间,以及监护人之间互相交流信息。通过对需求的分析,MyCSW应用系统需要包含下面几部分:
(1).密码验证功能。
(2).Portal(门户)功能。
(3).小孩的情况简介。
(4).提醒日历表。
(5).标注小孩住址以及住址附近资源信息的地图。
(6).事件类别视图。
(7).工作交流论坛。
三、MyCSW应用系统架构设计
MyCSW应用系统采用B/S(Browser/Server)结构。B/S结构即浏览器和服务器结构。在这种结构下,用户工作界面是通过WWW浏览器来呈现,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在应用服务器和数据库服务器端(Server)实现,形成所谓三层(3-tier)结构。这样就大大简化了客户端电脑负荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。
对于应用系统来说,在这三个层次中,系统的主要功能和业务逻辑在应用服务层进行处理,对于系统框架来说,主要处理的也是这个层次的架构。
在MyCSW应用系统架构中,我们将应用服务层又划分成五个层次:数据实体层、实体控制层、数据访问层、业务规则层和业务外观层。
将系统划分成这么多层次,其优点是能够使得系统的架构更加清晰,每个层次完成的功能比较单一,代码可移植性、可复用性较强。
四、MyCSW应用系统实现
微软的.Net给应用程序开发提供了一个非常好的基础系统平台,因此,MyCSW采用.NET开发环境。以下为各层的实现方式:
1.Web层。Web 层为客户端提供对应用程序的访问。Web 层由 Web 窗体和代码隐藏文件组成。Web 窗体只是用 HTML 提供用户操作,而代码隐藏文件实现各种控件的事件处理。
2.业务外观层。业务外观层为 Web 层提供处理、浏览和操作的界面。业务外观层用作隔离层,它将用户界面与各种业务功能的实现隔离开来。
业务外观层只是将已经完成的系统功能,根据各个模块的需要,对业务规则进行高层次的封装。
3.业务规则层。业务规则层需要完成的功能是各种业务规则和逻辑的实现。业务规则完成如客户账户和密码的验证等任务。这是整个应用系统中最为复杂的部分,没有太多的规律可循。但是,我们在完成详细的分层工作后,对于这个部分的开发,也可以起到一定的简化的作用。
业务规则层的设计通常需要进行很好的建模工作。业务规则的建模,一般采用UML来进行。可以使用UML的序列图、状态图、活动图等来为业务规则建模。这个部分的工作,通常通过一系列的类之间的交互来完成。
4.实体控制层。解决了O-R Mapping的问题,需要考虑的就是实体类的持久性问题了,也就是同数据库的交互问题。实体控制层用于控制数据的基本操作,如:增加、修改、删除、查询等,同时为业务规则层提供数据服务。
实体控制层的类实现 IEntityDAO 接口。这个接口定义了实现数据操纵的主要必要方法,包括增加、修改、删除和查找。IEntityDAO的定义如下:
public interface IEntityDAO :IDisposable
{
void InsertEntity(EntityData entity);
void UpdateEntity(EntityData entity);
void DeleteEntity(EntityData entity);
EntityData FindByPrimaryKey(object strKeyValue);
}
同数据实体层相结合,这两部分实现了应用服务层同数据库的交互。
采用数据实体和实体控制分开的设计方法,可以单独修改实体结构和对实体数据的操纵,使得系统更加灵活。
5.数据实体层。我们首先需要解决的是数据的表示方式的问题,也就是通常的O-R Mapping的问题。O-R Mapping通常的做法是将程序中的类映射到数据库的一个或多个表,例如一个存储小孩信息的ChildData类:
public class ChildData
{
string Name;
string Location;
}
6.数据库访问层。为了给实体控制层提供对数据库操作的服务,我们设计了这个部分。这个层次通常执行以下一些操作:
连接数据库。
执行数据库操作。
查询数据库,返回结果。
维护数据库连接缓存。
数据库事务调用。
为了统一对数据的访问方式,我们在设计的时候,在框架的类库中包含了数据访问服务,封装了常用的对各种数据库的操作,可以访问不同类型的数据库,这样,在具体软件系统开发的时候,可以不用考虑同数据库的连接等问题,也使得应用系统在更换数据库时,不用修改原有的代码,大大简化了开发和部署工作。数据访问服务还维护数据库连接缓存,提高系统性能,以及对数据库事务调用的服务。
数据访问服务在核心类库中主要通过DBCommon类来提供对数据访问功能调用的服务。
7.数据库的实现。数据库的建立是很关键的一步,它以降低数据冗余、保证数据完整性及一致性、提高数据并发性为设计原则。本系统数据库有近20个表,主要数据表有3个:登录信息表,小孩基本信息表以及社会工作者表。我们以项目需要实现的部分功能为例,给出实现此功能的ER图。
它们之间的关系如下:所有的用户在登录以前都必须到登录表中进行验证,验证完毕进入主界面。一名社会工作者可以管理多名小孩,一个学校也可以容纳多名孩子,而一个小孩只能归一名社会工作者管理,只能在一所学校里上学。
五、小 结
MyCSW应用系统采用B/S模式和N层架构方案进行开发。B/S结构对用户的技术要求和前端机的配置要求都较低,而且界面丰富、客户端维护量小、程序分发简单、更新维护方便。N层架构方案使得每层的功能单一,能极大地提高系统的可扩展性。该系统已经在美国洛杉矶郡社会福利儿童院使用,运行良好。该系统能同时承载500人同时登录使用。
随着web service的出现,MyCSW会得到进一步的升级,使得此应用系统可以运行于不同的操作系统之上,甚至PDA上。
参考文献:
[1]. Robert C. Martin.《敏捷软件开发――原则、模式与实践》,清华大学出版社. 2002.12。
[2].刘清堂、李允贞:《远程答辩系统研究与开发》,《电化教育研究》,2007.7。
[3].唐超礼、凌六一:《黄友锐.基于B/S模式的矿灯管理系统的设计与实现》,《工矿自动化》,2007.2。
[4].李 鹏、夏安邦、周 茗:《基于 web service 的 EAI框架研究》,《福建电脑》,2006.7。
[5].万晓榆、万敏:《Web技术在下一代网络中的应用研究》,《计算机应用研究》,2004.2。
庞秀玲:山东潍坊学院。