JP2019160105A - インタフェース変換プログラム、インタフェース変換方法および情報処理装置 - Google Patents

インタフェース変換プログラム、インタフェース変換方法および情報処理装置 Download PDF

Info

Publication number
JP2019160105A
JP2019160105A JP2018048758A JP2018048758A JP2019160105A JP 2019160105 A JP2019160105 A JP 2019160105A JP 2018048758 A JP2018048758 A JP 2018048758A JP 2018048758 A JP2018048758 A JP 2018048758A JP 2019160105 A JP2019160105 A JP 2019160105A
Authority
JP
Japan
Prior art keywords
virtual machine
data
request message
address
parameter
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.)
Granted
Application number
JP2018048758A
Other languages
English (en)
Other versions
JP6993577B2 (ja
Inventor
清伸 佐藤
Kiyonobu Sato
清伸 佐藤
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018048758A priority Critical patent/JP6993577B2/ja
Publication of JP2019160105A publication Critical patent/JP2019160105A/ja
Application granted granted Critical
Publication of JP6993577B2 publication Critical patent/JP6993577B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】ソフトウェア部品の再利用を容易にする。【解決手段】仮想マシン13が実行するサーバプロセス13aにより受信された、アドレス15aとパラメータ15bとを含む要求メッセージ15を取得する。要求メッセージ15から、アドレス15aに対応付けられたアドレス16aとパラメータ15bに応じたパラメータ16bとを含む要求メッセージ16を生成し、要求メッセージ16を、仮想マシン13の中に含まれる仮想マシン14が実行するサーバプロセス14aに対して送信する。サーバプロセス14aから、アドレス16aおよびパラメータ16bに応じたデータ18aを含む応答メッセージ18を受信する。応答メッセージ18から、データ18aに応じたデータ17aを含む応答メッセージ17を生成して、要求メッセージ15に対する応答として出力する。【選択図】図1

Description

本発明はインタフェース変換プログラム、インタフェース変換方法および情報処理装置に関する。
情報処理システムの構築を継続的に行う者は、過去に構築した情報処理システムと類似の機能をもつ別の情報処理システムを構築することがある。その際、過去の情報処理システムのために作成したプログラム群をソフトウェア部品として抽出し、ソフトウェア部品を再利用して新たな情報処理システムを構築できることが好ましい。
例えば、既存のサービス部品の組み合わせを選択するサービス部品選択支援方法が提案されている。提案のサービス部品選択支援方法は、各業務の入出力データの定義と各業務で利用可能なサービス部品の定義と業務間のフローの定義から、業務毎の入力画面および出力画面を生成する。サービス部品選択支援方法は、業務間のフローを画面間のフローに変換して画面遷移プログラムを生成し、対話的システムを構築する。
また、例えば、デスクトップアプリケーションをWebアプリケーションに変換する変換システムが提案されている。提案の変換システムでは、希望するデスクトップアプリケーションのURL(Uniform Resource Locator)をクライアントがサーバに送信する。変換システムは、デスクトップアプリケーションからインタフェース情報を抽出してXML(Extensible Markup Language)データとしてラッピングし、XMLデータをHTML(HyperText Markup Language)データに変換する。
また、例えば、部品化された標準機能を示すサービスを組み合わせてユーザ毎のWebアプリケーションを構築するWebアプリケーション構築システムが提案されている。提案のWebアプリケーション構築システムが生成するWebアプリケーションは、組み合わせたサービスを1つの仮想マシン上で動作させてトランザクションを制御する。
特開2004−185166号公報 特開2011−70640号公報 国際公開第2011/118003号
しかし、実際にはソフトウェア部品は、実行環境の相違によりそのままでは再利用することが難しいことが多い。例えば、オペレーティングシステム、プログラミング言語、データベースなどのミドルウェア、ポート設定などの通信方式といった動作条件が異なるために、そのままでは複数のソフトウェア部品を組み合わせられないことがある。そのため、ソフトウェア部品の再利用が促進されないという問題がある。
1つの側面では、本発明はソフトウェア部品の再利用を容易にするインタフェース変換プログラム、インタフェース変換方法および情報処理装置を提供することを目的とする。
1つの態様では、コンピュータに以下の処理を実行させるインタフェース変換プログラムが提供される。第1の仮想マシンが実行する第1のサーバプロセスにより受信された、第1のアドレスと第1のパラメータとを含む第1の要求メッセージを取得する。第1の要求メッセージから、第1のアドレスに対応付けられた第2のアドレスと第1のパラメータに応じた第2のパラメータとを含む第2の要求メッセージを生成し、第2の要求メッセージを、第1の仮想マシンの中に含まれる第2の仮想マシンが実行する第2のサーバプロセスに対して送信する。第2のサーバプロセスから、第2のアドレスおよび第2のパラメータに応じた第2のデータを含む第2の応答メッセージを受信する。第2の応答メッセージから、第2のデータに応じた第1のデータを含む第1の応答メッセージを生成して、第1の要求メッセージに対する応答として出力する。
1つの態様では、コンピュータが実行するインタフェース変換方法が提供される。
1つの態様では、通信部と処理部とを有する情報処理装置が提供される。
1つの側面では、ソフトウェア部品の再利用が容易になる。
第1の実施の形態の情報処理装置の例を説明する図である。 第2の実施の形態の情報処理システムの例を示す図である。 サーバ装置のハードウェア例を示すブロック図である。 仮想マシンの構築例を示す図である。 サーバ装置の機能例を示すブロック図である。 中継IF定義の第1の例を示す図である。 第1のメッセージ変換例を示す図である。 中継IF定義の第2の例を示す図である。 第2のメッセージ変換例を示す図である。 中継IF定義の第3の例を示す図である。 第3のメッセージ変換例を示す図である。 システム構築の手順例を示すフローチャートである。 システム実行の第1の手順例を示すフローチャートである。 システム実行の第2の手順例を示すフローチャートである。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理装置の例を説明する図である。
第1の実施の形態の情報処理装置10は、ある機能を実現するために過去に作成されたプログラム群を部品化して再利用することを促進する。情報処理装置10は、例えば、他の情報処理装置からの要求に応じてデータ処理を行うサーバコンピュータである。
情報処理装置10は、通信部11および処理部12を有する。
通信部11は、ネットワークに接続される通信インタフェースである。ネットワークには、有線ネットワークが含まれてもよいし無線ネットワークが含まれてもよい。通信部11は、スイッチやルータなどの有線通信装置に接続される有線インタフェースでもよいし、アクセスポイントなどの無線通信装置に接続される無線インタフェースでもよい。
処理部12は、例えば、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAM(Random Access Memory)などのメモリに記憶されたプログラムを実行する。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
通信部11は、要求メッセージ15(第1の要求メッセージ)を受信し、要求メッセージ15に対する応答として応答メッセージ17(第1の応答メッセージ)を送信する。処理部12は、仮想マシン13(第1の仮想マシン)を稼働させる。仮想マシン13は、要求メッセージ15を受け取って応答メッセージ17を生成する。処理部12は、仮想マシン13以外の他の仮想マシンを更に稼働させてもよい。処理部12は、仮想マシン13を制御するために仮想化ソフトウェアを実行する。処理部12は、ホストOS(Operating System)を実行してもよいしハイパーバイザを実行してもよい。
仮想マシン13は、仮想マシン14(第2の仮想マシン)を含む。すなわち、仮想マシン13と仮想マシン14は階層化されている。仮想マシン13は、仮想マシン14以外の他の仮想マシンを更に含んでもよい。仮想マシン13は、仮想マシン14を制御するためにホストOSおよび仮想化ソフトウェアを実行する。また、仮想マシン13は、サーバプロセス13aを実行する。サーバプロセス13aは、Webサーバのように、要求メッセージの受信を待ち、受信した要求メッセージに含まれるアドレスに応じたデータ処理を行って応答メッセージを送信するものである。サーバプロセス13aは、要求メッセージに含まれるアドレスに応じてデータ処理用のプログラムを呼び出すことがある。
仮想マシン14は、ゲストOSを実行する。仮想マシン14が実行するゲストOSの種類は、仮想マシン13が実行するホストOSの種類と異なってもよく、仮想マシン13に含まれる他の仮想マシンが実行するゲストOSの種類と異なってもよい。OSの種類が異なるとは、OSの作成者(ベンダ)が異なることを含んでもよいし、OSのバージョンが異なることを含んでもよい。また、仮想マシン14は、サーバプロセス14aを実行する。サーバプロセス14aは、Webサーバのように、要求メッセージの受信を待ち、受信した要求メッセージに含まれるアドレスに応じたデータ処理を行って応答メッセージを送信するものである。サーバプロセス14aは、要求メッセージに含まれるアドレスに応じてデータ処理用のプログラムを呼び出すことがある。
サーバプロセス13a,14aは、要求メッセージを受け付ける入り口であるため、ソフトウェアインタフェースまたは単にインタフェースと言うこともできる。サーバプロセス13a,14aがWebサーバである場合、サーバプロセス13a,14aをWebインタフェースと言うこともできる。サーバプロセス13a,14aは、REST(Representational State Transfer)に基づいて実装することが可能である。
サーバプロセス13aは、仮想マシン13の外部とサーバプロセス14aとの間でメッセージを中継する。サーバプロセス14aは、要求メッセージに含まれるアドレスに応じて特定のアプリケーションソフトウェアを起動することが可能である。よって、過去に作成されたアプリケーションソフトウェアを、ミドルウェアや設定情報などの実行環境と合わせて仮想マシン14を用いてカプセル化することができる。
ここで、サーバプロセス13aは、要求メッセージ15を受け付ける。要求メッセージ15は、例えば、HTTP(Hypertext Transfer Protocol)リクエストである。要求メッセージ15は、アドレス15a(第1のアドレス)およびパラメータ15b(第1のパラメータ)を含む。アドレス15aは、サーバプロセス13aが受け付け可能なURLなど、サーバプロセス13aが外部に対して公開しているデータ処理サービスを識別する。アドレス15aは、アプリケーションレベルの宛先アドレスと言うこともできる。要求メッセージ15の送信は、遠隔メソッド呼び出しと言うこともできる。アドレス15aは、仮想マシン13のホスト名またはIP(Internet Protocol)アドレスを含むことがある。パラメータ15bは、データ処理サービスで使用される引数である。
仮想マシン13は、要求メッセージ15から要求メッセージ16を生成する。要求メッセージ16は、例えば、HTTPリクエストである。要求メッセージ16は、アドレス16a(第2のアドレス)およびパラメータ16b(第2のパラメータ)を含む。アドレス16aは、サーバプロセス14aが受け付け可能なURLなど、サーバプロセス14aが外部に対して公開しているデータ処理サービスを識別する。アドレス16aは、仮想マシン14のホスト名またはIPアドレスを含むことがある。アドレス15aとアドレス16aとは予め対応付けられている。パラメータ16bはパラメータ15bに応じて決定される。例えば、パラメータ15bのパラメータ名が変換される。パラメータ15bとパラメータ16bとの対応関係は予め仮想マシン13に登録されている。
仮想マシン13は、要求メッセージ16をサーバプロセス14aに対して送信する。例えば、仮想マシン13のホストOSや仮想化ソフトウェアなどを介して、仮想マシン13の中で要求メッセージ16が仮想マシン14に転送される。
サーバプロセス14aは、要求メッセージ16を受け付ける。仮想マシン14は、要求メッセージ16に含まれるアドレス16aに応じたアプリケーションソフトウェアを呼び出し、パラメータ16bを用いて応答メッセージ18(第2の応答メッセージ)を生成する。応答メッセージ18は、例えば、HTTPレスポンスである。応答メッセージ18は、データ処理結果を示すデータ18a(第2のデータ)を含む。データ18aは、要求メッセージ16に含まれるアドレス16aおよびパラメータ16bに依存する。
サーバプロセス14aは、要求メッセージ16に対する応答として応答メッセージ18を送信する。例えば、仮想マシン13のホストOSや仮想化ソフトウェアなどを介して、仮想マシン13の中で応答メッセージ18が転送される。
仮想マシン13は、応答メッセージ18をサーバプロセス14aから受信する。仮想マシン13は、応答メッセージ18から応答メッセージ17(第1の応答メッセージ)を生成する。応答メッセージ17は、例えば、HTTPレスポンスである。応答メッセージ17は、データ17a(第1のデータ)を含む。データ17aはデータ18aに応じて決定される。例えば、データ18a全体またはデータ18aに含まれる一部のデータ項目をデータ17aとする。また、例えば、データ18aのデータ項目名やデータ構造を変換する。データ18aとデータ17aとの対応関係は予め仮想マシン13に登録されている。
サーバプロセス13aは、要求メッセージ15に対する応答として応答メッセージ17を送信する。応答メッセージ17は通信部11から送信される。
第1の実施の形態の情報処理装置10によれば、仮想マシン13の中に仮想マシン14が配備され、過去に作成されたアプリケーションソフトウェアが仮想マシン14の中に配備される。仮想マシン14にデータ処理を要求するための要求メッセージ16の書式であるインタフェースは隠蔽され、代わりに仮想マシン13にデータ処理を要求するための要求メッセージ15の書式であるインタフェースが公開される。そして、仮想マシン13によって要求メッセージ15から要求メッセージ16への変換、応答メッセージ18から応答メッセージ17への変換およびそれらメッセージの転送が行われる。
よって、過去に作成されたアプリケーションソフトウェアを、OSやミドルウェアや設定情報などの実行環境と合わせて仮想マシン14として部品化することが可能となる。また、仮想マシン14を取り込んだ仮想マシン13によって、データ処理を要求するための要求メッセージ15の書式であるインタフェースが統合される。これにより、使用するOSの違いやプログラミング言語の違いや使用するミドルウェアの違いなど、実行環境に関して動作条件が衝突するソフトウェア部品同士を組み合わせることが容易となる。そのため、ソフトウェア部品の再利用が促進され情報処理システムの開発が効率化される。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
第2の実施の形態の情報処理システムは、過去に作成したアプリケーションソフトウェアの再利用を促進してシステム開発を効率化する。第2の実施の形態の情報処理システムは、クライアント装置20、開発装置30およびサーバ装置100を含む。クライアント装置20、開発装置30およびサーバ装置100は、ネットワーク40に接続されている。サーバ装置100は、第1の実施の形態の情報処理装置10に対応する。
クライアント装置20は、クライアントアプリケーションを実行し、サーバ装置100で実行されるサーバアプリケーションと連携して情報処理を行う。クライアント装置20は、ユーザが操作する端末装置でもよいしサーバコンピュータでもよい。クライアント装置20は、ネットワーク40を介してHTTPリクエストをサーバ装置100に送信し、HTTPレスポンスをサーバ装置100から受信する。クライアント装置20とサーバ装置100の間のソフトウェアインタフェース、すなわち、クライアントアプリケーションとサーバアプリケーションの連携方法は、RESTによるWebインタフェースである。
開発装置30は、情報処理システムの開発者が使用する端末装置である。開発装置30は、アプリケーションソフトウェアをサーバ装置100に配備する。サーバ装置100に配備されるアプリケーションソフトウェアの中には、過去に作成されたものが含まれる。すなわち、過去に作成されたアプリケーションソフトウェアが部品化されて再利用される。なお、第2の実施の形態の情報処理システムは複数のサーバ装置を含んでもよく、異なるアプリケーションソフトウェアを異なるサーバ装置に配備することも可能である。
サーバ装置100は、サーバアプリケーションを実行し、クライアント装置20で実行されるクライアントアプリケーションと連携して情報処理を行う。サーバ装置100は、ネットワーク40を介してHTTPリクエストをクライアント装置20から受信し、HTTPレスポンスをクライアント装置20に送信する。
アプリケーションソフトウェアを部品化して再利用することを容易にするため、サーバ装置100は、階層化された仮想マシンを実行する。子仮想マシン(子VM(Virtual Machine))は、アプリケーションソフトウェアをカプセル化し、アプリケーションソフトウェアを呼び出すためのWebインタフェースを子VMの外部に対して提供する。親仮想マシン(親VM)は、子VMを包含し、子VMにHTTPリクエストを転送する中継用のWebインタフェースを親VMの外部に対して提供する。子VMのWebインタフェースは親VMの外部に対しては直接公開されず、親VMによって秘匿化される。サーバ装置100が実行する仮想マシンの詳細は後述する。
図3は、サーバ装置のハードウェア例を示すブロック図である。
サーバ装置100は、CPU101、RAM102、HDD(Hard Disk Drive)103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107は、バス108に接続されている。なお、CPU101は、第1の実施の形態の処理部12に対応する。通信インタフェース107は、第1の実施の形態の通信部11に対応する。クライアント装置20および開発装置30も、同様のハードウェアを用いて実現できる。
CPU101は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、サーバ装置100は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、サーバ装置100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD103は、OSやミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、サーバ装置100は、フラッシュメモリやSSD(Solid State Drive)など他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部104は、CPU101からの命令に従って、サーバ装置100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
入力信号処理部105は、サーバ装置100に接続された入力デバイス112から入力信号を取得し、CPU101に出力する。入力デバイス112としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、サーバ装置100に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワーク40に接続され、ネットワーク40を介してクライアント装置20や開発装置30と通信を行うインタフェースである。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線インタフェースでもよいし、アクセスポイントに接続される無線インタフェースでもよい。
図4は、仮想マシンの構築例を示す図である。
サーバ装置100は、親VMとして仮想マシン130を有する。仮想マシン130は、Webサーバ132、データベースサーバ135、アプリケーションソフトウェア136および子VMとしての仮想マシン140,150を有する。なお、仮想マシン130,140は、それぞれ第1の実施の形態の仮想マシン13,14に対応する。Webサーバ132は、第1の実施の形態のサーバプロセス13aに対応する。
Webサーバ132は、RESTおよびHTTPに基づく通信を行うサーバソフトウェアである。Webサーバ132は、仮想マシン130の外部に対してWeb API(Application Programming Interface)を提供していると言うことができる。Webサーバ132は、HTTPリクエストの到着を待ち、HTTPリクエストを受信すると当該HTTPリクエストに含まれるURLに応じたデータ処理を実行し、HTTPリクエストに対する応答としてHTTPレスポンスを送信する。
Webサーバ132上には中継インタフェース(中継IF)134a,134b,134cが配備される。中継IF134a,134b,134cはそれぞれ、特定のURLを含むHTTPリクエストが受信されたときに起動されるプログラムとして実装される。
中継IF134aは、HTTPリクエストを仮想マシン140に転送し、HTTPリクエストに対応するHTTレスポンスを仮想マシン130の外部に転送する。ただし、中継IF134aは、外部から受信したHTTPリクエストをそのまま仮想マシン140に転送するのではなく、仮想マシン140が提供するWeb APIに合わせて書き換えて転送する。また、中継IF134aは、仮想マシン140から受信したHTTPレスポンスを、元のHTTPリクエストに合わせて書き換えて転送する。このように、中継IF134aは、特定のURLについてHTTPメッセージの中継を行う。
中継IF134bは、HTTPリクエストに基づいて検索用のデータベースクエリを生成してデータベースサーバ135に送信し、検索されたデータを含むデータベースレスポンスをデータベースサーバ135から受信する。中継IF134bは、データベースレスポンスをHTTPレスポンスに変換して仮想マシン130の外部に送信する。このように、中継IF134bは、特定のURLについてデータベースの検索を行う。なお、第2の実施の形態ではデータベースサーバ135が仮想マシン130の内部に存在するが、仮想マシン130の外部に存在してもよい。また、データベースからデータを抽出する代わりに、階層的なディレクトリ構造をもつファイルシステムからデータを抽出してもよい。
中継IF134cは、HTTPリクエストに基づいて、子VMによってカプセル化されておらず仮想マシン130で直接実行されるアプリケーションソフトウェア136を呼び出し、アプリケーションソフトウェア136から戻り値を取得する。中継IF134cとアプリケーションソフトウェア136の間のソフトウェアインタフェースは、アプリケーションソフトウェア136に合わせて個別に選択される。中継IF134cは、戻り値からHTTPレスポンスを生成して仮想マシン130の外部に送信する。
データベースサーバ135は、関係データベースなどのデータベースを管理するサーバソフトウェアである。データベースサーバ135は、SQLなどのクエリ言語を用いて記述されたデータベースクエリの到着を待ち、データベースクエリを受信すると当該データベースクエリを実行してデータベースの検索や更新を行う。
アプリケーションソフトウェア136は、過去に作成されたプログラム群を再利用したものである。アプリケーションソフトウェア136を実行するために要する動作条件としてのOSやミドルウェアや設定情報などは、仮想マシン130が具備している。
仮想マシン140は、仮想マシン130の内部に存在する子VMである。仮想マシン140は、Webサーバ142およびアプリケーションソフトウェア143を有する。なお、Webサーバ142は、第1の実施の形態のサーバプロセス14aに対応する。仮想マシン130は、仮想マシン140と同様の他の仮想マシンを更に有していてもよい。
Webサーバ142は、RESTおよびHTTPに基づく通信を行うサーバソフトウェアである。Webサーバ142は、仮想マシン140の外部に対してWeb APIを提供していると言うことができる。Webサーバ142は、HTTPリクエストの到着を待ち、HTTPリクエストを受信するとアプリケーションソフトウェア143を呼び出す。Webサーバ142は、アプリケーションソフトウェア143からの戻り値を用いてHTTPレスポンスを生成して仮想マシン140の外部に送信する。
アプリケーションソフトウェア143は、過去に作成されたプログラム群を再利用したものである。仮想マシン140は、アプリケーションソフトウェア143と併せて、アプリケーションソフトウェア143を実行するために要する動作条件としてのOSやミドルウェアや設定情報などを更に含んでいる。
再利用すべきソフトウェアがWebアプリケーションである場合、Web APIも含めて当該ソフトウェアを仮想マシン140に挿入して部品化すればよい。再利用すべきソフトウェアがWebアプリケーションでない場合、当該ソフトウェアに加えて当該ソフトウェアを呼び出すWeb APIも仮想マシン140に挿入して部品化すればよい。ソフトウェア部品として仮想マシン140を1度作成すれば、仮想マシン140のイメージデータをコピーすることで他の情報処理システムにおいても当該ソフトウェア部品を再利用することが可能となる。仮想マシン140には、アプリケーションソフトウェア143と動作条件が共通する他のアプリケーションソフトウェアを更に挿入してもよい。
仮想マシン150は、仮想マシン130の内部に存在する子VMである。仮想マシン150は、アプリケーションソフトウェア152を有する。アプリケーションソフトウェア152は、仮想マシン150の外部からの要求に応じて実行されるのではなく、所定のスケジュールに従って実行される。よって、仮想マシン150はWebサーバを有しなくてもよい。仮想マシン150は、更新用のデータベースクエリを生成してデータベースサーバ135に送信し、データベースにデータを格納させる。
アプリケーションソフトウェア152は、過去に作成されたプログラム群を再利用したものである。仮想マシン150は、アプリケーションソフトウェア152と併せて、アプリケーションソフトウェア152を実行するために要する動作条件としてのOSやミドルウェアや設定情報などを更に含んでいる。アプリケーションソフトウェア152が仮想マシン150に挿入されて部品化されている。ソフトウェア部品として仮想マシン150を1度作成すれば、仮想マシン150のイメージデータをコピーすることで他の情報処理システムにおいても当該ソフトウェア部品を再利用することが可能となる。
仮想マシン130は、仮想マシン150と同様の他の仮想マシンを更に有していてもよい。また、仮想マシン150には、アプリケーションソフトウェア152と動作条件が共通する他のアプリケーションソフトウェアを更に挿入してもよい。
なお、Webサーバ132と仮想マシン140の結合は、Webサーバ132によるHTTPリクエストの受信を契機として仮想マシン140による情報処理が実行される点で、密結合であると言うことができる。一方、Webサーバ132と仮想マシン150の結合は、Webサーバ132によるHTTPリクエストの受信とは独立して仮想マシン150による情報処理が実行される点で、疎結合であると言うことができる。
OSなどの実行環境は、仮想マシン140と仮想マシン150とで異なってもよい。また、OSなどの実行環境は、仮想マシン130と仮想マシン140とで異なってもよく、仮想マシン130と仮想マシン150とで異なってもよい。また、仮想マシン140に相当する仮想マシンが複数ある場合、OSなどの実行環境はそれら複数の仮想マシンの間で異なってもよい。仮想マシン150に相当する仮想マシンが複数ある場合、OSなどの実行環境はそれら複数の仮想マシンの間で異なってもよい。
よって、アプリケーションソフトウェア136,143,152の動作条件が互いに異なっても、親VMである仮想マシン130の中に子VMである仮想マシン140,150を挿入することでアプリケーションソフトウェア136,143,152を再利用できる。仮想マシン140,150を1度作成すれば、アプリケーションソフトウェア143,152を更に他の情報処理装置で再利用することも容易となる。また、仮想マシン130のイメージデータをコピーすることで、アプリケーションソフトウェア136,143,152の組み合わせを再利用することも可能である。後述するように、仮想マシン130は、中継IF134a,134b,134cの生成を支援する機能をもつ。
図5は、サーバ装置の機能例を示すブロック図である。
サーバ装置100は、オペレーティングシステム121および仮想マシン130を有する。仮想マシン130は、オペレーティングシステム131、Webサーバ132、中継IF生成部133、中継IF記憶部134、データベースサーバ135および仮想マシン140,150を有する。仮想マシン140は、オペレーティングシステム141、Webサーバ142およびアプリケーションソフトウェア143を有する。仮想マシン150は、オペレーティングシステム151およびアプリケーションソフトウェア152を有する。図4と同じ構成要素については説明を省略する。
オペレーティングシステム121は、仮想マシン130に対するホストOSとして機能する。サーバ装置100は、オペレーティングシステム121上で仮想化ソフトウェアを実行して仮想マシン130を制御する。サーバ装置100は、仮想マシン130と同様の他の仮想マシンを更に有していてもよい。また、サーバ装置100は、オペレーティングシステム121に代えてハイパーバイザを有していてもよい。
オペレーティングシステム131は、子VMである仮想マシン140,150に対するホストOSとして機能する。親VMである仮想マシン130は、オペレーティングシステム131上で仮想化ソフトウェアを実行して仮想マシン140,150を制御する。
中継インタフェース(IF)生成部133は、Webサーバ132を介して開発装置30から、後述する中継インタフェース(IF)定義を取得する。開発装置30は、アップロード用の所定のURLを含むHTTPリクエストをWebサーバ132に送信することで、中継IF定義をアップロードすることができる。中継IF生成部133は、Webサーバ132が当該所定のURLを含むHTTPリクエストを受信したときにWebサーバ132上で起動されるプログラムとして実装することができる。
中継IF生成部133は、取得した中継IF定義に基づいて、前述の中継IF134a,134b,134cのような中継IFを実現するソースコードを生成する。中継IF生成部133は、生成したソースコードをコンパイルして実行可能なプログラムを生成し、生成したプログラムを中継IF記憶部134に格納する。中継IF生成部133は、生成したプログラムをWebサーバ132に配備する。すなわち、中継IF生成部133は、中継IF定義に記載された外向き用のURLを含むHTTPリクエストがWebサーバ132によって受信されたときに、当該プログラムが起動されるように設定する。
ただし、中継IF生成部133は、生成したソースコードを開発装置30に提供し、開発装置30にソースコードを編集させ、編集されたソースコードを開発装置30から取得するようにしてもよい。また、中継IF生成部133は、生成したソースコードを開発装置30に提供し、開発装置30にソースコードをコンパイルさせ、コンパイルされたプログラムを開発装置30から取得するようにしてもよい。
中継IF記憶部134は、中継IF生成部133によって生成された中継IF用のプログラムを記憶する。Webサーバ132が特定のURLを含むHTTPリクエストを受信したことを契機として、中継IF記憶部134に記憶された当該特定のURLに対応するプログラムがWebサーバ132上で実行される。
なお、1つの中継IF定義は、何れかの子VMが受け付け可能な1つのURLに対応する。1つの中継IF定義からは、外向きの1つのURLに反応する中継IF用の1つのプログラムが生成される。開発装置30は、子VMを仮想マシン130に追加した後に、当該子VMに関する中継IF定義をWebサーバ132にアップロードする。子VMの追加は、仮想マシン130に子VMのイメージデータをアップロードし、仮想マシン130の仮想化ソフトウェアに対して当該子VMの起動を指示することで行うことができる。ただし、Webサーバ132に、子VMのイメージデータをアップロードするための所定のURLを設定しておいてもよい。その場合、開発装置30は、HTTPを用いてWebサーバ132に対して子VMのイメージデータを送信すればよい。
オペレーティングシステム141は、子VMである仮想マシン140に含まれておりゲストOSとして機能する。オペレーティングシステム151は、子VMである仮想マシン150に含まれておりゲストOSとして機能する。
なお、オペレーティングシステム121とオペレーティングシステム131は異なる種類であってもよい。オペレーティングシステム131とオペレーティングシステム141は異なる種類であってもよい。オペレーティングシステム131とオペレーティングシステム151は異なる種類であってもよい。オペレーティングシステム141とオペレーティングシステム151は異なる種類であってもよい。種類が異なるとは、作成者(ベンダ)が異なることやバージョンが異なることを含む。
図6は、中継IF定義の第1の例を示す図である。
中継IF定義161は、中継IF生成部133がWebサーバ132を介して開発装置30から取得する中継IF定義の一例である。中継IF定義161は、開発装置30を使用する開発者によって記述される。中継IF定義161は、仮想マシン140にHTTPリクエストを転送する中継IF134aを生成するためのものである。
中継IF定義161は、子VMのURL、当該子VMが受信すべきパラメータの構造、子VMが返信するデータの構造、親VMのURL、当該親VMが受信すべきパラメータの構造および親VMが返信するデータの構造を定義する。
子VMが受信すべきパラメータは、親VMが受信すべきパラメータを用いて定義される。親VMのパラメータから子VMのパラメータへの変換には、パラメータ名の変更が含まれることがある。通常、親VMのパラメータの全体が子VMのパラメータのために使用される。親VMのパラメータに含まれていない所定の値が、子VMのパラメータとしてHTTPリクエストに挿入されることもある。親VMが返信するデータは、子VMが返信するデータを用いて定義される。子VMの返信データから親VMの返信データへの変換には、データ項目名の変更が含まれることがある。通常、親VMの返信データは、子VMの返信データの全部または一部分である。ただし、子VMの返信データに含まれていない所定の値が、親VMの返信データとしてHTTPレスポンスに挿入されることもある。
ここでは、親VMのURLは「http://eee.fff.ggg/hhh」であり、親VMが受信するパラメータは「if-param1」,「if-param2」である。当該親VMのURLが子VMのURLである「http://aaa.bbb.ccc/ddd」に変換され、パラメータ名が「if-param1」,「if-param2」から「param1」,「param2」に変換される。
子VMのデータ処理が成功した場合、すなわち、HTTPレスポンスのステータスコードが200番である場合、子VMの返信データは「child-data1」,「child-data2」,「child-data3」であり、「child-data3」は「child-data4」,「child-data5」を含む。この場合、親VMの返信データは「result」,「data-all」である。データ項目「result」はステータスコードを表し、データ項目「data-all」は子VMの返信データ全体を表す。
一方、子VMのデータ処理が失敗した場合、すなわち、HTTPレスポンスのステータスコードが400番以降である場合、子VMの返信データはエラーメッセージである。この場合、親VMの返信データは「result」,「data-all」である。データ項目「result」はステータスコードを表し、データ項目「data-all」は子VMの返信データ全体を表す。
図7は、第1のメッセージ変換例を示す図である。
中継IF定義161から中継IF134aが生成された場合、URL「http://eee.fff.ggg/hhh」とパラメータ「if-param1」,「if-param2」を含むHTTPリクエスト171をWebサーバ132が受信する。HTTPリクエスト171から、URL「http://aaa.bbb.ccc/ddd」とパラメータ「param1」,「param2」を含むHTTPリクエスト172が生成され、HTTPリクエスト172がWebサーバ142に送信される。
HTTPリクエスト172に対する応答として、データ項目「child-data1」,「child-data2」,「child-data3」,「child-data4」,「child-data5」を含むHTTPレスポンス173をWebサーバ142が送信する。HTTPレスポンス173から、ステータスコードを示すデータ項目「result」と元の返信データそのものを示すデータ項目「data-all」を含むHTTPレスポンス174が生成され、HTTPリクエスト171に対する応答としてWebサーバ132が送信する。
図8は、中継IF定義の第2の例を示す図である。
中継IF定義162は、中継IF生成部133がWebサーバ132を介して開発装置30から取得する中継IF定義の一例である。中継IF定義162は、開発装置30を使用する開発者によって記述される。中継IF定義162は、仮想マシン140にHTTPリクエストを転送する中継IF134aを生成するためのものである。ただし、親VMが返信するデータの構造が中継IF定義161と異なる。
子VMのデータ処理が成功した場合、すなわち、HTTPレスポンスのステータスコードが200番である場合、子VMの返信データは「child-data1」,「child-data2」,「child-data3」であり、「child-data3」は「child-data4」,「child-data5」を含む。この場合、親VMの返信データは「result」,「data1」,「data2」である。データ項目「result」はステータスコードを表し、データ項目「data1」は子VMの返信データの中の「child-data4」を表し、データ項目「data2」は子VMの返信データの中の「child-data5」を表す。すなわち、子VMの返信データの中の一部のデータ項目のみが親VMの返信データの中に含まれ、子VMの返信データの中の他のデータ項目は削除される。
図9は、第2のメッセージ変換例を示す図である。
中継IF定義162から中継IF134aが生成された場合、HTTPリクエスト181をWebサーバ132が受信し、HTTPリクエスト181からHTTPリクエスト182が生成され、HTTPリクエスト182がWebサーバ142に送信される。HTTPリクエスト182に対する応答として、HTTPレスポンス183をWebサーバ142が送信し、HTTPレスポンス183からHTTPレスポンス184が生成され、HTTPリクエスト181に対する応答としてWebサーバ132が送信する。
HTTPリクエスト181,182およびHTTPレスポンス183は、それぞれ前述のHTTPリクエスト171,172およびHTTPレスポンス173と同じである。一方、HTTPレスポンス184は、ステータスコードを示すデータ項目「result」と、元の返信データの「child-data4」に相当するデータ項目「data1」と、元の返信データの「child-data5」に相当するデータ項目「data2」を含む。HTTPレスポンス184は、元の返信データの「child-data1」,「child-data2」に相当するデータ項目を含まない。
図10は、中継IF定義の第3の例を示す図である。
中継IF定義163は、中継IF生成部133がWebサーバ132を介して開発装置30から取得する中継IF定義の一例である。中継IF定義163は、開発装置30を使用する開発者によって記述される。中継IF定義163は、データベースサーバ135からデータを取得する中継IF134bを生成するためのものである。
中継IF定義163は、接続するデータベースサーバのホスト名およびポート番号、データベースサーバに送信するデータベースクエリ、親VMのURL、当該親VMが受信すべきパラメータの構造および親VMが返信するデータの構造を定義する。
データベースクエリは、親VMが受信すべきパラメータを用いて定義される。親VMのパラメータは、例えば、データベースクエリの中の検索条件として使用される。親VMが返信するデータは、データベースクエリに記載された出力データ項目を用いて定義される。ただし、データベースクエリに記載されていない所定の値が、親VMの返信データとしてHTTPレスポンスに挿入されることもある。
ここでは、親VMのURLは「http://eee.fff.ggg/hhh」であり、親VMが受信するパラメータは「if-date」である。データベースクエリは、パラメータ「if-date」を検索条件として用いてテーブル「data-table」からレコードを検索するものであり、出力データ項目を「ddate」,「dname」,「dvalue」と定義している。
データベース検索に成功した場合、親VMの返信データは「date」,「name」,「value」である。データ項目「date」は検索結果の「ddate」を表し、データ項目「name」は検索結果の「dname」を表し、データ項目「value」は検索結果の「dvalue」を表す。該当するデータが見つからなかった場合、親VMの返信データは、データが無い旨を表す「message」である。このときのステータスコードは404番である。データベース検索でエラーが発生した場合、親VMの返信データは、データベースアクセスに失敗した旨を表す「message」である。このときのステータスコードは500番である。
図11は、第3のメッセージ変換例を示す図である。
中継IF定義163から中継IF134bが生成された場合、URL「http://eee.fff.ggg/hhh」とパラメータ「if-date」を含むHTTPリクエスト191をWebサーバ132が受信する。HTTPリクエスト191から、パラメータ「if-date」を用いて検索条件を定義したデータベースクエリ192が生成され、データベースクエリ192がデータベースサーバ135に送信されて実行される。
データベースクエリ192に対する応答として、出力データ項目「ddate」,「dname」,「dvalue」を含むデータベースレスポンス193をデータベースサーバ135が送信する。データベースレスポンス193の3つの出力データ項目に対応するデータ項目「date」,「name」,「value」を含むHTTPレスポンス194が生成され、HTTPリクエスト191に対する応答としてWebサーバ132が送信する。
次に、仮想マシン130の動作について説明する。
まず、中継IF定義に基づいて中継IFをWebサーバに配備する手順を説明する。
図12は、システム構築の手順例を示すフローチャートである。
(S10)仮想マシン130は、開発装置30から子VMのイメージデータを取得し、仮想マシン130の中で子VMが起動されるように子VMを登録する。
(S11)Webサーバ132は、中継IF定義を受信する。
(S12)中継IF生成部133は、受信された中継IF定義を分析して、中継IFのアクセス先がWebサーバであるか判断する。中継IF定義に子VMのURLが記載されている場合、アクセス先はWebサーバである。アクセス先がWebサーバである場合はステップS13に進み、それ以外の場合はステップS14に進む。
(S13)中継IF生成部133は、中継IF定義に基づいて、Webサーバ132へのアクセスを子VMのWebサーバへのアクセスに変換する中継IFのソースコードを生成する。生成されるソースコードには、中継IF定義に記載された子VMのURLが含まれる。また、生成されるソースコードには、Webサーバ132が受信するパラメータを子VMのパラメータに変換する変換方法や、子VMの返信データをWebサーバ132の返信データに変換する変換方法が記載される。そして、ステップS17に進む。
(S14)中継IF生成部133は、中継IFのアクセス先がストレージであるか判断する。ストレージには、データベースサーバ135やファイルシステムが含まれる。中継IF定義にデータベースサーバの接続情報が記載されている場合、アクセス先はストレージである。アクセス先がストレージである場合はステップS15に進み、それ以外の場合はステップS16に進む。アクセス先がWebサーバでもストレージでもない場合、アクセス先は仮想マシン130のローカルのアプリケーションソフトウェアである。
(S15)中継IF生成部133は、中継IF定義に基づいて、Webサーバ132へのアクセスをストレージへのアクセスに変換する中継IFのソースコードを生成する。生成されるソースコードには、中継IF定義に記載されたデータベースサーバのホスト名やポート番号などストレージの接続情報が含まれる。また、生成されるソースコードには、Webサーバ132が受信するパラメータをストレージに対するクエリに変換する変換方法や、ストレージの出力データをWebサーバ132の返信データに変換する変換方法が記載される。そして、ステップS17に進む。
(S16)中継IF生成部133は、中継IF定義に基づいて、Webサーバ132へのアクセスをアプリケーションソフトウェアの呼び出しに変換する中継IFのソースコードを生成する。生成されるソースコードには、Webサーバ132が受信するパラメータをアプリケーションソフトウェアの引数に変換する変換方法や、アプリケーションソフトウェアの戻り値をWebサーバ132の返信データに変換する変換方法が記載される。
(S17)中継IF生成部133は、ステップS13,S15,S16で生成したソースコードをコンパイル(ビルド)して実行可能なプログラムを生成する。
(S18)中継IF生成部133は、中継IF定義に基づいて、中継IFのプログラムを仮想マシン130のWebサーバ132に配備する。このとき、中継IF生成部133は、中継IF定義に記載された親VMのURLに反応してWebサーバ132が中継IFのプログラムを実行するように、Webサーバ132を設定する。
次に、中継IFのアクセス先がWebサーバである場合の動作を説明する。
図13は、システム実行の第1の手順例を示すフローチャートである。
(S20)Webサーバ132は、HTTPリクエストを受信する。Webサーバ132は、HTTPリクエストに含まれるURLに対応するプログラムを起動する。
(S21)Webサーバ132は、HTTPリクエストからパラメータを抽出し、上記プログラムに従って当該パラメータを用いて子VM用のHTTPリクエストを生成する。
(S22)Webサーバ132は、子VM用のHTTPリクエストを送信する。送信したHTTPリクエストは、HTTPリクエストに含まれるURLに従って、仮想マシン130の仮想化ソフトウェアを介して仮想マシン130の中の適切な子VMに転送される。例えば、仮想化ソフトウェアは、仮想マシン130の中の各子VMのホスト名やIPアドレスなどのネットワーク情報を管理しており、HTTPリクエストを適切な子VMに転送する。HTTPリクエストは、当該子VMのWebサーバによって受信される。
(S23)Webサーバ132は、子VM用のHTTPリクエストに対する応答として子VMからHTTPレスポンスを受信する。
(S24)Webサーバ132は、子VMのHTTPレスポンスからデータを抽出し、上記プログラムに従って当該データを用いて外部用のHTTPレスポンスを生成する。
(S25)Webサーバ132は、外部から受信したHTTPリクエストに対する応答として、外部用のHTTPレスポンスを送信する。
次に、中継IFのアクセス先がデータベースサーバである場合の動作を説明する。
図14は、システム実行の第2の手順例を示すフローチャートである。
(S30)Webサーバ132は、HTTPリクエストを受信する。Webサーバ132は、HTTPリクエストに含まれるURLに対応するプログラムを起動する。
(S31)Webサーバ132は、HTTPリクエストからパラメータを抽出し、上記プログラムに従って当該パラメータを用いてデータベースクエリを生成する。
(S32)Webサーバ132は、上記プログラムに従って所定のデータベースサーバに接続し、データベースサーバにデータベースクエリを送信する。
(S33)Webサーバ132は、データベースサーバからデータベースクエリに対する応答としてデータベースレスポンスを受信する。
(S34)Webサーバ132は、データベースレスポンスからデータを抽出し、上記プログラムに従って当該データを用いて外部用のHTTPレスポンスを生成する。
(S35)Webサーバ132は、外部から受信したHTTPリクエストに対する応答として、外部用のHTTPレスポンスを送信する。
第2の実施の形態の情報処理システムによれば、親VMの中に子VMが配置され、過去に作成されたアプリケーションソフトウェアが子VMの中に配備される。子VMにデータ処理を要求するためのWeb APIや子VMの出力データに直接アクセスするためのAPIは隠蔽され、代わりに親VMにデータ処理を要求するためのWeb APIが公開される。そして、親VMのWeb APIを介して、子VMのWeb APIへのHTTPリクエストの転送やストレージアクセスへの変換が行われる。
よって、過去に作成されたアプリケーションソフトウェアを、OSやミドルウェアや設定情報などの実行環境と合わせて子VMとして部品化することが可能となる。また、子VMを取り込んだ親VMによって、ソフトウェアインタフェースがWeb APIとして統合される。これにより、実行環境に関して動作条件が衝突するアプリケーションソフトウェア同士を組み合わせることが容易となる。また、動作条件が異なるアプリケーションソフトウェアを異なる子VMに配備して部品化することで、同一の親VM内に共存させることができ、また、同一のサーバ装置上に共存させることができる。そのため、ソフトウェア部品の再利用が促進され情報処理システムの開発が効率化される。
10 情報処理装置
11 通信部
12 処理部
13,14 仮想マシン
13a,14a サーバプロセス
15,16 要求メッセージ
15a,16a アドレス
15b,16b パラメータ
17,18 応答メッセージ
17a,18a データ

Claims (9)

  1. コンピュータに、
    第1の仮想マシンが実行する第1のサーバプロセスにより受信された、第1のアドレスと第1のパラメータとを含む第1の要求メッセージを取得し、
    前記第1の要求メッセージから、前記第1のアドレスに対応付けられた第2のアドレスと前記第1のパラメータに応じた第2のパラメータとを含む第2の要求メッセージを生成し、前記第2の要求メッセージを、前記第1の仮想マシンの中に含まれる第2の仮想マシンが実行する第2のサーバプロセスに対して送信し、
    前記第2のサーバプロセスから、前記第2のアドレスおよび前記第2のパラメータに応じた第2のデータを含む第2の応答メッセージを受信し、
    前記第2の応答メッセージから、前記第2のデータに応じた第1のデータを含む第1の応答メッセージを生成して、前記第1の要求メッセージに対する応答として出力する、
    処理を実行させるインタフェース変換プログラム。
  2. 前記コンピュータに更に、
    前記第1のアドレス、前記第1のパラメータ、前記第2のアドレスおよび前記第2のパラメータの対応関係を示すインタフェース定義情報を取得し、
    前記インタフェース定義情報に基づいて、前記第1の要求メッセージから前記第2の要求メッセージを生成し前記第2の応答メッセージから前記第1の応答メッセージを生成するための中継プログラムを生成する、
    処理を実行させる請求項1記載のインタフェース変換プログラム。
  3. 前記第1の仮想マシンは、第1のオペレーティングシステムを含み、前記第2の仮想マシンは、前記第1のオペレーティングシステムと異なる種類の第2のオペレーティングシステムを含む、
    請求項1記載のインタフェース変換プログラム。
  4. 前記第1の仮想マシンは、第3の仮想マシンを更に含み、前記第2の仮想マシンと前記第3の仮想マシンとは、異なる種類のオペレーティングシステムを含む、
    請求項1記載のインタフェース変換プログラム。
  5. 前記第1のアドレスは、前記第1のサーバプロセスが受け付け可能な第1のURL(Uniform Resource Locator)であり、前記第2のアドレスは、前記第2のサーバプロセスが受け付け可能であり前記第1のURLと異なる第2のURLである、
    請求項1記載のインタフェース変換プログラム。
  6. 前記第1のデータは、前記第2のデータのうちの全部または一部分である、
    請求項1記載のインタフェース変換プログラム。
  7. 前記コンピュータに更に、
    前記第1のサーバプロセスにより受信された、第3のアドレスと第3のパラメータとを含む第3の要求メッセージを取得し、
    前記第3の要求メッセージから、前記第3のパラメータに応じたクエリを生成し、前記クエリに基づいて、前記第1の仮想マシンの中に含まれる第3の仮想マシンが生成した第4のデータを記憶するストレージから前記第4のデータを取得し、
    前記第4のデータに応じた第3のデータを含む第3の応答メッセージを生成して、前記第3の要求メッセージに対する応答として出力する、
    処理を実行させる請求項1記載のインタフェース変換プログラム。
  8. コンピュータが実行するインタフェース変換方法であって、
    前記コンピュータ上の第1の仮想マシンが実行する第1のサーバプロセスを介して、第1のアドレスと第1のパラメータとを含む第1の要求メッセージを受信し、
    前記第1の要求メッセージから、前記第1のアドレスに対応付けられた第2のアドレスと前記第1のパラメータに応じた第2のパラメータとを含む第2の要求メッセージを生成し、前記第2の要求メッセージを、前記第1の仮想マシンの中に含まれる第2の仮想マシンが実行する第2のサーバプロセスに対して送信し、
    前記第2のサーバプロセスから、前記第2のアドレスおよび前記第2のパラメータに応じた第2のデータを含む第2の応答メッセージを受信し、
    前記第2の応答メッセージから、前記第2のデータに応じた第1のデータを含む第1の応答メッセージを生成して、前記第1の要求メッセージに対する応答として送信する、
    インタフェース変換方法。
  9. 第1のアドレスと第1のパラメータとを含む第1の要求メッセージを受信し、前記第1の要求メッセージに対する応答として第1の応答メッセージを送信する通信部と、
    第1のサーバプロセスを実行する第1の仮想マシンの中に、第2のサーバプロセスを実行する第2の仮想マシンが含まれて動作するよう制御する処理部と、
    を有し、前記処理部は、
    前記第1のサーバプロセスによって前記第1の要求メッセージが受け付けられると、前記第1の要求メッセージから、前記第1のアドレスに対応付けられた第2のアドレスと前記第1のパラメータに応じた第2のパラメータとを含む第2の要求メッセージを生成し、前記第2の要求メッセージを前記第2のサーバプロセスに対して送信し、
    前記第2のサーバプロセスから、前記第2のアドレスおよび前記第2のパラメータに応じた第2のデータを含む第2の応答メッセージを受信し、
    前記第2の応答メッセージから、前記第2のデータに応じた第1のデータを含むように前記第1の応答メッセージを生成する、
    情報処理装置。
JP2018048758A 2018-03-16 2018-03-16 インタフェース変換プログラム、インタフェース変換方法および情報処理装置 Active JP6993577B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018048758A JP6993577B2 (ja) 2018-03-16 2018-03-16 インタフェース変換プログラム、インタフェース変換方法および情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018048758A JP6993577B2 (ja) 2018-03-16 2018-03-16 インタフェース変換プログラム、インタフェース変換方法および情報処理装置

Publications (2)

Publication Number Publication Date
JP2019160105A true JP2019160105A (ja) 2019-09-19
JP6993577B2 JP6993577B2 (ja) 2022-01-13

Family

ID=67994891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018048758A Active JP6993577B2 (ja) 2018-03-16 2018-03-16 インタフェース変換プログラム、インタフェース変換方法および情報処理装置

Country Status (1)

Country Link
JP (1) JP6993577B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111190575A (zh) * 2019-12-07 2020-05-22 北京海致星图科技有限公司 一种构造接口的方法、系统、介质及设备
CN112131118A (zh) * 2020-09-25 2020-12-25 平安国际智慧城市科技股份有限公司 Mock测试方法、装置、电子设备及计算机可读存储介质
CN113254027A (zh) * 2021-05-20 2021-08-13 西安华讯科技有限责任公司 一种半导体设备控制程序转换方法、系统、设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0764893A (ja) * 1993-08-31 1995-03-10 Canon Inc ネットワーク・システム
JPH0863363A (ja) * 1994-08-25 1996-03-08 Fujitsu Ltd 仮想実行環境実現システム
US20090193399A1 (en) * 2008-01-25 2009-07-30 International Business Machines Corporation Performance improvements for nested virtual machines
JP2011070663A (ja) * 2009-09-22 2011-04-07 Internatl Business Mach Corp <Ibm> コンピュータ・システムにおける入れ子式仮想化の性能改善
US20150106803A1 (en) * 2013-10-15 2015-04-16 Rutgers, The State University Of New Jersey Richer Model of Cloud App Markets
JP2017041158A (ja) * 2015-08-21 2017-02-23 日本電信電話株式会社 Api変換テーブル生成装置、api変換テーブル生成方法、および、api変換テーブル生成プログラム
JP2017054411A (ja) * 2015-09-11 2017-03-16 西日本電信電話株式会社 Api変換アダプタ、api変換システム、及びapi変換プログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0764893A (ja) * 1993-08-31 1995-03-10 Canon Inc ネットワーク・システム
JPH0863363A (ja) * 1994-08-25 1996-03-08 Fujitsu Ltd 仮想実行環境実現システム
US20090193399A1 (en) * 2008-01-25 2009-07-30 International Business Machines Corporation Performance improvements for nested virtual machines
JP2011070663A (ja) * 2009-09-22 2011-04-07 Internatl Business Mach Corp <Ibm> コンピュータ・システムにおける入れ子式仮想化の性能改善
US20150106803A1 (en) * 2013-10-15 2015-04-16 Rutgers, The State University Of New Jersey Richer Model of Cloud App Markets
JP2017041158A (ja) * 2015-08-21 2017-02-23 日本電信電話株式会社 Api変換テーブル生成装置、api変換テーブル生成方法、および、api変換テーブル生成プログラム
JP2017054411A (ja) * 2015-09-11 2017-03-16 西日本電信電話株式会社 Api変換アダプタ、api変換システム、及びapi変換プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111190575A (zh) * 2019-12-07 2020-05-22 北京海致星图科技有限公司 一种构造接口的方法、系统、介质及设备
CN112131118A (zh) * 2020-09-25 2020-12-25 平安国际智慧城市科技股份有限公司 Mock测试方法、装置、电子设备及计算机可读存储介质
CN113254027A (zh) * 2021-05-20 2021-08-13 西安华讯科技有限责任公司 一种半导体设备控制程序转换方法、系统、设备和存储介质
CN113254027B (zh) * 2021-05-20 2024-05-14 西安华讯科技有限责任公司 一种半导体设备控制程序转换方法、系统、设备和存储介质

Also Published As

Publication number Publication date
JP6993577B2 (ja) 2022-01-13

Similar Documents

Publication Publication Date Title
KR101784784B1 (ko) 클라이언트-서버 브리지를 사용하는 객체 관리
US7017148B2 (en) Apparatus and method for UPnP device code generation using XML
US7950010B2 (en) Software deployment system
US7908580B2 (en) Connecting an integrated development environment with an application instance
US6138140A (en) Data processing method and device
JP6940751B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
US8307058B2 (en) Apparatus, method, and computer program product for processing information
US20070288508A1 (en) Computer software development methods and systems
JP5171790B2 (ja) 情報処理装置、通信システムおよびプログラム
US20060168575A1 (en) Defining a software deployment
US20080155525A1 (en) Synchronization patterns for mobile applications
US20150020057A1 (en) Controlling application features
JP2011502309A (ja) 宣言的モデルの変換
JP5209016B2 (ja) WebAPI作成支援装置及びWebAPI作成支援方法
JP6993577B2 (ja) インタフェース変換プログラム、インタフェース変換方法および情報処理装置
US20130263112A1 (en) Deployment and hosting of platform independent applications
US8813026B1 (en) Methods and apparatus for storing information for components of a system in model component files to provide a world view of the system
CN114911518A (zh) 云函数应用发布管理方法、系统、设备及存储介质
KR102337962B1 (ko) 마이크로서비스 아키텍처 애플리케이션 실행 시스템과 방법 및 이를 위한 컴퓨터 프로그램
US8886751B1 (en) Methods and apparatus for a data driven system implementation using model components
KR101762861B1 (ko) 하나 이상의 기능 모듈을 이용한 확장형 연산 처리 시스템, 하나 이상의 기능 모듈을 이용한 정보 처리 방법 및 이를 위한 컴퓨터 프로그램
US11620126B2 (en) Dynamic multiple repository package management through continuous integration
JP2005108082A (ja) デバイスドライバのインターフェース方法
JP6128259B2 (ja) 情報処理システム及び情報処理方法
KR102337961B1 (ko) 모노리틱 아키텍처와 마이크로서비스 아키텍처를 모두 지원하는 개발 프레임워크 제공 시스템, 이를 이용한 애플리케이션 개발 방법 및 이를 위한 컴퓨터 프로그램

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201210

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20201217

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20201217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211029

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211122

R150 Certificate of patent or registration of utility model

Ref document number: 6993577

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150