JP4536292B2 - ネットワークシステム、サーバ、クライアント、オブジェクト間通信方法、プロファイルオブジェクト登録方法、プログラム、および記憶媒体 - Google Patents
ネットワークシステム、サーバ、クライアント、オブジェクト間通信方法、プロファイルオブジェクト登録方法、プログラム、および記憶媒体 Download PDFInfo
- Publication number
- JP4536292B2 JP4536292B2 JP2001180191A JP2001180191A JP4536292B2 JP 4536292 B2 JP4536292 B2 JP 4536292B2 JP 2001180191 A JP2001180191 A JP 2001180191A JP 2001180191 A JP2001180191 A JP 2001180191A JP 4536292 B2 JP4536292 B2 JP 4536292B2
- Authority
- JP
- Japan
- Prior art keywords
- orb
- server
- profile object
- profile
- corba
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/46—Indexing scheme relating to G06F9/46
- G06F2209/462—Lookup
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/10015—Access to distributed or replicated servers, e.g. using brokers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、分散システム環境上に構築されるネットワークシステム等に係り、より詳しくは、異機種や異バージョン等の製品間にて効率的な相互接続を可能とするネットワークシステム等に関する。
【0002】
【従来の技術】
近年、ネットワーク技術の急激な普及によって、これを基盤とした分散システムの浸透が進み、システムの分散化およびマルチベンダ化が加速してきている。例えば、情報システムを構築して、様々なデータを電子化して業務の効率化を実現している企業は一般的になりつつあるが、多くの場合、個別の業務に特化して独立したシステムを使用しており、部門間にまたがる全社的な効率化や他の企業との共同作業を進めようとする際に、様々な問題点が生じている。例えば、企業間でのデータ共用の問題、システム間の相互接続の問題、各企業におけるシステム変更への対応の問題等である。このような問題に対処するために、分散オブジェクト技術が注目されている。この分散オブジェクト技術では、機能単位であるオブジェクトを分散システム上で管理し実行させる仕組みが提供されている。
【0003】
オブジェクト技術標準化団体の米OMG(Object Management Group)では、異なる納入業者(ベンダー)間の分散オブジェクト製品間の相互接続をその大きな目的として、CORBA(Common Object Request Broker Architecture)を仕様として定めている。CORBAは、クライアントがネットワークに存在するオブジェクト(分散オブジェクト)を呼び出すための基盤を提供しており、このCORBAには、分散オブジェクト環境にて、様々なマシン上のサーバ・オブジェクトとクライアント・アプリケーションとのやり取りを仲介するミドルウェアであるORB(Object Request Broker)の共通仕様が規程されている。
【0004】
ここで、CORBAに関する関連公報として、特開2000−224262号公報、特開平10−187637号公報が存在する。この特開2000−224262号公報には、管理対象である通信ネットワークを構成する各装置の様々な管理オブジェクトの形式や管理プロトコルに柔軟に対応してネットワーク管理をするために、同一ORB上の複数オブジェクトを管理するオブジェクトを情報管理オブジェクト(IMO)と名づけ、IMOによる複数CORBAオブジェクト(アプリケーションオブジェクト)をシステム管理する技術について示されている。
【0005】
また、CORBAサービスとして規程されているCORBAネーミングサービスは、CORBAアーキテクチャ上、複数独立して存在し得る。そのために、ある特定のCORBAオブジェクトにアクセスしたいクライアントは、どのネーミングサービスにアクセスしていいか解らない。特開平10−187637号公報では、複数のネーミングサービスが存在する場合に、ネーミングサービスの各構成要素を分散させた上で、個々の構成要素を擬似的に、一つのネーミングサービスに見せることによって、より柔軟性の高いネーミングサービスを提供する技術について開示されている。
【0006】
【発明が解決しようとする課題】
ここで、各CORBA製品を供給するベンダーは、CORBA仕様をそれぞれ解釈し、それに従って実装を行い、CORBA準拠製品と銘打って製品出荷を行っている。しかしながら、CORBA準拠製品間の接続テストを実際に行うと、ベンダー毎のCORBA仕様に対する解釈の違いや、ORBであるCORBA−IIOP(Internet Inter-ORB Protocol)通信用のランタイムモジュール実装の不備、或いは、ORBの独自実装等によって、必ずしも相互接続が成功しない場合がある。
【0007】
また、一旦、接続が成功したとしても、製品のリリースアップや修正毎にプログラムが変更されることから、製品間の接続検証をやり直す必要がある。更に、サーバ側のORBに優れた機能がサポートされたとしても、クライアントから動的に認識する手段を従来のCORBA−IIOP通信環境では備えておらず、システム全体の通信機能は必ずしも最適化が図られてはいなかった。
また更に、上述した特開2000−224262号公報および特開平10−187637号公報には、異機種或いは異バージョンのORB間通信を容易にするための技術については開示されておらず、上記課題を解決できるものではない。
【0008】
本発明は、以上のような技術的課題を解決するためになされたものであって、その目的とするところは、異なる仕様製品のORB間通信における相互接続に際して、信頼性の向上と通信効率の向上を図ることにある。
【0009】
【課題を解決するための手段】
かかる目的のもと、本発明は、CORBA−IIOP通信を実行するORBのサポート機能を提示できるプロファイル(Profile)オブジェクトをCORBAのオブジェクトとして定義、実装および公開することにより、他ベンダーがそのプロファイルオブジェクトを通じて接続しようとするORBの機能を把握し、その機能に沿った信頼性の高いCORBA−IIOP通信(Interoperability)を可能にしている。
【0010】
即ち、本発明は、第1のORBが搭載される第1の装置と、例えばベンダーが異なる第2のORBが搭載される第2の装置とを含むネットワークシステムであって、第1のORBが備える実装仕様を公開するためのプロファイル(Profile)オブジェクトを生成する生成手段と、生成されたプロファイルオブジェクトを登録する登録手段とを備え、この第2のORBは、登録手段にアクセスすることによりプロファイルオブジェクトを取得して第1のORBが備える実装仕様を認識し、第1のORBが備える実装仕様に基づいて第1のORBとの通信を実行することを特徴としている。
【0011】
ここで、この登録手段としては、CORBAのネーミングサービスを提供するネーミングサーバに、または、Webサーバ上にプロファイルオブジェクトを登録することが可能である。更に、リモートにある共有ディスクに登録するように構成することも可能である。
【0012】
他の観点から把えると、本発明は、分散システム環境にて構築されるネットワークシステムであって、第1のORBが搭載されるサーバと、第1のORBとは仕様が異なる第2のORBが搭載されるクライアントと、サーバに搭載された第1のORBが備える仕様を公開するためのプロファイルオブジェクトをネーミングサービスに登録して提供するネーミングサーバと、を備え、第2のORBは、ネーミングサーバ経由でプロファイルオブジェクトにアクセスし、第1のORBが備える仕様を把握することを特徴としている。
【0013】
ここで、このプロファイルオブジェクトへの定義としては、例えば、第1のORBにおいて可変長のパラメータを一度に扱える最大データ長に対し、この最大データ長を表現するメソッドを定義することが挙げられる。また、例えば、第1のORBがサポートしているCORBA−IIOP通信メッセージを公開できるメソッドを定義することが挙げられる。このようなプロファイルオブジェクトを取得した第2のORBでは、例えば、可変長のパラメータを分割して送信し、また例えば、第1のORBによってサポートされているCORBA−IIOP通信メッセージを用いて送信を実行するように構成することができる。かかる構成によって、異種ベンダー間における相互接続の信頼性を向上させることが可能となる。
【0014】
一方、本発明は、分散システム環境にて構築されるネットワークシステムに設けられ、所定のORBが搭載されるサーバとして把握することができる。このサーバでは、ORBが備える実装仕様を公開するためのプロファイルオブジェクトを生成する生成手段と、生成されたプロファイルオブジェクトを自らのメモリ等に登録し、または、ネーミングサービスを提供するネーミングサーバやWebサーバ、共有ディスク等、他のサーバに登録する登録手段を備えている。
【0015】
更に本発明は、分散システム環境にて構築されるネットワークシステムに設けられ、所定のORBが実装されるサーバとの間で通信を行うコンピュータ装置であるクライアントとして特定することが可能である。このクライアントでは、サーバにおけるORBの実装仕様を表すプロファイルオブジェクトを取得する取得手段と取得されたプロファイルオブジェクトを解析してORBの実装仕様を認識する認識手段と、認識されたORBの実装仕様に基づいてORBとの相互通信を実行する通信実行手段とを備えたことを特徴としている。
【0016】
ここで、取得されたプロファイルオブジェクトを記憶する記憶手段を更に備え、この記憶手段により記憶されたプロファイルオブジェクトと取得手段により新たに取得されたプロファイルオブジェクトとを比較し、ORB仕様の変更がある場合にはこの記憶手段に記憶されているプロファイルオブジェクトを更新するように構成できる。このように構成すれば、CORBA−IIOP通信を実行しようとする他の機種の仕様変更に対し、適切に対応することができる点で好ましい。
【0017】
また、本発明は、オブジェクト間通信方法、プロファイルオブジェクト登録方法として把握することができる。また、コンピュータに、所定の機能を実現させるためのプログラムとして、更に、コンピュータに実行させるプログラムをコンピュータが読取可能に記憶した記憶媒体として把えることができる。これらのプログラムは、CORBA−IIOP通信を行うORBのサポート機能を外部から知ることのできるプロファイルオブジェクトを生成する機能(処理)と、他のORBとのCORBA−IIOP通信に先立ち、生成されたプロファイルオブジェクトを登録する機能(処理)とをコンピュータに実現させることを特徴としている。
【0018】
【発明の実施の形態】
以下、添付図面に従って、本発明における実施の形態について詳細に説明する。
図1は、本実施の形態が適用されるクライアントサーバシステムを説明するための図である。このシステムでは、CORBA(Common Object Request Broker Architecture)に準拠したコンピュータ装置であるクライアント10とサーバ30、およびネーミングサーバ50がイントラネット等のネットワーク9を介して接続されている。クライアント10とサーバ30との間は、CORBAで仕様が定められているIIOP(Internet Inter-ORB Protocol)通信が行われる。
【0019】
このIIOPは、ORB(Object Request Broker)間の通信を実現するために米OMG(Object Management Group)が定めた共通プロトコルである。CORBAでは、異なるORB間での通信を実現するために、TCP/IPやOSIなどの通信プロトコルにおける上位の共通プロトコルとしてGIOP(General Inter-ORB Protocol)が定められている。IIOPは、このGIOPに従いTCP/IP等を使用して通信を行うために規定され、全てのORB製品で実装が必須となっている。これにより、所定の内容について、各ベンダーにて提供される、異なるORB製品間でのインタオペラビリティ(Interoperability)を可能としている。また、このIIOPを使用して、CORBA以外の代表的な分散システムと接続することが可能である。しかしながら、CORBA準拠製品間の接続テストを実際に行うと、ベンダー毎のCORBA仕様に対する解釈の違い等によって、必ずしも相互接続が成功しない場合があり、本実施の形態では、かかる問題点を解決している。
【0020】
本実施の形態では、クライアント10にベンダーX社によって提供されるX社ORB11が搭載され、リモートにあるメソッドを読み出すことができるように機能されている。サーバ30には、X社とは異なるベンダーであるY社によって提供されるY社ORB31が搭載されている。本実施の形態では、サーバ30のIIOP接続を司るY社ORB31のCORBAサポート仕様をクライアント10のX社ORB11が知り得るオブジェクト(プロファイル(Profile)オブジェクト)を定義している。このProfileオブジェクトを実装し、インスタンス化し、公開することにより、クライアント10がサーバ30のORB仕様を通信開始前に予め認識することを特徴としている。即ち、従来のORBにはプロファイルという概念は存在しなかったが、本実施の形態では、このプロファイルの概念を備えたProfileオブジェクトを実装および公開することにより、搭載されているORBの機能を、IIOP通信を行う相手装置に認識させることが可能となる。
【0021】
ここで、CORBA共通サービスの中における最も一般的なサービスとして、ネーミングサービス(NamingService)がある。このネーミングサービスは、CORBAオブジェクトに名前をつけて、オブジェクトに名前でアクセスできるようにするためのサービスであり、ネーミングサーバ50にて、名前の登録と参照が行われる。各社から出荷されているCORBA製品は、どの製品にもこのネーミングサービスが提供されている。本実施の形態では、このネーミングサービスに、サーバ30のY社ORB31が備えるサポート機能を外部から知ることができるオブジェクト(Profileオブジェクト)を予め登録しておき、クライアント10が稼動するX社ORB11がそのProfileオブジェクトにネーミングサーバ50経由でアクセスする。X社ORB11は、そのProfileオブジェクト経由でサーバ30のY社ORB31におけるCORBA仕様を把握する。これによって、X社ORB11はY社ORB31との間のIIOP通信障害を回避することができ、且つ、サーバ30のORB機能を利用した最適なIIOP通信が可能となる。
【0022】
図2は、サーバ30の構成を示したブロック図である。サーバ30では、自らが搭載しているORB(例えばX社ORB11)のCORBAサポート仕様(ORB仕様)を認識するORB仕様認識部21、認識されたCORBAサポート仕様に関する情報を格納するORB仕様格納部22、ORB仕様格納部22に格納されているORB仕様とORB仕様認識部21により新たに認識されたORB仕様とから、ORB仕様の変更があったか否かを判断する仕様変更判断部23、サーバ30のORBサポート機能を示したProfileオブジェクトを作成するProfileオブジェクト作成部24、作成されたProfileオブジェクトをネーミングサーバ50に送信するProfileオブジェクト送信部25を備えている。
【0023】
図3は、サーバ30にて実行されるProfileオブジェクトの登録処理を示すフローチャートである。サーバ30では、まず、ORB仕様認識部21によって、サーバ30に格納されているY社ORB31の仕様が認識される。そして、ORB仕様格納部22に格納されているORBの仕様との比較がなされ、例えばバージョンアップ等により、ORB仕様が変更されたか否かを仕様変更判断部23にて判断する(ステップ101)。変更されていない場合には、処理は終了するが、変更されている場合には、ネーミングサーバ50への接続を行う(ステップ102)。そして、Profileオブジェクト作成部24によってProfileオブジェクトが作成され(ステップ103)、作成されたProfileオブジェクトは、Profileオブジェクト送信部25から送信されて、ネーミングサーバ50に登録されることで(ステップ104)、Profileオブジェクト登録処理が終了する。
【0024】
図4は、クライアント10にて実行されるProfileオブジェクトの取得処理を示すフローチャートである。まず、クライアント10のX社ORB11は、ネーミングサーバ50への接続を行い(ステップ201)、ネーミングサービス経由でProfileオブジェクトを取得する(ステップ202)。ここで、前回取得されているProfileオブジェクトとの比較を行い(ステップ203)、ORB仕様の変更があるか否かが判断される(ステップ204)。変更がなければ、そのまま処理が終了し、変更があれば、クライアント10が記憶しているY社ORB31のProfileオブジェクトが更新されて(ステップ205)、Profileオブジェクトの取得処理が終了する。
【0025】
次に、図3および図4にて説明した処理の適用例について説明する。
CORBAのリモートオブジェクトのメソッドを呼び出すときに、パラメータが指定される。サーバ30の可変長パラメータの最大値については、通常、クライアント10では知り得る手段を有していない。従って、CORBA−IIOP通信が正常稼動しない場合が考えられる。しかしながら、本実施の形態によれば、以下に示すような構成によって、正常動作の確率向上が期待できる。
【0026】
サーバ30にて設けられているY社ORB31において、例えば、可変長のパラメータ(IDL(Interface Definition Language)例:String)を一度に扱える最大データ長が1Mバイト(byte)とする。まず、サーバ30では、Y社ORB31の機能を表現するProfileオブジェクトをYprofObjとし、YprofObjのメソッドとして、int getMaxStringData()およびvoid setMaxStringData()が定義される。また、サーバ30では、getMaxStringData()の戻り値が1MbyteになるようにYprofObjの実装が行われる。その後、YprofObjのインスタンス作成とネーミングサービスへの登録(bind())が行われる。
【0027】
クライアント10のX社ORB11では、ネーミングサービス経由でYprofObjのリファレンスが取得(resolve())された後、Y社ORB31のStringにおけるMAX値1Mbyteが認識される。また、クライアント10では、サーバ30のオブジェクトリファレンスが取得された後、サーバ30のメソッドに1.5Mbyte長のString型のパラメータが与えられる。X社ORB11では、Y社ORB31のStringパラメータにおける最大値が1Mbyteであることが認識されているので、CORBA−IIOP通信メッセージのFragmentを使用し、このStringパラメータが1Mbyteと0.5Mbyteのパラメータに分割した送信が実行される。
【0028】
ここで、Y社ORB31の変更がなされ、StringのMAX値が2byteになった場合、1.5Mbyteのパラメータの分割送信を止めて、一度の送信に変更される。これによって、サーバ30の特性を生かした効率の良いCORBA−IIOP通信を実現することができる。
【0029】
また、Y社ORB31の変更がなされ、StringのMAX値が0.5Mbyteになった場合には、1.5Mbyteのパラメータを3分割送信する。このように、一般には接続障害が発生する場合でも、かかる仕組みを導入することによって、障害なしに相互接続を実現することが可能となる。
【0030】
次に、IIOPメッセージの例について、説明する。
CORBAの最新仕様Version2.3では、CORBA−IIOP通信メッセージとして8種類のメッセージが規程されている。しかしながら、現状の各社CORBA製品は、最も頻繁に使用されるRequestおよびReplyはサポートされていても、それ以外の6種類(CancelRequest、LocateRequest、LocateReply、CloseConnection、MessageError、Fragment)のパラメータが全てのCORBA製品にサポートされているとは限らない。このことにより、異種ベンダー間において、CORBA−IIOP通信が障害を起こすケースが考えられる。従って、ベンダーがサポートしているIIOPメッセージを公開できるメソッドをProfileオブジェクトに定義することによって、かかる障害を回避できる可能性が高まる。
【0031】
サーバ30では、Y社ORB31のIIOPメッセージXXXX(IIOPメッセージ)のサポート状況を設定し、読み取り可能なメソッド(例:void_setXXXXSupported(boolean),boolean_getXXXXSupported())が定義される。例として、Y社ORB31にて、Locate_Requestがサポートされていない場合に、Profileオブジェクトの中で、例えば、_setXXXXSupported()メソッドで偽(0)が実装される。
【0032】
図5は、クライアント10にて、IIOPメッセージに対するサポートの有無による処理の一例を示した図である。前述したように、クライアント10のX社ORB11は、ネーミングサーバ50によるネーミングサービス経由でYProfObjのリファレンスを取得(resolve())する(ステップ301)。その後、getLocateRequestSupported()を呼び出し、Y社ORB31がLocateRequestメッセージをサポートしているか否かが判断される(ステップ302)。サポートしている場合には、LocateRequestが送信され(ステップ303)、その後の処理が継続される(ステップ305)。サポートしていない場合には、LocateRequestの代わりにRequestが送信される(ステップ304)。即ち、クライアント10からのLocateRequestは、クライアント10からのRequestメッセージに代替可能となる。その後、処理継続がなされる(ステップ305)。Y社ORB31では、Requestを受け取った後、Reply+LocationForward(LocateRequestに対するLocateReplyと等価)がX社ORB11に戻され、通信が続けられる。尚、この例では、Profileオブジェクトが存在しない場合には接続不能となる。
【0033】
図6は、サーバ30にて生成されるProfileオブジェクトの一例を示した図である。図6に示すProfileオブジェクトでは、struct giopVersion{にて、ORBのサポート1.0、1.1、1.2等が示される。例えば、1.2のときには、major01、minor02となる。octet SupportedIIOPMessage;では、サポートしているIIOPのメッセージが示される。CORBAでは、8種類のメッセージが規程されており、例えば、0xFFはフルサポート、0xF7はLocateRequestサポートのないことが示されている。longlong MaxDataVolume;では、一度に送信できるデータ量の最大値(例えば、10,000,000 // 10Mbyte)が示される。string ORBVender Name;では、ORBベンダー名(例えば、"IBM")が示される。更に、boolean InsSupport;は、INS(Interoeparble Naming Service)のサポートがあるか否かのフラグであり、例えば、1: サポート、0: サポートなし、が書き込まれる。
【0034】
図7は、Profileオブジェクトの他の例を示す図である。CORBAでは、相互接続に関して10種類の"ObjectServiceContext"仕様が規程されている。図7に示す、例えば"is_TransactionService"は、"TransactionService"がサポートされているかどうかという意味であり、その他も同様である。Profileオブジェクトとしては、これらの仕様がサポートされているか否かを示すことで、ORBのサポート機能を提示することが可能となる。
【0035】
以上のように、CORBAでは、その仕様が外部仕様として規程され、外部に公開されているが、ORBの実装については提供されていないことから、従来、異種CORBA製品間の接続に関しては、実装の違いによって実機検証で様々な不具合が発生していた。例えば、10Mバイトや20Mバイト等の例えば部品表のバイナリデータ等、非常に大きなデータを相手側に送ろうとしたときに、現状のORBにおけるCORBAのレベルでは、どのくらいのデータ量をサポートするかについては定められていない。この結果、例えば、一気に10Mバイトのデータを送った場合に、送りきれず、相手側では受信できずに障害が発生する場合があった。本実施の形態におけるProfileオブジェクトを用いれば、予め、どの程度のデータ量を受信することができるかを認識することができ、送信側から小出しに送って相手側がオーバフローしないように送信することが可能である。
【0036】
また、従来のCORBA製品では、接続した後のバージョンアップについても管理することができなかった。そのために、例えば、サーバ30にてGIOP1.0しかサポートされておらず、クライアント10にてGIOP1.2がサポートされている場合等にて、クライアント10がGIOP1.2で接続しようとすると、接続障害が生じる可能性があった。本実施の形態によれば、例えばサーバ30のY社ORB31に変更があっても、Profileオブジェクトの変更によってクライアント10のX社ORB11に変更内容を公開することが可能となり、相互接続障害を極力防ぐことが可能となる。
【0037】
このように、今までORBにはプロファイルという概念は存在しなかったが、本実施の形態によれば、この概念を有するProfileオブジェクトを実装および公開することによって、異種ベンダー間のCORBA−IIOP相互接続への信頼性向上と通信効率の向上を図ることができる。また、Profileオブジェクトは、CORBAだけではなく、同様にORBを利用するEJB(Enterprise JavaBeans)の異種ベンダー環境にも適合させることが可能である。更に、複数ベンダーのCORBAサーバが混在する環境でも、ベンダー毎のProfileオブジェクトの名前を返すメソッドを持つオブジェクトを定義、実装、および公開することで、より異質な環境にも柔軟に対応することが可能となる。
【0038】
尚、上述までの説明では、Profileオブジェクトの存在場所および呼び出し方法として、CORBAのネーミングサービスを利用する例について示しているが、他の方法によってサポート機能を相手側に知らせることが可能である。例えば、FTP(File Transfer Protocol)やHTTP(Hypertext Transfer Protocol)などを利用した他のサブシステムを用いてサポート機能を認識する方法が考えられる。例えば、インターネットのWeb上にサーバ30の備えるサポート機能の情報を配置し、クライアント10がインターネットのWebにアクセスし、HTTPによってサポート機能の情報を取得する等である。また、例えば、サーバ30とクライアント10とがリモートにある物理ドライブを共有し、例えばネットバイオス(NetBIOS)を用いてLAN経由でサポート機能を取得することも可能である。
【0039】
図8は、HTTPによってインターネットを介してWebサーバにアクセスし、ORBにおけるサポート機能の情報を取得する場合の例を示した図である。ここでは、Webサーバ70が示され、クライアント10とサーバ30とはインターネット80を介してWebサーバ70に対して接続されている。Webサーバ70には、Y社ORB31の仕様が示されたProfileオブジェクトが予め格納されている。クライアント10は、X社ORB11によってY社ORB31とIIOP相互通信を実行するに先立ち、HTTPを用いてWebサーバ70からProfileオブジェクトを取得し、Y社ORB31の仕様を認識する。仕様の認識後、ネットワーク9を介したIIOP相互通信を行うことで、上述したネーミングサーバ50からProfileオブジェクトを取得する場合と同様に、信頼性の高いIIOP相互通信(Interoperability)を可能とすることができる。尚、かかる態様の場合には、図3のステップ102、ステップ104、および図4のステップ201で示した「ネーミングサーバ」を「Webサーバ」に置き換えれば良い。
【0040】
図9は、共有ディスクを経由したProfileオブジェクトの受け渡し例を示した図である。ここでは、ローカルドライブを備え、各社のORBを備えたクライアント10およびサーバ30と、コンピュータ90とがローカルエリアネットワーク(LAN)91を介して接続されている。同じLAN91上のコンピュータ90が備える物理ドライブ(例えばCドライブ)をあたかも自分のコンピュータのローカルドライブ(例えばXドライブ)として利用できる技術を共有ディスクと呼び、通常は、LAN91とアプリケーションとの規約であるネットバイオス(NetBIOS)という通信プロトコルが使用される。本実施の形態では、サーバ30およびクライアント10間で、共有ディスクを経由し、Profileオブジェクトの受け渡しを可能としている。かかる態様の場合には、図3のステップ102、ステップ104、図4のステップ201に示した「ネーミングサーバ」を「共有ディスク」に置き換えることで、一連の処理を説明することができる。即ち、サーバ30は、共有ディスクへ接続し、生成されたProfileオブジェクトを共有ディスクへコピーする。クライアント10では、共有ディスクへ接続した後に、共有ディスクからProfileオブジェクトを取得してサーバ30の備えるY社ORB31のサポートしている仕様を認識し、認識された仕様に基づいて送受信を実行すれば良い。
【0041】
尚、上述した各処理は、サーバ30やクライアント10等のコンピュータ装置にて、所定のプログラムによって実行される。このプログラムは、所定の記憶媒体によって提供することができる。また、プログラム伝送装置等から提供される場合がある。この記憶媒体としては、コンピュータ装置に実行させるプログラムが、CD−ROM、DVD、メモリ、ハードディスク等の記憶媒体に、コンピュータ装置に読み取り可能に記憶される態様が考えられる。また、プログラムがインターネット等のネットワークを介してインストールされる場合には、所定のプログラム伝送装置から提供される態様となる。この場合に、プログラム伝送装置としては、これらのプログラムを記憶させたCD−ROM、DVD、メモリ、ハードディスク等の記憶手段と、この記憶手段からこれらのプログラムを読み出し、実行する装置側に、コネクタあるいはインターネットやLAN等のネットワークを介してこれらのプログラムを伝送する伝送手段とを備える構成が考えられる。
【0042】
【発明の効果】
以上説明したように、本発明によれば、異なる仕様製品のORB間通信における相互接続に際して、信頼性の向上を図ることが可能となる。
【図面の簡単な説明】
【図1】 本実施の形態が適用されるクライアントサーバシステムを説明するための図である。
【図2】 サーバの構成を示したブロック図である。
【図3】 サーバにて実行されるProfileオブジェクトの登録処理を示すフローチャートである。
【図4】 クライアントにて実行されるProfileオブジェクトの取得処理を示すフローチャートである。
【図5】 クライアントにて、IIOPメッセージに対するサポートの有無による処理の一例を示した図である。
【図6】 サーバにて生成されるProfileオブジェクトの一例を示した図である。
【図7】 Profileオブジェクトの他の例を示す図である。
【図8】 HTTPによってインターネットを介してWebサーバにアクセスし、ORBにおけるサポート機能の情報を取得する場合の例を示した図である。
【図9】 共有ディスクを経由したProfileオブジェクトの受け渡し例を示した図である。
【符号の説明】
9…ネットワーク、10…クライアント、11…X社ORB、21…ORB仕様認識部、22…ORB仕様格納部、23…仕様変更判断部、24…Profileオブジェクト作成部、25…Profileオブジェクト送信部、30…サーバ、31…Y社ORB、50…ネーミングサーバ、70…Webサーバ、80…インターネット、90…コンピュータ、91…ローカルエリアネットワーク(LAN)
Claims (9)
- 第1のORB(ObjectRequest Broker)が搭載される第1の装置と第2のORBが搭載される第2の装置とを含むネットワークシステムであって、
前記第1のORBが備える実装仕様を提示するメソッドを含むプロファイルオブジェクトを生成する生成手段と、
前記生成手段により生成された前記プロファイルオブジェクトを登録して公開する登録手段とを備え、
前記第2のORBは、前記登録手段にアクセスすることにより前記プロファイルオブジェクトを取得して前記メソッドを呼び出してその戻り値を取得することにより前記第1のORBが備える実装仕様を取得し、当該第1のORBが備える実装仕様に合わせて当該第1のORBとの相互通信を実行することを特徴とする、
ネットワークシステム。 - 前記登録手段は、CORBA(Common Object Request Broker Architecture)のネーミングサービスを提供するネーミングサーバに前記プロファイルオブジェクトを登録することを特徴とする請求項1記載のネットワークシステム。
- 前記生成手段は、前記第1のORBに対する仕様の変更があった場合に、変更された仕様に基づいて前記プロファイルオブジェクトを生成することを特徴とする請求項1記載のネットワークシステム。
- 分散システム環境にて構築されるネットワークシステムであって、
第1のORB(ObjectRequest Broker)が搭載されるサーバと、
前記第1のORBとは仕様が異なる第2のORBが搭載されるクライアントと、
前記サーバに搭載された前記第1のORBが備える仕様を提示するメソッドを含むプロファイルオブジェクトをネーミングサービスに登録して提供するネーミングサーバと、を備え、
前記クライアントの前記第2のORBは、前記ネーミングサーバ経由で前記プロファイルオブジェクトにアクセスし、前記第1のORBが備える仕様を前記メソッドを呼び出してその戻り値を取得することにより取得し、当該第1のORBが備える仕様に合わせて当該第1のORBとの相互通信を実行することを特徴とするネットワークシステム。 - 前記サーバは、前記第1のORBにおいて可変長のパラメータを一度に扱える最大データ長に対し、当該最大データ長を提示するメソッドを前記プロファイルオブジェクトに定義することを特徴とする請求項4記載のネットワークシステム。
- 前記第2のORBは、前記ネーミングサーバ経由で前記プロファイルオブジェクトを取得して前記第1のORBが扱える最大データ長を取得し、パラメータを分割して送信することを特徴とする請求項5記載のネットワークシステム。
- 分散システム環境にて構築されるネットワークシステムに設けられ、所定のORB(Object Request Broker)が実装されるサーバとの間で通信を行うクライアントであって、
前記サーバにおける前記ORBの実装仕様を提示するメソッドを含む、公開されているプロファイルオブジェクトを取得する取得手段と、
前記取得手段により取得された前記メソッドを呼び出して前記ORBの実装仕様を取得する取得手段と、
前記取得手段により取得された前記ORBの実装仕様に合わせて前記ORBとの相互通信を実行する通信実行手段と、を備えたことを特徴とするクライアント。 - 第1のORB(ObjectRequest Broker)と当該第1のORBとは仕様の異なる第2のORBとの間でなされる分散システム環境におけるオブジェクト間通信方法であって、
前記第1のORBの実装仕様を提示するメソッドを含むプロファイルオブジェクトを生成し、
生成された前記プロファイルオブジェクトを登録して公開し、
登録された前記プロファイルオブジェクトが前記第2のORBに取得されて前記第1のORBの仕様が前記メソッドを呼び出すことにより取得された後、前記第2のORBと前記第1のORBとの間にて、当該第1のORBの仕様に合わせた相互通信が実行されることを特徴とするオブジェクト間通信方法。 - コンピュータに、
CORBA(CommonObject Request Broker Architecture)−IIOP(Internet Inter-ORB Protocol)通信を行うORB(ObjectRequest Broker)の実装仕様を他のORBに提示するメソッドを含むプロファイルオブジェクトを生成する機能と、
前記他のORBとの前記CORBA−IIOP通信に先立ち、生成された前記プロファイルオブジェクトを登録して公開する機能と、
登録された前記プロファイルオブジェクトにアクセスし、通信しようとするORBの実装仕様を前記メソッドを呼び出すことにより取得する機能と、
取得された前記通信しようとするORBの実装仕様に合わせて相互通信を実行する機能と、を実現させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001180191A JP4536292B2 (ja) | 2001-06-14 | 2001-06-14 | ネットワークシステム、サーバ、クライアント、オブジェクト間通信方法、プロファイルオブジェクト登録方法、プログラム、および記憶媒体 |
US10/159,305 US7131126B2 (en) | 2001-06-14 | 2002-05-30 | Network systems, servers, clients, communication methods between objects, profile object registration methods, programs, and storage media |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001180191A JP4536292B2 (ja) | 2001-06-14 | 2001-06-14 | ネットワークシステム、サーバ、クライアント、オブジェクト間通信方法、プロファイルオブジェクト登録方法、プログラム、および記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003015891A JP2003015891A (ja) | 2003-01-17 |
JP4536292B2 true JP4536292B2 (ja) | 2010-09-01 |
Family
ID=19020649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001180191A Expired - Fee Related JP4536292B2 (ja) | 2001-06-14 | 2001-06-14 | ネットワークシステム、サーバ、クライアント、オブジェクト間通信方法、プロファイルオブジェクト登録方法、プログラム、および記憶媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7131126B2 (ja) |
JP (1) | JP4536292B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2376096B (en) | 2001-05-30 | 2005-06-29 | Ibm | Identification of the source of a client/server flow |
US7739688B1 (en) | 2006-01-03 | 2010-06-15 | Emc Corporation | Techniques for managing distribution of well-defined objects in a client/server system |
JP5292670B2 (ja) * | 2006-02-22 | 2013-09-18 | 富士通株式会社 | 開発支援プログラム、開発支援方法、及び開発支援装置 |
CN104683140A (zh) * | 2013-12-02 | 2015-06-03 | 中兴通讯股份有限公司 | 一种实现北向Corba接口规范无缝切换的方法及装置 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0785122A (ja) * | 1993-06-24 | 1995-03-31 | Yokoyama Yoshio | アプリケーシヨン構築システム |
US6282580B1 (en) | 1996-07-02 | 2001-08-28 | Sun Microsystems, Inc. | Bridge providing communication between different implementations of object request brokers |
US6016516A (en) * | 1996-08-07 | 2000-01-18 | Fuji Xerox Co. Ltd. | Remote procedure processing device used by at least two linked computer systems |
JPH1049392A (ja) * | 1996-08-07 | 1998-02-20 | Fuji Xerox Co Ltd | 遠隔手続処理装置 |
DE59604238D1 (de) | 1996-08-20 | 2000-02-24 | Alcatel Sa | Verfahren zur Verwaltung der Benennung von Objekten |
JPH10320206A (ja) | 1997-03-14 | 1998-12-04 | Toshiba Corp | 分散オブジェクトシステムにおけるオブジェクトの状態管理方法ならびに装置、及び同方法がプログラムされ記録される記録媒体、もしくはプログラムとして伝搬される通信媒体 |
US5999988A (en) * | 1997-03-31 | 1999-12-07 | Sun Microsystems, Inc. | Method and apparatus for generating and employing a run-time generated stub to reference an object in object oriented systems |
DE69731182T2 (de) * | 1997-04-14 | 2005-10-13 | Alcatel | Nachrichtenverfahren zwischen einer Dienstvermittlungsstelle und einer Dienstkontrolleinrichtung in einem Fernmeldenetz |
US6516354B2 (en) * | 1997-12-18 | 2003-02-04 | Sun Microsystems, Inc. | Method and apparatus for efficient representation of variable length identifiers in a distributed object system |
JPH11232104A (ja) | 1998-02-13 | 1999-08-27 | Nec Corp | オブジェクトの更新管理方法及びクライアント/サーバ・システム |
US6574675B1 (en) * | 1998-09-25 | 2003-06-03 | Netscape Communications Corporation | Simple workflow access protocol |
JP2000148698A (ja) * | 1998-11-11 | 2000-05-30 | Hitachi Ltd | 分散オブジェクトセキュリティシステム |
US6629112B1 (en) * | 1998-12-31 | 2003-09-30 | Nortel Networks Limited | Resource management for CORBA-based applications |
JP2000224262A (ja) | 1999-01-29 | 2000-08-11 | Nippon Telegr & Teleph Corp <Ntt> | ネットワーク管理システム |
US6453320B1 (en) * | 1999-02-01 | 2002-09-17 | Iona Technologies, Inc. | Method and system for providing object references in a distributed object environment supporting object migration |
US6735771B1 (en) * | 1999-03-12 | 2004-05-11 | Perot Systems Corporation | System and method for delivering web services using common object request broker architecture |
JP2000322288A (ja) | 1999-05-06 | 2000-11-24 | Fujitsu Ltd | 分散オブジェクト開発システム、および、分散オブジェクト開発をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6567818B1 (en) * | 1999-06-14 | 2003-05-20 | International Business Machines Corporation | Employing management policies to manage instances of objects |
JP2001134540A (ja) | 1999-11-02 | 2001-05-18 | Nec Corp | 分散オブジェクト呼出しシステム |
US6629128B1 (en) * | 1999-11-30 | 2003-09-30 | Recursion Software, Inc. | System and method for distributed processing in a computer network |
JP2001159978A (ja) | 1999-12-02 | 2001-06-12 | Nec Corp | 分散オブジェクトプログラム実行支援システム |
US6839748B1 (en) * | 2000-04-21 | 2005-01-04 | Sun Microsystems, Inc. | Synchronous task scheduler for corba gateway |
US6578050B1 (en) * | 2000-06-01 | 2003-06-10 | Sprint Communications Company, L.P. | Method and apparatus for implementing persistence in name services associated with computer system |
US6751646B1 (en) * | 2000-06-01 | 2004-06-15 | Sprint Communications Company L.P. | Method and apparatus for implementing CORBA compliant name services incorporating load balancing features |
-
2001
- 2001-06-14 JP JP2001180191A patent/JP4536292B2/ja not_active Expired - Fee Related
-
2002
- 2002-05-30 US US10/159,305 patent/US7131126B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20020194391A1 (en) | 2002-12-19 |
US7131126B2 (en) | 2006-10-31 |
JP2003015891A (ja) | 2003-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11171897B2 (en) | Method and apparatus for composite user interface generation | |
US5926636A (en) | Remote procedural call component management method for a heterogeneous computer network | |
US7607128B2 (en) | Method and system for enabling a server application to be executed in the same virtual machine as a client application using direct object oriented programming method calls | |
US7644415B2 (en) | Application programming interface to the simple object access protocol | |
US6687831B1 (en) | Method and apparatus for multiple security service enablement in a data processing system | |
US8276166B2 (en) | System and method for providing interoperability between different programming protocols | |
US20080140760A1 (en) | Service-oriented architecture system and methods supporting dynamic service provider versioning | |
US7051341B2 (en) | Method, system, and program for implementing a remote method call | |
US20080140857A1 (en) | Service-oriented architecture and methods for direct invocation of services utilizing a service requestor invocation framework | |
US20070174846A1 (en) | System and Method for Intercepting, Instrumenting and Characterizing Usage of an Application Programming Interface | |
US7055147B2 (en) | Supporting interactions between different versions of software for accessing remote objects | |
JPH1083308A (ja) | スタブ検索及びローディング・サブシステム、スタブ検索及びローディング方法並びにスタブ検索及びローディング用記録媒体 | |
CN111510330B (zh) | 接口管理装置、方法及存储介质 | |
US20020046304A1 (en) | Dynamic class loading | |
US7043726B2 (en) | Binding of processes in network systems | |
US7756969B1 (en) | Dynamic provisioning of identification services in a distributed system | |
KR20020021237A (ko) | 임베디드 시스템의 통합 소프트웨어 개발 프레임워크를제공하는 실시간 미들웨어 장치 및 그 서비스 방법 | |
JP4536292B2 (ja) | ネットワークシステム、サーバ、クライアント、オブジェクト間通信方法、プロファイルオブジェクト登録方法、プログラム、および記憶媒体 | |
AU775624B2 (en) | Method and apparatus for dynamic command extensibility in an intelligent agent | |
WO2017166166A1 (en) | System and method for providing runtime tracing for web-based client accessing transactional middleware platform using extension interface | |
US20080245860A1 (en) | Method and System for Remote Card Access, Computer Program Product Therefor | |
KR20040101537A (ko) | 기존의 시스템 관리 제품들 또는 소프트웨어 솔루션들과인터페이스하는 시스템 및 방법 | |
US7770188B2 (en) | Winsock APIs | |
US7870275B1 (en) | Communication scheme-independent infrastructure | |
US20050165905A1 (en) | Device and method for changing instruction description, and storage medium storing program for changing instruction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050830 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050927 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20051014 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20051209 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20051214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060418 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060710 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060713 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061017 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070220 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070521 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20070626 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20071130 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100412 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100416 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100510 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100616 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130625 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |