面向云制造的软件资源服务化研究*

2016-04-14 01:35周际锋姚锡凡
组合机床与自动化加工技术 2016年2期
关键词:服务化虚拟化

周际锋,姚锡凡

(华南理工大学 机械与汽车工程学院,广州 510640)



面向云制造的软件资源服务化研究*

周际锋,姚锡凡

(华南理工大学 机械与汽车工程学院,广州510640)

摘要:随着云计算技术的快速发展,制造领域出现了一种基于网络的服务化制造新模式——云制造。云制造将各类制造资源和制造能力虚拟化、服务化,构成制造资源和制造能力的服务云池,为用户提供按需即取的制造全生命周期服务。文章以制造软件资源为研究对象,在面向服务的构架下,建立软件资源的描述模型,实现了软件资源的虚拟化,在XFire框架下,对虚拟化资源进行了服务化部署,并将结果注册到注册表中,供服务使用者进行调用。

关键词:云制造;虚拟化;服务化

0引言

随着市场竞争日益加剧和经济全球化,信息技术飞速发展,出现了一种面向服务的网络化制造新模式——云制造[1]。云制造可视为一种服务于制造业的特殊云计算技术,旨在为制造业建立一个面向服务的制造资源集成共享平台,使用户可以按需、随时、随地的使用制造资源。但它又不同于现行的商用云计算技术,它融合了现有信息化制造技术、云计算、物联网、面向服务和高性能计算等信息技术,将各类制造资源和制造能力虚拟化、服务化构成制造资源和制造能力池,在网络环境下通过对资源的高效整合实现资源的共享,为制造行业提供优质价廉的服务[2-4]。

云制造共享的资源类型包括硬制造资源(如机床、加工中心、计算设备、仿真设备、试验设备等各种制造硬设备)、软制造资源(如制造过程中的各种模型、数据、软件、信息和知识等)、制造能力(如制造过程中有关论证、设计、生产、试验、管理和集成等能力)[3]。制造软件资源是制造资源的一个重要组成部分,现今很多成熟的软件从根本上改变了传统的设计、生产、组织模式,对推动制造业的技术改造,带动整个产业结构改变,发展新兴技术,促进经济增长都具有十分重要的意义。但制造软件的发展远远落后于计算机软、硬件的发展速度,给实际应用带来了许多困难。一方面,小企业由于资金紧张,为了降低投入和需求,购买的软件产品性能低下,无法达到大公司的要求,制约了企业的发展;另一方面,大企业根本不考虑企业的实际需求,升级的软件往往发挥不了最大的使用价值,造成了软、硬件资源的巨大浪费[5]。个体用户也往往难以承受有些软件的高昂价格。同一软件往往又有多个版本,使用过程中由于版本的差异无法达到数据的共享,给设计人员的交互带来麻烦。云制造的核心是盘活制造资源,优化配置,提高资源的利用率,降低社会资源的整体使用成本[6]。

为了避免软件资源的浪费,解决软件本身异构性和复杂性带来的缺点,必须对软件资源进行服务化封装,形成软件资源池,供用户使用。本文研究了制造软件资源的虚拟化描述方式,基于描述模型编制了Java模板,并搭建了服务化平台,对制造环境下的软件资源进行了服务化发布。

1软件资源的虚拟化方法概述

在构建制造软件服务资源池的过程中所涉及到的关键技术就是资源虚拟化技术。云制造资源虚拟化实际上就是将物理世界与虚拟世界建立起一一映射的过程,其具体的表现就是对资源进行标准化描述并把资源封装起来,之后将服务注册到注册中心,这些资源就可以被查看和调用了[7-8]。现在比较主流的资源虚拟化描述方法有如表1所示的5种。

表1 软件资源虚拟化方法比较

除以上方法外,近年来由于本体语言的兴起,基于本体语言的资源虚拟化方法也开始流行起来,其优越的智能查找匹配性能也使其在未来必将大放异彩,可能成为下一个阶段资源虚拟化描述的一种重要方法。

Web服务技术能使运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交互数据或集成。依据Web 服务规范实施的应用之间,无论它们使用的语言、平台或内部协议是什么,都可以相互交换数据。Web服务也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。依据上述特点,本文选择Web服务方式进行软件资源的虚拟化和服务化。

2开发平台和工具的选择配置

搭建云制造服务平台的过程中,既要满足文中所要求的特性和功能,又要简单实用,本文选择了免费、开源性好、可以跨平台应用的语言Java,将Java EE平台作为Web服务开发平台。Java语言经过30年的发展,已经成为了具有通用、高效、跨平台等特点而被广泛使用的语言,其集成开发平台有着很多选择,并且相关插件也相当丰富。在开发平台和插件选择中可以遵循三个原则:轻便易于嵌入集成开发环境、开源源代码易获取、插件尽量基于Java语言开发[13]。Java EE被广泛的使用,它包含了一系列的接口规范和针对企业版开发的一系列特有组件,例如Web服务、Enterprise JavaBeans、Connectors、Servlet、JavaServer Pages等[14],是开发Web服务应用非常好的工具平台。开发人员可以利用这个平台开发可移植、可扩展和兼容的企业级应用程序,由于服务器架构的完整性已经提供了非常好的基础设施和集成环境,使得开发人员可以更加专注于逻辑[15]。

在Java EE的基础上,本文选择MyEclipse+XFire+tomcat的方式进行Web服务的发布。这种发布服务的方式具有开发效率高、简单易用的特点。MyEclipse是基于Eclipse开发的功能强大的企业级集成开发环境,主要包括了完备的编码、调试、测试和发布功能,同时具有强大的Web服务开发功能。XFire是一种高效的Java Web服务引擎,使得在Java EE应用中发布Web服务变得轻而易举,和其他Web服务引擎相比,XFire的配置简单,而且非常容易和Spring集成,构建了POJO和SOA之间的桥梁。Tomcat服务器是一个免费的开放源代码的Web应用服务器,运行时占用的系统资源小,扩展好,性能稳定。将上述插件集成在一起,便完成了本文要求的开发平台的搭建。

3软件资源的描述模型

为了完成软件资源的虚拟化描述,需要对软件的特点进行分析,抽取资源的共性,构建封装模板。制造软件的资源属性多种多样,可以依据使用的目的和实际应用信息对其进行划分。如图1所示[7],可将资源属性分为以下五种:基本属性,用于描述软件资源最基本的信息,如软件名称、版本号、提供者等;功能属性,用来描述软件资源的功能属性集,如对象、类型、输入等;调用属性,用于描述与软件使用相关的信息,如调用地址、可用时间、价格标准等;环境属性,用于描述软件资源的环境配置;状态属性,用于描述软件资源的当前工作状态和任务。

图1 制造软件资源描述模板

基于以上各种属性,分别构建制造软件资源的封装模板,然后应用不同模板文件对软件资源进行虚拟化描述。上述模板文件均用Java语言编写,以基本属性为例,模板如下:

public class BasicAttributes {

private String name;

private String version;

private String mainfunction;

private String developer;

private String provider;

private String location;

private String phonenumber;

public BasicAttributes(String name, String version, String mainfunction,String developer, String provider, String location, String phonenumber){

setName(name);

setVersion(version);

setMainfunction(mainfunction);

setDeveloper(developer);

setProvider(provider);

setLocation(location);

setPhonenumber(phonenumber);

}

……

}

4制造软件资源的服务化实例

4.1资源的虚拟化描述

以某公司拥有的MATLAB R2009为例进行虚拟化描述。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级计算语言和交互式环境,常用于控制系统的设计与仿真分析。该公司的软件使用价格是10元/小时,调用地址是192.168.1.101,可使用的时间范围是2013~2018年,当前状态为空闲。该软件的虚拟化描述信息如下:

public class VirtualMatlab implements VirtualSoftware{

String name="MATLAB";

String version="MATLAB R2009B";

String mainfunction="算法开发、数据可视化、数据分析以及数值计算";

String developer="MathWorks";

String provider="广州XX有限公司";

String location="广州";

String phonenumber="020-XXXXXXXX";

BasicAttributes BA= new

BasicAttributes(name,version,mainfunction,

developer,provider,location,phonenumber);

String type="矩阵分析与仿真软件";

String description="数值分析、控制系统设计与分析、图像处理、信号处理与通讯";

String input="matlab语言";

String output="Matlab M-file or Simulink Model";

FunctionAttributes FA=new FunctionAttributes(type,description,input,output);

String validtime="2013-2018年";

double cost=10;

String usdegree="good";

String callip="192.168.1.101";

String username="admin";

String password="admin";

CallAttributes CA= new CallAttributes(validtime,cost,usdegree,callip,username,password);

String currentstate="空闲中";

List completedtask=null;

List queuetask=null;

StateAttributes SA= new StateAttributes(currentstate, completedtask,queuetask);

......

}

上述VirtualMatlab为虚拟软件的名称,BA、FA、CA、SA分别代表软件的基本属性、功能属性、调用属性和状态属性。至此,已经完成了该公司MATLAB软件的虚拟化描述,不同软件的描述会略有差异,需要根据实际情况作出相应的修改。

4.2软件资源的服务化部署

依据上述描述文件,便可开始进行Web服务的发布,Web服务的体系结构如图2所示[16]。

图2 Web服务体系结构

Web服务的体系结构是基于Web服务提供者、Web服务请求者、Web服务中介者三个角色和发布、发现、绑定三个动作构建的。Web服务的提供者就是Web服务的拥有者,它耐心等待为其他服务和用户提供自己已有的功能;Web服务请求者就是Web服务功能的使用者,它利用SOAP消息向Web服务提供者发送请求以获得服务;Web服务中介者的作用是把一个Web服务请求者与合适的Web服务提供者联系在一起,它充当管理者的角色。本例中Web服务的发布过程就是依据上述体系结构建立的。

在MyEclipse中新建一个名为VirtualSoftware的Web Service Project,并选择XFire为Web服务的框架结构,将XFire的核心类库进行配置,并将之前的虚拟化文件导入进工程的源文件夹,完成服务发布前的准备工作。然后需要编写Web服务的配置文件web.xml,如图3所示。该配置文件中添加了servlet映射,并说明了所有的“/service/*”请求全部交给xfire.transport.http.XFireConfigurableServlet来处理。

图3 web请求配置文件

为了完成服务的发布还需要编写服务的部署文件service.xml,将上述需要虚拟化的文件添加到检索路径中。编写完成后将VirtualSoftware工程文件在Tomcat服务器上运行,启动Web Browser,在URL中输入http://localhost:8080/VirtualSoftware/services/softwareservice?WSDL,将出现如图4所示的内容,代表服务发布成功。

图4 Web服务描述文件

WSO2 Registry是一个专门的注册表工具,它被设计为服务和服务描述的目录,与云制造服务管理非常贴切,并且支持版本管理,还内建了对依赖和生命周期管理的支持。服务提供者可以利用上述WSDL文件将软件服务注册到注册表中供使用者查询使用,注册后的结果如图5所示。

图5服务注册结果

5结束语

讨论了制造软件资源虚拟化的意义,对软件虚拟化方法进行了概述,通过抽取软件资源的共同属性构建了虚拟化描述模板,以MATLAB软件为例,通过XFire框架完成了虚拟化软件资源的服务化发布,并将结果注册到注册表中。下一步将利用虚拟化的软件资源在云平台上进行优化任务的求解,进一步研究服务的调用过程。

[参考文献]

[1] 李伯虎, 张霖, 王时龙, 等. 云制造——面向服务的网络化制造新模式 [J]. 计算机集成制造系统, 2010, 16(1): 1-7.

[2] 张霖, 罗永亮, 陶飞, 等. 制造云构建关键技术研究 [J]. 计算机集成制造系统, 2010, 16(11): 2510-2520.

[3] 李伯虎, 张霖, 任磊, 等. 再论云制造 [J]. 计算机集成制造系统, 2011, 17(3): 449-457.

[4] 李伯虎, 张霖, 柴旭东. 云制造概论 [J]. 中兴通讯技术, 2010, 16(4): 5-8.

[5] 韩永彬, 王云莉, 刘娜, 等. 基于Web的分布式计算环境中CAE软件的应用共享 [J]. 计算机工程与应用, 2002, 38(13): 127-129.

[6] 王云霞, 邱胜海, 王志亮. 面向服务的制造新模式——云制造研究综述 [J]. 现代制造工程, 2013(3): 124-128.

[7] 姚锡凡, 金鸿, 徐川, 等. 云制造资源的虚拟化与服务化 [J]. 华南理工大学学报(自然科学版), 2013,41(3):1-7.

[8] 李伟平, 林慧苹, 莫同, 等. 云制造中的关键技术分析 [J]. 制造业自动化, 2011, 33(1): 7-10.

[9] 陈彬. 分布环境下虚拟机按需部署关键技术研究 [D]. 长沙:国防科学技术大学, 2010.

[10] 付伟. 云制造若干关键技术研究及其原型系统初步开发 [D].杭州:浙江大学, 2012.

[11] Ghemawat S, Gobioff H, Leung S T. The Google File system[C]. 19th ACM Symposium on Operating Systems Principles, Lake George, NY: ACM, 2003.

[12] 石磊, 邹德清, 金海, 等. Xen虚拟化技术[M]. 武汉: 华中科技大学出版社, 2009

[13] 姚锡凡, 练肇通, 李永湘, 等. 面向云制造服务架构及集成开发环境 [J]. 计算机集成制造系统, 2012, 18(10): 2312-2322.

[14] 王勇. 青海移动公司移动办公系统的设计与测试 [D]. 北京:北京邮电大学, 2012.

[15] DeveloperWorks IBM. J2EE全面简介[EB/OL]. http://www.ibm.com/developerwor ks/cn/java/j2ee/, 2015-4-19.

[16] 巢炼. 基于图理论的Web服务发现方法研究 [D]. 湘潭:湘潭大学, 2007.

(编辑赵蓉)

Software Servitization for Cloud Manufacturing

ZHOU Ji-feng, YAO Xi-fan

(School of Mechanical and Automobile Engineering,South China University of Technology,Guangzhou 510640,China)

Abstract:With the rapid development of cloud computing technology, a new model of service-oriented manufacturing, called cloud manufacturing, is emerging. Various types of manufacturing resources and capabilities are virtualized and servitized in cloud manufacturing to constitute a service cloud pool, which provides users life cycle manufacturing services on demand. This study takes manufacturing software as the research object, establishes the description model and implements the virtualization of software resources with the support of service-oriented architecture. Under the framework of XFire, virtual resources are deployed and registered to the registry, where users can get services.

Key words:cloud manufacturing; virtualization; servitization

中图分类号:TH166;TG506

文献标识码:A

作者简介:周际锋(1989—),男,湖北仙桃人,华南理工大学硕士研究生,研究方向为数字制造及其计算机控制,(E-mail)zhoujifeng890323@163.com;通讯作者:姚锡凡(1964—),男,广东廉江人,华南理工大学教授,博士,博士生导师,研究方向为数字制造、制造系统集成与控制,(E-mail)mexfyao@scut.edu.cn。

*基金项目:国家自然科学基金项目(51175187);东莞市科技计划项目(2012108102010)

收稿日期:2015-05-04

文章编号:1001-2265(2016)02-0157-04

DOI:10.13462/j.cnki.mmtamt.2016.02.044

猜你喜欢
服务化虚拟化
制造企业服务化程度、服务化模式和服务化收益研究
基于行业异质性的制造业服务化对生产效率的非线性影响研究
制造业服务化对企业竞争力的影响
基于OpenStack虚拟化网络管理平台的设计与实现
对基于Docker的虚拟化技术的几点探讨
虚拟化技术在CTC/TDCS系统中的应用研究
制造业服务化发展战略研究
浅析虚拟化技术的安全保障
H3C CAS 云计算管理平台上虚拟化安全防护的实现
高速公路服务器虚拟化技术应用与探讨