网格网格技术

网格技术  时间:2021-04-20  阅读:()
收稿日期: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期沙嘉祥等:一个小型网格原型系统的设计与实现

Vultr VPS韩国首尔机房速度和综合性能参数测试

Vultr 商家有新增韩国首尔机房,这个是继日本、新加坡之后的第三个亚洲机房。不过可以大概率知道肯定不是直连中国机房的,因为早期的日本机房有过直连后来取消的。今天准备体验看看VULTR VPS主机商的韩国首尔机房的云服务器的速度和性能。1、全球节点PING速度测试这里先通过PING测试工具看看全球几十个节点的PING速度。看到好像移动速度还不错。2、路由去程测试测试看看VULTR韩国首尔机房的节点...

CheapWindowsVPS$4.5/月,美国VPS/免费Windows系统/1Gbps不限流量/,可选美洲、欧洲、亚洲等8大机房

国外商家提供Windows系统的并不常见,CheapWindowsVPS 此次提供的 2 款 VPS 促销套餐,提供 5 折永久优惠码,优惠后月付 4.5 美元起,价格还是挺诱人的,VPS 不限流量,接入 1Gbps 带宽,8 个机房皆可选,其中洛杉矶机房还提供亚洲优化网络供选择,操作系统有 Windows 10 专业版、2012 R2、2016、Linux等。Cheap Windows VPS是...

iON Cloud七月促销适合稳定不折腾的用户,云服务器新购半年付8.5折,洛杉矶/圣何塞CN2 GT线路,可选Windows系统

iON Cloud怎么样?iON Cloud今天发布了7月份优惠,使用优惠码:VC4VF8RHFL,新购指定型号VPS半年付或以上可享八五折!iON的云服务器包括美国洛杉矶、美国圣何塞(包含了优化线路、CN2 GIA线路)、新加坡(CN2 GIA线路、PCCW线路、移动CMI线路)这几个机房或者线路可供选择,有Linux和Windows系统之分,整体来说针对中国的优化是非常明显的,机器稳定可靠,比...

网格技术为你推荐
重庆网络公司一九互联重庆本地的网约车平台有哪些?如何识别比较正规的网约车平台?asp.net空间哪里可以申请asp空间的?12306.com注册12306邮箱地址怎么写35互联在中国哪家服务商提供的企业邮箱好呢?灌水机谁知道哪个好点的灌水机的地址?店铺统计如何科学分析店铺日常数据引擎收录怎么使自己的网站被搜索引擎收录呢?超级用户在电脑上如何设置超级用户(Administrator)?什么是网站优化什么是网站优化?怎么去优化?我是说免费的。网店制作新手在淘宝上开网店怎么做呢
adman gateone godaddy域名优惠码 evssl证书 java空间 华为4核 小米数据库 免费活动 hktv 电信主机 卡巴斯基是免费的吗 跟踪路由命令 www789 河南移动梦网 永久免费空间 阿里云邮箱怎么注册 godaddy中文 magento主机 认证机构 免费服务器 更多