JP5318830B2 - WebAPIサーバプログラム、WebAPI公開方法 - Google Patents
WebAPIサーバプログラム、WebAPI公開方法 Download PDFInfo
- Publication number
- JP5318830B2 JP5318830B2 JP2010188642A JP2010188642A JP5318830B2 JP 5318830 B2 JP5318830 B2 JP 5318830B2 JP 2010188642 A JP2010188642 A JP 2010188642A JP 2010188642 A JP2010188642 A JP 2010188642A JP 5318830 B2 JP5318830 B2 JP 5318830B2
- Authority
- JP
- Japan
- Prior art keywords
- osgi
- class
- service
- bundle
- webapi
- 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/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
Description
図2は、本発明の実施形態1に係るWebシステム100の構成図である。Webシステム100は、ホスト10上で動作するアプリケーションを、ネットワークを介してクライアント20から利用する形態のシステムである。クライアント20は、HTTPを用いてホスト10にアクセスし、利用したい機能をリクエストし、その実行結果をHTTPレスポンスとして受信する。
WebAPIバンドル17が起動すると、HTTPサーバ部171はクライアント20からのHTTPリクエストを待機する。クライアント20からHTTPリクエストが到着すると、HTTPサーバ部171は、そのリクエストがOSGiサービスの一覧を取得するリクエストであるか、OSGiサービスを呼び出すリクエストであるかを判定する。前者であればステップS802へ進み、後者であればステップS803へ進む。
OSGiサービス一覧取得部173は、サービスレジストリ131に登録されているOSGiサービスのクラス名、メソッド名、メソッド引数、メソッド戻り型などの一覧を取得する。HTTPサーバ部171は、その取得結果をHTTPレスポンスとしてクライアント20に返信し、本動作フローを終了する。HTTPサーバ部171は、再びHTTPリクエストを待機する。
OSGiサービス実行部172は、クライアント20からのHTTPリクエストで指定されたクラス名、メソッド名などを用いて、サービスレジストリ131から該当するOSGiサービスを呼び出す。呼び出しに成功した場合はステップS804へ進み、失敗した場合はステップS805へ進む。
OSGiサービス実行部172は、ステップS803で呼び出したOSGiサービス(呼び出したクラス)のメソッドを実行する。実行に成功した場合はステップS806へ進み、失敗した場合はステップS805へ進む。
HTTPサーバ部171は、エラーが発生した旨のHTTPレスポンスを、クライアント20に返信する。HTTPサーバ部171は、再びHTTPリクエストを待機する。本ステップにおいて、HTTPレスポンスの内容部分にエラーが発生した旨を記述してもよいし、単純にHTTPが規定するエラーコードを返信してもよい。どのようなエラーが発生したのか明示する観点では、前者のほうが望ましい。
HTTPサーバ部171は、OSGiサービス実行部172がOSGiサービスを実行した結果をHTTPレスポンス内に記述し、クライアント20に返信する。HTTPサーバ部171は、再びHTTPリクエストを待機する。
以上のように、本実施形態1に係るWebAPIバンドル17は、実行したいOSGiサービスのクラス名、メソッド名などを指定するHTTPリクエストを受け取り、当該メソッドを実行してその結果をHTTPレスポンスとして返信する。これにより、ネットワーク上で公開したいOSGiバンドルの持つOSGiサービスをサービスレジストリ131に登録しておけば、自動的にWebAPIとしてネットワークに公開することができるので、個別にHTTPサーバ機能などを実装する必要がなくなり、開発負担を低減することができる。
実施形態1では、サービスレジストリ131に登録されているOSGiバンドルは無条件にネットワーク上へ公開される。しかし、OSGiフレームワーク13の機能を利用するためサービスレジストリ131に登録されているOSGiバンドルのなかには、ネットワークに公開したくないものも含まれている可能性がある。そこで本発明の実施形態2では、ネットワーク上に公開するOSGiバンドルとそうでないOSGiバンドルを区別するための手法を説明する。その他の構成は実施形態1と同様であるため、以下では差異点を中心に説明する。
以上のように、本実施形態2に係るWebAPIバンドル17は、サービスレジストリ131に登録されているOSGiバンドルのメンバ変数「openapi」の値をチェックし、当該クラスをWebAPIとして公開してよいか否かを判定する。これにより、ネットワークに公開したいOSGiバンドルのみを選択的に公開することができるので、公開すべきでないOSGiバンドルを不用意にネットワークへ公開する可能性を低減することができる。
本発明の実施形態3では、クライアント20とWebAPIバンドル17の間のHTTPリクエストおよびHTTPレスポンスの形式について補足する。Webシステム100の構成は、実施形態1〜2と同様である。
以上の実施形態1〜3では、WebAPIバンドル17はHTTPリクエストとしてOSGiサービスのクラス名などを直接受け取ることとしたが、必ずしもクラス名などそのものを記述したリクエストパラメータを用いなくともよい。
Claims (6)
- OSGiフレームワーク仕様に対応したOSGiバンドルをWebAPI経由で公開する処理をコンピュータに実行させるプログラムであって、前記コンピュータに、
前記OSGiフレームワーク上でOSGiバンドルまたはOSGiサービスとして登録されているクラスのクラス名と当該クラスが有するメソッド名を特定することができるパラメータを含むHTTPリクエストを受け付ける受信ステップと、
前記OSGiフレームワーク上でOSGiバンドルまたはOSGiサービスとして登録されているクラスのうち前記クラス名に合致するものを、前記OSGiフレームワークが公開しているインターフェースを介して呼び出すサービス呼出ステップと、
前記サービス呼出ステップで呼び出したクラスが有するメソッドのうち前記メソッド名に合致するものを実行するサービス実行ステップと、
前記サービス実行ステップの結果を、前記HTTPリクエストの送信元にHTTPレスポンスの形式で返信する返信ステップと、
を実行させ、
前記OSGiバンドルは、
当該OSGiバンドルを構成しているクラスが有するメソッドをWebAPI経由で公開してよいか否かを示すメンバ変数を有しており、
前記プログラムは、前記コンピュータに、
前記サービス呼出ステップで呼び出したクラスが有する前記メンバ変数の値をチェックすることにより、当該クラスが有するメソッドをWebAPI経由で公開してよいか否かを判定する公開判定ステップを実行させ、
前記公開判定ステップにおいてWebAPI経由で公開してよいと判定したクラスが有するメソッドについてのみ前記サービス実行ステップおよび前記返信ステップを実行させる
ことを特徴とするWebAPIサーバプログラム。 - 前記サービス呼出ステップでは、前記コンピュータに、
前記OSGiフレームワーク上でOSGiバンドル(OSGiサービス)として登録されているクラスのうち前記クラス名に合致するものを、汎用クラス型として呼び出させ、
前記サービス実行ステップでは、前記コンピュータに、
前記サービス呼出ステップで呼び出したクラスが有するメソッドのうち前記メソッド名に合致するものを、前記汎用クラス型から前記クラス名に対応するクラス型に変換する処理を介さずに実行させる
ことを特徴とする請求項1記載のWebAPIサーバプログラム。 - 前記コンピュータに、
前記OSGiフレームワーク上でOSGiバンドルまたはOSGiサービスとして登録されているクラスのクラス名、当該クラスが有するメソッド名、当該メソッドの引数、
および当該メソッドの戻り型の一覧を取得するサービス一覧取得ステップと、
前記サービス一覧取得ステップの結果を、前記HTTPリクエストの送信元にHTTPレスポンスの形式で返信するステップと、
を実行させることを特徴とする請求項1または2記載のWebAPIサーバプログラム。 - 前記WebAPIサーバプログラムは、OSGiフレームワーク仕様に対応したOSGiバンドルとして実装されている
ことを特徴とする請求項1から3のいずれか1項記載のWebAPIサーバプログラム。 - 前記受信ステップおよび前記返信ステップにおいて、前記コンピュータに、
SOAP形式またはREST形式の通信データを用いて、前記HTTPリクエストの送信元との間で通信させる
ことを特徴とする請求項1から4のいずれか1項記載のWebAPIサーバプログラム。 - OSGiフレームワーク仕様に対応したOSGiバンドルの提供するOSGiサービスをWebAPI経由で公開する方法であって、
前記OSGiフレームワーク上でOSGiバンドルまたはOSGiサービスとして登録されているクラスのクラス名と当該クラスが有するメソッド名を特定することができるパラメータを含むHTTPリクエストを受け付けるステップと、
前記OSGiフレームワーク上でOSGiバンドルとして登録されているクラスのうち前記クラス名に合致するものを、前記OSGiフレームワークが公開しているインターフェースを介して呼び出すサービス呼出ステップと、
前記サービス呼出ステップで呼び出したクラスが有するメソッドのうち前記メソッド名に合致するものを実行するサービス実行ステップと、
前記サービス実行ステップの結果を、前記HTTPリクエストの送信元にHTTPレスポンスの形式で返信する返信ステップと、
を有し、
前記OSGiバンドルは、
当該OSGiバンドルを構成しているクラスが有するメソッドをWebAPI経由で公開してよいか否かを示すメンバ変数を有しており、
前記方法はさらに、
前記サービス呼出ステップで呼び出したクラスが有する前記メンバ変数の値をチェックすることにより、当該クラスが有するメソッドをWebAPI経由で公開してよいか否かを判定する公開判定ステップを有し、
前記公開判定ステップにおいてWebAPI経由で公開してよいと判定したクラスが有するメソッドについてのみ前記サービス実行ステップおよび前記返信ステップを実行する
ことを特徴とするWebAPI公開方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010188642A JP5318830B2 (ja) | 2010-08-25 | 2010-08-25 | WebAPIサーバプログラム、WebAPI公開方法 |
US13/635,150 US8701129B2 (en) | 2010-08-25 | 2011-08-09 | Web API server program, web API publication method |
EP11819784.7A EP2538344A4 (en) | 2010-08-25 | 2011-08-09 | WEB API SERVER PROGRAM, WEB API RELEASE METHOD |
PCT/JP2011/068112 WO2012026320A1 (ja) | 2010-08-25 | 2011-08-09 | WebAPIサーバプログラム、WebAPI公開方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010188642A JP5318830B2 (ja) | 2010-08-25 | 2010-08-25 | WebAPIサーバプログラム、WebAPI公開方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012048391A JP2012048391A (ja) | 2012-03-08 |
JP5318830B2 true JP5318830B2 (ja) | 2013-10-16 |
Family
ID=45723325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010188642A Expired - Fee Related JP5318830B2 (ja) | 2010-08-25 | 2010-08-25 | WebAPIサーバプログラム、WebAPI公開方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8701129B2 (ja) |
EP (1) | EP2538344A4 (ja) |
JP (1) | JP5318830B2 (ja) |
WO (1) | WO2012026320A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404149B (zh) * | 2011-11-23 | 2014-06-11 | 华为技术有限公司 | 一种业务特性的管理系统和方法 |
JP2014010554A (ja) * | 2012-06-28 | 2014-01-20 | Kotobuki Solution Co Ltd | ユーザ認証システム |
US8990839B2 (en) | 2013-04-22 | 2015-03-24 | Microsoft Technology Licensing, Llc | Controlling runtime access to application programming interfaces |
CN103425495B (zh) * | 2013-08-07 | 2016-08-31 | 华为软件技术有限公司 | 业务请求信息的处理方法及系统 |
JP6366373B2 (ja) * | 2014-06-13 | 2018-08-01 | キヤノン株式会社 | 情報処理装置とその制御方法、及びプログラム |
US10021166B2 (en) | 2015-09-10 | 2018-07-10 | Ca, Inc. | Mechanism for building normalized service model to expose web APIs |
CN107592358A (zh) * | 2017-09-19 | 2018-01-16 | 广州视源电子科技股份有限公司 | 基于http服务的应用程序接口调用方法和装置 |
CN108319827B (zh) * | 2018-01-25 | 2020-06-02 | 烽火通信科技股份有限公司 | 一种基于osgi框架的api权限管理系统及方法 |
CN108600389A (zh) * | 2018-05-10 | 2018-09-28 | 山东浪潮通软信息科技有限公司 | 一种基于公共接口平台的数据传输方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000076118A (ja) * | 1998-09-03 | 2000-03-14 | Fuji Xerox Co Ltd | 分散ファイル処理装置および分散ファイル処理方法 |
JP2004151942A (ja) * | 2002-10-30 | 2004-05-27 | Ricoh Co Ltd | ウェブサービス提供装置、ウェブサービス提供方法およびウェブサービス提供プログラム |
US7516331B2 (en) * | 2003-11-26 | 2009-04-07 | International Business Machines Corporation | Tamper-resistant trusted java virtual machine and method of using the same |
US8151281B2 (en) * | 2004-01-09 | 2012-04-03 | International Business Machines Corporation | Method and system of mapping at least one web service to at least one OSGi service |
US7818733B2 (en) * | 2005-09-27 | 2010-10-19 | International Business Machines Corporation | Improving bundle control in computing environment |
KR100694155B1 (ko) * | 2005-10-12 | 2007-03-12 | 삼성전자주식회사 | 웹서비스를 통해 홈 네트워크 기기의 서비스를 홈 네트워크외부에 제공하는 방법 및 장치 |
JP4984898B2 (ja) * | 2007-01-11 | 2012-07-25 | 株式会社日立製作所 | 機器管理装置 |
US8490120B2 (en) * | 2007-09-12 | 2013-07-16 | Oracle International Corporation | System and method for the service configuration of application server environments |
US8863074B2 (en) * | 2010-01-27 | 2014-10-14 | Oracle International Corporation | Software modeling framework |
CN102377796B (zh) * | 2010-08-05 | 2015-06-10 | 中国人民解放军国防科学技术大学 | 基于OSGi的异构服务集成系统及方法 |
-
2010
- 2010-08-25 JP JP2010188642A patent/JP5318830B2/ja not_active Expired - Fee Related
-
2011
- 2011-08-09 EP EP11819784.7A patent/EP2538344A4/en not_active Withdrawn
- 2011-08-09 US US13/635,150 patent/US8701129B2/en not_active Expired - Fee Related
- 2011-08-09 WO PCT/JP2011/068112 patent/WO2012026320A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
EP2538344A4 (en) | 2014-07-30 |
US20130145381A1 (en) | 2013-06-06 |
US8701129B2 (en) | 2014-04-15 |
WO2012026320A1 (ja) | 2012-03-01 |
EP2538344A1 (en) | 2012-12-26 |
JP2012048391A (ja) | 2012-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5318830B2 (ja) | WebAPIサーバプログラム、WebAPI公開方法 | |
US10554734B2 (en) | Runtime generation of application programming interfaces for remote procedure call services | |
EP2798494B1 (en) | Virtual channel for embedded process communication | |
Montesi et al. | Service-oriented programming with Jolie | |
US7703024B2 (en) | Obtaining a graphical user interface to access a remote computing system | |
Indrasiri et al. | gRPC: up and running: building cloud native applications with Go and Java for Docker and Kubernetes | |
US11507351B2 (en) | Intent compiler | |
US8874640B2 (en) | Method and system for reducing service overhead in service oriented architectures | |
JP2010009520A (ja) | フロー処理装置及びメッセージ変換方法 | |
US9934029B2 (en) | Annotation driven representational state transfer (REST) web services | |
US20160173648A1 (en) | System and method for condition-based application logic shifting between a client and a server | |
JP5811088B2 (ja) | データ処理システム及びデータ処理方法 | |
CN114489622A (zh) | 静态资源管理方法、Node.js应用、电子设备和存储介质 | |
KR101907660B1 (ko) | 웹 기반의 운영체제를 탑재한 단말 장치 및 이를 이용한 서비스 제공 방법 | |
Pautasso et al. | From web service composition to megaprogramming | |
Malawski et al. | Invocation of operations from script-based grid applications | |
Kiraly et al. | Analysing RPC and testing the performance of solutions | |
Hong et al. | Meso: an object-oriented programming language for building strongly-typed internet-based network applications | |
JP2003076563A (ja) | 分散オブジェクトミドルウェア連携方法及びプログラムを記録した記録媒体並びにプログラム | |
Giretti | Create a gRPC Client | |
Cosmina et al. | Spring Advanced Topics | |
Vo | Applying microservice architecture with modern gRPC API to scale up large and complex application | |
Taylor et al. | Triana Metadata Specification | |
Cheng et al. | Service Interaction | |
CN117827487A (zh) | 安卓应用跨进程通信方法、装置、安卓设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130507 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130613 |
|
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: 20130702 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130710 |
|
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 |