JP2010067156A - クライアントサーバシステム - Google Patents

クライアントサーバシステム Download PDF

Info

Publication number
JP2010067156A
JP2010067156A JP2008234840A JP2008234840A JP2010067156A JP 2010067156 A JP2010067156 A JP 2010067156A JP 2008234840 A JP2008234840 A JP 2008234840A JP 2008234840 A JP2008234840 A JP 2008234840A JP 2010067156 A JP2010067156 A JP 2010067156A
Authority
JP
Japan
Prior art keywords
add
api
client
proxy
server
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.)
Pending
Application number
JP2008234840A
Other languages
English (en)
Inventor
Takeo Hori
武雄 堀
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.)
Kubota Corp
Original Assignee
Kubota 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 Kubota Corp filed Critical Kubota Corp
Priority to JP2008234840A priority Critical patent/JP2010067156A/ja
Publication of JP2010067156A publication Critical patent/JP2010067156A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】CADが更新されて設計データの様式が新しくなっても、サーバもクライアントも改変することなく、その新しい様式の設計データをサーバの既存APIで処理することができるクライアントサーバ型CADデータ管理システムを提供する。
【解決手段】このシステム10は、サーバ12とクライアント14との間にプロキシ16を介在させ、サーバ12のAPI1〜APInをフックするアドインAI1〜AImをプロキシ16に追加し、アドインAI1〜AImがAPI1〜APInを呼び出すと、引数を変更したり、戻り値を変更したりする。アドインAI1〜AImがフックするAPI1〜APInは、API・アドインマップ26に登録される。
【選択図】図1

Description

本発明は、クライアントサーバシステムに関し、さらに詳しくは、CAD(Computer Aided Design)用の設計データを管理するクライアントサーバ型CADデータ管理システムに関する。
CAD(アプリケーションプログラム)で作成された設計データの管理には、CADとは別に、専用のデータ管理プログラムが用いられる。このデータ管理プログラムは、作成された設計データを保存したり、検索したり、参照したり、再利用したりする機能を有し、チームで1つの製品を設計するためには必須のソフトウェア(以下、「管理ソフト」という。)である。この管理ソフトはCADベンダから提供されているが、CADベンダ以外のベンダからも提供されている。
データ管理プログラムを用いたクライアントサーバ型CADデータ管理システムは、設計者がCADを操作して設計データを作成するクライアントコンピュータ(以下、単に「クライアント」という。)と、設計データを一元的に管理するサーバコンピュータ(以下、単に「サーバ」という。)とを備える。このシステムにおいては、サーバが各種API(Application Programming Interface)を備え、クライアントがその中から所望のAPIを呼び出す。したがって、CADが更新されれば、これらのAPIも更新されなければならない。
しかしながら、データ管理プログラムの複雑化に伴い、CADベンダによる更新の対応が遅れているのが現状である。また、APIを追加できるように設計されてないデータ管理プログラムの場合、CADベンダしかAPIを追加することができない。したがって、CADベンダが対応しなければ、管理ソフトベンダはAPIを追加することができない。また、APIを追加できるように設計されているデータ管理プログラムの場合であっても、APIを追加すると、CADやデータ管理プログラムが更新されるたびに、追加したAPIのメンテナンスをしなければならない。また、API自体を改変することは更新されたCADを熟知しているCADベンダにとっては容易であるが、更新されたCADを熟知していない管理ソフトベンダにとっては困難である。
なお、特開2000−222324号公報(特許文献1)には、テキスト、イメージ、プログラム、ハイパーリンク、表、アプレットなど、HTMLで記述できる全ての種類のオブジェクトを追加できるウェブページカスタマイズシステムが開示されている。このシステムは、ユーザのコンピュータから、カスタマイズしたいページをプロキシサーバを介して要求し、プロキシサーバが、要求されたページにカスタマイズのためのプログラムを埋め込み、コンピュータのブラウザにより、該プログラムの埋め込まれたページを表示し、該プログラムが、カスタマイズ操作のための制御パネルを表示し、制御パネルを用いたユーザのカスタマイズ操作に応じて、ページをカスタマイズするように構成されている。しかしながら、同公報には、後述する本発明の課題及びその解決手段は何ら開示も示唆もされていない。
特開2000−222324号公報
本発明の目的は、あるアプリケーションプログラムが更新され、そのプログラムで作成されるデータの様式が新しくなっても、サーバもクライアントも改変することなく、その新しい様式のデータをサーバの既存APIで処理することができるクライアントサーバシステムを提供することである。
課題を解決するための手段及び発明の効果
本発明によるクライアントサーバシステムは、サーバと、クライアントと、サーバ及びクライアント間に接続されるプロキシコンピュータ(以下、単に「プロキシ」という。)とを備える。サーバは、複数のAPIを含む。クライアントは、複数のAPIの中から所望のAPIを呼び出すAPI呼出手段を含む。プロキシは、複数のアドインと、アドイン特定手段と、アドイン呼出手段とを含む。複数のアドインは、複数のAPIに対応する。各アドインは、対応するAPIをフックし、かつ、対応するAPIを呼び出して引数及び/又は戻り値を変更する。アドイン特定手段は、複数のアドインの中からAPI呼出手段により呼び出されたAPIに対応するアドインを特定する。アドイン呼出手段は、アドイン特定手段により特定されたアドインを呼び出す。
本発明によれば、サーバ及びクライアント間にプロキシを接続し、サーバのAPIをフックするアドインをプロキシに追加し、アドインがAPIを呼び出して引数及び/又は戻り値を変更するようにしているため、処理対象となるデータの様式が更新されても、クライアント及びサーバを改変することなく、その新しい様式のデータを既存のAPIで処理することができる。
好ましくは、プロキシはさらに、API・アドインマップと、登録判断手段と、API呼出手段とを含む。API・アドインマップには、APIをフックしているアドインが登録される。登録判断手段は、API呼出手段により呼び出されたAPIをフックしているアドインがAPI・アドインマップに登録されているか否かを判断する。API呼出手段は、登録判断手段による判断の結果、当該アドインが登録されていない場合、API呼出手段により呼び出されたAPIを呼び出す。一方、登録判断手段による判断の結果、当該アドインが登録されている場合、アドイン特定手段は当該アドインを特定する。
この場合、アドインがサーバのAPIをフックしていれば、プロキシがアドインを呼び出すが、アドインがサーバのAPIをフックしていなければ、クライアントがプロキシをスルーしてサーバのAPIを呼び出す。
好ましくは、プロキシはさらに、アドインがフック可能なAPIをアドインに問い合わせてAPI・アドインマップを作成するマップ作成手段を含む。
この場合、API・アドインマップは自動的に作成される。
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
図1を参照して、本発明の実施の形態によるクライアントサーバ型CADデータ管理システム10は、サーバ12と、1又は2以上のクライアント14と、プロキシ16とを備える。プロキシ16は、サーバ12及びクライアント14の間に接続され、サーバ12に対してクライアントとして機能し、クライアント14に対してサーバとして機能する。
サーバ12には、CADデータ管理用のサーバプログラム18がインストールされ、複数のAPI1〜APInが搭載される。各クライアント14には、CADデータ管理用のクライアントプログラム22がインストールされる。サーバプログラム18、API1〜APIn及びクライアントプログラム22は、CADソフトベンダから提供されている既存のもので、設計データの保存、検索、参照、再利用などの基本機能をサーバ12及びクライアント14に実現させるためのものである。
プロキシ16には、プロキシプログラム24がインストールされ、さらに複数のアドインプログラム(以下、単に「アドイン」という。)AI1〜AImが追加インストールされる。アドインAI1〜AImは、サーバ12のAPI1〜APInをフックし、上記基本機能と異なる各種拡張機能をプロキシ16に実現させるためのもので、必要に応じて追加、削除、有効化、無効化などが可能である。プロキシ16にはまた、プロキシプログラム24によって作成されるAPI・アドインマップ26が記憶される。
なお、サーバ12、クライアント14及びプロキシ16は全てコンピュータであるから、図示は省略するが、CPU(Central Processing Unit)、メモリ、ハードディスク、各種入出力装置などを備える。サーバプログラム18、クライアントプログラム22、API1〜APIn、アドインAI1〜AIm、及びAPI・アドインマップ26は、各コンピュータのハードディスク又はメモリに記憶される。
以下、CADデータ管理システム10の動作を説明する。
[初期化処理]
まず図2を参照して、初期化処理を説明する。
プロキシ16はプロキシプログラム24に従ってステップS11〜S16を実行し、アドインAI1に従ってステップS21〜S22を実行し、アドインAImに従ってステップS23〜S24を実行する。その他のアドインも同様である。以下、より具体的に説明する。
プロキシプログラム24は、あらかじめ作成されている初期設定ファイル28を読み込み、以下のステップで呼び出すべきアドインを決定する(S11)。初期設定ファイル28には、プロキシ16に追加インストールされている全てのアドインAI1〜AImの識別情報が優先順位とともにあらかじめ登録されている。
プロキシプログラム24は、決定したアドインAI1〜AImのうち最初のアドインAI1を呼び出す(S12)。この呼出に応じて、アドインAI1は起動する(S21)。プロキシプログラム24は、起動したアドインAI1に対し、アドインAI1がフック可能なAPIを問い合わせる(S13)。この問合せに応じて、アドインAI1は、自身がフック可能なAPIをプロキシプログラム24に返答する(S22)。
ここで、一部の特殊なアドイン(たとえば後述するログアドイン)は、プロキシプログラム24からの問合せに応じて、逆にプロキシ24に実装されている全てのAPI1〜APInを表した一覧を要求する。プロキシプログラム24は、この特殊なアドインからの要求に応じて、全てのAPI1〜APInを表した一覧を提供する。この場合、特殊なアドインはサーバ12に追加又は変更されたAPI1〜APInを知らなくてもAPI1〜APInをフックすることができる。
プロキシプログラム24は、その他のアドインについても上記と同様の処理を繰り返した後、最後のアドインAImを呼び出す(S14)。この呼出に応じて、アドインAImは起動する(S23)。プロキシプログラム24は、起動したアドインAImに対し、アドインAImがフック可能なAPIを問い合わせる(S15)。この問合せに応じて、アドインAImは、自身がフック可能なAPIをプロキシプログラム24に返答する(S24)。
そして、プロキシプログラム24は、アドインAI1〜AImからの返答に基づいて、API・アドインマップ26を作成する(S16)。作成されたAPI・アドインマップ26の一例を図3に示す。API・アドインマップ26には、各アドインがフックするAPIが登録される。たとえば図3に示した例では、アドインAI1はAPI1及びAPI3をフックし、アドインAI2はAPI2のみをフックし、アドインAI3は全てのAPI1〜APInをフックし、アドインAImはAPIn−1をフックしている。各アドインは、1つだけでなく複数のAPIをフックする場合がある。また、複数のアドインが同じAPIをフックする場合もある。
この初期化処理によれば、後述するプロキシ16の介入処理に必要なAPI・アドインマップ26があらかじめ自動的に作成される。
[要求時の介入処理]
次に図4を参照して、クライアント14からサーバ12への要求時におけるプロキシ16の介入処理を説明する。
クライアント14は、クライアントプログラム22に従ってステップS31〜S33を実行する。プロキシ16は、プロキシプログラム24に従ってステップS41〜S50を実行し、かつ、アドインプログラムAI1〜AImに従ってステップS61を実行する。サーバ12は、サーバプログラム18に従ってステップS71〜S74を実行する。以下、より具体的に説明する。
クライアント14は、サーバ12のAPIx(x=1〜n)を呼び出すために、コールコマンドをサーバ12に向けて送信する(S31)。サーバ12とクライアント14との間にはプロキシ16が介在しているため、プロキシ16はクライアント14からサーバ12への要求を遮ってコールコマンドを受信する(S41)。プロキシプログラム24は、受信したコールコマンドを解析し、クライアント14が呼び出そうとしているAPIxに対応する1又は2以上のアドインAIy(y=1〜m)がAPI・アドインマップ26に登録されているか否かを判断する(S42)。
対応するアドインAIyが登録されていない場合(S42でNO)、プロキシプログラム24はそのコールコマンドをそのまま通過させることにより、サーバ12のAPIxを呼び出す(S43)。サーバ12はそのコールコマンドを受信し(S71)、APIxの実行を開始する(S72)。
一方、対応する1又は2以上のアドインAIyが登録されている場合(S42でYES)、プロキシプログラム24は、そのアドインAIyを特定し(S44)、そのアドインAIyがフックしているAPIxを正規化し、引数と戻り値のインターフェイスを所定の書式に合わせる(S45)。
続いて、プロキシプログラム24は、特定したアドインAIyを順番に呼び出し(S46,S48)、これにより要求された処理をアドインAIyに移譲する。この呼出に応じて、アドインAIyは、特有の拡張機能を実行する他、コールコマンドに含まれる引数を変更した上でAPIxに引き渡したり、APIxから引き渡された戻り値を変更した上でプロキシプログラム24に返却したりする(S61,S63)。アドインAI1〜AImの中には、特有の拡張機能を実行する他、引数のみを変更するもの、戻り値のみを変更するもの、引数及び戻り値の両方を変更するもの、あるいは戻り値を独自に作成するものがある。ここで、戻り値を独自に作成するとは、アドインAIyがクライアント14からの呼出内容に関係なく所定の戻り値を作成することであり、戻り値を変更することの一種である。そして、アドインAIyは、APIxの呼出を中止するか否かを判断する(S62,S64)。
アドインAIyがAPIxの呼出を中止すると判断した場合(S62,S64でYES)、プロキシプログラム24は、アドインAIyが返した戻り値をクライアント14に返却する(S47,S49)。クライアント14は、プロキシ16から返却された戻り値を受信し、APIxの呼出を完了する(S32,S32)。
一方、ステップS44で特定された1又は2以上のアドインAIyの全てがAPIxの呼出を中止すると判断した場合(S62,S64でNO)、プロキシプログラム24はクライアント14からの呼出をそのまま通過させ、原則通りサーバ12のAPIxを呼び出す(S50)。サーバ12はこの呼出を受信し(S73)、APIxの実行を開始する(S74)。
[応答時の介入処理]
次に図5を参照して、サーバ12からクライアント14への応答時におけるプロキシ16の介入処理を説明する。
クライアント14は、クライアントプログラム22に従ってステップS34〜S35を実行する。プロキシ16は、プロキシプログラム24に従ってステップS51〜S58を実行し、かつ、アドインプログラムAI1〜AImに従ってステップS65〜S66を実行する。サーバ12は、サーバプログラム18に従ってステップS75を実行する。以下、より具体的に説明する。
サーバ12はAPIxの実行を開始し(S72,S74)、完了すると、その戻り値をクライアント14に向けて送信する(S75)。しかし、サーバ12とクライアント14との間にはプロキシ16が介在しているため、プロキシ16はサーバ12からクライアント14への応答を遮って戻り値を受信する(S51)。
プロキシプログラム24は、APIxに対応するアドインAIy(y=1〜m)がAPI・アドインマップ26に登録されているか否かを判断する(S52)。この判断はステップS42の判断と同じである。
対応するアドインAIyが登録されていない場合(S52でNO)、プロキシプログラム24はその戻り値をそのまま通過させてクライアント14に返却する(S53)。クライアント14はその戻り値を受信し、APIxの実行を完了する(S34)。
一方、対応するアドインAIyが登録されている場合(S52でYES)、プロキシプログラム24は、そのアドインAIyを特定し(S54)、そのアドインAIyがフックしているAPIxを正規化する(S52)。
続いて、プロキシプログラム24は、特定した1又は2以上のアドインAIyを順番に呼び出し、これにより要求された処理をアドインAIyに移譲する(S56,S57)。この呼出に応じて、アドインAIyは、特有の拡張機能を実行する他、戻り値を変更した上でプロキシプログラム24に返却する(S65,S66)。
プロキシプログラム24は、アドインAIyから返却された戻り値をクライアント14に返却する(S58)。クライアント14は、プロキシ16から返却された戻り値を受信し、APIxの呼出を完了する(S35)。
[アドインの具体例]
上記アドインAI1〜AImが有する特有の拡張機能は特に限定されないが、以下、拡張機能の具体例を2つ紹介する。
(1)セキュリティアドイン
セキュリティアドインは、ファイル削除APIをフックする。ファイル削除APIは、指定されたファイルをサーバ12から削除する特有の拡張機能を有する。ファイル削除APIの引数は、削除すべきファイルを特定する識別子「ID」である。ファイル削除APIの戻り値は、ファイルの削除に成功した場合は「0」になり、失敗した場合はそれ以外の値になる。セキュリティアドインは、クライアント14からサーバ12への要求時にのみ処理を行い、サーバ12からクライアント14への応答時には処理を行わない。以下、図6を参照して、より具体的に説明する。
ファイル削除APIをフックするアドインとしてセキュリティアドインが初期設定ファイル28に登録され、図2に示した初期化処理により、ファイル削除APIをフックするアドインとしてセキュリティアドインがAPI・アドインマップ26に登録される。
まず、クライアント14は、サーバ12のファイル削除API「DeleteFile(ID)」の呼出を開始する(S31)。プロキシプログラム24は、クライアント14が呼び出そうとしているファイル削除APIに対応するアドインがAPI・アドインマップ26に登録されていると判断する(S42)。
プロキシプログラム24は、ファイル削除APIに対応するアドインとしてセキュリティアドインを特定し(S44)、ファイル削除APIを正規化する(S45)。
続いて、プロキシプログラム24は、特定したセキュリティアドインを呼び出し、これにより要求された処理をセキュリティアドインに移譲する(S46)。具体的には、ファイル削除APIの関数名「DeleteFile」、引数「ID」及び戻り値をセキュリティアドインに伝達する。この呼出に応じて、セキュリティアドインは、引数「ID」で特定されるファイルが削除されないように保護されているか否かを判断する(S60)。
ファイルが保護されている場合(S60でYES)、セキュリティアドインは、戻り値を「1」に変更する。戻り値「1」はファイルの削除に失敗したことを意味する。セキュリティアドインは、変更した戻り値「1」をプロキシプログラム24に引き渡し、以降のアドインが誤動作しないようにAPIの呼出中止を依頼する(S62)。
プロキシプログラム24は、セキュリティアドインから返却された戻り値「1」をクライアント14に返却する(S47)。クライアント14は、プロキシ16から返却された戻り値「1」を受信し、ファイル削除API「DeleteFile(ID)」の呼出を完了する(S32)。
一方、ファイルが保護されていない場合(S60でNO)、プロキシプログラム24は、サーバ12のファイル削除API「DeleteFile(ID)」を呼び出す(S50)。この呼出に応じて、サーバ12はファイル削除APIの実行を開始する(S74)。
(2)ログアドイン
ログアドインは、サーバ12のファイルダウンロードAPIをフックする。ファイルダウンロードAPIは、指定されたファイルをサーバ12からダウンロードする機能を有する。ファイルダウンロードAPIの引数は、ダウンロードすべきファイルを特定する識別子「ID」である。ファイルダウンロードAPIの戻り値は、指定されたファイルのバイナリデータである。ログアドインは、サーバ12からクライアント14への応答時にのみ処理を行い、クライアント14からサーバ12への要求時には処理を行わない。以下、図7を参照して、より具体的に説明する。
ファイルダウンロードAPIをフックするアドインとしてログアドインが初期設定ファイル28に登録され、図2に示した初期化処理により、ファイルダウンロードAPIをフックするアドインとしてログアドインがAPI・アドインマップ26に登録される。
サーバ12はファイルダウンロードAPI「DownloadFile(ID)」の実行を完了すると、その戻り値をクライアント14に向けて送信する(S75)。プロキシプログラム24は、サーバ12から送信された戻り値を受信し、ファイルダウンロードAPIに対応するアドインがAPI・アドインマップ26に登録されていると判断する(S52)。
プロキシプログラム24は、ファイルダウンロードAPIに対応するアドインとしてログアドインを特定し(S54)、ファイルダウンロードAPIを正規化する(S55)。
続いて、プロキシプログラム24は、特定したログアドインを呼び出し、これにより要求された処理をログアドインに移譲する(S56)。この呼出に応じて、ログアドインは、ファイルダウンロードAPIはどのクライアント14により呼び出されたのかをプロキシ16に問い合わせるために、プロキシ16に接続クライアント情報を要求する(S67)。接続クライアント情報は、ファイルダウンロードAPIを呼び出したクライアントの識別情報であって、プロキシ16で管理されている。
プロキシプログラム24は、この要求に応じて、接続クライアント情報をログアドインに返答する(S59)。ログアドインは、返答された接続クライアント情報に基づいて、ファイルのダウンロードを実行した日時、ユーザ、クライアントIP、APIなどを記録する(S68)。
プロキシプログラム24は、アドインAIyから返却された戻り値をクライアント14に返却する(S58)。クライアント14は、プロキシ16から返却された戻り値を受信し、ファイルダウンロードAPIの呼出を完了する(S35)。
以上のように、本発明の実施の形態によれば、サーバ12とクライアント14との間にプロキシ16を介在させ、サーバ12のAPI1〜APInをフックするアドインAI1〜AImをプロキシ16に追加し、アドインAI1〜AImがAPI1〜APInを呼び出し、引数を変更したり、戻り値を変更したりしているため、CADが更新されて設計データの様式が新しくなっても、サーバ12もクライアント14も改変することなく、その新しい様式の設計データを既存のAPI1〜APInで処理することができる。
上記実施の形態では、サーバ12のAPI1〜APInと同じAPI1〜APInがプロキシ16にも実装されているが、サーバ12及びプロキシ16がAPI1〜APInを共用するようにしてもよい。
また、上記実施の形態では、プロキシ16はサーバ12を構成するコンピュータとは別のコンピュータで構成されているが、プロキシプログラム24及びアドインAI1〜AImをサーバ12と同じコンピュータにインストールすることにより、サーバ12及びプロキシ16を1台のコンピュータで構成してもよい。また、サーバプログラム18、クライアントプログラム14、プロキシプログラム24及びアドインAI1〜AImを全て同じコンピュータにインストールすることにより、サーバ12、クライアント14及びプロキシ16を1台のコンピュータで構成してもよい。
また、上記実施の形態はCAD用の設計データを管理しているが、本発明はこれに限定されることなく、たとえば文書管理、画像管理、動画管理、スケジュール管理、地理情報管理、顧客管理、販売管理、会計情報管理、生産管理、製品管理、部品管理、資産管理、施設管理、プロジェクト管理など、各種データを管理するシステムにも適用可能である。
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
本発明の実施の形態によるクライアントサーバ型CADデータ管理システムの全体構成を示す機能ブロック図である。 図1に示したCADデータ管理システムの初期化処理を示すフロー図である。 図3に示した初期化処理で作成されるAPI・アドインマップを示す図である。 図1に示したCADデータ管理システムにおいて、クライアントからサーバへの要求時におけるプロキシの介入処理を示すフロー図である。 図1に示したCADデータ管理システムにおいて、サーバからクライアントへの応答時におけるプロキシの介入処理を示すフロー図である。 図4に示したプロキシの介入処理のうちセキュリティアドインの例を示すフロー図である。 図5に示したプロキシの介入処理のうちログアドインの例を示すフロー図である。
符号の説明
10 データ管理システム
12 サーバ
14 クライアント
16 プロキシ
18 サーバプログラム
22 クライアントプログラム
24 プロキシプログラム
26 API・アドインマップ
28 初期設定ファイル

Claims (6)

  1. サーバと、クライアントと、前記サーバ及び前記クライアント間に接続されるプロキシとを備えるクライアントサーバシステムであって、
    前記サーバは、複数のAPIを含み、
    前記クライアントは、前記複数のAPIの中から所望のAPIを呼び出すAPI呼出手段を含み、
    前記プロキシは、
    前記複数のAPIに対応し、各々が、対応するAPIをフックし、かつ、対応するAPIを呼び出して引数及び/又は戻り値を変更する複数のアドインと、
    前記複数のアドインの中から前記API呼出手段により呼び出されたAPIに対応するアドインを特定するアドイン特定手段と、
    前記アドイン特定手段により特定されたアドインを呼び出すアドイン呼出手段とを含む、クライアントサーバシステム。
  2. 請求項1に記載のクライアントサーバシステムであって、
    前記プロキシはさらに、
    前記APIをフックしているアドインを登録したAPI・アドインマップと、
    前記API呼出手段により呼び出されたAPIをフックしているアドインが前記API・アドインマップに登録されているか否かを判断する登録判断手段と、
    前記登録判断手段による判断の結果、当該アドインが登録されていない場合、前記API呼出手段により呼び出されたAPIを呼び出すAPI呼出手段とを含み、
    前記登録判断手段による判断の結果、当該アドインが登録されている場合、前記アドイン特定手段は当該アドインを特定する、クライアントサーバシステム。
  3. 請求項2に記載のクライアントサーバシステムであって、
    前記プロキシはさらに、
    前記アドインがフック可能なAPIを前記アドインに問い合わせて前記API・アドインマップを作成するマップ作成手段を含む、クライアントサーバシステム。
  4. サーバ及びクライアント間に接続されるプロキシであって、
    前記サーバに搭載される複数のAPIに対応し、各々が、対応するAPIをフックし、かつ、対応するAPIを呼び出して引数及び/又は戻り値を変更する複数のアドインと、
    前記複数のアドインの中から前記クライアントから呼び出されたAPIに対応するアドインを特定するアドイン特定手段と、
    前記アドイン特定手段により特定されたアドインを呼び出すアドイン呼出手段とを備える、プロキシ。
  5. 請求項4に記載のプロキシであってさらに、
    前記APIをフックしているアドインを登録したAPI・アドインマップと、
    前記API呼出手段により呼び出されたAPIをフックしているアドインが前記API・アドインマップに登録されているか否かを判断する登録判断手段と、
    前記登録判断手段による判断の結果、当該アドインが登録されていない場合、前記API呼出手段により呼び出されたAPIを呼び出すAPI呼出手段とを備え、
    前記登録判断手段による判断の結果、当該アドインが登録されている場合、前記アドイン特定手段は当該アドインを特定する、プロキシ。
  6. 請求項5に記載のプロキシであってさらに、
    前記アドインが可能なAPIを前記アドインに問い合わせて前記API・アドインマップを作成するマップ作成手段を備える、プロキシ。
JP2008234840A 2008-09-12 2008-09-12 クライアントサーバシステム Pending JP2010067156A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008234840A JP2010067156A (ja) 2008-09-12 2008-09-12 クライアントサーバシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008234840A JP2010067156A (ja) 2008-09-12 2008-09-12 クライアントサーバシステム

Publications (1)

Publication Number Publication Date
JP2010067156A true JP2010067156A (ja) 2010-03-25

Family

ID=42192667

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008234840A Pending JP2010067156A (ja) 2008-09-12 2008-09-12 クライアントサーバシステム

Country Status (1)

Country Link
JP (1) JP2010067156A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016091311A (ja) * 2014-11-05 2016-05-23 株式会社リコー 情報処理装置、情報処理システム、及び情報処理方法
US12026558B2 (en) * 2021-12-01 2024-07-02 UiPath, Inc. Integration extensions

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000039991A (ja) * 1998-07-23 2000-02-08 Hitachi Ltd 分散オブジェクトシステムにおける動的サーバ接続方式
JP2004303189A (ja) * 2003-03-31 2004-10-28 Microsoft Corp ソフトウェアの動的な追加方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000039991A (ja) * 1998-07-23 2000-02-08 Hitachi Ltd 分散オブジェクトシステムにおける動的サーバ接続方式
JP2004303189A (ja) * 2003-03-31 2004-10-28 Microsoft Corp ソフトウェアの動的な追加方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016091311A (ja) * 2014-11-05 2016-05-23 株式会社リコー 情報処理装置、情報処理システム、及び情報処理方法
US12026558B2 (en) * 2021-12-01 2024-07-02 UiPath, Inc. Integration extensions

Similar Documents

Publication Publication Date Title
US10795733B2 (en) Server farm management
EP3428811B1 (en) Database interface agent for a tenant-based upgrade system
JP5730290B2 (ja) アプリケーションのコンポーネントをバージョン管理するシステム、方法及びコンピュータプログラムプロダクト
US7979856B2 (en) Network-based software extensions
US6883168B1 (en) Methods, systems, architectures and data structures for delivering software via a network
US9230068B2 (en) Method and system for managing license objects to applications in an application platform
US8869099B2 (en) System and method of enabling multi-tenancy for software as a service application
US7392522B2 (en) Architectures for and methods of providing network-based software extensions
CN102378975B (zh) 将协作功能扩展到外部数据
US20040237082A1 (en) System, method, and API for progressively installing software application
US20130226973A1 (en) Online database availability during upgrade
US20070143446A1 (en) Methods, systems, and computer program products for installing an application from one peer to another including application configuration settings and data
SG189389A1 (en) Web service patterns for globally distributed service fabric
US20160162286A1 (en) Managing user access to alternative versions of a particular function of a software product from within a current version of the software product
US10296652B2 (en) Method and system for selection of user interface rendering artifacts in enterprise web applications using a manifest mechanism
US8549129B2 (en) Live migration method for large-scale IT management systems
JP7043783B2 (ja) ソフトウエア管理装置、ソフトウエア管理システム及びプログラム
CN106156932B (zh) 用于内容资源管理的方法和装置
JP5613295B2 (ja) 装置へのコンテンツの分配を管理するシステムと方法とプログラムを提供する記憶媒体
JP6993577B2 (ja) インタフェース変換プログラム、インタフェース変換方法および情報処理装置
JP2010067156A (ja) クライアントサーバシステム
US20030088594A1 (en) Method of constraining file systems in peer to peer networks
JP2004110276A (ja) コンテンツ流通装置,コンテンツ流通処理方法,コンテンツ流通システムプログラムおよびその記録媒体
JP2009211413A (ja) ファイル管理システム、ファイル管理方法、及びファイル管理プログラム
Charlebois-Laprade et al. Managing Apps and Solutions Using PowerShell

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120911

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130129