开发C++网格服务的各种可行方案与性能评价
电子元件,电子元器件深圳市创唯电子有限公司
您现在的位置: 首页 > 电子技术
开发C++网格服务的各种可行方案与性能评价  2012/3/1
摘 要: 探讨了使用C++部署网格服务的几种方案,分析了各种可能的框架的调用等待时间、可扩展性和可靠性。使用不同的部署框架得到的最终结果在性能上有很大差异。关键词: 网格服务 C++ 调用时间 性能评价  网格计算的出现引发了分布式领域的多个计算标准和架构的出现(如Globus、Legion等),它们都致力于为网格应用程序和服务提供一个稳定的环境[1]。由于Java语言的许多特性非常适合于目标环境,所以大多数架构是基于Java开发

摘   要:探讨了使用C++部署网格服务的几种方案,分析了各种可能的框架的调用等待时间、可扩展性和可靠性。使用不同的部署框架得到的最终结果在性能上有很大差异。
关键词:网格服务  C++  调用时间  性能评价

网格计算的出现引发了分布式领域的多个计算标准和架构的出现(如Globus、Legion等),它们都致力于为网格应用程序和服务提供一个稳定的环境[1]。由于Java语言的许多特性非常适合于目标环境,所以大多数架构是基于Java开发的。但是,有些情况下使用Java并不适宜。一个众所周知的问题就是性能[2]。此外,还有一个问题是原有的C++程序需要重新编写才能够在新的体系结构下运行,由于经常出现程序逻辑和服务部署的语言不一致,所以用Java重写通常来说不是一个最佳选择。
本文研究了现有的、允许部署C++程序作为网格服务的所有框架,在每种框架上都部署了一系列简单的服务并测试了每种情况下的等待时间和可扩展性。试验结果说明网格服务平台架构的选择对于最终网格服务的性能有着很大的影响。
1  网格体系结构介绍
1.1 网格服务标准
OGSA(Open Grid Services Architecture)的创建是为了满足网格在分布、异构的动态环境下整合服务的需要。OGSA只定义了架构,没有给出实现。有两种符合OGSA的实现:OGSI(开放式网格服务基础结构,Open Grid Service Infrastructure)和更新的WSRF(网络服务资源框架,Web Service Resource Framework)。OGSI扩展了WSDL(Web Service Definition Language)和XML Schema,使Web Service的状态可以标准化。WSRF是一个符合OGSA标准的实现,用于取代OGSI并统一Web Service和网格服务世界。
1.2 网格服务体系结构
(1)Globus Toolkit。Globus Toolkit把服务隔绝在网格服务容器(Grid Service Container)中,Globus Toolkit在其中发挥作用并向远程客户端提供服务。容器运行时管理所有服务相关的工作,如服务创建、调用分发和服务销毁。
(2)OGSI.NET。OGSI.NET是Microsoft .NET平台上的一个OGSI的实现,由Virginia Grid Computing Group开发。OGSI.NET服务容器的工作机理是通过一个ISAPI过滤器截获Microsoft IIS请求。容器本身被作为一个Windows服务实现。
(3)WSRF.NET。WSRF.NET是一个在Microsoft.NET平台上开发符合WSRF规范服务的开发包。这个框架中大量使用了标准的Microsoft程序和工具(如IIS,ASP.NET)。有一个专门的ISAPI过滤器用来更正基于EPR(末端参考,EndpointReference)的消息分发,但是并没有单独的容器来实现,而是用一个静态生成的壳(wrapper)使得网格服务作为标准的ASP.NET网络服务运行。
(4)gSOAP。gSOAP是用于创建C/C++网络服务的软件开发包。gSOAP应用于科学计算领域和对时间要求严格的场合,特别经过速度优化。由于加入的层被C++优化过,所以可视为是一种快速、天然的部署C++服务的方法。gSOAP不支持创建OGSI和WSRF服务,因此不能直接作为网格服务的容器。本文将其加入测试,是为和其他体系结构做对比。
2  性能对比
2.1 测试方法
为了测试每种体系结构的性能,创建了一个C++类,其包含两个方法:
int Echo(int):输入一个整数并返回,不做其他处理。
int Matrix(int):输入一个整数k,进行一个矩阵乘法运算,由两个k阶的矩阵相乘,这样每次调用产生一个O(k3)的复杂度运算。返回值是一个整数描述结果的状态。这两个方法产生的数据传输(参数和返回值)是非常小的。这一点保证了调用这两个方法时产生的延迟不是由体系结构部署XML parser时产生的。大多数科学计算程序的调用请求都属于这种少量数据传输的方式。
大部分网格架构的测试是通过测量客户端服务调用的等待时间实现的。为达到这个目的,在每一种体系结构下部署了Echo和Matrix方法。测试客户端使用Microsoft.NET平台的C#开发。
选择没有负载的服务器测试单纯的服务调用等待时间。客户端每隔50ms调用一次Echo服务,一共调用100次,平均调用等待时间被记录下来。
2.2 测试配置
服务器端配置两台相同的PC机。具体配置为:Intel Pentium IV 2.8 MHz CPU,512MB内存,80GB 7200 rpm HDD和100MB以太网卡。

与《开发C++网格服务的各种可行方案与性能评价》相关列表
电话:400-900-3095
QQ:800152669
库存查询
Copyright(C) 2011-2021 Szcwdz.com 创唯电子 版权所有 备案号:粤ICP备11103613号
专注电子元件代理销售  QQ:800152669  电子邮件:sales@szcwdz.com  电话:400-900-3095