基于NET平台校园分布式信息系统的设计与实现

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:lgfyhx
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:该文阐述了校园分布信息系统的设计思想,提供了一种系统组件设计框架,并以校园信息化系统为例,说明分布式系统的可复制的设计模式。
  关键词:NET平台;分布式程序;校园信息系统
  
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)03-630-02
  NET Platform for Campus-based Distributed Information System Design and Implementation
  WU Ping-gui
  (Department of Software Technology Banan District, Chongqing Zhengda Software Vocational and Technical College, Chongqing 400056, China)
  Abstract: This paper describes the distribution of information systems on campus design concept provides a systematic framework for component design, and campus information system to illustrate a distributed system design patterns that can be replicated.
  Key words: NET platform; distributed programming campus; information system
  当学校超过一定规模后,信息化建设显得尤其重要。员工的流动性大,人事信息管理系统中的数据频繁更新;学生的流失大,学生管理系统中的数据经常更新,也会引起后勤处和财务处的存储信息更新。由于部门之间数据横向交流困难,经常引起数据更新滞后,如:财务处前一周才从人事处要来了员工变动的信息,到学生处要来学生变动的数据。本周又有员工辞职,财务处的员工数据又滞后了。如何解决这一问题,需要建立分布式的数据共享系统。
  1 定义解决方案
  校园信息系统由4个子系统和2个服务组件。4个子系统分别为人事考勤管理系统,学生管理系统,后勤物资管理系统,财务管理系统。2个服务组件由windows service和web service组成。 如图1所示。
  四个子系统中的采用了数据相对独立原则,使用了SQL SERVER数据库和ORACLE数据库存取数据。共享数据通过web service向外发布,目的能使用数据保持最新状态;windows service主要任务处理日常工作中的上传各种文件,如:请假销假、各种报表、数据汇总等等,用WINDOWS文件系统事件来确保无论文件何时到达都会通知系统,这相当于用一个简单可靠的途径来完成类似队列的操作。采用轮询数据库或手工浏览目录会导致系统负担。
  2 定义数据层
  在人事考勤管理系统,学生管理系统,后勤物资管理系统,财务管理系统四个子系统中,需要根据自身的业务设计数据库和数据表,存储业务需要的数据。在设计数据表时,需要额外注意要与上传文件的相匹配,如果上传的是EXECL报表,需要从报表中抽取出重要的信息,存入数据表中去。在设计数据库时,要注重使用视图、索引和存储过程,提高数据的存取速度。
  3 定义windows service
  windows service的主要任务是扫描Execl和Word文档,从中抽取数据存入数据表中去,因为windows service始终是连续运行。当一个新的Execl文件出现在指定目录下时,它被触发,将数据转换到数据库中并将文件移到新目录下。为了使用这个任务能自动执行,可以使用System.IO命名空间中的File System Watcher类。这个类有一个用途:当文件系统发生某一改变时由操作系统发送通知到程序。这使得不需要采用资源轮询的方法来响应如创建、删除或修改一个文件操作。为了使用File System Watcher类,需要执行3个简单的步骤:
  1) 设置path属性,指出要监听的目录(如:D:ExeclFile.xls)。
  2) 设置Filter属性,指出要监听的文件类型(如:*.xls)。
  3) 设置要监听变化,设置NotifyFilter属性,指出需要监听的变化类型。
  FileSystemWatcher类有4种事件:Changed、Created、Deleted、Renamed。其中,Created、Deleted、Renamed比较容易处理。难点是处理Changed事件,需要使用NotifyFilter属性来指出你所查找的变化类型(如,文件大小改变或文件名称改变)。否则,程序将被不停的一系统文件修改信息淹没。如果监听变化,还需要设置InternalBufferSize属性来确保快速连续发生变化的数据不会丢失。另外,由于windows service难以调试,程序产生异常不会抛出消息,要将此消息写入windows系统事件日志中去,便于对系统进行维护。
  4 定义web service
  web service的主要功能是四个子系统中横向交流数据通过web服务的接口向外界发布,所以对安全性要求比较高,采用了表单验证。表单需要配置web.config文件,其代码如下:
  
  
  
  
  
  
  

  

  

  
  
  

  

  

  向外发布的web服务接口C#代码如下:
  [WebMethod]
  public bool Login(string sUsername,string sPwd)
  {if (FormsAuthentication.Authenticate(sUsername, sPwd) == true)
  {FormsAuthentication.SetAuthCookie(sUsername,true);
  return true;}
  else
  return false;}
  5 监视日志
  不论对系统的设计、组件的分离、体系结构的简化做得多好,分布式应用程序始终是个复杂的系统。当分布式应用程序运行失败时,很难追踪到问题的原因或者组件发生错误的地方。这个问题对任何大型系统都存在,但是对于分布式系统中的组件分布到多台计算机、站点和不同的地理位置时,它就显得特别重要。要解决这个问题,需要创建可靠的日志记录底层结构。通常有四种方法:windows事件日志、直接写入数据库、消息队列、邮件;可以采用消息队列,消息队列能够解决离线操作。使用消息队列分三步:创建消息队列、查找消息队列、发送消息队列。其C#代码如下:
  class Program
  {static void Main()
  {try
  { if (!MessageQueue.Exists(@".Private$MyPrivateQueue"))
  {MessageQueue.Create(@".Private$MyPrivateQueue");}
  BinaryMessageFormatter formatter = new BinaryMessageFormatter();
  MessageQueue queue = new MessageQueue(@".Private$MyPrivateQueue");
  queue.Formatter = formatter;
  queue.Send("Sample Message", "Label");}
  catch (MessageQueueException ex)
  {Console.WriteLine(ex.Message);} }}
  
  参考文献:
  [1] Nagel C.C#高级编程[M].6版.李铭,译.北京:清华大学出版社,2008.
  [2] Basiura R.ASP.NET web服务高级编程[M].杨浩,译.北京:清华大学出版社,2002.
其他文献
利用常规石蜡制片技术,对臭椿[Ailanthus altissima(Mill.)Swingle]的小孢子发生及雄配子体形成过程进行了观察。结果表明:(1)雄株的小孢子发生和雄配子体发育过程正常,花药4室,花药壁
软件架构经常不能适应变化,程序员也经常觉得架构没什么用。分析引起软件架构变化的形式,可以归结为组件间交互接口和编码实现的变化;共分为4种:1)相似接口,相同功能;2)不同接口,相似
目的:探讨老年患者临床合理用药存在的问题和应对策略。方法:收集我院2010年6月~12月256例老年患者用药处方2537张,统计分析处方的合理性。结果:本组256例患者的2537张处方中人均
以新铁炮百合的两个主栽品种‘雷山一号’和‘Sayaka’为材料,对其幼苗在不同温度下(25℃、32℃、38℃和44℃)的光合特性及光保护机制进行了研究。结果表明,在低于38℃时净光合速
计算机网络是计算机相关专业的一门重要课程,而计算机网络的教学具有很强的实践性,需要大量的网络设备进行实验。该文分析了E—learning在《计算机网络》课程教学中相对于传统
介绍了软件复用技术的基本概念,分析了软件复用的过程;以江苏校园招聘网为例对软件复用技术的开发模型进行了详细的研究.
摘要:C语言是combined Language(组合语言)的中英混合简称。是一种计算机程序设计语言。它不仅可以培养学生的编程能力,还可以培养学生的逻辑思维能力,同时也是很多计算机专业课的前导课程。它以功能的丰富、表达能力强、使用灵活方便、目标程序效率高、可移植性好、应用面广等优点而成为近年在国内外得到迅速推广的计算机程序设计语言。  关键词:C语言;高职高专;教学过程;教学方法;算法  中图分类
我们进行了丹红注射液治疗78例冠心病慢性心肌缺血的临床观察,报告如下:1临床资料78例患者均符合WHO规定的"缺血性心脏病的命名和诊断标准"。将78例患者随机分为两组,丹红组52例
该文对兰州石化公司大乙烯生产情况进行了具体分析,设计出针对该装置的生产调度方案,实现各功能模块的数据录入、数据汇总,并最终生成生产调度日报表,实现该装置生产调度信息
目的:探讨膀胱全切原位W形回肠新膀胱术患者的围术期护理方法。方法:对10例膀胱全切原位W形回肠新膀胱术患者给予精心围术期护理。结果:8例排尿基本正常,1例术后拔除尿管后出现