一种基于SOA的可信软件体系架构模型

2016-07-19 05:20岳兆娟史劼李斌孙宝三马天琦
中国电子科学研究院学报 2016年3期
关键词:分布式架构耦合

岳兆娟,史劼,李斌,孙宝三,马天琦

(中国电子科学研究院, 北京 100041)



工程与应用

一种基于SOA的可信软件体系架构模型

岳兆娟,史劼,李斌,孙宝三,马天琦

(中国电子科学研究院, 北京100041)

摘要:软件体系架构不仅为大型软件的开发提供框架,更是指导多人协同开发的标准,是整个软件工程的核心部分。合理与规范的软件体系架构顶层设计,可以促进高质量软件的实现,也可以提高软件开发的进度。有鉴于此,本文提出了一种基于SOA的可信软件体系架构模型,即架构具有松耦合性,便于多个协同单位开发独立的功能实体,又具有分布式的安全检测机制,可以实现功能模块的高效安全集成。

关键词:SOA;软件体系架构;可信;分布式;协同;松耦合中图分类号:TP311.52

文献标识码:A

文章编号:1673-5692(2016)03-315-04

0引言

随着新型计算平台和应用模式的出现,尤其是在科研领域,传统的集中式软件开发方式,由于其集中、低效和紧耦合,已经越来越难以适应大型软件开发的需要;而采用分布式、松耦合的网络化群体协同开发越来越受到重视,计算机支持的分布式网络环境协同工作,在现有的信息体系中得到越来越多的应用。

面向服务的软件体系架构(Service-Oriented Architecture,SOA)正是在这样的环境下,逐渐发展起来的软件工程网络化下的新一代体系架构。

在20世纪的70年代末,联邦德国斯图加特大大学教授、著名物理学家赫尔曼-哈肯提出了协同论。此项理论,后来迅速发展成为与系统论、信息论并列的世纪三项重要理论之一。在1984年的时候,麻省理工学院Irene Greif和DEC的Paul Cashman也组织了相关研讨会并正式提出了计算机支持的协同工作概念[1]。

进入21世纪以来,计算机支持的协同工作在更多的行业和领域有着重要应用,包括CAD[2]、医疗[3]、远程教育[4]、电子商务[5]、远程办公[6]等。

2000年WebService出现后,SOA被誉为下一代Web服务的基础框架,已经成为计算机信息领域的一个新的发展方向。在2002年12月,以Gartnert提出的“面向服务的架构(SOA)”是“现代应用开发领域最重要的课题[7]”为标志,计算机业界掀起了一场关于SOA的信息革命。

国内方面,随着国际化以及信息产业的迅速发展,相关领域的学者和研究机构日益增多,近些年来也为领域做出了相应贡献。许多大专院校,科研院所,尤其是在应用最前沿的企业里,SOA已经逐步成为基本的软件架构原则。

在这方面,中国培养了一大批使用SOA技术和架构的系统集成商或独立软件提供商,他们将SOA的理念植入到其解决方案中或融合进其产品之中,如华为、东软、用友、金蝶、中软等。

尽管SOA技术架构的使用已经日益广泛,但是目前的业界,仍然尚未确立起一个完善可靠的理论体系,更没有配套专门的协同开发工具和树立成熟的开发模式,甚至缺乏统一的标准和接口,缺乏完善的理论体系与开发环境支持,并且协同软件的功能定位模糊。

在这种环境下,面向SOA的软件体系架构已经逐步发展为分布式环境下集成整合的首选,推动体系架构深度整合与应用的源动力。

但面向SOA的分布式环境下软件体系架构意味着用户将任务和数据转移到了自己掌控范围之外,且用户又需要对计算环境和数据存储具有一定的控制能力与信任度。因此,在分布式环境下,还需要建立一套完善的安全可信机制,用户可以通过这套机制,由自身对远程的环境进行安全确认,从而可以提高用户对环境的信任度。

为了综合解决以上这些问题,本文从软件体系顶层设计的角度出发,针对目前软件工程业界分布式环境下,开发人员众多、信息沟通频繁、位置分布广泛的诸多特点,遵循面向服务的分析与设计思想进行总体规划与设计,提出了一种基于SOA的可信软件架构模型。该模型通过独立功能实体集成,实现了软件的松耦合、粗粒度,并为分布式环境下的用户提供了可信验证。

1体系架构模型描述

本文基于高度内聚、低度耦合的思想,提出一种基于SOA的可信软件体系架构模型。采用分层架构,自底向上依次是基础资源层、平台框架层、功能服务层、应用逻辑层、应用层,安全控制层贯穿每个层。

(1)基础资源层

为应用和服务运行提供基础保障,包括支持分布式计算、存储的计算资源和存储资源,采用光纤、RapidIO等连接的传输、交换手段,板级支持包和操作系统。

(2)平台框架层

为上层应用提供基本运行环境,主要完成系统的控制及管理功能,包括系统资源管理、系统健康管理、组件管理、注册服务、发现服务、任务调度等,为服务组件正常运行提供支撑。通过组件管理,平台框架可以调用不用的服务组件,服务组件通过平台框架层提供的统一接口,可以访问框架提供的资源。通过平台框架层可以注册和发现不同的服务,方便系统的互联、扩展和升级。

通信中间件为平台框架层提供通信服务。通信中间件向下屏蔽底层基础资源和操作系统的异构性便于系统底层硬件的更换、加入,实现系统软件与硬件之间的松耦合设计。

(3)功能服务层

为面向服务的应用系统提供服务支持。基于应用并由一系列与任务相关的通用的和专用的服务组成,如权限服务、接入服务、信息服务等。基于统一的编程原则,实现服务的封装,具有高内聚、松耦合、可复用、可扩展等特点。

(4)应用逻辑层

基于不同应用的需求,采用建模工具,形成与需求匹配的业务流程。根据业务流程,提供系统资源的动态配置。应用关系重构根据不同的业务和需求,通过系统动态搜索,确定所需的服务,并对不同的服务进行重构。

(5)应用层

应用层的功能领域包括宽带接入、测控传输、环境监测等,通过信息基础设施及服务,对用户提供高度集成的、可配置、网络化和服务化的各种功能。

(6)安全控制层

在传统的多层软件体系架构基础上,增加了安全控制层,从安全日志、安全配置、安全测试三个方面增强用户对分布式环境的可信控制。

对应的系统结构如图1所示。

图1 基于SOA可信软件体系架构模型

这种多层软件体系架构,从顶层设计上避免了服务深度耦合的问题。它的核心思路是在功能服务层和基础资源层之间,增加平台框架层,即一个由多个中间件组成的中间层。

平台框架层的设计,极大的增加了应用设计的灵活性,使得开发人员可以根据需求,选择不同的通信机制,来连接基础资源层和数据库。通过数据封装后,不同的开发人员甚至可以选用面向对象的方式来各自操纵数据库。

架构设计时,将应用层和应用逻辑层分开,这种方式可以为用户提供简洁界面,也可让业务开发人员将更多的精力集中在应用系统本身核心业务逻辑的设计与开发上。

基于SOA可信软件体系架构有以下三个特点:

(1)良好的可重组性和灵活的调用机制

按照标准的接口和协议开发不同的服务,屏蔽不同软件平台的差异。通过建立不同的应用逻辑,实现服务的快速组合,满足不同应用的需求。各应用之间,根据需求,可以交互、灵活的调用,形成一个动态的系统。

(2)高度内聚和低度耦合的特性

经过封装的服务独立于底层的硬件平台和应用,具有可复用和高内聚特性。服务可以跨平台的调用,不影响应用的正常运行。

(3)系统架构具有开放性

系统集成框架涵盖了宽带接入、测控传输、环境监测等典型系统,不仅适用于采用面向服务体制的信息系统,也兼容原有的系统。

这种多层软件体系架构,有效提高了开发人员的工作效率,明确了分工和责任边界,但是也增加了体系架构的复杂性,增加了开发的难度,尤其对于十人以下的中小型项目来说,反而降低了开发的效率。

2安全性设计

随着分布式、网络化协同工作的发展,资源呈现集中化趋势,由此带来的安全性问题也日益突出。系统一旦遭受攻击,将会带来范围更广,更加严重的危害。如何增加用户对分布式环境的可信度,提高系统对用户隐私和数据安全的保护是系统设计者需要关注的问题。目前采用的增加安全性的机制有访问控制、认证、数据传输加密、虚拟化软件隔离等措施。

本文主要围绕用户处理数据的整个生命周期提出安全性设计,从分布式环境构造、数据安全存储和数据安全处理三个方面增加系统的安全性,如图2所示。

图2 可信模型安全性验证机制

首先,在分布式计算环境中通过数据加密机制、数字签名等方法构造出一个可信计算环境,该计算环境的安全性可以被用户验证。然后,系统发布出用户数据安全存储、传输与验证方案,用户通过该方案能够验证所存储数据的完整性、安全性和可用性;最后,提出基于数据处理的可信度量方法,用户能够验证系统数据处理过程的安全性。

通过对分布式环境、存储过程和数据处理过程的安全性验证,增强用户对分布式环境中传输或者获取的数据安全性的信任程度。

这个安全性模型设计的核心思想在于可验证性,用户信任的不是安全方法,而是用户自己对于方法的可验证。

3关键技术分析

基于SOA的可信软件体系架构提出了一种统一不同信息系统的软件形态,涉及到业务流程规划技术、系统动态重构技术、现有系统升级技术、安全技术等多项关键技术,如图3所示。

图3 关键技术体系

(1)业务流程规划技术

业务规划技术可以根据不同应用的需求,对服务进行规划、组合、编排,建立实现应用任务的服务与关系流程。按照服务的粒度、属性等建立与应用相关的服务模型。

(2)系统动态重构技术

根据面向服务应用的动态集成与重构需求,研究系统动态重构技术,提前部署重构预案,快速实现系统重构。实时获取系统需求状态的变化,支持系统动态集成。

(3)现有系统升级技术

目前已存在的很多系统本身比较可靠、稳定,但是存在互操作性差、存在信息孤岛等问题。研究系统升级技术,可以对现有系统服务化升级、改造,最大程度发挥现有系统的作用,而不是摒弃老的系统,重新建设面向服务的新系统,体现绿色IT的理念。

(4)安全性技术

研究安全性技术,有助于增强用户对分布式环境的可信度,促进网络化协同工作的发展。

(5)中间件技术

中间件技术屏蔽底层硬件和平台的差异性,使封装后的服务可以作为副本被不同的应用调用,中间件技术是实现面向服务应用的关键环节。

4结语

本文提出了一种基于SOA的可信软件体系架构模型,并遵循面向服务的分析与设计思想进行总体规划与设计。模型兼顾了软件松耦合与架构高复合的特性,并为用户提供了分布式环境中的安全性验证。

在下一步的研究中,我们将针对软件工程中不同业务设计的关注角度,基于XML通用标记语言进行形式化检验的可视化建模,并给出建模过程中的相关定义及严格化的形式语义。

参考文献:

[1]Liam J. Bannon, John A. Hughes. The Context of CSCW [A]. In K. Schmidt(Eds.) Report of COST14 “CoTech” Working Group 4(1991-1992) [C], 1993.

[2]郑时青. 基于CSCW的远程教育系统研究与设计[J]. 成都信息工程学院学报, 2004,19(2):167-171.

[3]陈桦,任喜伟. 基于CSCW的城乡远程协同会诊系统的设计[J]. 控制管理,2006,22(8):135-137.

[4]王彦超,李明江,汪永宁. 基于CSCW教师协同办公管理系统的研究与设计[J]. 天中学刊,2006,21(2):54-54.

[5]韦艳艳. 基于CSCW技术的电子商务开发[J]. 现代计算机,2000,(103):45-48.

[6]Fazhi He, Soonhung Han. A method and tool for human-human interaction and instant collaboration in CSCW-based CAD [J]. Computer in Industry (57), 2006.

[7]Gartner. Service-oriented Architecture Scenario [Z]. 2003-4-16.

A Trusted Software Architecture Model Based on SOA

YUE Zhao-juan, SHI Jie, LI Bin, SUN Bao-san, MA Tian-qi

(China Academy of Electronics and Information Technology, Beijing 100041, China)

Abstract:Software architecture not only provides the framework for large software development, but also guides people collaborative development. It is a core part of the software engineering. Specification and reasonable system software architecture top-level design can promote the realization of high-quality software, and also can improve the progress of software development. In view of this, we propose a credible model of software architecture based on SOA , which is loosely coupled, making multiple cooperating independent units to develop functional entities be easy, and it also has distributed security detection mechanism to make function module and security integration be efficient.

Key words:SOA(Service-Oriented Architecture); software architecture; trusted; distributed; collaborative; loose coupling

doi:10.3969/j.issn.1673-5692.2016.03.018

收稿日期:2016-04-02

修订日期:2016-05-30

作者简介

岳兆娟(1984—),女,河南驻马店人,博士,主要研究方向为综合电子载荷,软件系统架构;

E-mail:yuezhaojuan@gmail.com

李斌(1985—),男,河北昌黎人,主要研究方向综合电子载荷;

史劼(1984—),男,江西吉安人,博士,主要研究方向为天基信息系统体系架构,软件系统架构;

孙宝三(1982—),男,江西吉安人,博士,主要研究方向为综合电子载荷,计算数学;

马天琦(1989—),男,北京人,主要研究方向为综合电子载荷。

猜你喜欢
分布式架构耦合
基于FPGA的RNN硬件加速架构
非Lipschitz条件下超前带跳倒向耦合随机微分方程的Wong-Zakai逼近
功能架构在电子电气架构开发中的应用和实践
基于云服务的图书馆IT架构
基于磁耦合的高效水下非接触式通信方法研究
分布式光伏热钱汹涌
分布式光伏:爆发还是徘徊
WebGIS架构下的地理信息系统构建研究
多星座GNSS/INS 紧耦合方法
基于DDS的分布式三维协同仿真研究