华中科技大学硕士学位论文电力企业信息集成中间件的研究与改进姓名:任化军申请学位级别:硕士专业:通信与信息系统指导教师:王芙蓉20080601IEC61970IceDHTDHTDHTIceDHTI/OIceI/O-AbstractWithfurtherreformofelectricpowersystemandintroductionofcompetitionmechanism,higheroperationefficiencyandagilityisrequiredbypowermarket,whichmakeselectricalpowerenterpriseshaveainformationplatformthatcandealwithamountofseadataeffectively,quicklyandadequately,knowledgeofintegrationandmanagementbasedonthisplatform.However,electricalpowerenterprisesinstalledanddevelopeddifferentsubsystemaccordingtoparticulardemandofeachbusinesssectionindifferentperiodtocarryoutfunctionrespectively.Becauseofdifferentfunction,supplycompanyanddevelopmentperiod,thesesubsystemspayattentiontodifferentaspectofelectricpowerobjectandbuildmoldusingexclusivemethod,whichmakesthesesubsystemsforma“informationisolatedisland”.Thisislandpreventsthemexchangingdataorsharinginformationinenterprisescope,andcausestoomanyproblemssuchas:repeattheconstruction,wasteofresources,leakofinformationanddatasource,inefficacyinformationgathingandshortageofknowledgeobtain.Thispaperresearchstherelatedproblemsofelectricalpowerenterpriseinformationintegrationtosolveproblemsdescribedabovebasedoninformationtechnique.Firstlythispaperanalyzestheadvantageanddisadvantageofcurrentproject,thengivesawayaccordingtoIEC61970standard,whichnotonlycanintergrateoriginalsubsysteminstandardway,protectingcustomerinvestmentbutalsocouldmakethenewsubsystemjoinitinaconvenientway.Eachsubsysteminjectsitselfintotheintegratedbusinaloosecouplingway,whichcanattain“pluyandplay”ofthesoftware.ThispaperanalyzestheobjectlocationfunctionshortageofIceusedinintegratedbus,andfetchsinDHTaccordingtopowersystemcharacteristics,thenputsforwardakindofdistributedobjectlocationmechanismbasedonDHT.ThismechanisminheritstheexpansibilityandfaulttolerationofDHT,itsharesallworkloadtoeachnodeinsystem,whichcandiscardthebottleneckflawinIce.ThispaperputsforwardaimprovedDHTarithmetic,andgivessomearithmeticsaboutlocationinformationrelease,queryandmaintenancebasedonthisimprovedDHT,thenanalyzestheirrationality.Accordingtothecharacteristicthatcompute-boundandI/O-boundbusinessbothexistatthesametimeinpowersystem,thispaperanalyzestheadvantageanddisadvantageofIce’sthread-poolstrategy,andputsforwardakindofmultithread-mulithreadstrategytodepressthepressureofnetworkI/O,anddotheperfoamancetestcomparison.Keywords:informationintegration;integrationbus;middleware;objectlocation;threadpool 111.1[1][2][3]208080()90(MIS)[4][5]1.SCADA/EMS/DMS[6]AM/FM/GIS(TMR)[7]ERP[8][9]2.MIS;23.[10]1.2IEC61970[11-14][15]IEC61970(UtilityIntegrationBusUIB)[16]CIM[17-19]UIB3()(SCADA)(CIM)UIBIEC61970UIBApplicationServerUIBWrapperUIB()UIB(UIBWrapper)UIBCIMUIBIEC61070CIMCIS[20]UIBUIB1-1CIM/UIBUIBWrapperSCADAUIBWrapperUIBWrapperUIBWrapperUIBWrapperUIBWrapper1-1CIM/UIB4UIBUIBUIB1-2.NetWindowsJ2EEunixUIB121-2IEC61970UIB1.3/IceIceDHTDHTDHT5DHTIceDHTI/OIceI/O-12IceIceDHTIce32DHTDHT-4562Ice2.1[21]2.1.12-12-17+[22]2-22-28+1.2.2.1.2[23](InternetDataCorporationIDC)[24]1.API2.93.4.5.6.10OMG(ObjectManageGroup)[25]CORBA(CommonObjectRequestBrokerArchitecture)[26]SunJavaBeanEJB(EnterpriseJavaBean)[27]MicrosoftDCOM(DistributedComponentObjectModel)[28]CORBAEJBDCOMCORBACORBACORBA2002Ice(Internetcommunicationengine)[29]CORBACORBAIceCORBACORBAIceCORBACORBA[30]2-12-1CORBAIceCORBAIceWindowsUnix/LinuxWindowsUnix/LinuxCORBAIceCORBACORBAIDLinoutSliceIDL11C++JavaC++JavaC#PHPIDLSliceiceORBIceCoreIIOPIIOPIceIIOPOMGCORBAORBIceSSLC++CORBAC++IceCORBASTLCORBASliceIce12CORBAFreezeIceSliceCORBAIcePathCORBAIceStormCORBA(AMI)CORBAAMI(AMD)IceAMIAMD2-1IceCORBACORBAIce[31]IceCORBAIce2.2Ice[32]Ice2.2.1Ice(objectreference)13(objectID)1.IceIce[33]2-3(objectlocationmessageOLM)IDObjectIDTcp-h-p123RegistryObjectIDTcp-h-p2-3Ice142.IceIceIceGridIce(1)IceIceGridIceGrid(2)servera.adaptersIceGridb.propertiesc.pwdd.optione.envf.targetbind()nameidkind(3)resolve()15Object(4)IceIceGridIceGridIceGridIceGrida.IceProcessb.POSIX2.2.2IceIceIceIceI/OIce1.162./3.4.2.2.3[34,35]DHTDHTDHTDHTDHTDHT1.DHTDHTChord[36]Tapestry[37]Pastry[38](O(log2N))DHTChordChordChord(1)ChordChordKeym2m02m-1Keyk17Keyksuccessor(k)mnisn2i-1s=successor(n+2i-1)mod2mnKeyknkjjkkNO(log2N)O(log2N)(2)Full-Chord[39]Full-ChordChordChordChordChordFull-ChordChord(2.1)(2.2)i-1m(1)finger[i]=(n+2)mod21im≤≤(2.1)i-1m(2)pfinger[i]=(n-2)mod21im≤≤(2.2)(2.2)np(2.2)Full-ChordChordChord(3)Dual-Chord[40]Dual-ChordChordDual-ChordChordChordR-Finger2-2Dual-ChordChordFingersuccessorpredecessorR-FingerDual-Chord182-2mpFinger[k](p+2k)mod2m0=k=mR-Finger[k](p-2k+2m)mod2m0=k=mSuccessorPredecessor(4)ChordChordFull-ChordDual-ChordChord[41]ChordChordChordkChordii-1m(1)finger[i]=(n+3)mod2,1im≤≤(2.3)i-1m(2)finger[i]=(n+2*3)mod2,1im≤≤(2.4)(2.3)(2.4)log2N2log3NChordO(log2N)O(logkN)2.ChordN1/2*log2Nlog2NChord(1)keyhash(key)(2)hash(key)(3)fingertable19(4)2-41-34DHTInternet210[42]ChordChordChord[43]Full-ChordKeyChord1/2Chord1/2Dual-ChordChordChordChordk[39-41]2.3IceIceRPCRemoteProcedureCallTCPUDPSSLIO,202-4IceRPCRPCI/OI/OIce2-4RPCIce---/I/O(--)(-/)I/OI/OIce(Select)I/Owin