云平台上海洋服务流定制的可视化建模研究

2013-11-30 05:02杜金峰徐凌宇
计算机工程与设计 2013年1期
关键词:海洋流程节点

杜金峰,东 韩,徐凌宇,陈 亮,蔡 茂

(1.上海大学 计算机工程与科学学院,上海200072;2.国家海洋信息中心,天津300171)

0 引 言

随着云计算的发展,大量数据资源、计算资源与应用资源集中在一起协同工作。单一的web服务可能满足不了用户的需求。考虑到用户这些不断发展变化的服务要求,组合现有跨领域跨地域的数据和模型而成的服务流成为网络服务的新思路。因此将云计算平台对网络资源的整合运用到该系统中,同时又通过对服务流可视化建模,使得用户可以设计、编辑资源组成符合自身要求的流程。其中工作流、网络服务和可视化建模技术对系统的设计奠定了重要基础。在文献[1]中介绍了传统软件服务和云软件服务的区别。文献[2]中提出了DWSF网根据花费为用户选择最优的服务组合,是提供服务的一种方法。文献[3]在研究了面向服务的思想和工作流技术特点之后设计了一个面向服务的工作流系统。服务流的可视化技术可以学习文献[4]中工作流的可视化建模原理。文献[5]中深入分析了SOA理论和架构技术,提出了一种SOA的描述语言等等。这些成果和研究为海洋信息服务流开发提供了多层次的理论和技术支持。

1 基于工作流和软件服务的云软件服务流

工作流技术是一个传统的企业业务集成方法,是为了达到一定的生产目的而根据一组定义的规则将文本、信息和任务在工作过程参与者之间传送并驱动项目执行代理完成任务。其流结构固定、参与个体及资源相对稳定、集中式管理等特点决定了其不能适应动态、松耦合、分布等特性。不同于工作流,Web服务有动态、并发事务处理和低廉的分布式处理能力的特点。

传统SaaS(软件即服务)是通过网络提供软件服务的方式,缺乏可扩展性,资源的动态配置不够灵活。而云SaaS(软件即服务)构建在云平台的硬件设施基础之上,后台统一管理和分配资源,满足多租户共享资源和资源的动态循环使用[1],节省资源,提高效率。本文的研究主要是基于面向服务的软件服务流可视化建模研究。

2 云服务流体系结构

2.1 服务流结构

云服务流是由模型、数据、内部端口和模型详细信息组成(如图1所示)。模型是实现业务逻辑的实体,数据是模型的输入。服务流作为一个封装的实体,内部的逻辑和输入输出通过端口实现,依赖则体现出了模型的数据输入和模型间的前承后继关系。服务流的调度执行依赖于模型的详细信息。

图1 服务流组成结构

自定制服务流在促进资源的合理配置和信息资源的有效传递和共享,提高效率的同时,也满足了不同用户的个性需求。从描述框架中可以看出,服务流不是基本型模型的简单加和。多个模型之间存在串行或者并行的关系如图2所示。

2.2 服务流的属性描述

根据对工作流的理解,借鉴其相关理论和技术,分析云平台下海洋服务流技术的特点,可以认为服务流技术就是通过对各种海洋模型和流程属性的定义,调度多个模型按流程定义自动、连续、协调、优化的执行,有效避免单个瓶颈模型拖延完成周期。服务流系统以基本模型为节点,结合有向图方式,节点与节点之间用有方向的连接线连接起来表示流程运行的路径,完成定制。其描述如下:

图2 模型关系

有向图F表示用户的一个流程,定义为一个集合F={TM,TD,R}。D代表数据资源的集合,M代表模型资源的集合。TD代表数据节点的集合,TM代表模型节点的集合,R代表各个节点之间的关系。

数据节点ND,只能作为模型节点NM的输入。二元组ND=<name,path>,名称name和存储路径path,是TD的元素。

模型节点NM,它的输入可以是数据节点或者其他模型节点的输出,定义五元组NM=<name,id,path,status,input,output>,是TM的元素。status表示节点当前的状态,可以用友好的方式传达给用户流程的执行情况。input,output是流程定制好后,根据节点关系R做出的判断。

实现数据节点和模型节点的重用。在一个流程图中,用户可以多次调用同一个数据资源和模型资源。对于数据资源来说,只能作为模型资源的输入,是不会随着流程的执行不断改变的。但模型资源不同,流程图中不同位置的同一个模型会有不同的输入和输出。运行时无论各个节点是否是同样的资源,在流程中设置不同的标识,以实现模型资源的重用。图3表示了两种模型节点间的关系,□表示模型节点,设计流程时数字相同表示该节点对应的是同样的模型资源,提交后数字不同表示后台处理的结果。

图3 流程提交之前描述处理

如果存在两个节点之间有向边来连接,有向边代表有序偶R表示两个节点之间的前承后继(输入输出)关系。n1∈TM,n2∈TM,n1≠n2,n1→n2,则说明模型节点n2是n1的前承节点,n1的输出是n2的输入。n1∈TD,n2∈TM,n1≠n2,n1→n2,则说明数据节点n1是n2的输入数据。

流程中所有节点的关系R,由于数据节点只能作为模型节点的输入,而且后台执行时不会操作到它,所以将数据节点和模型节点两者分开讨论。首先,以模型节点为例,如果T∈TM,有n个后继模型节点T1,T2,T3,T4,…,Tn,,节点T’∈TM也有n个后继模型节点,…,,那么R={T1,T2,T3,T4,…,Tn;,…,}。后台根据该表示来进行分析执行,把T和T’的输出作为,T1,T2,T3,T4,…,Tn,,…,各个节点的输入,这需要流程运行时来操作。如果是数据节点,那么当形成代表R描述的时候,就可以分析出来并将它作为后继模型节点的输入,设置好后将其从描述中删除。最后,传到后台的就只有表示模型节点及关系,统一分析,运行。

3 云服务流模型在海洋环境信息与处理模型中的应用

3.1 海洋环境信息模型简介

海洋信息包括海表面水温信息、海流信息、海洋生物资料信息、海洋地质物理信息、海洋气象信息等多源多类信息。提供海洋信息服务就是与用户共享海洋信息资源的过程。服务范围覆盖 “数字海洋”系统24个节点;提供基础地理数据、水文、气象、化学、遥感等海洋环境信息服务;提供基于GIS的虚拟资源访问、在线模型服务、用户模型定制开发、海洋环境要素(温盐密、流场)可视化服务;具备业务化运行能力。

海洋信息模型包括海洋环境信息远程可视化、海洋环境信息联机分析处理(OLAP)、海洋环境数据挖掘服务(主要包括海洋水文数据的异常模式发现算法,关联规则发现算法,面向海洋水文数据的异常模式发现和关联规则发现的示例研究等模型)、海洋遥感图像融合、海洋境信息时空差值应用、海洋锋数值模式计算及数据同化等。

3.2 海洋信息服务流可视化

3.2.1 资源注册

计算资源、模型资源和数据资源注册时,填写资源提供单位、资源功能、资源参数需求等作为资源属性上传到云平台,云平台采用高效率的存储方式为其分配存储空间。

3.2.2 资源显示

注册成功的资源在JSP页面上显示出来,用户需知的基本资源属性也可以展示(alt)出来,把需要的拖动到流程框内即可。之后,只要任意关系的起始和结束确定好,就能自动形成关系连线。基本的资源如图4所示。

3.2.3 流程中的关系表示

VML相当于IE里的画笔,基于XML标准而且结合脚本,可以支持高质量的矢量图形显示。HTML中声明VML命名空间就可以使用VML,并且VML标记里面可以定义DHTML大部分属性和事件,有利于服务流关系的设计。

图4 资源展示

3.2.4 资源及关系的添加删除

当右键单击资源结点或者关系连线,出现右键popup menu,可以对资源和关系进行编辑(如图5所示)。对关系结点比较简单,删除代表关系的连线就完成了,可以继续添加想要的关系。对于资源结点来说,删除一个结点,对应的关系也要删掉,包括以该结点作为开始和结束的所有结点。

图5 节点和关系编辑器

3.2.5 输入输出的限定

根据资源的注册信息判断哪些可以作为哪些的输入和输出,用户误操作时要有明显的错误提醒。比如说,数据结点无论在何种情况下都不能成为其他结点的输出结点。

3.2.6 流程运行监控

组成流程的模型节点的执行情况决定了整个流程的状态。模型的状态定义有4种,即等待、执行、出错和完成,能够实时的向用户反映出来。

3.2.7 流程运行结果

结果最终以文件(文本文件、图像文件等类型)的形式存储在云平台上,用户可以跳转到结果页面查看结果或者通过查询文件存储路径获得结果。

3.3 海表面水温融合服务流处理需求

海洋信息的精确测量对预警海洋灾害、保护海洋生态等都有积极意义。海表面水温的测量是其中的一个重要组成部分,困难在于如何处理多源多格式海表水温值而获得相对精确的海表水温值。

如果对海表面水温信息进行融合并获得精确的融合结果,首先需要获得海表面水温监测站点提供的多种格式海表温度元数据。接着,进行融合的种类和方法多种多样,融合结果的不同精度要求可能需要选择合适的误差分析工具对融合数据进行分析,不同的融合模型可能是由不同的算法设计机构开发的,比如多遥感融合图像处理探测SST,多尺度遥感融合,多卫星遥感数据融合等等。最后,融合结果的表现方式也多种多样,比如表格、平面图、立体图等。

在这个例子中,由4种开发模型参与进来提供海洋服务资源,不同的实现可能有不同的来源。正是由于存储在云计算平台下并为用户提供了一个统一的访问接口,从而屏蔽了来源的不同。在海洋信息服务流设计时,模型之间的控制流是静态的,数据流是随着模型的运行实时动态产生的。

3.4 SST服务流实现

3.4.1 设计SST数据融合服务流

SST数据融合服务流定制之后的可视化结构如图6所示。图中SST作为Cluster模型节点的输入数据。SST的融合的几个步骤在图中清楚的表示出来。先对海洋表面温度进行清洗,再对其进行聚类并使用P & M关联规则挖掘卫星间的关联度。通过聚类获得SST相关聚类信息使用Kring插值算法进行插值。而通过P & M获得数据则使用WJDP算法计算SST的冲突值。最后是初步处理数据的融合。

图6 SST数据融合服务流

3.4.2 流程描述的基本步骤

用户形成服务流有向图后,图形化的节点结构实现了对具体信息的屏蔽,但在运行实例中的扩充和定义,保证了逻辑和运行过程的统一。传给后台处理的流程描述形成分以下几个步骤,以图6的流程为例对这些步骤进行说明。

首先,形成最初的描述。为了方便程序识别数据和模型,对所有的数据、模型节点名称做简单处理,分别添加相应的后缀名称".data"和".exe"。而对于相同的数据和模型,添加数字标识位。上例最初的描述可以表示为:"SST.data,clean.exe;clean.exe,P & M.exe,cluster.exe;cluster.exe,Kring.exe;P & M.exe,WJPD.exe,Kring.exe;Kring.exe,Fusion.exe;WJPD.exe,Fusion.exe;"。例子中不存在相同的模型节点,处理起来相对简单。若存在相同模型,数字标识也可以将其标识为不同的模型节点。

其次,分析数据节点和模型节点。如果后缀是".data",则该节点是数据,设置跟随其后的模型节点的数据输入是该数据节点。如果后缀是".exe"的模型节点,需要存储该节点的相关信息,并返回唯一标识id。在这一步中,会出现用户误操作导致的错误。比较常见的错误有数据节点是其他节点的后继节点(即其他节点的输出作为数据节点的输入),流程中至少一个模型节点(全部是数据节点的流程是没有意义的)。当出现这些问题时,要停止向后台传递,而向前台用户给出出错信息。

最终,模型节点的唯一标识id用类似于第一步中的名称描述的表示方法表示出来,将id描述的流程信息传往后台分析并处理运行服务流流程。

3.4.3 实验结果反馈

图7是在纬度39.875附近的不同经度,来自aavhrr,clim和modisasstd的数据融合之后获得融合值及可靠度。实验中流程运行完成后,生成数据文件,存储在云中并将路径放在数据库。用户在重定位的结果页面上返回该文件里的内容。

图7 SST服务流融合结果

4 结束语

本文在工作流以及软件服务的理论基础上,结合云计算平台下SaaS的服务形式,为满足用户对多服务组合的个性需求提出了云平台下的服务流定制模型。该模型通过对服务流的定制过程可视化,提高了用户操作的便利性和配置的灵活性。该系统充分利用了云计算平台的优势,也扩展了传统工作流系统和普通web服务的功能。比如系统运行在云端服务器上,用户客户端无需安装软件,数据模型资源和流程数据均保存在云端服务器上等。

文中描述了服务流的组成元素、基本结构和局部运行模式,形成流程的形式化结构说明。流程描述则将其形式化结构和操作方法结合起来,使服务流的实现更容易,这为服务流引擎开发人员提供了完整、清晰无歧异的系统功能。最后实现了海表面温度(SST)数据融合服务流的执行,并给出了结果。但是,该系统由于可视化技术受限于浏览器,仅能在IE下操作,以后会在浏览器兼容性上努力。另一方面,由于资源提供者来自多个不同组织机构,系统在数据和模型资源的接口规范上还缺乏完整的统一标准,需要进一步的扩展说明。

[1]WANG Hongliang.Technological Inspur,Cloud Strategy.Information on[EB/OL].http://www.inspur.com/server/zazhi/10-4/chp11.htm,2011(in Chinese).[王洪亮.科技浪潮,云海战略[EB/OL].http://www.inspur.com/server/zazhi/10-4/,2011.]

[2]CAO Yongzhong.Research on evolution of dynamic serviceflow and its key technologies[D].Nanjing:Nanjing University of Aeronautics and Astronautics,2008(in Chinese).[曹永忠.动态服务流进化及其关键技术[D].南京:南京航空航天大学,2008.]

[3]CHEN Min.Research and application of service-oriented workflow technology[D].Wuhan:Wuhan University of Technology,2010(in Chinese).[陈敏.面向服务工作流技术的研究及应用[D].武汉:武汉理工大学,2010.]

[4]WANG Jun.Research and implementation of workflow graphical modeling tool[D].Shenyang:Shenyang University of Teehnology,2009(in Chinese).[王军.工作流图形化建模工具的研究与实现[D].沈阳:沈阳工业大学,2009.]

[5]QIN Hui.Service oriented dynamic architecture description language SO-DADL and its application research[D].Xi’an:Xibei University,2011(in Chinese).[秦辉.面向服务的动态体系结构描述语言SO-DADL及其应用研究[D].西安:西北大学,2011.]

[6]DENG Zili.The network topology design and hadoop platform research based on cloud computing[D].Hefei:University of Science and Technology of China,2009(in Chinese).[邓自立.云计算中的网络拓扑设计和hadoop平台研究[D].合肥:中国科学技术大学,2009.]

[7]ZOU Jin’an,TAN Qingping.Formal specification and implementation of workflow transaction[J].Journal of Zhejiang University(Science Edition),2009,36(5):519-524(in Chinese).[邹金安,谭庆平.工作流事务的形式描述和实现[J].浙江大学学报:自然科学版,2009,36(5):519-524.]

[8]Ralph Mietzner,Frank Leymann.Towards provisioning the cloud:On the usage of multi-granularity flows and services to realize a unified provisioning infrastructure for SaaS applications[C]//IEEE Congress on Services,2008.

[9]LIU Huigai.Research and implementation of cloud computingoriented resource management[D].Beijing:Beijing University of Posts and Telecommunications,2011(in Chinese).[刘会改.面向云计算架构的资源管理的研究与实现[D].北京:北京邮电大学,2011.]

[10]TAN Yongming,SU Bin.Research of service-oriented architecture[J].Computer Technology and Development,2007,17(3):132-136(in Chinese).[谭永明,苏斌.面向服务架构体系的研究[J].计算机技术与发展,2007,17(3):132-136.]

猜你喜欢
海洋流程节点
CM节点控制在船舶上的应用
吃水果有套“清洗流程”
基于AutoCAD的门窗节点图快速构建
概念格的一种并行构造算法
违反流程 致命误判
爱的海洋
四川省高考志愿填报流程简图
第一章 向海洋出发
析OGSA-DAI工作流程
抓住人才培养的关键节点