收稿日期:2005-03-03;修返日期:2005-05-23基金项目:高等学校博士学科点专项科研基金资助项目(20030290003)一个小型网格原型系统的设计与实现*沙嘉祥1,曹怀虎2,刘士杰1(1.
华北科技学院计算机系,北京101601;2.
中国矿业大学(北京)机电与信息工程学院,北京100083)摘要:这个小型网格原型系统是基于OGSA(开放网格服务架构)体系结构和Web服务架构而构建的网格服务的基础平台,按照OGSI网格服务规范标准,用GT3(GlobusToolkit3.
0)网格开发工具包开发实现.
程序设计符合通常的分布式计算编程模型,它包括服务器端编程和客户端编程两个部分,它们之间的联系是通过WSDL服务描述文件来完成的.
最后通过实验展示了其实用性.
关键词:网格计算;开放网格服务架构;开放网格服务基础设施;分布式计算;WSDL中图法分类号:TP273文献标识码:A文章编号:1001-3695(2005)08-0121-03DesignandImplementationofaMini-typeGridPrototypeSystemSHAJia-xiang1,CAOHuai-hu2,LIUShi-jie1(1.
Dept.
ofComputer,NorthChinaInstituteofScience&Technology,Beijing101601,China;2.
SchoolofMechanicalElectronic&Inofor-mationEngineering,ChinaUniversityofMining&TechnologyatBeijing,Beijing100083,China)Abstract:Thismini-typegridprototypesystemistheplatformofgridservices,whichisbaseduponOGSAandWebServices.
AccordingtoOGSIgridservicescriterionstandard,itusesGT3gridexploitationtoolkittodevelop.
Programdesignaccordswiththecommondistributedcomputingmodel.
Itcontainstheserverprogrammingandtheclientprogramming.
TheyrelateeachotherwiththeWSDLservicesdescribedfiles.
Experimentwithgridshowsverypromisingresults.
Keywords:GridComputing;OGSA;OGSI;DistributedComputing;WSDL网格计算(GridComputing)通过网络连接地理上分布的各类计算机(包括机群)、数据库、各类设备和存储设备等,形成对用户相对透明的、虚拟的高性能计算环境.
应用包括了分布式计算、高吞吐量计算、协同工程和数据查询等诸多功能.
网格计算被定义为一个广域范围的无缝的集成和协同计算环境,网格计算模式已经发展为连接和统一各类不同远程资源的一种基础结构[1].
网格计算的概念十分简单,有了网格计算技术,您可以将原本毫无关系的服务器、存储系统和网络联合在一起,组成一个大的系统,为用户交付非同寻常的、高质量的服务.
对于最终用户或应用程序来说,网格看起来就像是一个巨大的虚拟计算系统[2].
本文所设计和实现的是一个小型的、基于局域网的网格原型系统.
在设计中尽量使用已存在的、标准的技术,以便与已有的应用兼容,并能提供可靠的容错机制.
尽管用户接口可以有许多形式,并且可以是特定于应用程序的,但为了使其易操作和易接受,本系统的用户界面设计为一个类似于Web门户网站的网格门户网站,为用户提供启动应用程序的接口,该应用程序将使用网格所提供的资源和服务.
1系统的体系结构该网格原型系统是基于开放网格服务架构(OpenGridServicesArchitecture,OGSA)和Web服务架构而构建的网格服务的基础平台,如图1所示.
按照开放网格服务基础设施(OpenGridServicesInfrastructure,OGSI)网格服务规范标准,用GT3(GlobusToolkit3.
0)网格开发工具包开发实现[3~9].
该系统的体系结构由如下几个重要组件和应用程序组成:(1)代理程序(Broker).
本系统通过一个代理程序来确认网格中可用的和适合使用的资源.
虽然Globus未提供代理程序的实现,但有一个基于LDAP的监控和发现服务(MDS).
MDS提供了关于网格中可用资源及其状态的信息,可以利用MDS开发代理程序服务.
(2)调度程序(Scheduler).
在网格环境中,经常需要使用调度程序来协调运行在各资源上的作业.
GlobusToolkit没有包含这样的调度程序,但有几个在Globus网格环境下已经过测试并能够使用的调度程序.
(3)数据管理组件.
在网格环境下,需要用安全而又可靠的方法来将文件和数据移到网格中的各个节点上.
Globus包含了提供此类服务的数据管理组件———对辅助存储器的网格访问(GASS),它包含了诸如GridFTP之类的工具[10].
·121·第8期沙嘉祥等:一个小型网格原型系统的设计与实现BrokerSchedulerGRAMJobMgmtGASSDataMgmtMDSDirectoryServicePortalExecutejob.
getstatus/resultGSI图1该网格原型系统的体系结构太网(4)作业和资源分配管理组件.
网格资源分配管理器(GRAM)是网格环境中帮助执行实际工作的一组核心服务.
它提供了实际启动某个特定资源上的作业、检查其状态并在其完成后检索其结果的服务.
(5)安全性组件.
Globus的网格安全性基础结构(GSI)组件提供了健壮的安全性机制.
2系统总体设计如图2所示,该系统分为三个模块:资源查询模块、作业调度模块以及作业查询模块.
用户提交一个作业给作业控制代理,或者叫做接入代理;接入代理检查这个作业对资源的要求,并判断将此作业加入到系统工作池是否安全.
接入代理将作业传递给一个调度,在这里用网格信息系统来完成资源的发掘,然后与域控制代理商议资源的当前状态和有效性.
接下来处理映像集,将这些映像传给调度代理,调度代理和域控制代理协商资源,然后给出调度表,完成资源的预留.
这个预留信息传给作业控制代理,在合适的时候,作业控制代理与不同的部署代理协商启动任务的运行.
监视程序负责检查作业的进展,如果性能低于期望值,则要判断是否需要重新调度.
3具体实现本系统采用分布式计算编程模型(即Proxy-Stub模型)进行程序设计,它包括服务器端编程和客户端编程两个部分.
服务器端和客户端是弱耦合的,它们之间的联系是通过WSDL服务描述文件来完成的.
在此,以矩阵运算功能为例说明实现方法.
如果要加入别的运算功能,只需要按照GT3提供的接口标准编写服务接口,再加入具体的运算模块即可实现.
3.
1客户端的实现本文将通过一个调用矩阵运算方法的客户端来使用网格服务.
这个客户端接收三个参数:①网格服务的地址(GSH);②第一个运算矩阵;③第二个运算矩阵.
在gt3tutorial/core/first/目录下创建一个名为client/的新目录,在新目录里创建一个MathClient.
java文件.
packagegt3tutorial.
core.
first.
client;importgt3tutorial.
core.
first.
Math.
MathServiceLocator;importgt3tutorial.
core.
first.
Math.
MathPortType;importjava.
net.
URL;publicclassMathClient{publicstaticvoidmain(String[]args){try{//Getcommand-lineargumentsinta[Integer.
parseInt(args[1]);intb[Integer.
parseInt(args[2]);URLGSH=newjava.
net.
URL(args[0]);//GetareferencetotheremoteWebServiceMathServiceLocatormathService=newMathServiceLocator();MathPortTypemath=mathService.
getMathService(GSH);//Callremotemethod′matrixadd′intsum=math.
matrixadd(a[b[returnsum;}catch(Exceptione){}}}通过上面的代码获得了MathPortType的引用,一旦拥有了这些引用,就可以把网格服务当作本地对象来使用.
在客户端,首先要在提交界面中输入矩阵的行、列和矩阵中的数据.
数据提交后,此计算任务就交给计算平台模块处理,运算完成后即将结果反馈给用户.
3.
2服务器端的实现在服务器端将要完成矩阵运算.
网格服务可以通过类似于WebService的工厂来实现,这里用的是一个MathService工厂,它负责管理一系列MathService实例.
接下来要依次完成一系列工作.
3.
2.
1编写一个Java接口文件编写Java接口文件Math.
java(代码如下),将它保存在名为$TUTORIAL_DIR/gt3tutorial/core/first/impl/的新目录中.
packagegt3tutorial.
core.
first.
impl;publicinterfaceMath{publicintmatrixadd(inta[intb[publicintmatrixsubtract(inta[intb[publicintmatrixmultiply(inta[intb[}3.
2.
2生成网格服务支持代码(1)生成WSDL文件.
用一个名为Java2WSDL的ApacheAxis工具就可以实现由Java接口文件产生WSDL代码的过程.
首先编译Java接口文件:javacMath.
java,然后在$TUTO-RIAL_DIR/目录下执行如下命令,在$TUTORIAL_DIR/目录下得到一个MathService.
wsdl文件.
javaorg.
apache.
axis.
wsdl.
Java2WSDL-PMathPortType-SMathService-lhttp://localhost/ogsa/services/core/first/MathService-nhttp://first.
core.
gt3tutorial/Mathgt3tutorial.
core.
first.
impl.
Math最后,必须使用GT3提供的工具DecorateWSDL来修饰这个WSDL文件(即给WSDL添加一些额外的内容)才能使它在GT3下工作.
执行如下命令($GLOBUS_DIRECTORY为GT3的根目录):Javaorg.
globus.
ogsa.
tools.
wsdl.
DecorateWSDL$GLOBUS_DIRECTORY/schema/ogsi/ogsi_bindings.
wsdlMathService.
wsdl(2)生成Stub.
得到WSDL描述文件后,就需要生成Stub用来从XML消息中序列/反序列化数据.
Stub负责所有的SOAP和网络通信.
执行如下命令产生客户端和服务器端所有需要的Stub:javaorg.
globus.
ogsa.
tools.
wsdl.
GSDL2JavaMathService.
wsdl3.
2.
3实现网格服务创建一个网格服务的实现文件MathImpl.
java,将它放在与服务接口定义相同的目录下.
在这个文件中将为Math.
java提供声明,还能提供额外的、不能通过网格服务使用的PrivateMethods.
·221·计算机应用研究2005年图2计算平台模块的功能和工作流程提交作业资源查询作业调度作业查询计算平台资源状况添加作业显示已提交作业填写用户信息执行清空操作清空作业完成添加修改作业packagegt3tutorial.
core.
first.
impl;importorg.
globus.
ogsa.
impl.
ogsi.
GridServiceImpl;importgt3tutorial.
core.
first.
Math.
MathPortType;importjava.
rmi.
RemoteException;publicclassMathImplextendsGridServiceImplimplementsMathPort-Type;publicMathImpl(){super("MathService");}/*最后实现在网格服务中说明的方法:matrixadd(),matrixsub-tract(),matrixmultiplye()*/3.
2.
4部署网格服务GT3需要运行在Web服务引擎之上.
在此,本文将GT3部署到应用服务器WebSphereApplicationServer(WAS)上.
(1)准备部署GT3的EAR包.
首先用GT3提供的脚本命令创建相应的EAR包,在确保$GLOBUS_LOCATION/build/lib目录存在后(否则创建该目录),进入$GLOBUS_LOCATION目录,并执行命令:antwar.
该命令将在当前目录下创建ogsa.
war和schema.
war两个WAR包,但由此得到的ogsa.
war所含的文件不全,无法直接用来部署GT3.
下面将在ogsa.
war的基础上使用WAS5("5"为版本号)自带的应用程序组装工具AAT创建部署GT3.
0所需的完整的EAR包.
大致步骤如下:启动AAT→创建一个新应用程序→导入WAR包→添加MIME映射→添加JAR文件→添加资源文件→保存生成的EAR文件.
注意:添加JAR文件前,要先将列表中所有的JAR文件删除.
(2)将GT3部署到WAS5.
此部署操作是通过WAS的Web管理面板完成的.
进入管理面板的方法是:启动WAS,打开浏览器,输入URL"http://hostname:9090/admin"进行登录,然后进行部署.
①输入先前创建的ogsa.
war包的完整路径;②将正在部署的Web模块所对应的选择框勾中,其余步骤均接受缺省设置即可部署成功.
注意:GT3自带的JAR文件commons-discovery.
jar可能使GT3无法在WAS5上正确运行,具体表现为:当用户访问任意一个网格服务时,WAS报错"Cannotfindservicepath.
.
.
".
在此本文使用IBMETTK1.
1提供的与GT3有关的commons-dis-covery.
jar文件替换$WAS5_HOME/installedApps/$NODE_NAME/ogsa.
ear/ogsa.
war/WEB-INF/lib/下的原同名JAR文件.
(3)部署后的配置.
在将GT3部署到WAS上之后,还需进行如下操作才能使其正常运行:①添加HTTP传输端口.
WAS5缺省的内部HTTP端口是9090,为方便GT3的配置,建议添加8080端口,可以在WAS的Web管理面板中进行添加.
②改变WAS的运行用户.
GT3需要以Globus用户运行,因此需要将WAS5的运行用户也设置为Globus,并停止WAS5,可以在WAS的Web管理面板中进行设置.
③将WAS安装的部分目录的可读写权限赋予用户Globus,方法是把这些目录的Owner改为Globus用户.
④重新启动WAS5.
4实验结果:网格和单机系统的性能对比为了展示该系统的实用性,将三台不同的机器用以太网连接在一起,做了一个局域网的实验.
表1展示了两种系统环境下对矩阵运算进行对比测试的结果.
表1测试数据对比单机系统网格原型系统系统环境CPU赛扬733256MBSDRAMVIA693X主板80GB7200转硬盘单机配置*3(其中一台为服务器,两台为客户机)100Mbps快速以太网500*500与500*500矩阵相加运算速度:30s运算速度:21s500*500与500*800矩阵相加运算速度:31s运算速度:21s200*200与200*100矩阵相乘运算速度:27s运算速度:20s200*200与200*200矩阵相乘运算速度:55s运算速度:37s300*300与300*300矩阵相乘运算速度:213s运算速度:142s5结论该小型网格原型系统实现了网格计算平台中最基本的功能,并且在局域网的环境下进行了以矩阵运算为代表的、简单的网格计算实验,结果显示本系统具有一定的实用性.
下一步的研究内容是:进一步扩展到广域网上,按照网格平台的OG-SA标准编写新的计算模块,如3D建模运算、加密解密运算等,并将新模块加入本系统,对系统功能做进一步的扩充和完善.
参考文献:[1]Buyya,SChapin,DDinucci.
ArchitecturalModelsforResourceManagementintheGrid[C].
Bangalore,India:The1stIEEE/ACMInternationalWorkshoponGridComputing,SpringerVerlagLNCSSeries,Germany,2000.
3-6.
[2]IanFoster,CarlKesselman,StevenTuecke.
TheAnatomyoftheGrid:EnablingScalableVirtualOrganizations[J].
IntlJ.
SupercomputerApplications,2001,15(3):1-25.
[3]IFoster,CKesselman.
TheGrid:BlueprintforaNewComputingIn-frastructure[M].
USA:MorganKaufmannPublishers,1999.
279-309.
[4]KlausKrauter,RajkumarBuyya,etal.
ATaxonomyandSurveyofGridResourceManagementSystems[R].
UniversityofManitoba(TR-2000/18)andMonashUniversity(TR-2000/80).
1-26.
[5]IanFoster,CarlKesselman,etal.
ThePhysiologyoftheGrid[EB/OL].
http://www.
globus.
org/research/papers/ogsa.
pdf,2004-05-10.
[6]RajkumarBuyya,etal.
Nimrod/G:AnArchitectureforaResourceManagementandSchedulingSysteminaGlobalComputationalGrid[C].
Beijing:ProceedingsoftheHPCASIA'2000,the4thInterna-tionalConferenceonHighPerformanceComputinginAsia-PacificRe-gion,IEEEComputerSocietyPress,USA,2000.
22-26.
[7]KarlCzajkowski,StevenFitzgerald,IanFoster,etal.
GridInformationServicesforDistributedResourceSharing[C].
Proc.
ofthe10thIEEEInternationalSymposiumonHigh-PerformanceDistributedComputing(HPDC-10),IEEEPress,2001.
10-15.
[8]徐志伟,李伟.
织女星网格的体系结构研究[J].
计算机研究与发展,2002,39(8):923-929.
[9]郑然,李胜利,金海.
网格资源管理与调度模型的研究[J].
华中科技大学学报,2001,29(12):87-89.
[10]肖连兵,黄林鹏.
网格计算综述[J].
计算机工程,2002,28(3):1-3.
作者简介:沙嘉祥(1966-),女,北京人,讲师,硕士,主要研究方向为网格技术、网络信息系统、电子商务;曹怀虎(1977-),男,江苏人,博士研究生,主要研究方向为新一代网络体系结构、网格技术、OverlayNetwork、工业控制网;刘士杰(1948-),男,湖南人,教研室主任,教授,主要研究方向为网格技术、网络信息系统、电子商务.
·321·第8期沙嘉祥等:一个小型网格原型系统的设计与实现
diyvm怎么样?diyvm这是一家低调国人VPS主机商,成立于2009年,提供的产品包括VPS主机和独立服务器租用等,数据中心包括香港沙田、美国洛杉矶、日本大阪等,VPS主机基于XEN架构,均为国内直连线路,主机支持异地备份与自定义镜像,可提供内网IP。最近,DiyVM商家对香港机房VPS提供5折优惠码,最低2GB内存起优惠后仅需50元/月。点击进入:diyvm官方网站地址DiyVM香港机房CN...
spinservers美国圣何塞机房的独立服务器补货120台,默认接入10Gbps带宽,给你超高配置,这价格目前来看好像真的是无敌手,而且可以做到下单后30分钟内交货,都是预先部署好了的。每一台机器用户都可以在后台自行安装、重装、重启、关机操作,无需人工参与! 官方网站:https://www.spinservers.com 比特币、信用卡、PayPal、支付宝、webmoney、Payssi...
青果网络QG.NET定位为高效多云管理服务商,已拥有工信部颁发的全网云计算/CDN/IDC/ISP/IP-VPN等多项资质,是CNNIC/APNIC联盟的成员之一,2019年荣获国家高薪技术企业、福建省省级高新技术企业双项荣誉。那么青果网络作为国内主流的IDC厂商之一,那么其旗下美国洛杉矶CN2 GIA线路云服务器到底怎么样?官方网站:https://www.qg.net/CPU内存系统盘流量宽带...
网格技术为你推荐
戏曲网易yeah企业推广如何推广自己公司的产品。outlookexpress系统自带的outlook express有什么用?怎么用?字节跳动回应TikTok易主贾斯汀比伯的confident他在mv女主说了什么,大神回复,采纳internetexplorer无法打开电脑的Internet Explorer打不开?生药http课程cuteftp文档下载怎样把手机里的文件直接下载或复制到U盘里yixingjia合家欢是一种什么东西?小型汽车网上自主编号申请成都新车上牌办理流程和办理条件是如何的
二级域名申请 瓦工 gitcafe 云图标 免费ddos防火墙 html空间 dd444 毫秒英文 asp免费空间申请 东莞数据中心 免费申请个人网站 免费测手机号 申请免费空间和域名 双线机房 1元域名 www789 丽萨 电信网络测速器 网络速度 腾讯服务器 更多