JP4536292B2 - ネットワークシステム、サーバ、クライアント、オブジェクト間通信方法、プロファイルオブジェクト登録方法、プログラム、および記憶媒体 - Google Patents

ネットワークシステム、サーバ、クライアント、オブジェクト間通信方法、プロファイルオブジェクト登録方法、プログラム、および記憶媒体 Download PDF

Info

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
Application number
JP2001180191A
Other languages
English (en)
Other versions
JP2003015891A (ja
Inventor
宏 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2001180191A priority Critical patent/JP4536292B2/ja
Priority to US10/159,305 priority patent/US7131126B2/en
Publication of JP2003015891A publication Critical patent/JP2003015891A/ja
Application granted granted Critical
Publication of JP4536292B2 publication Critical patent/JP4536292B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/46Indexing scheme relating to G06F9/46
    • G06F2209/462Lookup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer 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

【0001】
【発明の属する技術分野】
本発明は、分散システム環境上に構築されるネットワークシステム等に係り、より詳しくは、異機種や異バージョン等の製品間にて効率的な相互接続を可能とするネットワークシステム等に関する。
【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. 第1のORB(ObjectRequest Broker)が搭載される第1の装置と第2のORBが搭載される第2の装置とを含むネットワークシステムであって、
    前記第1のORBが備える実装仕様を提示するメソッドを含むプロファイルオブジェクトを生成する生成手段と、
    前記生成手段により生成された前記プロファイルオブジェクトを登録して公開する登録手段とを備え、
    前記第2のORBは、前記登録手段にアクセスすることにより前記プロファイルオブジェクトを取得して前記メソッドを呼び出してその戻り値を取得することにより前記第1のORBが備える実装仕様を取得し、当該第1のORBが備える実装仕様に合わせて当該第1のORBとの相互通信を実行することを特徴とする、
    ネットワークシステム。
  2. 前記登録手段は、CORBA(Common Object Request Broker Architecture)のネーミングサービスを提供するネーミングサーバに前記プロファイルオブジェクトを登録することを特徴とする請求項1記載のネットワークシステム。
  3. 前記生成手段は、前記第1のORBに対する仕様の変更があった場合に、変更された仕様に基づいて前記プロファイルオブジェクトを生成することを特徴とする請求項1記載のネットワークシステム。
  4. 分散システム環境にて構築されるネットワークシステムであって、
    第1のORB(ObjectRequest Broker)が搭載されるサーバと、
    前記第1のORBとは仕様が異なる第2のORBが搭載されるクライアントと、
    前記サーバに搭載された前記第1のORBが備える仕様を提示するメソッドを含むプロファイルオブジェクトをネーミングサービスに登録して提供するネーミングサーバと、を備え、
    前記クライアントの前記第2のORBは、前記ネーミングサーバ経由で前記プロファイルオブジェクトにアクセスし、前記第1のORBが備える仕様を前記メソッドを呼び出してその戻り値を取得することにより取得し、当該第1のORBが備える仕様に合わせて当該第1のORBとの相互通信を実行することを特徴とするネットワークシステム。
  5. 前記サーバは、前記第1のORBにおいて可変長のパラメータを一度に扱える最大データ長に対し、当該最大データ長を提示するメソッドを前記プロファイルオブジェクトに定義することを特徴とする請求項4記載のネットワークシステム。
  6. 前記第2のORBは、前記ネーミングサーバ経由で前記プロファイルオブジェクトを取得して前記第1のORBが扱える最大データ長を取得し、パラメータを分割して送信することを特徴とする請求項5記載のネットワークシステム。
  7. 分散システム環境にて構築されるネットワークシステムに設けられ、所定のORB(Object Request Broker)が実装されるサーバとの間で通信を行うクライアントであって、
    前記サーバにおける前記ORBの実装仕様を提示するメソッドを含む、公開されているプロファイルオブジェクトを取得する取得手段と、
    前記取得手段により取得された前記メソッドを呼び出して前記ORBの実装仕様を取得する取得手段と、
    前記取得手段により取得された前記ORBの実装仕様に合わせて前記ORBとの相互通信を実行する通信実行手段と、を備えたことを特徴とするクライアント。
  8. 第1のORB(ObjectRequest Broker)と当該第1のORBとは仕様の異なる第2のORBとの間でなされる分散システム環境におけるオブジェクト間通信方法であって、
    前記第1のORBの実装仕様を提示するメソッドを含むプロファイルオブジェクトを生成し、
    生成された前記プロファイルオブジェクトを登録して公開し、
    登録された前記プロファイルオブジェクトが前記第2のORBに取得されて前記第1のORBの仕様が前記メソッドを呼び出すことにより取得された後、前記第2のORBと前記第1のORBとの間にて、当該第1のORBの仕様に合わせた相互通信が実行されることを特徴とするオブジェクト間通信方法。
  9. コンピュータに、
    CORBA(CommonObject Request Broker Architecture)−IIOP(Internet Inter-ORB Protocol)通信を行うORB(ObjectRequest Broker)の実装仕様を他のORBに提示するメソッドを含むプロファイルオブジェクトを生成する機能と、
    前記他のORBとの前記CORBA−IIOP通信に先立ち、生成された前記プロファイルオブジェクトを登録して公開する機能と、
    登録された前記プロファイルオブジェクトにアクセスし、通信しようとするORBの実装仕様を前記メソッドを呼び出すことにより取得する機能と、
    取得された前記通信しようとするORBの実装仕様に合わせて相互通信を実行する機能と、を実現させるためのプログラム。
JP2001180191A 2001-06-14 2001-06-14 ネットワークシステム、サーバ、クライアント、オブジェクト間通信方法、プロファイルオブジェクト登録方法、プログラム、および記憶媒体 Expired - Fee Related JP4536292B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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