电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

可扩展框架范文

来源:漫步者作者:开心麻花2025-12-201

可扩展框架范文(精选7篇)

可扩展框架 第1篇

随着信息技术的发展,战场信息的探测和收集手段越来越多,这对信息的处理与展现提出了很大的挑战。人对信息最直观的认识来源于视觉和听觉。而对于战场综合情报而言,最直观的表现方式是图形。由于战场态势复杂多变,需要各专业人员进行分析与处理。处理完后,如何以一种统一的方式展现在很大程度上决定了情报的效用。因此,构建一个可扩展的开放式图形展现框架是指挥信息系统的必然需要。

同时,从软件的角度来看,可扩展性作为软件的非功能性属性意义重大,它在一定程度上决定了软件的生命力。可扩展性好的软件能够适应各种变化,能够很快的响应用户的需求。因此,软件开发者总是力求提高软件的可扩展性。良好的设计是可扩展性的保障,插件式开发作为一种良好的设计得到了广泛的应用。Eclipse就是插件式开发的典型案例。Eclipse基于OSGi(Open Services Gateway Initiative,OSGi,开放服务网关协议),开发者按照其规范开发的插件能够无缝集成到Eclipse软件中。

1 战场态势展现要素分析

战场态势总体分为两大类:动态目标情报和静态部署情报。其中动态目标情报包括:雷达情报、技侦情报、电抗情报等,静态部署情报包括:机场、港口、兵力部署等军事部署信息。此外,在综合态势之上还可根据实时态势叠加作战计划等信息,进行作战推演评估,拟制修改作战计划。如图1所示为战场态势综合集成展现示意图。

图1中,“原始态势数据”来源有:雷达站、观通站探测的实时目标数据,作战标准数据库的静态部署数据、作战计划数据和评估模型数据等。这些数据都会通过“统一信息传递平台”发送给综合态势展现终端,综合态势展现终端通过各处理模块对这些数据进行预处理,并通过统一图形绘制命令进行图形绘制,将数据图形化显示。此外,综合态势展现终端具有与展现数据的干预交互能力,能够在态势图上拟制修改作战计划。

如何对各处理模块进行有效的管理(加载、调用等)决定了综合态势展现终端的可扩展性和实用性。好的模块管理方法能够按需集成多个数据处理模块,又不增加软件的复杂度,能够提高软件的稳定性和展现的效果。

2 可扩展开放图形框架XOGF

针对战场综合态势展现的要求,本文提出了一种可扩展开放图形框架XOGF(e Xtend Open Graphic Frame),用于有效管理和集成基于态势图的业务处理模块。本节将对XOGF的主体思想和工作原理进行介绍。

2.1 系统组成

可扩展开放图形框架(以下简称图形框架)是一个提供图形插件式开发的基础平台,由一个核心部件和一系列管理部件组成,其体系结构如图2所示。

从图2可以看出,基于图形框架的应用软件有三个组成部分:

(1)核心部件

图形框架核心部件的作用是:加载插件,调用插件的标准化响应函数,负责插件间信息交互。

(2)管理部件

图形框架管理部件的作用是管理插件(增加、删除、更改优先级),分配命令码和干预命令,管理操作对象。管理部件具有六个子部件:插件管理器、命令码分配器、干预命令分配器、操作对象管理器、插件生成器和日志分析器。

(3)插件

插件是依据一定准则开发的能够应用于图形框架软件以达到扩充其能力的动态库。这些准则由核心部分制定。

2.2 工作原理

如图3所示为图形框架组件关系图。主程序通过插件表来加载插件,插件管理自己的菜单和工具栏。当主程序触发事件后,核心部件将其分发给各插件,各插件决定是否要响应这一事件。然而,不同的事件会产生不同的状态,而不同的状态会决定下一事件应该由哪个插件响应。由于各插件之间是自治的和自完备的,如何保证某一插件响应事件后系统状态的变化能够被其他插件感知而又不破坏插件的自治性和完备性是图形框架设计的重点和难点。我们将这一问题分解为三个核心问题:(1)插件间如何通信;(2)如何确定系统的唯一状态;(3)右键菜单如何组合。下面将分别讨论这三个问题。

2.2.1 插件间通信

XOGF有两类插件通信问题:(1)核心部件与插件间的通信问题;(2)插件之间的通信问题。

对于问题(1),框架核心部件向插件传输信息的问题已解决,如图4所示,通过调用插件的标准导出函数来实现;而插件向框架核心部件的信息传输可通过向主程序发送消息,再由主程序转发给框架核心部件。

对于问题(2),插件通过核心部件中转信息。插件间通信的方式有两种:主动获取与被动接收。无论是哪种模式,都需要一块内存区域来存储通信的“信息”。图5示意了插件如何主动获取与被动接收信息。

插件间的通信主要应用于两种场景:(1)某一插件状态发生改变通知其他插件;(2)某插件选中了其导出对象,要将导出对象的信息传给依赖于他的插件,这种情况主要应用于右键菜单的合并。

2.2.2 确定系统的唯一状态

图形操作交互式事件有三类:按钮事件(菜单和工具栏产生的事件)、鼠标事件和键盘事件。在程序中,一个动作有可能由单个事件直接完成,也可能由事件引起,由随后产生的若干个事件完成。对于由单个事件直接完成的动作不会引起状态的变化。由若干个事件完成的动作在动作发生时其它插件处于休眠状态。为了更好地说明事件、动作与状态变化的关系,下面对相关术语进行定义:

(1)动作

动作指一个操作单元,如在要图标绘时绘制平行四边形、折线,放大/缩小地图,求地图两点距离,等等。动作可以由“动作事件”完成,也可以由“动作触发事件”引起,进一步由鼠标事件、键盘事件完成。

(2)状态

我们将“动作”视为“状态”,状态的变迁由按钮事件(指动作触发事件)引起,但按钮事件(指动作事件)并不一定会引起状态的变迁。我们用两个元素来唯一确定一个状态:插件的激活状态和插件内部状态。插件的激活状态由图形框架核心部件统一管理,而插件内部状态由插件自身进行管理。插件的激活状态通过为插件增加一个变量进行标识。我们认为通常插件之间是互斥的,即当一个插件被动作触发事件激活时,其它插件应被通知休眠。插件向核心部件通告其状态,核心部件据此决定其它插件的状态。核心部件的处理流程如图6所示。

只有在“动作触发事件”发生时才需要确定插件的唯一状态,动作触发事件的事件争用问题可通过插件的状态机制来解决。动作触发事件引起的动作由若干鼠标事件和键盘事件完成。在动作发生时,只有响应了动作触发事件的插件处于激活状态,其它的插件处于休眠状态。因此,插件中的鼠标事件和键盘事件需要根据是否处于激活状态来触发。

2.2.3 右键菜单组合

在图形界面上操作时,有时会需要弹出右键菜单。右键菜单可能只来自于某个插件,也可能同时来自于某几个插件,后者涉及到右键菜单组合的问题。此问题解决方法为:右键菜单的弹出需要指出“操作对象”,没有操作对象就没有右键菜单,对插件导出的右键菜单进行组合。解决右键菜单组合问题应以“操作对象”(简称“对象”)为中心,遵循三个原则:1)每个插件导出操作对象;2)每个插件给出要操作(依赖)的操作对象;3)对具有相同操作对象的插件定义其优先级。此优先级用于右键菜单组合时的前后顺序。默认的优先级为插件加载的顺序(越先加载优先级越高)。插件的加载顺序取决于插件的依赖关系,而插件的依赖关系则取决于对象的依赖关系。“操作对象”是关系依赖的最小粒度。在插件描述文件中,给出了各插件的导出对象和导入(依赖)对象。在软件形成前,先要根据导出对象和导入对象计算出插件的依赖关系,形成插件的优先级,并将优先级写到插件描述文件中。

右键菜单只有在多个插件要操作同一个对象时才要组合。因此,当导出对象的插件要弹出与导出对象相关的菜单时,该插件需要向其他依赖他的插件发送对象的相关消息。为每个对象开辟一个存储空间,用于存储对象的信息。插件根据对象的信息决定是否要创建并返回右键菜单,框架核心部件将多个右键菜单拼接起来。

如图7所示,为两个插件右键菜单组合流程的示意图。当主程序调用核心部件加载右键菜单时,核心部件依据插件加载的顺序获得插件的右键菜单进行组合。当同一个对象有多个插件要对其进行操作时(即多个插件要返回右键菜单),操作对象所在的插件将操作对象的数据写到共享数据区中。依赖此对象的插件将根据共享区中的内容决定创建何种右键菜单。

3 XOGF的实现及应用

目前,已经基于VC6.0和VS2008实现了XOGF,并已应用到某一体化指挥平台和某联合情报处理系统中,两个系统均已实装,担负部队日常值班任务。本节将对XOGF实现的关键思路进行描述。

3.1 核心部件

XOGF核心部件的作用是:加载插件,调用插件的标准化响应函数,负责插件间信息交互。核心部件由插件表、插件标准函数抽象类和相关配置文件组成。

3.1.1 插件标准函数抽象类

核心部件需要定义插件标准函数抽象类作为插件的实现准则和规范。类中的标准函数都是图形操作常用函数,并提供了扩展能力的函数。这些函数接口包括:初始化插件、创建系统工具栏、创建系统菜单、执行命令码、更新菜单状态、执行干预命令、绘制图形、弹出上下文菜单、定时器响应、鼠标按键、鼠标移动、键盘按键、处理报文、获取插件信息、释放插件。

插件标准函数抽象类还描述了插件信息,包括:插件名称、动态库名称、插件命令码处理范围、插件版本和开发者信息。

3.1.2 插件表

核心部件通过插件表来加载并调用插件的功能。插件表中每个插件元素包含的信息为:插件调入优先级、插件信息表、插件句柄、插件接口指针等。

3.1.3 核心配置文件格式设计

核心部件依赖一系列的配置文件进行工作,这些配置文件包括:1)插件描述文件;2)插件框架命令码范围定义文件。

插件描述文件描述了插件的信息,由插件生成器生成,由插件管理器进行管理,程序员在开发插件前必须先获得此文件。插件描述文件应该包括以下信息:插件名称、插件动态库名称、优先级、版本号、开发者信息、命令码处理范围、插件导入对象和插件导出对象。插件描述文件使用XML格式。

插件核心部件将会根据导出和依赖的对象决定插件的优先级(第一级优先级),然后根据配置文件中的“优先级”决定第二级优先级。由于同一插件导出和依赖的对象有多个,因此由导出和依赖的对象计算出的插件优先级有可能发生冲突。这种冲突在设计插件时是要避免的。在操作对象管理器中,将通过对象依赖图的形式来查找这种冲突。

插件框架命令码范围定义文件使用XML格式,描述了插件框架中插件可分配使用的命令码范围,由命令码分配器负责管理。

3.2 管理部件

图形框架管理部件的作用是管理插件(增加、删除、更改优先级),分配命令码和干预命令,管理操作对象。管理部件的六个子部件为插件的生成和开发提供便利,其功能描述如下:

1)插件管理器

插件管理器是一个应用程序,用于为一个应用载入、删除插件,调整插件的优先级。插件管理器在应用运行前工作,应用运行时插件管理器产生的更改只有在应用下次运行时才生效。

2)命令码分配器

因为每个插件可处理的命令码不能重叠,因此需要统一分配各插件可使用的命令码范围。这项工作可由命令码分配器来完成。

3)干预命令分配器

用于分配干预命令由哪个插件响应。

(4)操作对象管理器

用于指定插件的导出对象、依赖对象,对象的优先级。

(5)插件生成器

插件生成器是一个应用程序,应用于插件开发阶段,用于生成插件原始必要代码和插件描述文件。程序员要开发新插件时必须由插件生成器生成插件原始必要代码和插件描述文件,并在此基础上进行二次开发。

插件生成器还依赖于命令码分配器和操作对象管理器。

(6)日志分析器

日志分析器是一个独立的应用程序,用于控制日志打印,以便于软件集成联试。日志分析器支持文件打印和窗口打印,支持日志分类打印和单步打印。日志的单步打印指日志分析器收到日志消息后,将日志分析器程序挂起,直到某个事件触发日志分析器,日志分析器继续执行。

4 总结

XOGF解决了指挥信息系统中如何组合展现复杂战场态势的难题,提出了一种基于插件的模块组装机制,实现插件的即插即用,能够综合显示多专业战场态势。但是,XOGF并没有考虑如何有效组合软件主菜单和工具栏,也没有考虑如何将状态栏的空间分配给各插件。在后续工作中,将对这两个问题进行重点研究,设计一套规则和工具,用于编排主菜单、工具栏和状态栏的内容。

摘要:战场态势是作战决策的依据,是交战双方指挥员关注的焦点。针对多源态势可视化显示的实际需求,本文提出了一种可扩展开放图形框架XOGF(eXtend Open Graphic Frame),用于有效管理和集成基于态势图的业务处理模块,实现基于同一幅态势图的战场态势可视化显示。通过实际应用表明,XOGF能够有效解决多源战场态势的组合显示问题。

关键词:战场态势,可扩展,插件

参考文献

[1]邓亚明,杨邦荣.基于ECLIPSE图形插件开发的研究[J].电脑开发与应用,2009.第22卷第2期

[2]刘亚滨,杨红.精通Eclipse[M].北京:电子工业出版社,2004

[3]刘俊平,邹江南,贺玉寅.美军战场态势感知能力分析[J].国防信息化,2007.第6期

[4]李苏军,吴玲达,胡世才,宁汉辰.数字化海战场态势表现系统研究[M].系统仿真学报,2009.第21卷第19期

[5]蔡志浩,彭晓源.基于地理信息系统的虚拟战场态势显示[J].系统仿真学报,2003.第15卷第7期

[6]杨沁梅,孙晓鸣.基于插件集成技术的通用陆战场态势图,2012.第10期

财务经济分析:框架与扩展 第2篇

一直以来, 人们十分重视财务分析, 从最初的经济活动分析到财务分析再到现在的财务经济分析, 许多专家学者在不断地对其进行探索研究, 像张先治教授提出了财务分析具有独立性和边缘性的特点, 樊行健教授更是创造性地提出了财务经济分析, 这些都是对财务分析有益的探索。然而要更好地解决财务分析在实践中的应用, 必须有一个确定的财务分析的框架结构, 虽然有许多文献对其进行探讨, 但一直都没有得到较好的解决。传统教学和实践中则一直采用的是“四要素”即偿债能力、资产营运能力、盈利能力和发展能力的框架结构, 这个框架结构内容太窄, 层次太低, 无法满足现实中分析主体的需要, 同时在理论上也会带来很多误解, 因此要使财务分析学科有进一步的发展, 必须对财务分析进行重新架构。笔者认为要解决这个问题, 必须从实践出发, 分析问题形成的原因, 才能解决问题。

二、原因分析

(一) 分析主体多元化, 衍生分析多样性

随着我国市场经济的不断深入, 需要进行财务分析的主体不断增加, 不同主体进行财务分析的目的也各不相同, 企业经理为管理而进行分析, 投资者为投资进行分析, 债权人为贷款而进行分析, 还有许许多多其他的主体为着不同的目的进行分析, 研究主体和目的的多元化使得财务经济分析学科没有一个固定的分析框架。再加上财务经济分析领域随着经济发展的不断扩大, 在资本市场、企业重组、绩效评价、企业评估等方面应用越来越广泛, 衍生出投资分析、收益质量分析、盈利预测分析、信用分析等细化的、专题性的分析目标, 使得财务经济分析框架日益模糊, 难以确定。

(二) 学科名称不定, 学科归属不清

与其他学科有确切的名称不同, 财务分析领域的名称极其混乱。有称会计分析的, 有称财务报告分析的, 还有诸如财务报表分析、财务分析、财务经济分析、经营分析等, 这是因为我国在新中国成立初期引入的是前苏联的经济活动分析学科, 后来随着市场经济的发展, 才由经济活动分析转化为财务分析, 但在引入国外财务分析类教材时, 名称各种各样, 导致了目前这种状态。这些名称看似相同, 但在内容上又有一定的差异, 使得人们常常对财务分析领域的研究对象和研究内容模糊不清。

财务分析学科不仅名称不定, 而且还存在学科归属不清的问题。由于财务分析最早起源于银行对贷款企业资产负债表的分析, 后来又发展到对损益表的分析, 这使得一部分学者认为财务分析是会计学科的延伸。还有相当一部分学者认为财务分析应当放在财务管理学科里面, 是财务管理的一部分。但是不管是将财务分析放到会计学科下, 还是放到财务管理学科里, 它们都无法向财务分析提供相应的理论支撑, 所以财务分析在理论上发展缓慢。

三、基于实践需要的财务分析内涵

(一) 从分析主体来说, 最终目的是分析未来的财务状况和经营成果

财务分析内涵难以确定主要是因为财务分析的主体多种多样, 财务分析的目的也不尽相同。本文认为要确定财务分析的内涵, 必须从实践出发, 抓住核心, 对财务分析主体和目的进行高度逻辑概括。财务分析主体可以分为企业内部分析主体和企业外部分析主体, 对这两类主体分析目的进行归纳, 我们发现这两类主体进行财务分析的目的在于通过对企业历史财务状况和经营成果的分析, 分析未来影响企业财务状况和经营成果的因素, 展望企业未来一段时间的财务状况和经营成果, 为企业管理、投资决策和其他一些目标提供依据。由此可见, 不论是内部分析主体还是外部分析主体, 尽管它们的分析目的不同, 但都要判断未来财务状况和经营成果, 这就是财务分析内涵的核心。因此财务分析领域的研究对象是影响企业未来财务状况和经营成果的因素, 研究的最终目的是为了判断企业未来一段时间的财务状况和经营成果。

(二) 从学科来说, 目的不同, 分析手段不同, 是独立学科

通过分析主体分析目的分析内容的思路, 我们理清了财务分析的内涵, 它把企业财务作为起点和终点, 分析的主要内容包括所有影响企业财务的重要经济因素, 能够充分体现这个内涵的只有财务经济分析这个名称。

在明确了财务经济分析内涵的同时, 我们也解决了财务经济分析的目的。虽然不同的分析主体有不同的分析目的, 以及还有许多细化的、专题性的分析目的, 但是它们都统一到一个相同的最终目的:即判断企业未来一段时间的财务状况和经营成果。虽然财务经济分析学科与会计学科、财务管理学科有着密切的, 千丝万缕的关系, 但随着社会经济的发展, 财务经济分析的主体、目的和内容得到了扩展, 已经形成了一个完全不同于会计学科和财务管理学科的新学科。

四、财务经济分析的内容框架

通过以上的分析, 我们知道在实践中财务经济分析的目的是对企业未来财务状况和经营成果进行预测, 而目前的财务分析领域的内容体系大多是仅仅评价企业历史的财务状况和经营成果, 这是远远不够的, 因此我们需要对财务经济分析体系的内容重新架构, 使其从理论上满足实践的需要。根据财务经济分析的内涵, 我们认为财务经济分析体系包括3个部分:

(一) 对企业已有的财务状况和经营成果进行了解

在对企业进行财务分析时, 首先要对企业的背景以及竞争业绩进行了解, 包括企业的性质、实际控制人的教育水平和管理能力、市场占有率、企业的盈利能力等。在这个部分, 分析人员主要是进行资料收集以及对企业所提供的财务报告信息进行理解。财务报告是对企业历史状况的一个综合反映, 因此通过对财务报告的研读, 根据财务指标的计算和关键数据的变化来掌握企业当前的状况。

(二) 对影响企业未来财务状况和经营成果的因素进行分析

在掌握了企业当前状况以后, 要想判断企业未来的财务状况和经营成果, 就要对在未来一段时间影响企业状况产生影响的因素进行分析。本文将这些因素按照从大到小, 从外到内的次序对这些因素分层进行讨论。

⒈环境分析

任何一个企业都受到它所处的经济环境的影响。经济环境好时, 企业普遍受益;经济环境不好时, 企业普遍萧条。因此做财务经济分析时, 首先要对宏观经济状况有一个初步的判断, 对国际经济状况和国内经济状况有所了解, 并要分析现有经济状况对企业有何影响。

⒉行业分析

所有的企业都属于相应的某个行业, 而行业的特点决定了行业内的竞争程度, 进而决定了行业的利润率, 而行业的利润率也能够在一定程度上决定企业的财务状况和经营成果。同时企业在本行业中所处的位置不同, 所采取的战略也不同, 对其未来的财务状况和经营成果也有影响。

⒊竞争者分析

企业未来的财务状况、经营成果还取决于他的竞争对手在未来的表现, 如果竞争对手强, 则对企业未来财务目标的实现是个威胁;如果竞争对手表现很弱, 则有利于企业未来财务目标的实现。因此, 对竞争对手的未来目标、现行战略、能力、可能采取的行动等也需进行分析。

⒋企业自身分析

除了对企业的外部环境、行业结构特征以及竞争对手要进行分析外, 企业本身对其未来的财务状况、经营成果的影响更加重要。因此除了要对企业本身的财务报告进行分析外, 还要对企业拥有的优势资源进行分析, 包括资本规模优势、营销优势、研发优势、企业文化优势等, 这些对企业未来财务状况与经营成果均有重要的影响。

(三) 对企业未来财务状况和经营成果的评价

通过对企业现在状况的把握, 以及对未来影响企业的各个方面的重要因素进行分析, 可以了解企业的核心竞争力, 对企业未来一段时间的财务状况和经营成果进行预测、评价, 从而满足各方面分析主体的要求。

综上所述, 我们可以看到财务经济分析是一个静态与动态相结合的系统框架。在这个体系里, 我们从企业历史的财务状况和经营成果出发, 分析影响企业的内外因素, 从而得出企业未来的财务状况和经营成果。这是一个完整的分析体系, 在这个体系里, 每个部分都有着丰富的内容, 需要理论研究者不断地去充实和完善。对这个分析体系而言, 并不是所有的分析主体都要将其全部分析, 但所有的分析主体都能在这个分析体系里找到自己所需的内容。

摘要:财务经济分析很重要, 但是在理论上却发展缓慢, 同时严重脱离实践。本文认为, 传统的分析框架制约了财务经济分析的发展, 因此本文从实践出发, 对财务经济分析的内涵、目的进行了探讨, 给出了一个系统的财务经济分析框架。

关键词:财务经济分析,内涵,框架

参考文献

[1]张金昌.简论建立财务分析学的必要性[J].会计研究, 1994 (5) .

[2]杨有红.关于建立财务分析学的思考[J].会计研究, 1994 (6) .

[3]陈共荣, 龚慧云.构建现代企业财务分析学的思考[J].经济理论与实践, 1996 (5) .

[4]樊行健.试论财务经济分析学科的构建[J].会计研究, 1999 (5) .

[5]张先治.构建中国财务分析体系的思考[J].会计研究, 2001 (6) .

[6]王玉春.试论财务分析学科的研究对象[J].财贸研究, 1995 (5) .

[7]刘巧艳.对建立财务分析体系的构想[J].电子科技大学学报, 2000 (4) .

可动态扩展的数据库设计 第3篇

关键词:数据库设计,可扩展,对象,关系数据库

0 引言

数据库设计是建立数据库及其应用系统的技术, 是信息系统开发和建设的核心。数据库设计是指对于给定的应用环境, 构造最优的数据库模式, 建立数据库及其应用系统, 使之能够有效地存储数据, 满足各种用户的应用要求 (信息要求和处理要求) 。

数据库设计的核心问题是建立模型。一般而言这个模型要满足两类准则:结构准则和性能准则。前者主要考虑如何保持数据的特性, 后者主要考虑资源的合理使用和数据库的存储效率。在所有数据库设计准则中最重要的原则是:最终产品必须满足用户的最终要求。但是, 首先需要存储的信息是动态的, 应用自身的发展也会产生新的和扩展的信息需求;其次, 信息化是分步进行的, 用户很难一次提出完整的需求;第三, 用户和设计人员之间存在理解上的差异。因此, 数据库应用系统在完成以后, 系统功能很可能不能完全满足用户需求, 而且随着时间的发展系统功能会逐渐偏离用户或企业的需求。所以, 数据库应用系统必须要不断地改进和扩展以适应环境的变化以及组织自身的发展需求。

目前数据库设计普遍采用“需求驱动”的数据库设计模式。但是, 如果在数据库设计阶段, 建立数据库模型时没有充分考虑到数据库应用系统以后可能的改变及扩展, 将使系统以后的维护工作变得极其困难, 甚至必须重新开发数据库应用系统。本文针对数据库应用系统开发过程中遇到的动态可扩展问题提出了一种数据库设计模型基于键值对的对象属性可扩展模型, 它区分了应用中的不同对象的类型, 通过设计属性分类提高了数据库应用系统中数据的可改变性和可扩展性。

1 信息系统中的传统数据库设计模型

通常, 在传统数据库设计模型中, 设计人员在设计阶段总是将数据信息表达的尽可能丰富, 使其不仅满足所有需求分析阶段得到的用户需求, 而且还要尽可能考虑到应用以后可能的改变以及扩展。采用这种方式设计的数据库应用不仅数据表过于“臃肿”, 而且对于未来的应用难于改变或者扩展。

例如, 在某校园建筑管理信息系统中, 系统成立初期, 只要求该系统能够展示建筑的基本信息, 如名称、简述等。设计人员有可能将数据表格设计成, 我们称之为方案1。包括编号、建筑名称、建筑描述是建筑的最基本属性, 此外设计人员也考虑到了系统将来的扩展, 加入了诸如建设日期, 高度, 等属性。由于设计人员不可能完全预见学校未来发展状况, 所以对于系统现阶段的需求来说, 尽管建筑信息表已经非常详尽了, 但是随着时间的推移系统仍有可能不适应实际需求。

随着需求的发展, 建筑的信息需求有可能发生变化。例如:①为了获取建筑质量, 有可能对该建筑的施工文件等信息保存;②随着校园信息系统的建立, 可能有更多的不同类型的建筑需要存入系统, 比如管道信息, 一些标志性雕塑, 或者植被信息;③随着系统的扩展, 原有数据表可能不能满足日益增多的该类建筑所有信息的存储, 所以需要建立新的数据表扩展其属性;④对于一些简单的建筑或者物体比如一棵树一个石凳, 存储的信息明显和一座教学楼不同, 需要按照类型的不同, 设计多个不同的数据表分别存储不同类型的物体信息。

2 数据库设计中的扩展性需求

在应用中, 类似这样的数据存储结构改变以及应用扩展的情况还有很多。如果用传统数据库设计模型, 那么在设计初始阶段就必须考虑到应用未来所有的改变及扩展, 尽可能使表格的信息详尽, 否则当应用发生改变或扩展时, 必须重新设计表结构, 并对应用程序中相关片段全部重写。如果同一变化出现在不同部位, 由于不同的原因, 出现在不同的阶段, 那么现有表结构不能满足要求;如果需要增加过多的对象属性信息, 那么表结构将必须修改。但是, 如果我们将数据对象化, 并采用定义其属性和值的设计模型, 上述问题将迎刃而解。

作为开发人员, 总会面对业务方提出的数据结构变化的需求, 字段的增加, 数据表的修改总是随时可能根据需求发生。因为业务在发展, 或者需求就有可能需要一个完全动态的可扩展的数据库设计方案, 但是以目前的关系数据库实现这种动态扩展的特性, 在系统一定规模之后所付出的代价是昂贵的, 也是不安全的。为了这种动态扩展性, 有这样三种常用的方法:

第一种方法:预留字段。既然很难加字段, 就预先留好一些备用, 但是这样没那么灵活, 有一定的实用性, 不过因为预先留的字段一般是没什么含义的, 需要有额外的信息来描述, 这种方法在扩展性要求不是太强的地方可以不影响性能的前提下提供一定的扩展性。

第二种方法:使用复杂字段。在某些特殊要求下还是很有用的, 比如, 某个业务实体 (某张表) , 有一些标记位, 都是true/false的标记, 可以理解为这个实体的一些属性, 经常需要添加, 这种情况, 在生产中我们使用过用一个数字, 按位来表示这些标记的, 比如第三位表示他是不是付费用户, 第四位表示他是合作方来的用户还是自己注册的, 等等。还有一种情况, 需要更复杂的属性列表, 属性个数经常变, 可以考虑使用一个文本字段, 保存结构化的数据, 然后在使用时需要动态解析该字段。使用复杂字段的好处就在于比较灵活, 同一类型的数据可以放在一起 (实际上相当于把应该是一个关联表的数据放一个字段里了) , 操作的性能也不错, 但是复杂字段里面的内容查询比较困难, 程序实现和修改起来也更复杂。

第三种方法:将数据的存储和索引 (需要查询的内容) 分开存放, 相当于主表就一个key-value, 把需要查询的字段放到其他单独的表里去, 这种方法对数据的实时查询的效率有一定的影响, 但是针对实时性的要求并不是所有系统都有要求的, 在有些地方是很好的解决方案。

3 基于键值对的对象属性可扩展模型

本文的基于键值对的对象属性可扩展模型就是结合上面提到的第三种方法, 使用数据表分别单独存储对象分类和分类的属性信息的定义, 并且实现了分类属性之间的树形的可扩展结构, 对象信息的存储用过一张表用来存储所有对象公有的可快速查询的数据信息, 另一张属性值表存储所有的对象的特有属性的key-value。通过这样的设计可以在不修改原数据表结构的前提下, 实现所有存储对象的动态可扩展, 如图1所示。

由图1所示, 表t_class保存对象的分类信息如建筑, 管道, 雕塑等;t_attibute_def保存的是每个分类所对应对象的属性信息如建筑的高度, 施工单位等;t_entity保存的是分类对象的公共信息, 是具体的物体如1号教学楼;t_entity_content保存每个具体的对象所有属性的信息值;t?倕_file表用来保存一些扩展的文件信息。通过这样一个模型我们可以在需要是动态定义一个大的分类并且可以动态的设置每个已有分类拥有哪些属性, 所有对象的的具体内容分别存储在对象公共信息表, 对象属性信息表和文件信息表中。

在实际应用中, 还涉及到属性冗余, 查询, 修改等方面的问题, 通过在校园管理系统中应用的结果来看, 这些都可以实现, 并能获得较好的效率。

4 结束语

综上所述, 传统的数据库设计适用于简单的、业务数据固定或变化极少的集中式数据库应用。在应用范围更广需要更灵活数据结构的系统中, 显然面向对象属性的扩展设计更加适宜。

随着网络环境的日益普及, 新的应用呈现出来的开放性与分布性特点, Web应用系统也由简单的数据库系统逐具有了更灵活多变应用环境, 在这种环境下, 能够满足扩展和动态改变的需求, 将有更广阔的应用前景。

参考文献

[1]萨师煊, 王珊.数据库系统概论 (第三版) [M].北京:高等教育出版社, 2000.

[2]刘洋, 高连生, 王斌.一种面向用户扩展的树状数据库设计模型[J].计算机工程与设计, 2006 (11) .

[3]陆登.基于对象数据库的扩展Java集合框架[J].计算机应用与软件, 2011 (12) .

可扩展并行入侵检测体系结构 第4篇

目前, 网络安全采用的主流方案是防火墙与入侵检测系统的联动部署。该方案通过数据分析对网段中多个主机系统进行检测, 同时其提供的主动网络保护更有利于提高整个内网的安全性。随着信息技术的发展, 传统的入侵检测系统已经不能满足人们对检测效率和可靠性的要求。一方面, 随着网络带宽飞速提高, 入侵检测需要分析处理的网络流量大大增加;另一方面, 网络攻击方式的层出不穷, 导致检测引擎需要匹配的特征库日益增大, 单个数据包的处理效率因而下降。

基于上述背景, 本文创新性地提出了一种可扩展并行入侵检测体系结构, 该结构利用了分发节点间和探测节点间的并行处理优势, 同时设计了合理的流量划分策略来保证并行处理过程中的负载平衡。通过该体系结构, 可以突破传统入侵检测系统面临的网络流量激增、规则库不断膨胀两大性能瓶颈。论文第2节阐述了实现方案, 主要包括介绍并行入侵检测体系结构, 流量划分策略。论文第3节进行性能测试, 第4节为结论。

2 设计方案

2.1 可扩展并行入侵检测体系结构

基于传统的检测架构和并行处理思想, 本文创新性提出了一套可扩展并行入侵检测体系结构——SPIDA (Scalable Parallel Intrusion Detection Architecture) , 该体系结构如图1所示。

SPIDA架构主要分为四个部分:分发模块, 检测分析模块, 管理模块以及负载反馈模块。分发模块根据流量划分策略将到达的报文映射到一个或多个检测引擎, 而检测分析模块则对接收到的报文进行相应的检查和分析。管理模块提供用户接口, 实时显示各检测引擎的负载情况和状态信息, 同时提供结果统计和相关配置等功能。为了反馈负载信息, 保证各检测引擎间的负载均衡, SPIDA在每个检测引擎上使用负载反馈模块来监测该检测引擎的当前负载, 并将负载情况传给分发模块, 分发模块再根据相应的负载均衡算法, 保证系统的负载均衡情况。

分发模块:分发模块由动态分发和负载均衡两个部分组成。动态分发部分按照一定的流量划分策略将接收的报文映射到一个或多个检测引擎。负载均衡部分负责接收每个负载反馈模块发来的负载信息, 然后对每个端口上的报文量进行调整。

检测分析模块:检测分析模块包括多个检测引擎, 检测引擎可以根据需求动态增加, 充分体现了该架构的可扩展性。检测引擎检测分析由分发模块分发到自身的相关数据流。检测引擎的分析规则对检测结构有重要影响, 在这方面, 本文选择为每个检测引擎配置完整的规则集, 这种方案实现简单, 并且每个攻击引擎都具备检测所有攻击行为的能力。

管理模块:管理模块是系统与用户之间的接口, 本文利用Java语言开发了一整套管理操作界面。为了提高系统的性能同时降低结构的复杂性, 本文将管理模块做在一个检测机器上, 其他检测器与该检测器进行通信, 从而使管理模块能及时掌握系统的状态信息, 便于用户管理。管理模块主要提供权限管理、功能管理、日志管理三大功能, 其中主要的功能管理模块可以进行负载检测、检测结果统计和相关配置。

负载反馈模块:负载反馈模块在SPIDA中是转发模块和检测模块之间的反馈环节, 它实时监控各个检测引擎的负载情况, 并将负载信息反馈给模块, 模块再根据负载均衡算法, 动态地调整数据包在各个检测引擎之间的分发。而衡量负载的指标与用户在不同条件下的需求有很大关系, 所以采用在管理模块配置的方法来动态设定衡量负载的指标。

2.2 流量划分策略

在实现证据保持时, 本文主要基于Hash映射思想设计流量划分策略。其主要思路是对报文头的部分内容进行哈希函数, 由相同的检测引擎处理特征相同的报文流。

一般而言, 我们会采用单级映射, 主要对<源IP地址, 源端口号, 目的IP地址, 目的端口号, 协议类型>这五个元组进行Hash映射, 如果Hash值大于检测引擎数量, 则取模, 从而得到处理该报文的检测引擎。

本文发现只采用单级hash, 在检测引擎上很容易发生过载。因此在单级哈希的基础上又增加了一级哈希, 尽可能将报文均匀分到多个检测引擎上, 从而缓解检测引擎的负载。

这是本文所设计的两级Hash映射的流量划分:

1) 首先配置第一级哈希的报文域, 以检测单攻击源为例, 本文将采用的报文域是<desIP, srcIP>, 将目的IP地址和源IP地址相加的结果Hash到0—255这256个数上。

2) 然后在将这256个数哈希到3个检测引擎上 (这里假设共有3个检测引擎) 。

负载均衡的关键是实现报文流的转移, 并且在面对大报文流的情况下, 算法一定要满足两个条件: (1) 有效选择报文目的端口; (2) 报文转移速度要快。对此, 本文在Netmagic实验平台上设计了硬件负载均衡算法, 有效利用了硬件算法效率高的优势, 同时通过队列实现了在一个时钟节拍内的报文转移, 这大大提高了算法的效率。

下面是硬件算法的所实现的报文转移过程:

将报文通过一级哈希得到的哈希值0-255, 在分发模块内建立一个路由表, 这个路由表的大小为256, 其表项是这256个报文的哈希值和其所对应的端口号, 报文的转发到哪个端口就是通过查阅这个路由表得到的, 并且这个表也是动态变化的。在初始化时将256个哈希值分配到了3个检测引擎, 本文给每一个端口建一个大小为256队列, 每一个队列里存储的就是该端口所转发报文的哈希值。初始化时每个队列里分别有85, 85, 86个值。如图2所示。

当某个检测引擎发生过载时, 该检测引擎上的负载反馈模块就会发一条消息给分发模块, 告诉分发模块该检测引擎发生过载了, 分发模块则会查阅该检测引擎的端口的队列, 由于队列是遵循先进先出原则的, 因此本文会把该队列前端的哈希值弹出来, 然后将该哈希值放进下一个端口队列的后端。如图3所示。

最后将此哈希值及其转移到的端口号传给路由表, 修改此哈希值所对应的端口号, 完成报文流转移。如图4所示。

3 性能测试

3.1 环境搭建

性能测试主要包括测试系统证据保持能力, 系统的负载均衡能力, 高速网络环境下检测能力。测试环境搭建图如图5所示。

网络环境:Netmagic网络实验平台, UTP非屏蔽双绞线

攻击机环境配置如表1所示。

检测器环境配置如表2所示。

3.2 测试实施

3.2.1 证据保持测试

背景流:TCP报文;源和目的IP在192.168.100.0~192.168.100.255之间变化;源、目的MAC地址不变;端口随机变化;报文大小为100byte;流数=1条。使用IXExplorer发送。

攻击包:SYN Flood攻击包。使用SmartBits发送。

检测结果如表3所示。

传统入侵检测系统的漏报率在20%—30%之间, 而本文设计的基于两级哈希的流量划分方案使得漏报率降到9.2%。两级哈希算法的证据保持能力基本能满足人们对入侵检测准确率的要求。分析认为, 导致漏报率的部分原因是不同报文流之间有一定的相关性, 如果能够实现检测引擎之间的信息交流, 进行综合处理, 还能进一步提高检测的准确性。

3.2.2 负载均衡能力测试

背景流:TCP报文;源, 目的IP在

192.168.100.0~192.168.100.255之间变化;源、目的MAC地址固定;端口随机变化;报文大小为100byte;流数=1条。使用IXExplorer发送。

攻击包:SYN Flood攻击包。使用SmartBits发送。

现象:

1) 初始状态, 由于报文的随机性, 各检测器模块上的负载量差距比较大, 检测器1出现过载现象, 可以通过管理端观察到, 如图6所示。

2) 四分钟后, 三个检测器上的负载量差距不大, 并且都恢复正常, 如图7所示。

根据算法, 哈希值相同的数据包被分发到同一个检测器。但当该检测器负载超过预设的阈值时, 数据包被调度到其他的检测器, 从而使检测器的负载状态恢复正常。

3.2.3 高速网络环境下检测能力测试

背景流:TCP报文;源、目的IP在

192.168.100.0~192.168.100.255之间变化;源、目的MAC地址固定;端口随机变化;报文大小为100byte;流数=1条。使用IXExplorer发送。

攻击包:SYN Flood攻击包.使用SmartBits发送。

结果如表:

从上述结果中可以发现, 随着网络带宽的增多, 丢包率虽然在增加, 但是增加的幅度不大。因此, 本文的可扩展并行入侵体系结构在高速网络环境中有很高的可靠性。

4 结束语

本文提出了一种可扩展并行入侵检测系统, 其利用分发节点间和探测节点间的并行处理优势较为有效的解决了在大数据环境下流量瓶颈的问题。通过在实验平台上实现了自主设计的基于两级哈希映射的流量划分算法和负载均衡算法, 使系统的证据保持和负载均衡都得到了有效保证。通过测试结果, 系统在高速网络环境中漏报率和误报率较低, 有很高的可用性和有效性。

一种低延迟的可扩展调度算法 第5篇

随着Internet的迅速发展,对网络交换技术提出了越来越高的要求。网络交换的核心技术就是高性能的网络交换设备,优良的性能主要表现在具有较大的交换容量、较高的吞吐率和较小的延迟时间并且能够在任意流量下都具有较低的丢包率。IQ(输入队列)交换和OQ(输出队列)交换是两种常见的网络交换方式。IQ交换通过采用VOQ(虚拟输出队列),有效地解决了线头阻塞问题(hol blocking)。IQ交换的另一个优点是硬件实现简单,所以IQ交换方式在实际中得到了广泛的应用。图1为NN的IQ交换结构,它由两个主要部件交换机构(crossbar))和调度器组成,从N个输入端接收的数据包被存放在VOQ中,在调度器的控制下通过交换机就可以实现NN的包的交换和转发。

国内外对IQ交换都进行了大量研究,提出了多种基于IQ交换的调度算法。例如,属于MWM(最大权匹配)的最长队列优先(LQF)算法[1],和属于MSM(最大尺寸匹配)的iSLIP[2],RDSRR[3]算法。文献[4]和文献[5]分别提出了一种随机性算法和队列长度加权服务的调度算法,在吞吐率和平均延时等性能指标上都取得良好的效果,但是其硬件复杂度与ISLIP等MSM算法相比仍显复杂。

目前,已有商用的交换芯片和调度芯片,但是受到单片集成电路容量和引脚数的限制,这两种芯片的容量和端口数都非常有限,通常只能实现3232的规模,要想在单片集成电路上实现更大规模的交换和调度功能(如256256)就十分困难。因此,有必要进一步提升可扩展调度结构的性能,以满足下一代网络交换所需的多端口、大容量的要求。

文献[6]提出了一种可扩展的调度结构,通过将较小规模的调度器级联实现大容量多端口的调度,从根本上解决了单片调度器规模和输入/输出端口数受限的问题,不仅速度高,而且规模可扩展,在实际应用中,可根据需要配置成不同容量和端口数的调度器。目前,国内外对于可扩展的调度系统也开展了一定的研究,如文献[7]提出了一种只适用于小容量交换的多个调度器级联的方法,其中每个调度器只与一个输入端口相连,各调度器采用顺序工作方式,这种方式的缺点是端口数增多时会导致交换效率的降低。此后,文献[8]提出了DFDA这种可用于可扩展的调度算法,该算法采用全分布式结构,对于可扩展网络工作良好。

为了进一步提高可扩展调度系统的性能,本文在文献[6]的基础上,对可扩展网络交换的调度算法进行了深入研究,通过对调度时隙的充分利用,有效地降低了网络交换的延时,提高了调度器的性能,而硬件资源的增加却十分有限。

1 公平可扩展调度结构

图2所示为FSSA(公平可扩展结构),它由4个832的子调度器环行连接组成,其中的AOP(Available Output Port)信号表示某轮调度完成后32个输出端口被占用的情况,“0”表示端口未被占用,“1”表示端口已被占用。子调度器每完成一次调度,相应的AOP信号会更新并被送到下一个调度器,那些未被占用的输出端口可以在下一个时隙参与该调度器的调度。采用这种结构,在中心控制器的控制下,4个子调度器并行工作就可以实现3232的调度功能。

图3说明了FSSA的工作原理。图中1,2,3,4分别表示第1,2,3和第4轮调度,①,②,③,④分别表示第1,2,3和第4轮调度的开始。从图中可以看出,在第1个时隙,子调度器1和4同时开始第1轮和第4轮调度,子调度器2和3 分别进行第7轮和第8轮调度。4个时隙之后的每个时隙都可以得到一个完整的调度结果。例如,时隙5可以得到第3轮调度结果,时隙6可以得到第4轮调度结果。假设用调度的优先级来衡量不同时隙子调度器可用输出端口数的多少,并且规定可用端口数越多,优先级越高,并定义一个调度周期为完成一轮完整调度所需的时隙(图3的调度周期为4个时隙),则采用图3的工作方式可以使子调度器的优先级之和在一个调度周期的各个时隙间平均分配。

例如,在图3中的时隙1,所有子调度器的优先级之和为12,时隙2则为11,第3个时隙的优先级之和为8,第4个时隙也为8。这样做的好处是通过均衡分配每个时隙的有效输出端口的数量,提高调度器的延迟特性。

2 低延迟的可扩展调度算法

研究表明,为了提高交换效率,可以采取下面两个措施:

a) 通过增加迭代次数提高输入输出匹配对的数量。如果直接在每个时隙中增加迭代次数,无疑会增加整个系统的延迟。然而,注意到在FSSA的每个调度周期中,各子调度器均有一次最高优先级的调度机会,处于最高优先级的子调度器可以在输入端口和任意一个输出端口之间进行调度,因此,适当增加该时隙的迭代次数有可能产生匹配数多、匹配权重大的调度结果。

b) 通过选择权重较大的VOQ提高每次匹配的权重。 要想有效地提高调度匹配的权重,应该在保证一定匹配尺寸的前提下尽量挑选出长度较长的VOQ进行匹配。由于一个子调度器在两次最高优先级调度时隙之间有3个时隙的间隔,而相邻时隙队列的缓存情况变化不大,为了不增加整个系统的延迟时间,可以考虑将挑选长VOQ的任务提前到最高优先级时隙的前1个时隙完成,这样做既实现了多次迭代又节省了信元的处理时间。

调度算法中有一类算法称为基于阈值的算法[9,10],这类算法的基本思想是使权重较大的VOQ能够获得更多的调度机会。其基本原理是在用Round-Robin算法进行请求-应答-接受操作的同时,考察形成匹配的VOQ的长度,若长度超过所设定的阈值,则将该匹配结果直接作为下一轮调度结果保留。仿真结果表明,uniform流量模式下,基于阈值的算法的延迟性要优于iSLIP等算法。

因而,综合考虑以上两个措施,本文提出了TDIA(基于阈值的分布式迭代算法),其基本思想是对于每个子调度器设定一个自适应的阈值,在最高优先级时隙之前的一个时隙,结合指针的轮询,挑选出VOQ中长度超过阈值的队列,并将其作为最高优先级时隙的第1次迭代结果;在最高优先级时隙再用DSRR算法进行第2次迭代。这样,在最高优先级时隙,就可以在保证匹配尺寸的前提下增加匹配的权重。对于其他时隙,均采用一次迭代的DSRR算法进行调度。有关DSRR算法请参阅文献[3]。

TDIA算法的具体描述如下:

图4说明了TDIA的工作原理。以子调度器2为例,它在时隙4的调度优先级最高,为了提高该时隙的匹配权重,在时隙3先进行第4轮调度的第1次迭代,即根据阈值挑选出较长的VOQ并作为第4轮调度的第1次迭代结果,紧接着在时隙4用DSRR算法进行第4轮调度的第2次迭代。这样,两次迭代的结果有望产生权重较大的匹配。

3 仿真结果分析

我们对3232的交换进行了仿真。仿真分别对单个调度器和可扩展调度结构进行,其中可扩展结构用4个832子调度器实现。仿真的输入流量为以下两种模式:uniform模式和uniform的突发模式(bursty)。

图5为输入流量为uniform模式时的仿真结果。其中,iSLIP、LQF、DSRR分别表示采用单个调度器时这3种算法的仿真结果, FSSA-DSRR和FSSA-TDIA表示采用可扩展结构、子调度算法分别为DSRR和本文算法的结果。图6为输入流量为bursty模式下的仿真结果。

由仿真结果可以得出以下结论:在两种流量模式下,基于可扩展结构的调度器的延迟性能在流量低时接近于一个常量,该常量与采用的子调度器个数有关,子调度器越多,该值越大。在流量高时,它们的性能均明显优于单调度器的iSLIP、DSRR等算法。同时,同为可扩展结构,本文提出的FSSA-TDIA算法在高流量的uniform和bursty模式下的延迟都明显低于FSSA-DSRR,使其延迟性能得到了明显改善。

4 结束语

本文结合自适应阈值算法和可扩展调度结构的特点提出了一种分布式迭代算法,通过对最高优先级时隙的分布式多次迭代,以较小的硬件代价实现了系统性能的明显提高,取得了性能与复杂度的良好折中。仿真结果表明,在uniform流量下,延时性能有明显提高,在diagonal等其他流量模式下性能亦有一定改善。值得指出的是,本文的分布式迭代思想对单调度器也同样适用。

摘要:提出了一种基于阈值的分布式迭代算法。与现有算法不同的是,该算法针对可扩展网络交换调度结构的特点,为处于最高优先级的调度器安排了2次迭代,第1次迭代用阈值方法找出一些较长的VOQ(虚拟输出队列),并在最高优先级时隙之前的一个时隙完成,以缩短信号的处理时间。仿真结果表明,该算法与现有算法相比,在大流量的uniform流量模式下,延时性能和吞吐率获得了明显的提高。同时,该算法的硬件代价小,有效地实现了性能和复杂度的良好折中。

关键词:调度算法,输入队列交换,可扩展,阈值,迭代

参考文献

[1]MEKKITTIKUL A,MCKEOWN N.A starvation-free alog-rithm for achieving 100%throughput in an input-queuedswitch[C]//Proceedings of International Conference on Com-puter Communications and Networks,Oct 16-19,1996,Rockville,MD,USA.1996:226-231.

[2]MCKEOWN N.iSLIP:A scheduling algorithm for input-queued switches[J].IEEE Trans on Networking,1999,7(2):188-201.

[3]JIANG Ying,HAMDI M.A fully desynchronized round-robinmatching scheduler for a VOQ packet switch architecture[C]//Proceedings of IEEE Workshop on High PerformanceSwitching and Routing,May21-25,2001,Dallas,TX,USA.New York,NY,USA:IEEE,2001:407-411.

[4]GIACCONE P,PRABHAKAR B,SHAN D.Towards simple,high-performance schedulers for high-aggregate bandwidthswitches[C]//Proceedings of Conference of IEEE Computerand Communications Societies:Vol2,Jun 23-27,2002,NewYork,NY,USA.Piscataway,NY,USA:IEEE,2002:556-564.

[5]孙书韬,贺思敏,郑燕峰,等.队列长度加权服务的输入排队交换结构匹配算法[J].计算机学报2006,29(6):875-883.

[6]LIUJing,MOUNIR H,HUQingsheng,et al.Scalable sched-uling architecture for high-performance crossbar-based swit-ches[C]//Proceedings of IEEE Workshop on High Perform-ance Switching and Routing,Apr19-21,2004,Phoenix,AZ,USA.New York,NY,USA:IEEE,2004,104-110.

[7]KUMAGAI M,NOJIMA S,TOMONAGA H.IP router fornext-generation network[J].Fujitsu Science and TechnicalJournal,2001,37(1):31-41.

[8]CHIUSSI F M,FRANCINI A,GALANTE G,et al.A novelhighly-scalable matching policy for input-queued switches withmulticlass traffic[C]//Proceeding of IEEE Global Telecom-munications Conference:Vol 3,Nov 17-21,2002,Taipei,China.Piscataway,NJ,USA;IEEE,2002:2281-2286.

[9]SUN Shutao,HE Simin,ZHENG Yanfeng,et al.Multiple-threshold based scheduling algorithm for high performance in-put queued switches[C]//Proceedings of 12th IEEE Interna-tional Conference on Networks:Vol 2,Nov16-19,2004,Sin-gapore,Piscataway,NJ,USA:IEEE,2004:755-759.

可扩展框架 第6篇

然而, 在XBRL带来诸多便捷的同时, 学术界一直对一个问题始终没有达成一致意见, 那就是XBRL的使用到底会不会直接导致国际会计趋同。早在2004年, 国内就有人提出:由于XBRL的产生, 将直接导致国际会计趋同的加速。这一说法是又XBRL得独有特性决定的, 因为XBRL本身就是为了各国之间更加方面的进行信息交流而产生的。2006年, 又有人提出, XBRL本身只是一种纯粹的工具, 它并不直接影响会计准则的制定, 即使对会计趋同有影响, 那也只是起到一种催化剂的作用, 没有直接联系。因而, 针对这些不同意见, 本文将从XBRL如何实现商业信息交换这一角度来探讨XBRL与国际会计趋同之间的关系。

1 XBRL信息交换功能的实现

从XBRL设计角度来说, XBRL的应用很广泛。企业或者政府机关、事业单位等的各种信息, 特别是商业信息, 都可以通过XBRL在计算机互联网上有效处理。信息发布者一旦输入了信息, 就无需再次输入, 通过XBRL就可以很方便地转换成书面文字, PDF文件, HTML页面, 或者其他相应的文件格式。而且, 通过XBRL获取到的信息, 也无需打印或再次输入, 就可以方便快捷地运用于各种财务分析等领域。

因而, 国内一部分学者总结出, 不论在任何应用领域, 对任何单位和个人, XBRL都可以实现以下功能:a.商业数据一次键入、重复使用, 如年度财务报告、内部控制资料, 审计报告等, 这一点我国2002年上交所就已经开始实现;b.商业信息及时、准确搜索。XBRL格式文件的所有数据都有相对应的唯一标签, 即XBRL分类标准, 这些标签以标准化的会计业内定义为基础, 以描述和识别财务信息的每个项目为目的。c.财务报告全面、实时报送。XBRL可以完全突破传统的财务报告按年、季或月发布的模式, 做到实时发布、在线披露, 通过将企业内部会计信息系统、财务报告系统连成一体, 从会计凭证的输入、分类、汇总、检索、传递到会计报表的输出在同一时间内完成, 实时、全面地报送企业的最新财务状况。d.商业信息免费、自由取得。根据XBRL国际组织的相关规定, XBRL不是一项专有技术, 它是免费许可和面向公众的, 即允许人们通过不同的软件格式和技术自动交换和使用, 并自由地取得其所需要的信息。所以, 从XBRL本身的作用和功能可以看出, XBRL的产生, 最初的出发点其实是为了商业信息交换效率的提高。

虽然XBRL仅仅作为一种网络工具使用, 但是, 它对商业信息交换的作用, 已经远远超过了一种工具本身。由于它的使用, 世界上许多国家开始考虑建立一种国际标准的XBRL分类标准以使得国际间商业信息交换更加方便, 或者是直接建立国际会计准则, 以打破目前各国的会计壁垒, 真正达到经济全球化。

2 会计趋同的主要作用及发展方向

什么是会计趋同?会计趋同的最直接表现就是企业财务会计与报告的改进与趋同。企业财务会计与报告改进的终极目的是为了向投资者提供真实公允的, 有助于其评价各种受托责任和进行各类经济决策的信息。真正的趋同将使投资者更容易比较不同的投资机会, 而无论这些投资机会在地理上相距多么遥远, 投资者们都将推动会计体系的趋同, 使之更透明, 会计趋同是必然趋势。

为此, 财务人员必须考虑各种环境的影响, 结合不同人员的需求提供财务信息。投资者在做投资决策时, 既需要基于相同标准的同行业或者跨行业的可比信息, 也需要满足个人投资条件、环境等的个性化信息。前者要求财务报告以提供原始信息和核心会计程序为其基本功能;后者要求信息分析更加微观和具体, 这一点在XBRL的基础上可以更好的实现。会计趋同包含不同层次、不同范围的趋同。不同层次:财务报告、财务会计、管理会计、管理信息化、企业国际化, XBRL将在会计趋同不同层次中扮演不同角色。不同范围:国内不同地区、不同行业、不同领域之间, 某区域内不同地区与国家之间。会计准则具有经济后果, 从本质上说, 会计准则的协调、趋同是各方之间的利益协调。因此会计准则的全球趋同不仅仅是一个技术层面的协调问题, 它更是一个各方政治、经济利益均衡的产物, 各个利益集团围绕着国际会计准则将展开较量:从各自的利益出发, 使“趋同”的准则尽可能地体现自己的声音, 最终的国际会计准则将更多地体现强势集团的利益。会计准则的全球趋同涉及各国及有关组织的利益, 以及其他政治、法律、制度和技术等方面的问题, 因而会计准则不可能完全做到国际趋同。

目前, 国际会计趋同的局限性主要表现在以下几个方面:一是各国利益的协调问题;会计趋同是在经济全球化的大背景下产生的, 资本与财富的流向是大家都关心的问题, 各国本来基本都有自己严格的经济法律制度与体系, 而会计趋同的出现必然会在某种程度上面导致某些国家的利益受损。资本的跨国流动与跨国公司的发展, 使各国会计准则之间的差异对跨国筹资和投资的障碍突显, 同时, 相应的税收和证券监管也存在困难。二是由哪个组织要协调会计趋同相关事项;IASB目前是公认的国际会计趋同与国际会计协调的组织机构。IASB应在其制定IFRS过程中, 充分考虑到各国的利益。IFRS的内容是更多地体现美国 (或者英国等其他发达国家) 会计准则的精神, 还是体现广大发展中国家的要求, 是极为重要的。如果国际会计准则的内容更多地体现的是英美国家会计准则的精神, 那么, 英美国家在这场会计准则国际化的运动中将大受其益;相反, 广大发展中国家将需要耗费大量的成本去实现其本国会计准则与国际会计准则之间的趋同。然而, 不管有多少阻力与困难, 会计趋同的大势是不可阻挡的。人们在最初的会计准则协调中发现, 统一“会计语言”, 不仅可以提高交往的透明度和可比性, 更好地起到财务信息的“交流媒介”作用, 而且可以大大减少“调整和翻译”的成本和误差, 降低交易成本, 提高财务信息的可信度和可比性, 扩大投资者和融资者的选择范围。

IASB副总裁ThomasEJones曾经说过:“所谓各国的法律体系, 反映了各自的国民性或特有的文化, 并形成其国家固有的东西。但是, 会计是与法律不同的简单的技术方法。无论销售交易、生产活动, 或者租赁交易, 作为各种经济交易的特性在整个世界是相同的。因此, 这些会计处理方法也必须共同于世界之中。各国文化的差异, 对其会计处理方法的影响是不存在既有模式的。”我国学者杨松令 (2001) 在介绍XBRL的文章中提到“如何将一个跨国公司的报表按不同国家的准则编制, 并能快速地将有关数据按不同国家的准则尽管进行转换”是XBRL需要完善的地方之一。到目前为止, 这一目标已经实现, 现在的XBRL技术, 已经能够很轻松的在不同语言, 不同会计准则之间进行转换。

XBRL的产生, 并不能从根本上改变现存的会计准则, 开发XBRL不是建立新的准则而是通过运用数字化企业语言增强现有准则的价值。在XBRL环境下, 跨国集团只需输入一种格式的基本财务数据, 通过点击按钮就能马上产生另一种格式的财务报表, 所以XBRL可大大减轻编制多套报表的繁重任务。

潘琰 (2003) 在讨论“XBRL在全球的推进问题”时认为:“进一步推行XBRL最困难的是要把分类标准定义出来”, 该分类标准要“符合各国会计准则并适应实务需要”。关于XBRL分类标准的建立, 已经趋于成熟化, 各个主要国家已经有了自己明确的分类标准, 是否需要建立一个国际标准的XBRL分类标准以及由谁来建立这一标准已经成为研究的重要问题。“随着我国会计制度的改革以及国际间财务信息交换的发展, 我国制定的与会计相关的分类标准与国际上的相关分类标准之间逐步关联和融合是一种必然的趋势”, (杨周南、赵秀云, 2005) 。

在讨论XBRL对会计准则选择问题的影响时, 潘琰认为:“从XBRL的技术潜力看, 它的确能为会计信息的跨国交流提供支持”, “但它能否加速会计标准本身的国际化尚不得而知”, 因为借助XBRL, 公司能够在不改变现有准则的基础上同时满足不同方面的需要。当XBRL被普遍采用时, 报告主体或监管当局不会再受以往仅能选用一种会计准则观念的的限制, XBRL为多种准则的同时并存提供了新的“生机”, 也可能为不愿执行核心准则的国家找到一个更充分的“理由”。但是经过七年的发展, XBRL带来的影响早已超过了七年前人们对它的认识。虽然XBRL没有直接改变会计准则的内容, 但是它的发展, 已经是人们认识到, 经济全球化已经来临, 而且我们现在的技术水平, 已经完全符合了经济全球化的基本要求。因而, XBRL对会计趋同有着根本性的影响, XBRL的产生加速了会计趋同的发展。

参考文献

[1]王治安, 罗莉.XBRL与会计趋同[J].中国管理信息化, 2006, (1) :24-27.

[2]杨周南, 可扩展商业报告语言的发展与应用研究[J].中国注册会计师, 2005, (2) .

[3]杨海峰.信息技术环境下的财务呈报研究综述[J].会计研究, 2004, (7) :84-88.

可扩展框架 第7篇

J2EE平台提供了一个很好的企业应用框架及解决方法, 但是多层企业应用框架在提高了软件的重用性和分解了问题的复杂性的同时, 也使得代码庞大, 层与层之间的控制关系复杂。而MVC (Model View Controller) 模式可以利用控制器将应用的业务逻辑即模型和应用的表示逻辑即视图进行分离, 使应用的各层之间达到一种松散耦合的效果, 所以, 人们将MVC模式应用于J2EE应用开发[1]。

2、基于J2EE和MVC开发多层Web应用

在J2EE企业应用开发中, 采用MVC模式, 首先, 它能使软件开发有章可循, 结构清晰, 缩短开发周期;其次, 它能有效地改善软件系统的性能, 大大提高软件的可维护性与可扩展性[2]。

基于MVC模式, J2EE应用被分成三个核心部分[3]:

1. 模型 (Model) :应用的业务逻辑, 通过Jav-a Bean, EJB组件实现。

2. 视图 (View) :应用的表示层, 它用来呈现Model的内容, 决定如何把数据表示出来, 当Model改变时, View要跟着改变, 以维持数据的一致性。同时, View负责把用户的操作意图传给Controller, Web上的View由JSP, Java Beans实现, 标准Client上的View由Java图形界面等组成。

3. 控制器 (Controller) :提供应用的处理过程控制, 它是结合模式和视图的纽带, 解释用户的操作意图, 并把它交给Model去执行, 并且根据请求以及执行结果来决定下一次显示哪一个视图。一般是一个Servlet。如图1所示。

3、Struts体系结构

3.1 Struts框架

Struts是经典MVC框架, 它的taglib标记库灵活性大, 大大提高了开发效率。同时利用Strutscnofig.xml实现对整个系统的导航, 使系统的脉络更加清楚, 增强了系统开发人员对系统的整体把握[4]。

Struts的核心是一个MVC风格的控制器。控制器搭起了模型层和视图层之间的桥梁, 同时整合了其他的一些技术去实现Model和View。在模型层, Struts可以很容易的与数据访问技术相结合, 例如EJB, JDBC、Object Relation Bridge等。在视图层, Struts能够与JSP, Velocity Templates, XSL等这些表示层组件相结合[5]。Struts也包括开发人员想用来开发可扩展的、先进的应用的其他组件。Struts是一个“隐藏支柱”的集合, 帮助开发人员将分散的材料 (如数据库和页面) 结合成一个整体的应用程序[6]。Struts框架如图2所示。

3.2 Struts局限性

在Struts中, 视图部分通常基于JSP和taglib技术来构建。JSP有力地推动了Java在Web开发中的应用。同时, 在JSP标签库的帮助下, JSP为Web和J2EE应用中的表现层开发提供了丰富和强大的工具。但是, 以JSP作为显示手段也存在着一些局限性[7]:

1.程序开发人员可以把业务逻辑放入JSP中。但是, 按照MVC的设计思想, JSP的唯一用途是显示数据。如果将业务逻辑也放入其中, 随着应用规模的不断增大, 程序结构将变得复杂并难以维护。

2.开发人员需要学习如何使用Struts的标签库。事实上要理解这些标签库, 特别是Bean和HTML标签库要花费比较长的时间。

3.开发过程中对JSP页面的任何修改都会导致容器重新编译JSP, 这样是非常耗费时间的。对于有些Servlet引擎, 开发过程中由此引起的延迟会带来很多麻烦。

4.对XML的支持不佳。JSP不能保证生成的结果文件是100%“格式良好” (We11-Formed) 的XML。在这个支持XML的Internet访问设备不断涌现的时代, 越来越多的设备都可接入到互联网上, Web应用将会面临多种客户端显示的挑战, 而现有的框架不具备这方面的扩展性。

4、Struts框架的改进模型XStruts

4.1 XSL技术

作为W3C (World Wide Web Consortium) 的正式标准, 可扩展样式表语言 (XSL, Extensible Stylesheet Language) 是用来描述XML文档显示方式的语言。它包括三个部分:XSL转换 (XSLT, XSL Transformation) ——用于转换XML文档的语言;XSL格式对象 (XSL-FO, XSL Formatting Object) ——用来定义XML显示的词汇表;XPath——XSLT用来定义XML部分或模式的一个语言[8]。

XSLT提供了一种把XML数据转换成纯文本、PDF、HTML/XHTML、WML、Voice XML等任意XML格式的灵活、强大的机制。基于模板规则, XSLT指定了XML文档应该如何被处理。它可以看做XSL标准最重要的部分。XSL处理器, 例如Xalan、Saxon, 通过XSL样式表执行转换。XSL样式表本身也是一种XML文档, 它定义了转换XML数据的规则。XSL处理器按照这些规则实施转换[9]。

4.2 XStruts模型

由于XSL具有分离数据内容和表现形式的特点以及XSLT具有强大的转换功能, 我们将利用这个优势, 把XSL和Struts结合在一起, 形成改进方案。该方案是利用XSL来替换Struts中生成View的JSP组件, 但原封不动地保留了Controller和Model两部分。

在这个方案中, 我们增加了一个组件XSLServlet。图3是Struts和XSL相结合的改进方案的结构, 我们称这个改进的模型为XStruts (XSL Struts) 。

从图3中可以看出来, XStruts模型处理流程的最初部分和Struts的类似。请求被发送到Struts的控制器Action Servlet, 然后又被分派给各自的业务逻辑处理单元 (Action类的子类) 。控制器创建Action Form对象, 请求的参数都保存到这个Action Form对象中。Action类的子类生成结果Bean (Result Bean) , 然后把这些Bean交给视图来显示。

对Struts处理流程改进的地方在于:用一个XSLServlet组件配合XSL样式表实现了原来在Struts中由JSP和taglib实现的视图部分。这个XSLServlet首先根据Bean和上下文环境生成XML文档, 然后根据相应的XSL样式表进行转换。由于我们可以把一个请求提交给任何一个已经在Struts配置文件中注册的URL, 所以在这个过程中不用对Struts的Controller做任何的修改。

该模型的优点及创新点是, 这个模型充分利用XSL的优势, 把它和Struts结合在一起, 使开发出的Web应用程序更接近MVC最基本的承诺——表现逻辑和业务逻辑的分离, 并支持XML、XSL等标准, 具有很强的可扩展性和易维护性, 同时提供对多种类型客户端的支持。XSL样式表中不能再加入业务逻辑, 真正把业务逻辑和表现逻辑分开, 整个Web应用避免了使用JSP和标记库, 且保证输出的内容是100%“格式良好”的XML。利用XSLT可以方便地获得各种输出格式:纯文本、HTML、WML和其他多种XML格式, 不再像JSP那样以HTML为中心。这样, 框架具有良好的扩展性, 对于多种类型客户端都提供了良好的支持。在多种Internet访问设备不断涌现的今天, XStruts模型易于扩展、维护和支持多种类型客户端的特性更具有现实意义。

5、XStruts模型应用

本文在XStruts模型的基础上, 设计开发一个典型的Web应用——网上书店系统, 进一步说明XStruts模型的可行性。

网上书店系统的开发采用文中提出的XStruts模型, 利用控制器来控制系统的流程、产生视图、调用业务组件执行业务逻辑, 用户界面的生成由XML和XSL负责, 业务逻辑交给后端的EJB和Java Bean组件。这样, 系统的表现逻辑和业务逻辑分离, 简化了软件开发、提高了系统的性能, 使开发出的应用具有良好的可维护性、可扩展性。同时, 除了能使用户通过传统的浏览器方便的访问系统, 还考虑了对手机、PDA等无线设备的支持。

我们将系统设计为四层Web体系结构。这四层分别是客户层、Web层、业务层和资源层。如图4所示。其中Web层和业务层在应用服务器上实现, 资源层放在数据库服务器上。控制器控制系统的整个流程。它读取配置文件, 将请求映射到相应的业务组件并执行业务逻辑。视图部分是展现给用户的界面表示, 为了支持多种访问设备, 将视图数据封装在XML文档中, 并为不同的访问设备提供不同的样式表。模型部分包括系统中所有的业务逻辑和数据映射, 采用Java Bean和EJB组件技术实现, 模型部分通过标准的JDBC访问数据库。

系统的设计和开发基于XStruts模型, 这样, 对于不同的客户端类型采用统一的控制流程、业务方法和后台数据库, 而在视图显示时使用不同的样式表。也就是说, 当客户端发出请求后, 无论访问设备是哪种类型, 请求都将传到Controller并交由统一的Model进行业务处理或数据获取, 因此数据的来源和对数据的处理方法是相同的, 只是在返回到客户端之前根据样式表做了相应的格式转换从而能支持不同的访问设备。

6、结束语

近年来, 随着网络技术的迅速发展和J2EE平台的广泛采用, 多层Web应用的开发已成为主流。但是, 在多层Web体系结构的设计中, 普遍存在着程序可重用程度低、维护工作繁琐、程序应变能力较弱等不足。为了解决这些问题, 开发过程中引入了能开发出松散藕合应用的MVC设计模式。基于J2EE平台和MVC模式开发应用, 不仅提高了软件的开发质量、缩短项目开发周期、降低项目开发成本, 还使得系统流程清晰, 易于扩展和维护。

Struts是当前应用最广泛的基于J2EE的MVC框架。本文在分析Struts框架中使用JSP来实现View的局限性的基础上, 选择使用XSL作为实现技术, 提出一个符合多层Web体系结构特点的改进模型XStruts, 并在XStruts模型的基础上, 设计开发了网上书店系统, 进一步说明XStruts模型的可行性。

参考文献

[1]Johnson.J2EE Development Frameworks[J].ComputerScience, 2005.

[2]Wojciechowski, J.Sakowicz, B.Dura.MVC ModelFramework Based on J2EE Platform[J].Modern Problems ofRadio Engineering, 2004.

[3]Sun Microsystems, inc.J2EE Design Patterns[EB/OL].http://java.sun.com/reference/blueprints/ndex.html, 2004.

[4]Stephan Wiesner.Struts Tutorial[J].University of AppliedSciences Luxemburg, 2002.

[5]James Goodwill.Mastering Jakarta Struts[J].Wiley Pub-lishing, 2002.

[6]Nadir Gular.Fast Track To Struts What It Does andHow[J].The ServerSide.com, 2002.

[7]C.Chu.Building an XML based unified User InterfaceSystem under J2EE Architecture[J].Multimedia SoftwareEngineering, 2000.

[8]Wei Sun, Da-xinLiu, Tongwang.A Model of XML Ac-cess Control with Dual-level Security View[J].APWeb2006 International Workshops, 2006.

可扩展框架范文

可扩展框架范文(精选7篇)可扩展框架 第1篇随着信息技术的发展,战场信息的探测和收集手段越来越多,这对信息的处理与展现提出了很大的挑战...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部