APP下载

MDA 软件工程方法的重用机制探究

2013-06-08张珠庭

九江学院学报(自然科学版) 2013年2期
关键词:安全策略数据流日志

张珠庭

( 宁德职业技术学院计算机系 福建福安 355000)

MDA 系统是基于IBM Websphere 和Oracle的软件重用机制系统,本系统软件重用机制构架使用了Struts 作为表示层实现框架,Hibernate 作为持久层实现框架,遵循J2EE 1.4 标准。系统采取J2EE 框架编程,按照MVC 结构进行设计,系统运行需要PC 性能为:内存2G,CPU 主频1.3,硬盘40G。

1 MDA 软件工程方法重用机制结构设计

1.1 MDA 软件方法机构

MDA 总体系统结构如图1 所示。

图1 -1 MDA 总体系统结构

1.1.1 架构目标和约束 MDA 架构的目标是满足SOW 中的所有非功能性需求与功能性需求,且能确保系统的安全性、可扩展性、各项性能等要求。

启用MDA的限制要求如下:

①实现MDA的系统须使用Websphere 应用服务器且要符合J2EE的安全规范;②须通过SSO 服务器进行统一验证,并遵循SSO 系统的规范要求;③数据库服务器为Oracle9i;④要求提供优化的求解结果和出色的求解效率;⑤软件重用机制架构及所采用技术需符合CMO 技术规范。

1.1.2 系统假设条件 ①Web UI 所部署的Application Server 上已经正确部署SSO;②Web UI 与Engine Server 之间无防火墙。

1.2 MDA 系统可重用机制规范设计

根据以上的要求,MDA 系统按CMO 开发规范而采用以J2EE 为主的多层架构,采用JAVA 为主要程序语言。为了对数据流进行统一控制,方便用户的配置和管理,笔者引入了安全策略这一概念。通过配置安全策略,可以将用户需要的安全属性、要求反应出来,再将安全策略应用于系统中,系统便可理解用户的安全需求。通过使用安全策略,防火墙可按照用户的要求,对流经的数据进行控制和管理。当防火墙收到报文时,其将报文的源地址、目的地址、协议、端口号等信息与用户配置的信息进行比对,决定是否建立此数据流[1]。若是建立了数据流,则将此数据流与策略相关联,则后续的数据包按照此方式处理。通过实现允许、丢弃、加密、认证、排序优先级、过滤、监控数据流等方法,决定哪些用户的数据可以进出,以及这些数据何时、何地可以进出。防火墙的配置流程。

首先通过指定某个端口配置数据流流入的方向,也可以根据事先定义好的域,把源设置成域。若是选择any,则表示所有接口[2]。针对通过这个端口的数据流,还可以进一步的配置数据的源地址,进而进一步细化数据流的管控。此处地址可以是一个地址也可以是一组地址,使用组地址需要预先定义,any 表示所有地址。目的信息和源信息相同,只是目的配置是数据流的流出方向。只控制源和目的还不能提供很好的安全策略,通过进一步的细化服务类别,如通过服务的协议、源端口和目的端口等信息,进一步细化安全侧率,使得所定义的安全策略只针对设定的服务。时间表显示此策略生效的时间,动作表示符合策略时,系统采取的动作。

定义好策略后,此策略还不能立即生效。若想策略生效,则需要在策略管理模块中启用此策略。在策略管理模块中,可以查询到所有已定义的策略,并针对已定义的策略进行删除、启用、停用等操作。

2 MDA 重用机制应用解决方案

MDA 软件重用机制系统架构如图2 所示。

图2 软件重用机制系统架构

图2 中,在系统最低层运行的是Window 2003/AIX 服务器作业系统,ASP 虽然是一种脚本语言,但是它也具有面向对象语言的特点和可伸缩性。ASP 程序具有6 种对象,按照不同的作用,进行以下内置对象和脚本对象种类型的分类。

2.1 内置对象

内置对象的功能是由ASP 动态链接库的加载来完成,开发Web 动态网页时必须使用这些对象。6个内置对象的主要功能如下所示:

(1)Request 对象 asp 编程时可通过Request对象获得来自客户端的各种数据。

(2)Response 对象 与之配对的是Response对象,这个对象将服务器的数据返回给客户端。

(3)Application 对象 简单的说,该对象是用来处理来自浏览器客户端的请求的对象,该对象对客户端的各种请求作出反馈[3]。

(4)Session 对象 Session 对象有点类似一个程序的公共变量一样,用来保存一个应用程序的多个会话间的消息。

(5)Objectcontext 对象 该对象负责与MTS进行沟通,进行各种事务的处理[9]。

(6)ASPError 对象 程序通过该对象来判断程序出现的错误。

2.2 脚本对象

Asp 程序需要运行脚本程序时,需要通过调用scrrun. dll 这个动态链接库来实现脚本运行,本身不提供另外的解释引擎。

系统采用符合EJB2. x 规范的Session Bean 作为Service 层的封装。

3 MDA 可重用系统业务逻辑层设计

业务逻辑在Java Service 中实现,然后由Session Bean 继承相应的Java Service 以获得业务方法。该设计的优点在于保留Java Service 易测试性以及可扩展性的同时可以获得EJB 带来的分散式部署和容器管理事务等优点。

3.1 运行环境

系统环境被设计成4个部分:Development、Pre-Production Testing、Production、Simulation。

负责UI 与Engine 通讯元件称为“Adapter”,UI Server 端和Engine Server 端有各自的Adapter。UI Adapter 和Engine Adapter 可以根据事先定义的通讯协定交流,并分别负责于上层的UI/Engine 交互。为减少对系统平台的依赖,同时也为了灵活和高效,Adapter 将通过Socket 套接字调用低层的TCP/IP 实现数据交换。Windows,Unix 和Linux 环境都提供了类似的Socket 接口,Adapter 只需要较少的修改就可在这些环境间移植。

3.2 载入平衡与容错设计

UI Adapter 可以管理多台Engine Server。其中每台Engine Server 又可以并发运行多个LP Engine,UI Adapter 根据各Engine Server的负荷情况自动将Engine 运行任务分配给空闲的Server 运行,以达到最大程度利用硬件资源的目的。

对于暂时无法安排运行的任务,UI Adapter 会将其存储在Queue 中,直到某台Server 有Engine运行结束再从Queue 中取出最早到达的任务安排运行。

UI Adapter 需要维护可用Engine Server 列表,每隔一定的时间间隔向列表中的Server 发出监控信号来获取状态,只有可用的Server 才参与载入平衡。

多台Server 之间形成Cluster,当任何一台Server 出现故障(网路故障、系统崩溃等)导致无法响应时,UI Adapter 会避免使用故障Server,直到该Server 重新恢复响应才会将任务分配给它。容错功能仅针对尚未发送到故障Server的任务有效,已经进入运行状态的任务不能重新切换到其他Server 执行。

3.3 数据库架构设计

MDA的Table 可划分为4个部分,分别是:Interface Table、Basic Data Table、UI Table、SCPO Table,其用途分别说明如下。

(1)Interface Table:MDA 与外部系统接口表,所有与外部系统的数据交换都通过该组表来进行。

(2)Basic Data Table:存放诸如产品、物料、区域、机构、计划等基础资料,基础资料通过接口表来进行更新,某些资料也可以通过Web UI 临时添加。

(3)UI Table:存放通过UI 维护的资料关系以及MDA的各种报表。

(4)SCPO Table:SCPO 产品所属表。由Engine 输入表、Engine 输出表、参数配置表以及对应的备份表组成。

为了了解和记录程序内部执行细节以及便于除错,MDA 系统加入了日志机制。

开发中使用的日志组件为第三方的类库Log4j。它提供了可扩展的以及多种不同方式的记录日志,包括命令行、文档、记忆体、syslog 服务器、Win 事件日志等。提供9个不同的日志输出,例如NOTSET,DEBUG,INFO,NOTICE,WARN,ERROR,CRIT,ALERT 与FATAL/EMERG 。使用者可以动态控制不同的日志记录,然后有效率地进行编码的调整。

3.4 异常处理。

4 MDA 软件可重用业务逻辑层实现

本系统中Exception 按业务逻辑层次可划分为DAO、Service、Adapter 和Action 四个层次。其中Adapter 层获取前后台Socket 通讯产生的异常,这类问题通常是网路故障或者Engine 非正常状态导致的。这类异常在被捕获后会统一的抛出Adapter-Exception。除了以上情况外,如果异常是不可补救的,则会一直抛到struts -config. xml 配置档里指定的ExceptionHandler 处理。

在MDA 系统中,所有的应用程序异常都继承自RuntimeException 类,这类异常无需显式地声明俘获。每一个子模块在捕获到一个不可修复的应用异常后,都会创建一个表示此子模块的异常,并且用它封装被捕获到的应用异常,然后抛出。MDA 系统的安全保密设计将遵循CMO MIS 部门所制定的基于J2EE的Security 规范。

5 总结

为了提高网页制作的水平,加快软件开发的效率,许多软件厂商多开发了各种的网页制作工具,网页从静态网页到动态网页,涌现了许多好的开发工具和脚本语言。微软公司也推出了解决方案,这就是MDA 技术,它为广大的网页设计人员提供了制作动态交互的高性能Web 网站。MDA中内置开发对象,这些对象使MDA 具有更好的开发效率,可以充分的使用其他高级语言开发的免费的控件或者商业控件,减少了开发时间,大大的提供了软件开发的效率,减少了重复劳动。

软件开发人员认为MDA 程序具有以下几个优点:①MDA 程序以业务层为核心,提供了很多工具。②MDA 采用的是后台管理模式,所有的服务软件安装在远程的web 服务器上,容易统一集中管理。③MDA 能提供一种通用的网络服务,许多企业不需要另外定制软件。

[1]肖文辉,刘洪星. 一种支持MDA的基于EDM的软件开发方式[J]. 武汉理工大学学报( 信息与管理工程版) ,2012,34 (2) : 156.

[2]缑斌丽,袁成荣,杨涛. MDA 在新产品开发过程中的应用研究[J]. 机械研究与应用,2000,13 (1) : 50.

[3]杜浩,蒋波. 对象约束语言在MDA 模型转换中的应用[J]. 交通与计算机,2006,24(1) : 73.

[4]张向波,黄俊领. 军事仿真概念模型及其开发过程研究[J]. 情报指挥控制系统与仿真技术,2004,26 (2) : 29.

[5]宋昌才. 由三菱电火花线切割机( WEDM) 看电加工机床的发展[J]. 新技术新工艺,2002,22 (5) : 6.

猜你喜欢

安全策略数据流日志
一名老党员的工作日志
汽车维修数据流基础(上)
扶贫日志
基于飞行疲劳角度探究民航飞行员飞行安全策略
汽车维修数据流基础(下)
多媒体教学服务器限制访问的一种措施
雅皮的心情日志
一种防火墙安全策略冲突检测方法*
浅析涉密信息系统安全策略
游学日志