




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、哈爾濱工業大學計算機學院唐好選Email:pRPC 的基本原理pCORBA的概念與組成pCORBA構件模型RPC的基本原理NetworkLocal CallClientStubRPCInterfaceRPCInterfaceServerStubRemoteProceduresendreceivesendreceive客戶端程序服務器端程序RPC過程描述過程描述1、客戶按本地調用的方式 直接調用本地的客戶代理 客戶代理具有與服務器相同的過程接口2、客戶代理將客戶的調用請求進行加工、打包向底層通信機制(如套接字)發出請求消息客戶代理不進行任何邏輯處理只是一個中介3、客戶端通過底層的通信機制將消息傳
2、送給服務器端的底層通信機制RPC過程描述過程描述4、服務器 需要部分地解析消息找出客戶希望調用的服務器程序5、服務器代理對消息進行解析從中獲得調用者的參數然后調用服務器程序6、服務器程序執行相應的過程7、服務器程序將結果返回給服務器代理8、服務器代理將結果打包 向底層通信機制發出應答消息9、服務器端通信機制將消息傳送給客戶端通信機制RPC過程描述過程描述10、客戶端節點上也可能有多個調出點通信機制需要部分地解析返回的消息找出消息應該返回給哪個客戶程序并將消息發送給對應的客戶代理11、客戶代理從消息中解析結果返回給客戶程序客戶端開發過程服務器端開發過程服務器端程序服務器端程序IDL編譯器編譯器(
3、rpcgen)客戶端程序客戶端程序account.haccount_clnt.caccount _svc.cserver.cclient.crpclib.o互操作接口互操作接口定義語言定義語言互操作協議互操作協議 互操作實現(以互操作實現(以RPC為例)為例)互操作查找互操作查找互操作規范互操作規范底層協議底層協議決定決定決定決定服務器端程序服務器端程序客戶端程序客戶端程序客戶端代理客戶端代理互操作消息互操作消息網絡基礎設施網絡基礎設施服務器端代理服務器端代理互操作消息互操作消息網絡基礎設施網絡基礎設施CORBA的概念與組成CORBA概述概述pCORBA(Common Object Reque
4、st Broker Architecture 公共對象請求代理體系結構)是OMG制定的、最清晰的、跨越平臺最多的分布對象模型p通過IDL(Interface Definition Language)定義的接口,使用不同的編程語言,不同編譯器實現的構件,可以通過對象請求代理(ORB: Object Request Broker)連接,形成跨平臺的應用pCORBA是一套規約,而不是一個產品,開發商可以開發不同的產品來實現CORBA規約CORBA歷史歷史pOMG成立于1989年,CORBA規約的第一代主要集中在為分布式對象定義了一個基礎,其核心是ORB和IDLp1995年頒布的CORBA 2.0增加
5、了ORB的互操作性規約,主要是基于TCP/IP的IIOP(Internet Inter-ORB Protocol :因特網ORB互聯協議)p1997年頒布的CORBA 2.1 增加了COM/CORBA互操作規范p1998年頒布的CORBA 2.2 增加了移植性的對象適配器(POA :Portable Object Adapter)和IDL到Java語言的映射規約,OMA中增加了領域接口部分p2001年頒布的CORBA 3.0 增加了CCM( CORBA Component Model: CORBA構件模型),提供容器作為構件的運行環境客戶程序客戶程序Client對象實現對象實現Server動動
6、態態調調用用客戶客戶IDL存根存根ORB接口接口動態動態框架框架接口接口靜態靜態框架框架接口接口對象對象適配適配器器對象請求中間件核心對象請求中間件核心(ORB Core)接口接口倉庫倉庫實現實現庫庫CORBACORBA的基準模型的基準模型對象請求代理(對象請求代理(ORBORB)對象服務對象服務應用對象應用對象公共設施公共設施p 基準模型描述了分布式對象系統的基本成分(1)CORBAService(對象服務)是一組系統級對象,為實現和管理對象提供了基本功能,包括名字、生存周期服務、事務服務、安全服務等(2)ORB是核心,它提供了一種機制,使得對象可以透明的發送請求和接受響應 ORB與對象服務
7、相結合,確保符合CORBA基準的應用構件之間有效的通信(3)CORBAFacilities(公共設施)是適用于眾多應用領域的通用構件,例如信息管理、系統管理、任務管理和用戶界面等(4)Application Object(應用對象)是專用于特定領域的構件CORBACORBA的基準模型(續)的基準模型(續)對象類的上下文關系對象類的上下文關系ORBORB的體系結構的體系結構接口倉庫接口倉庫IDL編譯程序編譯程序實現倉庫實現倉庫客戶機客戶機對象實現對象實現GIOP/IIOPDII客戶代理客戶代理ORB內核內核ORB接口接口Operation()輸入參數輸入參數輸出參數輸出參數+返回值返回值對象適配
8、器對象適配器實現骨架實現骨架DSIpORB體系結構定義一個描述客戶機如何向遠程對象發送請求并得到回答的框架ORBORB的職責的職責p ORB給分布式對象提供了透明發送請求和接受響應的機制,主要包括以下職責:p負責根據客戶機給出的對象引用定位相應的遠程對象實現,激活遠程對象實現,建立與遠程對象實現的連接p客戶端ORB接受客戶機請求的參數,將參數打包,通過ORB互聯協議(如IIOP協議)跨網絡送給服務器端的ORBp服務器端的ORB接受通過ORB互聯協議跨網絡傳送過來的參數,并將這些參數解包,發送給對象實現p負責將對象實現響應客戶機的請求后的輸出參數、返回值等,以同樣的打包/解包方式,傳回給客戶機O
9、RBORB內核和內核和ORBORB接口接口pORB內核內核提供了對象的通用表示和對象間通信的機制。客戶提供了對象的通用表示和對象間通信的機制。客戶和對象實現通過和對象實現通過ORB接口的形式訪問接口的形式訪問ORB內核提供的功能內核提供的功能pORB接口接口是客戶與對象實現可以直接訪問到的、抽象描述是客戶與對象實現可以直接訪問到的、抽象描述ORB操作的接口,操作的接口,ORB接口由接口由ORB內核實現,它不倚賴于任內核實現,它不倚賴于任何的對象適配器,何的對象適配器,ORB接口主要包括:接口主要包括:pORB初始化(初始化(ORB-init)p獲取初始對象引用獲取初始對象引用p對象引用操作對象
10、引用操作p策略域的管理策略域的管理p線程有關的操作線程有關的操作ORBORB的實現方式的實現方式p 位于客戶和對象實現內部的ORBp 基于服務器的ORBp基于系統的ORB ORBORB的對象適配器的對象適配器OAOApOA是對象實現訪問ORB所提供服務的主要方式,由于對象實現方式不同,ORB內核很難為所有對象提供方便有效的單一接口,通過OA,ORB可以定制接口,為一組特定的對象實現提供服務,OA負責的主要功能有:生成和解釋對象引用,方法調用、注冊、激活和凍結對象實現,將對象引用映射到相應的對象實現pBOA(基本對象適配器)著重CORBA服務器實現pPOA(可移植對象適配器)規約將CORBA對象
11、定義為具有標識、接口和實現的抽象實體,負責把CORBA對象概念適配為編程語言的服務體(Servant)概念,允許編程人員構造可移植的對象實現pORB通過對象適配器提供的服務通常包括p生成和解釋對象引用p方法調用p交互的安全性p對象和實現的激活及凍結p將對象引用映射到實現p注冊實現p對象粒度、壽命、策略、實現風格等的明顯區別 使得 ORB核心很難為所有對象提供方便和有效的單一接口p通過對象適配器ORB可以將一組特定的對象實現作為目標對象適配器的作用對象適配器的作用ORBORB的接口倉庫和實現倉庫的接口倉庫和實現倉庫p接口倉庫(Interface Repository: IR)是儲存、發布、管理相
12、關對象接口定義的集合,通常以IDL文件作為輸入,將接口描述信息經過處理后存放在文件、數據庫或者其它形式的存儲機制中,并提供一組標準的調用接口供運行時動態查詢p實現倉庫包含了允許ORB激活和定位對象實現的信息,一般來說,對象實現的安裝和與對象實現的激活及執行有關的策略控制都是通過實現倉庫上的操作完成的客戶樁和實現骨架客戶樁和實現骨架p客戶樁又稱為IDL Stubs,是由IDL編譯程序根據IDL文件生成的,與編程語言相關的客戶端代碼段,客戶樁向客戶提供一個因接口而異的APIp實現骨架又稱為IDL Skeleton,是由IDL編譯程序根據IDL文件生成的,與編程語言相關的服務器端代碼框架,實現骨架提
13、供將對象適配器轉發的請求調度到對象實現上的代碼動態激活接口動態激活接口DIIDII和動態骨架接口和動態骨架接口DSIDSIpDII(Dynamic Invocation Interface)是一種允許動態創建和激活對CORBA對象請求的客戶端接口,根據客戶代碼提供的要調用的對象、要執行的操作、操作的參數集和參數類型等信息(其中包括從接口倉庫中獲得的各種動態信息),在運行時動態創建和激活對對象的請求pDSI(Dynamic Skeleton Interface)是一種允許將請求在運行時從對象適配器動態提交給對象實現的接口。DSI要求實現代碼必須向ORB提供所有操作參數的描述,ORB則提供輸入參數
14、的值,以便在執行操作時使用,在執行操作后,實現代碼向ORB提供輸出參數的值或者異常CORBACORBA請求發送和響應的方法請求發送和響應的方法u客戶機與遠程對象發送和接受請求的方法主要有兩種:靜態方法和動態方法,靜態方法更為普遍u靜態方法要求在編譯時已知所有的IDL接口,由IDL編譯程序生成客戶端的樁代碼和服務器端的骨架代碼,并分別鏈接到客戶機程序和對象實現中u對于動態方法,在編譯時客戶機和服務器端程序都不知道IDL接口。運行時,客戶端使用DII(動態激活接口)向對象實現發出請求,服務器端對象適配器使用DSI(動態骨架接口)訪問對象實現,兩者之間的接口信息從ORB接口倉庫中動態獲取ORBORB
15、通信協議模型通信協議模型Client StubORBClientServer-objectServer-objectServer SkeletonServer SkeletonORB(Java)ORB(C+)IIOPIIOPCORBA構件模型構件模型的產生構件模型的產生p CORBA 3.0首次提出了構件模型,擴充了CORBA的對象模型p CORBA構件模型(CORBA Component Model: CCM)是一種用來構建和部署CORBA應用程序的服務器端構件模型,其設計思想比較類似于EJB,大量的代碼生成以及系統功能的實現由容器提供者而不是應用程序自己來完成p CCM的體系結構主要包含:
16、抽象構件模型,構件實現框架( Component Implementation Framework : CIF),構件的包裝、組織和部署,構件容器框架等抽象構件模型(抽象構件模型(1 1)uCCM抽象構件模型定義了服務器端構件及其交互抽象構件模型定義了服務器端構件及其交互構件構件插座插座(uses)事件接收器事件接收器(consumes)事件源事件源(publishes, emits)構件接口構件接口(supports)呈面呈面(provides)屬性屬性(1)構件接口唯一標識了構件的實例,客戶可通過對構件接口的引用來調用構件的操作,支持一個或多個接口例:例: interface A,B; /
17、Forward declaration component Foo supports A,B / definition of equivalent interface / and its supported interfaces provides W,X,Y,Z; / Facets (provided interfaces. ) /other component definitions ; 抽象構件模型(抽象構件模型(2 2)(2)呈面標識構件向客戶提供的可訪問的功能接口,上例中,呈面W,X,Y,Z標識構件提供的W,X,Y,Z接口(3)插座(receptacles)是構件之間連接(connec
18、tion)的描述模型。IDL中的關鍵字“uses”用于定義構件與要連接的接口之間的關系,如: Checkout ; component ShoppingCart uses Checkout the_checkout; 抽象構件模型(抽象構件模型(3 3)(4)事件接收器( event sink )和事件源( event source ) CCM支持發布/訂閱事件模型,屬于推(push)模型,事件使用者(consumer, 或稱為事件接收器)先訂閱(subscribe)某類事件,此后,事件產生者(supplier, 或稱為事件源) 把事件推給使用者 作為事件源的構件產生事件的方式有兩種: (1)
19、發布(publishes)方式:在產生事件的構件與任一接收者之間建立專門通道 (2)廣播(emits)方式:利用多個產生者共享的通道廣播事件 構件也可能接收別的構件產生的事件,用關鍵字”consumes”說明抽象構件模型(抽象構件模型(4 4)(5)屬性主要用于構件部署(6)構件實例是由Home來管理,一個Home管理某一類構件的所有實例. Home要求所有的實例在一處生成,從而有效管理其生命周期,這是工廠設計模式的典型應用抽象構件模型(抽象構件模型(5 5)構件的容器框架構件的容器框架p 容器提供服務方的運行環境,CORBA構件使用一個容器來實現對系統服務的訪問CORBA 構構件內部接口件內
20、部接口POA回調接口回調接口容器容器外部外部接口接口構件構件HomeCORBA 構構件內部接口件內部接口POA回調接口回調接口容器容器外部外部接口接口構件構件HomeORB事務事務安全安全持久狀態持久狀態通知通知CORBA構件接口p為了使客戶能夠準確、方便地訪問服務,服務的提供者必須對自身進行準確的描述,并以一定的方式提供給客戶 接口的定義是必須的接口的必要性接口的必要性p模塊(Module)通常由p接口(Interface)和p實現(Implementation)兩部分組成p模塊接口刻畫了各個模塊是如何耦合的p模塊的實現部分是各個模塊的內部事務模塊是什么?模塊是什么?其它模塊其它模塊的設計者
21、的設計者和使用者和使用者需要知道需要知道其它模塊其它模塊的設計者的設計者和使用者和使用者不需要知不需要知道道p功能性描述u是對接口中各個操作調用方式的描述,分為對輸入和輸出兩個部分的描述p約束性描述u是對功能以外特征的描述,不僅包括異常處理、執行語義等簡單內容,還包括行為特征和同步特征接口包含的具體內容接口包含的具體內容以描述結構化程序的功能為主(如RPC-IDL,微軟的-IDL)以描述對象的功能為主(如CORBA的IDL)以描述服務為主(如web service的WSDL服務描述語言)幾種接口定義語言幾種接口定義語言為什么需要為什么需要IDL?IDLSmalltalkCobolJavaAda
22、-95C+CIDL可轉換為多種編程語言,用其它語言實現可轉換為多種編程語言,用其它語言實現IDLidl2javaIdl2c+Client stubServer skeletonClient stubServer skeletonIDL IDL 編譯器編譯器CORBA庫庫CORBA庫庫本地代理本地代理 目標對象目標對象存根代碼存根代碼XXXC.XXXXC.X框架代碼框架代碼XXXS.XXXXS.X客戶程序客戶程序服務器程序服務器程序客戶程序像客戶程序像訪問本地對訪問本地對象一樣訪問象一樣訪問遠程對象遠程對象保存保存接口接口把對象接口映把對象接口映射成某種語言射成某種語言pIDL的任何基本類型映射
23、到特定語言中時保持其size不變,但可能改變其標識范圍(Range)pIDL自定義類型包括對特殊類型的重命名和復雜類型的定義,復雜類型包括pEnumerationpStructurepUnionpSequenceparrayIDLIDL的數據類型的數據類型p類似于C+中枚舉類型的定義方式:enum Color red, green, blue, black, orange;pIDL不定義枚舉類型中各個成員的特定序號,只定義一種對比關系(序號由左向右增加)p與C+不同,IDL不允許控制枚舉成員的序號,比如: enum Color red=0, green=7; /不合法定義p枚舉類型表示一個閉包
24、的命名空間,任何枚舉成員不能重復出現在多個枚舉類型中 enum InteriorColor white, blue, grey ; enum ExteriorColor yellow, blue, green ; / 不合法p不允許定義空的枚舉類型IDLIDL數據類型數據類型-Enumeration-Enumerationp結構中通常包含一個或多個任意類型的成員,包括用戶自定義的復雜類型 struct TimeofDay short hour; short minute; short second; ;p結構允許嵌套定義 struct Outer struct FirstNested long
25、 first; long second; firstS; struct SecondNested long first; long second; secondS; ;IDLIDL數據類型數據類型-Structure-StructurepIDL聯合類型完全不同于C+中的聯合 union ColorCount switch (Color) case red: case green: case blue: unsigned long num_in_stock; case black: float discount; default: string order_details; ;p聯合中的成員類型
26、可以是任意類型,包括用戶定義的復雜類型,而鑒別器類型必須是整型(char, short, long, boolean, enum)IDLIDL數據類型數據類型-Union-Unionpdefault在聯合類型中是一個可選項,不過,只要它存在于聯合類型中,就必須要代替一種特定的情況(其它情況均不成立),該情況不能為空,否則是不合法的 union U switch (boolean) case FALSE: long count; case TRUE: string message; default: / Illegal, default case cannot happen float cost
27、; ;IDLIDL數據類型數據類型-Union-UnionpIDL支持一維和多維數組 typedef Color ColorVector10; typedef string IDtable1020;p數組必須用typedef關鍵字定義,每一維元素個數必須明確定義 typedef string IDtable20; / ErrorIDLIDL數據類型數據類型-Array-Arrayp序列是IDL特有的特殊數據類型,其本質是變長數組,可包含任意類型元素,可以是有界的或無界的 typedef sequence Colors; typedef sequence Numbers; p序列是可空的IDLI
28、DL數據類型數據類型-Sequence-Sequencetypedef unsigned long PhoneNumber;typedef string GuestName, Address;enum ChargeCard MasterCard, Visa, AmericanExpress;struct GuestRecord GuestName name;Address address;PhoneNumber number;ChargeCard card_kind;unsigned long card_number, expiration;typedef sequence GuestList
29、;IDLIDL類型定義示例類型定義示例typedef struct Employeestruct string name;Address address;unsigned long social_security_number; Employee;typedef EmployeeRecord Employee100;enum PersonKind A_GUEST, AN_EMPLOYEE,AN_OTHER;union Person switch (PersonKind) case A_GUEST:GuestRecord guest_record;case AN_EMPLOYEEEmployee
30、Record employee_record;default: string description;IDLIDL類型定義示例(續)類型定義示例(續)接口通過interface關鍵字來定義 interface Calculator short add(in short s1, in short s2); short sub(in short s1, in short s2); short mul(in short s1, in short s2); short div(in short s1, in short s2);IDL接口定義了分布對象對外表現的細節,每個IDL接口定義了一個新對象類型
31、對接口的訪問通過調用接口內定義的操作來實現,操作是接口的核心,是服務請求的入口點接口清晰地劃分了服務實現與客戶之間的邊界IDL 接口接口 (Interface)p接口中定義的所有內容都具有public屬性pIDL接口中不包含成員變量,客戶端所有的請求均通過調用接口中的相關操作來實現p每個CORBA對象只對應一個接口,而每個接口則對應于若干CORBA對象p換句話說:IDL接口對應于C+類的定義,而CORBA對象則對應于 C+類的實例IDL 接口接口 (Interface)pIDL接口組成一個名字空間p接口中可以嵌套其它的定義,如pConstant definition 常量定義pType def
32、inition 類型定義pException definition 異常定義pAttribute definition 屬性定義pOperation definition 操作定義p接口不支持嵌套定義接口的語法接口的語法interface Haystack exception NotFound unsigned long num_straws_searched; ; /異常定義異常定義 const unsigned long MAX_LENGTH = 10; /常量定義常量定義 readonly attribute unsigned long num_straws; /屬性定義屬性定義 typ
33、edef long Needle; /類型定義類型定義 typedef string Straw; void add(in Straw s); /操作定義操作定義 boolean remove(in Straw s); void find(in Needle n) raises(NotFound); ;接口的語法接口的語法u操作定義必須包括:操作定義必須包括:返回值類型返回值類型(非匿名類型);(非匿名類型);操作名字操作名字(不可重載);(不可重載);零個或多個參數聲明零個或多個參數聲明。操作不區分讀寫操作。操作不區分讀寫操作u例如:例如: interface simple void op(
34、); /注意:注意:void op(void)是錯誤的是錯誤的 /同樣:同樣:op();也是錯誤的也是錯誤的 ;u接口例子接口例子 :interface Primes typedef unsigned long prime; prime next_prime(in long n); void next_prime2(in long n, out prime p); void next_prime3(inout long n); ; u其中in表示從Client-Server; out表示從Server-ClientIDL 操作操作p操作簽名操作簽名(Signature)的一般形式為:的一般形式
35、為: oneway (param1,.,paramL)raises(except1,.,exceptN) context(name1,., nameM)p其中:其中:pOneway表示該操作為異步操作,表示該操作為異步操作,操作機制類似于UDP數據報通信,是一種不可靠的信息傳輸機制:返回類型必須為void;不包含out參數或inout參數;不包含raise表達式p 是返回結果的類型是返回結果的類型p為接口中的操作提供名稱為接口中的操作提供名稱praises指示可能引發的異常處理指示可能引發的異常處理pcontext指示有效的請求環境信息指示有效的請求環境信息IDL 操作(續)操作(續)pCOR
36、BA保證發出請求的客戶總是可以接收到一個成功的返回或者一個異常p異常被分為兩類:用戶自定義異常和系統異常, IDL定義了29個系統異常,具有不同的名字,但共用同一個異常體p異常的聲明類似于IDL結構類型exception CardExpired string expiration_date; ;exception CreditLimitExceeded unsigned long credit_limit; ;exception CardReportedStolen string reporting_instructions;unsigned long hotline_phone_number
37、; ;IDL 異常異常 (Exceptions)pIDL接口可定義公共屬性,屬性可以是只讀的(Read-only)或者可讀寫的(read-write),屬性定義不包含raise表達式p只讀屬性代表一個基本操作,可進行讀操作p可讀寫屬性代表一對基本操作,可進行讀寫操作IDL屬性屬性pinterface Thermostat readonly attribute short temperature; attribute short nominal_temp; ;p在語義上等價于:interface Thermostat short get_temperature(); short get_nomi
38、nal_temp(); void set_nominal_temp(in short t); ;p模塊是為IDL定義、創建、分離名字的空間,防止不同模塊中標識之間的沖突p模塊可以嵌套;CORBAServices對模塊進行了擴充,每個服務定義一個或多個模塊p模塊內的名字可通過如下方式引用:pPart:Assembly:ComponentWidgetIDL模塊模塊 (Modules)module Part typedef Assembly:Widget PartWidget; module ComponentPart typedef PartWidget ComponentWidget; ;IDL
39、IDL模塊定義的主要內容模塊定義的主要內容常量常量類型類型異常異常接口接口模塊模塊常量常量類型類型異常異常操作操作屬性屬性CORBA應用開發典型的典型的CORBACORBA應用開發過程應用開發過程IDLIDLCompileIDLCompile客戶機客戶機服務器服務器ORB庫客戶機樁ORB庫服務器骨架客戶機程序開發者服務器程序開發者使用靜態調用的使用靜態調用的CORBACORBA應用開發過程應用開發過程IDL Fileidl2javaidl2cppidl2java客戶樁骨架Java CompileJava CompileC+ Compile客戶程序對象實現Client ProgramObject
40、 ImplementORB內核StubSkeleton客戶端和服務器端使用同一開發環境客戶端和服務器端使用同一開發環境客戶端和服務器端使用不同開發環境客戶端和服務器端使用不同開發環境pIONA 公司的Orbix:Orbix 是全球范圍內部署最廣泛的企業 CORBA 解決方案(企業版/標準版/大型主機版),為全球規模最大要求最高的面向服務的體系結構 (SOA) 提供了基礎結構pInprise 公司的visibroker:提供visibroker for java,visibroker for dephi,visibroker for c+ 三個版本 ,主要實現了CORBA中的ORB核心技術,同時
41、又為CORBA提供了一些擴充功能pDigital 公司的ObjectBroker:.NET平臺一款開源O/R映射框架pIBM公司的ComponentBrokerpOOC公司的OminiBrokerORBORB產品產品一個簡單的一個簡單的CORBA應用開發(自學)應用開發(自學)p例:網格對象調用,客戶遠程調用服務器網格對象Grid Object的get()和set()操作,開發環境為C+編程語言網格對象網格對象客戶機客戶機服務器服務器widthheightget(row,col)set(row,col,value用用IDL定義接口定義接口/grid.idlinterface Grid read
42、only attribute short height; readonly attribute short width; void set(in short row, in short col, in long value); void get(in short row, in short col, out short value);編譯編譯IDL文件文件grid.idl客戶機客戶機服務器服務器Grid.idlgridC.cc客戶機樁客戶機樁ORB客戶機庫客戶機庫gridS.cc服務器骨架服務器骨架ORB服務器庫服務器庫Grid.hh公用的說明公用的說明/grid.hhclass Grid :
43、 public virtual CORBA : Object public: static Grid_ptr_bind(); virtual CORBA : Short height(CORBA : Environment&); virtual CORBA : Short width(CORBA : Environment&); virtual void set(CORBA : Short row, CORBA : Short col, CORBA : Long value, CORBA : Environment&); virtual void get(CORBA : Short row, CORBA : Short col, CORBA : Environment&);編譯編譯grid.idl生成的文件生成的文件/用C+語言定義對象實現Grid_i#include “grid.hh”class
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 超神數學-高考數學總復習基礎篇(一輪)(練習冊)專題07函數的單調性(含答案或解析)
- 全球厚膜光刻膠剝離液行業市場分析及前景預測報告(2025-2031)
- 福瑞股份MASH“賣水人”高成長通道即將打開
- 2025年4月全國土地市場報告
- 2025年中期銀行業重視價值回歸銀行有望迎來重估長牛
- 綠色金融產品創新對綠色金融產業鏈的影響分析報告
- 2025年電商平臺售后服務創新案例分析與啟示報告
- 共享辦公工位預訂系統在靈活辦公需求中的創新模式探討報告
- 寵物消費市場細分需求洞察2025年寵物用品市場細分需求分析報告
- 2025年學前教育機構師資隊伍教師評價與激勵機制報告
- 2025年陜西、山西、寧夏、青海四省(陜晉寧青)高考 生物真題試卷 附答案
- 2024年西昌市教育和體育局考核聘用公立幼兒園教師真題
- 2025設備租賃合同版本范文
- 2025年全國高考數學真題全國2卷
- 2025年高考數學全國二卷試題真題及答案詳解(精校打印)
- 《臨床技術操作規范-放射醫學檢查技術分冊》
- (高清版)JTGT 3610-2019 公路路基施工技術規范
- 工程機械液壓系統設計與計算--12噸起重機
- 聯想多媒體教學軟件操作指南
- 201811月北京成人學士學位英語考試真題和答案解析
- SOLO分類評價理論及應用解析(課堂PPT)
評論
0/150
提交評論