教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 学前教育 >

[最新版] - 毕业设计说明书-样本4546880 - 图文(4)

来源:网络收集 时间:2026-01-20
导读: 进行好的分层式结构设计,标准也是必不可少的。只有在一定程度的标准化基础上,这个系统才是可扩展的,可替换的。而层与层之间的通信也必然保证了接口的标准化。 基于以上优点本系统也采用三层架构设计,其工作原理

进行好的分层式结构设计,标准也是必不可少的。只有在一定程度的标准化基础上,这个系统才是可扩展的,可替换的。而层与层之间的通信也必然保证了接口的标准化。

基于以上优点本系统也采用三层架构设计,其工作原理如下图3-2所示:

图3-2 人力资源系统三层架构

采用三层架构后,用户截面层通过统一的接口向业务层发送请求,业务层按自己的逻辑规则处理请求后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给用户界面层。这样用户界面层甚至可以不知道数据库的结构,只要维护与业务层之间的接口即可。这种方式在一定程度上增加了数据库的安全性,同时也降低了对用户界面层的开发要求,因为它根本不需要进行任何的数据库的操作。上面图中代码隐藏页通过返回对象的形式来返回数据,在类的内部可以规定哪些数据可访问,哪些数据是只读的等,从而通过封装数据达到再一次提高数据安全性的目的。 3.1.2 工厂模式

专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类或接口。简单工厂模式又称为静态工厂方法(Static Factory Method)模式,属于类的创建型模式,通常根据一个条件参数)来返回不同的类的实例,如图3-3所示。

参与者:

(1)工厂角色(Creator)

是简单工厂模式的核心,它负责实现创建所有具体产品类的实例。工厂类可以被外界直接调用,创建所需的产品对象。

(2)抽象产品角色(Product)

是所有具体产品角色的父类,它负责描述所有实例所共有的公共接口。 (3)具体产品角色(Concrete Product)

继承自抽象产品角色,一般为多个,是简单工厂模式的创建目标。工厂类返回的都是该角色的某一具体产品。

简单工厂模式根据提供的参数返回具体相同方法的不同类的实例。这些类可以是派生于相同基类的类,也可以是相互之间没有任何关系,只是共享了相同接口的类。前提是:类实例中的方法必须是相同的,并且能够被交替使用。

图3-3 简单工厂模式

3.1.3 Microsoft .Net Remoting 技术

本系统采用Remoting技术是实现数据的分布式处理,利用工厂模式实现系统的“封装机制”。

什么是Remoting,简而言之,我们可以将其看作是一种分布式处理方式。在Windows操作系统中,是将应用程序分离为单独的进程。这个进程形成了应用程序代码和数据周围的一道边界。如果不采用进程间通信(RPC)机制,则在一个进程中执行的代码就不能访问另一进程。这是一种操作系统对应用程序的保护机制。然而在某些情况下,我们需要跨过应用程序域,与另外的应用程序域进行通信,即穿越边界。

在Remoting中通过通道(channel)来实现两个应用程序域之间对象的通信的。对于要传递的对象,我们只需要了解通道的类型和端口号之外,无需再了解数据包的格式。但必须注意的是,客户端在获取服务器端对象时,并不是获得实际的服务端对象,而是获得它的引用。这既保证了客户端和服务器端有关对象的松散耦合,同时也优化了通信的性能。如图3-4所示:

图3-4 Remoting技术

服务器端

? 远程对象的激活

客户端通过通道来创建远程对象,称为对象的激活。在Remoting中,远程对象的激活分为两大类:服务器端激活和客户端激活。

服务器端激活,又叫做WellKnown方式,很多又翻译为知名对象。为什么称为知名对象激活模式呢?是因为服务器应用程序在激活对象实例之前会在一个众所周知的统一资源标识符(URI)上来发布这个类型。然后该服务器进程会为此类型配置一个WellKnown对象,并根据指定的端口或地址来发布对象。.Net Remoting把服务器端激活又分为Singleton模式和SingleCall模式两种。

(1)Singleton模式:此为有状态模式。如果设置为Singleton激活方式,则Remoting将为所有客户端建立同一个对象实例。当对象处于活动状态时,Singleton实例会处理所有后来的客户端访问请求,而不管它们是同一个客户端,还是其他客户端。2)

Singleton实例将在方法调用中一直维持其状态。举例来说,如果一个远程对象有一个累加方法(i=0;++i),被多个客户端(例如两个)调用。如果设置为Singleton方式,则第一个客户获得值为1,第二个客户获得值为2,因为他们获得的对象实例是相同的。如果熟悉Asp.Net的状态管理,我们可以认为它是一种Application状态。本系统中就采用了该模式。

(2)SingleCall模式:SingleCall是一种无状态模式。一旦设置为SingleCall模式,则当客户端调用远程对象的方法时,Remoting会为每一个客户端建立一个远程对象实例,至于对象实例的销毁则是由GC自动管理的。同上一个例子而言,则访问远程对象的两个客户获得的都是1。仍然可以借鉴Asp.Net的状态管理,认为它是一种Session状态。

由于本系统采用的是服务器端激活的方式所以客户端激活方式在这就不多说了。

? 远程对象的定义

Remoting传递的对象是以引用的方式,因此所传递的远程对象类必须继承MarshalByRefObject,MSDN

MarshalByRefObject

的说明是:

MarshalByRefObject 是那些通过使用代理交换消息来跨越应用程序域边界进行通信的对象的基类。不是从 MarshalByRefObject 继承的对象会以隐式方式按值封送。当远程应用程序引用一个按值封送的对象时,将跨越远程处理边界传递该对象的副本。因为您希望使用代理方法而不是副本方法进行通信,因此需要继承MarshallByRefObject。

在Remoting中的远程对象中,如果还要调用或传递某个对象,例如类,或者结构,则该类或结构则必须实现串行化Attribute[SerializableAttribute]。

将该远程对象以类库的方式编译成Dll。这个Dll将分别放在服务器端和客户端,以添加引用。

客户端

? 注册通道

IChannel channel1 = new TcpClientChannel (\new BinaryClientFormatterSinkProvider ());

ChannelServices.RegisterChannel (channel1, false); ? 获得远程对象

本系统中采用的是WellKnown激活模式要获得服务器端的知名远程对象,在工厂类中可通过Activator进程的GetObject()方法来获得:

如:

=

baseurl

+

ConfigurationManager.AppSettings

[\

IEmployee employee = (IEmployee) Activator.GetObject (typeof (IEmployee), url);

其中参数第一个是远程对象的类型。第二个参数就是服务器端的Uri。Uri有2部分组成,由于是本地计算机所以前半部分用:8080,也可以用具体的服务

器IP地址来代替它。端口必须和服务器端的端口一致。后半部分则是服务器定义的远程对象服务名。

3.2 系统总体功能模块设计

经过对整个系统的分析,可以得出以下功能模块,如图3-5所示: 1. 职员管理—职员基本信息模块:检索当前启用的组织结构相关的部门及员工信息。

2. 职员管理—人事事务模块:进行职员转正及离职等管理。

3. 职员管理—合同管理模块:员工用合同管理功能,可以新建、修改、删除员工合同,也可以对员工合同作“续签”、“变更”、“终止”、“解除”等操作。

4. 组织管理—组织结构模块 :检索查看不同组织下的部门树及部门信息。修改删除组织和部门信息。 …… 此处隐藏:1684字,全部文档内容请下载后查看。喜欢就下载吧 ……

[最新版] - 毕业设计说明书-样本4546880 - 图文(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/593667.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)