您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 一个实时CORBA的动态调度服务模型
:2001211209:.:,,,;,,;,,,,,agent.CORBA,,(,610054):CORBA,CORBA1.0CORBA.,,CORBA.:CORBA;;;;:TP391.3:A:100021220(2003)0921579205ADynamicSchedulingServiceModelforReal-timeCORBATANHao,LUOZhi2gang,LIUJin2de(InstitateofMicrocomputerandNetworkingTechnology,UniversityofElectricScienceandTechnologyofChina,Chengdu610054,Chian)Abstract:Theschedulingservicespecifiedinreal2timeCORBA1.0helpstosimplifydevelopmentofreal2timeapplica2tions,butitcanonlybeappliedtoaclosedCORBAapplicationsystem.Aimingatthislimitation,adynamicschedul2ingservicemodelbasedonthecooperationofclientschedulerandserverschedulerisproposedtoexpandtheschedulingservice.So,theexpandedschedulingservicecanbeappliedtoaopenreal2timeCORBAsystem.Keywords:real2timeCORBA;schedulingservice;dynamicschedule;clientscheduler;serverscheduler1CORBA,CORBA,:(1)(),,,,CORBA,;(2),,,.,CORBA1.0,ORBCORBA.,..CORBA(CORBA,,,)CORBA()..,,.CORBA1.0:(1)CORBA;(2);(3)CORBA,POA,CORBA.moduleRTScheduling{interfaceClientScheduler{voidschedule2activity(instringname)raises(UnknownName);};interfaceServerScheduler{PortableServer::POAcaeate2POA(inPortableServer::POAparent,instringadapter2name,inPortableServer::POAManagera2POAManager,inCORBA::PolicyListpolicies)raises(PortableServer::POA::AdapterAlreadyExists,PortableServer::POA::InvalidPolicy);voidschedule2object(inObjectobj,instringname)raises(Un2knownName);};};1CORBAFig.1InterfaceofCORBAschedulingserviceCORBA,.11.24920039MINI2MICROSYSTEMSVol124No19Sep.2003CORBAClientScheduler,.,ORBOS.,POA,Create2POAPOA,POA.Schedule2Object.,.(2),CORBA,method1method2.clientmethod1,method2.,,,CORBA.Serversched=poa1=schedcreate2POA();obj1poa1carete2object(params1);obj2poa1carete2object(params1);schedschedule2object(obj1,object1);schedschedule2object(obj2,object2);Clientsched=object12varobj1=ö3something3öobject22varobj2=ö3something3öschedschedule2activity(activity1);obj1method1();obj2method1();schedschedule2activity(activity2);obj1method2();obj2method2();2Fig.2AnexampleofschedulingserviceCORBA1.0,,.,,,.,,COR2BA.,,,CORBA.,CORBA,CORBA.OMG,19993RFP,2.,CORBA.CORBA,,EDFMLF,,,,2.,ClientSchedulerServerScheduler,CORBA.2CORBACORBA.,:(1)TAO;(2)EPIQ.2.1TAOTAOUniversityofWashingtonSchmidtCORBA.SchmidtCORBA,ö,,IöO,,IDL.,TAOCORBA,,RM.IDL,,.TAO.,,,3TAOFig.3StructureofTAOschedulingserviceTAO,,3.,RM,EDF,MLF,MUF.,EDF,MLF,,;,.,TAOMUF4,MUF,,.TAO3:3126,7210.1.CORBAQoS,TAO,QoS;2.QoSTAO,,;3.;085120034.;5.,;6.,,;7.,ORB;8.ORB,IöO,ORB;9.,,;10.8,.TAO,,,,.2.2EPIQEPIQCORBA,.EPIQTAO,.,EPIQ,.4EPIQFig.4EPIQschedulingmodel5,WindowsNT.,.,EDF.,,.,.,.EPIQ,,4:EPIQ,,,.CORBA.,,,.CORBA,,,,.OMGRFP,,.,,.3CORBA,,.,CORBA,.:(1),,TAOEPIQ;(2)ClientSchedulerServerScheduler,.3.1,client,,client,client.,:()(5Fig.5Joiningofdynamicclients),.(,),,client().5.Client1Client2,,.Client3,Client3Server,Client118519:CORBAClient2.Acceptancebroker(,ServerScheduler),.125:1.Client3Acceptancebroker;2.AcceptancebrokerClient3,,Client3;3.AcceptancebrokerClient3,Server;4.Client3,Server;5..3.2ClientSchedulerServerScheduler5,,ClientSchedulerServerScheduler.OMGRFP,,6Fig.6Procedureofschedulingcooperation,.6ClientSched2ulerServerSchedulerServer.Ai:Ai,ClientScheduler(6),ServerScheduler(6).ServerScheduler,,,,ClientScheduler(6),Server(6),(6).ClientScheduler,ServerScheduler,Ai(6),(6);Ai,ServerScheduler(6).Ai,ClientScheduler(6),ClientSched2ulerServerScheduler(6),Ai.ServerScheduler,(6).,client,AiM={m1,m2,......,mn}.,,fclient(Ai),fserver(mi)fobject(mi),fclient(Ai)AiClientScheduler,fserver(mi)miServerScheduler,fobject(mi)mi.Ai:GetinformationaboutactivityAi,suchasM={m1,m2,,mn};GetClientSchedulerreference;öötryadmit=ClientSchedulertrySchedule();IF(admit==FALSE)THENEXIT;ENDIFöötry,poerationStarttoinvokeremotemethodsEndtoinvokeremotemethodsöö,exitClientSchedulerRelease();ööexit,Ai7AiFig.7DescriptionofoperationofactivityAiAi:try,operationexit.try,ClientScheduler;,Aioperation;.operation,,,,exit.exit,.,,operation.trySchedule(){FOReachmjMi{ööServerSchedulerServerScheduler=fserver(m)ServerSchedulerPermissionToProceed(Req,);}ENDFORCollectreturnvalueR={r1,r2,,rn};ööACCETED,IF(PrjR,rj==ACCEPTED)THENreturnTRUEELSEöö,FOReachmjMi{IF(rj==ACCEPTED)THEN{ööServerSchedulerServerScheduler=fserver(mj)ServerSchedulerCancel();}ENDIF}ENDFORENDIF}Release(){ööServerSchedulerFOReachmjMi{ServerScheduler=fserver(mj)ServerSchedulerCancel();}ENDFOR}8ClientSchedulerFig.8DefinitionofClientScheduleroperationClientScheduler:tryScheduleRelease,28512003:,tryScheduler,,(),.ServerScheduler:PermissionToProceedCancel,:PermissionToProceed(Req,){GETinformationfromstaticrepositoryandruntimerepository;Schedulabilityanalysis;ööIFsCHEDULABLEthen{öö,Configureserverandreserveresource;Storeinformationaboutmitoruntimerepository;Req.SendReply(ACCEPTED);ELSEReq.SendReply(REJECTED);ENDIF}Cancel(){ööcancelserverconfigurationandresourcereserved;deleteinformationaboutmifromruntimerepository;return;}9ServerSchedulerFig.9DefinitionofServerScheduleroperationServerScheduler(staticrepository)(runtimerepository),.3.3CORBA,.,,10.,,,.client,,()(),.,.4CORBA,.CORBA1.0,CORBA.,10Fig.10Hierarchyofschedulingservice..,,,.,C
本文标题:一个实时CORBA的动态调度服务模型
链接地址:https://www.777doc.com/doc-1582252 .html