• 您的位置我爱Aspx >> VC.Net >> 对象式程序设计方法 作者:夏寒
  • 对象式程序设计方法 作者:夏寒

  • 作者:aspxer  来源:internet  日期:2007-5-21 23:49:21  关键字:
  • 下面以我在项目中所用到的对象式程序设计为例,说明我对对象式程序设计的认识。

    网络防火墙是用来维护网络安全的有效工具。我们在项目中开发的防火墙产品由包过滤和各级应用代理构成,包过滤和应用代理通过配合工作可以有效实现保护内部网安全、阻止外部网非法访问内部网的功能,但是包过滤和应用代理怎样区分哪些是允许访问内部网的IP地址,哪些是允许访问诓客衿鞯挠没В饩托枰幸桓鍪孪仍级ǖ墓嬖蚣谡飧龉嬖蚣薪魅饭娑ê戏ǖ腎P(范围)、合法的用户、合法的访问时间、以及特定的用户通过特定的IP(范围)在特定的时间段里可以享受的特定服务,规则集中的每条规则应至少包括以下几个域:用户名、信源的IP地址、信宿的IP地址、用户要求的服务名、防火墙对用户的访问做出的动作,包括接受,拒绝,认证、规则发挥作用的有效时间,包括起始时间和结束时间,通过使用规则,来约束包过滤和应用代理的行为,产生拒绝某个用户访问,拒绝从某个IP来的访问的效果。

    以下讨论的便是怎样用对象式程序设计方法实现防火墙中的规则集。根据对象式开发过程,首要工作是识认应用领域中的基本对象及其相互关系,将客观世界中的实在对象抽象问题对象,通过对防火墙应实现的各功能的分析以及对各功能模块之间关系的分析,我们确定防火墙的规则集应起到约束各功能模块工作的作用,规则集应作为包过滤、应用代理模块工作的指导模块而存在,各功能模块在发挥具体功能前应先检查规则集,通过传递给规则集相关参数,实现与规则集模块的通信,匹配每条规则,获得从特定IP来的特定用户在特定时间里访问内部网的特定服务器时该功能模块应该采取的动作,是允许访问、拒绝访问、认证用户身份、还是跟踪用户访问信息,通过以上分析,我们明确了我们所要实现的规则集是由若干条单个规则,经过组织后形成的集合,每条规则由相关的域组成。防火墙规则集若作为一个具有自治性、封闭性的对象实体,还需要有和其他对象实体通信的能力,如防火墙管理员要能够对规则集进行各种操作,包括规则的添加、删除、检查,将这些用对象式程序设计语言实现的话,就表现为规则集类的移出特征,在问题对象中规则集也需要有相应的特征。因为规则集是由规则组成的,每条规则有自己独立的域,对规则集的匹配实际上是对每条规则的匹配,因此每条规则需要有匹配这样的对外属性,规则集与规则的关系?quot;有"的关系,将规则抽象成另一个问题对象,规则类与规则集类存在允引关系。这样我们便完成了由实在对象向问题对象的转化,下一步便是确定该用什么样的计算机对象来模拟问题对象。根据最常规的表示方法,规则集用链表表示,链表中的每个元素表示一条规则,链表有表头和表尾,链表中的每个元素用一个指针指向下一个元素,基于链表的操作有:AddRule,表示添加一条规则;RemoveAll,表示删除所有规则;CheckRule,表示检查规则集,同时返回检查结果。规则用另一个类表示,类中的各个属性对应于规则中的各个域:RuleID,是每条规则相互区别的唯一标志;UserList,表示用户名;DestBegin,DestEnd,表示信宿的IP范围;SourceBegin,SourceEnd,表示信源的IP范围;DestPortBegin,DestPortEnd,表示信宿的端口范围;Action,表示匹配成功的功能模块应该采取的动作;BeginTime,EndTime,表示规则有效的起止时间;ServiceName,表示允许的服务名;NextItem,指向下一条规则。规则类上的操作有:CheckRule,表示规则的匹配,它需要分别对规则的用户名、信源IP、信宿IP、信宿端口、有效时间进行匹配,它是对规则集类中CheckRule的具体实现。这样确定了计算机对象后,就可以着手实现了,以下是我们实现规则集和规则的例子:(用C++代码表示)

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:用Junit Framework编写单元测试
    下一篇:用Junit Framework编写单元测试
  • 相关文章