JP2013058083A - OSGiプログラム、OSGiシステム - Google Patents

OSGiプログラム、OSGiシステム Download PDF

Info

Publication number
JP2013058083A
JP2013058083A JP2011196060A JP2011196060A JP2013058083A JP 2013058083 A JP2013058083 A JP 2013058083A JP 2011196060 A JP2011196060 A JP 2011196060A JP 2011196060 A JP2011196060 A JP 2011196060A JP 2013058083 A JP2013058083 A JP 2013058083A
Authority
JP
Japan
Prior art keywords
osgi
bundle
electronic device
identification information
framework
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
JP2011196060A
Other languages
English (en)
Other versions
JP5740257B2 (ja
Inventor
Shinya Nobuoka
真也 信岡
Yuichi Nakamura
雄一 中村
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.)
Hitachi Solutions Ltd
Original Assignee
Hitachi Solutions 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 Hitachi Solutions Ltd filed Critical Hitachi Solutions Ltd
Priority to JP2011196060A priority Critical patent/JP5740257B2/ja
Priority to EP12829623.3A priority patent/EP2672391B1/en
Priority to PCT/JP2012/051446 priority patent/WO2013035348A1/ja
Priority to US14/002,811 priority patent/US9218174B2/en
Publication of JP2013058083A publication Critical patent/JP2013058083A/ja
Application granted granted Critical
Publication of JP5740257B2 publication Critical patent/JP5740257B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】OSGiフレームワークを搭載した電子機器に接続する外部デバイスを利用するために必要となるOSGiバンドルを、配信システムに負担をかけず電子機器へ自動的にインストールする。
【解決手段】本発明に係るOSGiプログラムは、OSGiフレームワークを搭載する電子機器に接続された外部デバイスを検出し、その外部デバイスに対応するOSGiバンドルを配信サーバからダウンロードし、電子機器にインストールする。
【選択図】図1

Description

本発明は、OSGiフレームワーク仕様に対応したOSGiバンドルを配信する技術に関する。
OSGiフレームワークとは、Java(登録商標)Virtual Machine上で動作し、JavaプログラムをPluginモジュールとして取り扱い、動的にアプリケーションへ追加できるようにする、サービスプラットフォームである。OSGiフレームワークは、OSGi Allianceによって開発・定義されている(非特許文献1)。Pluginモジュールとして扱われるOSGiフレームワーク上のJavaプログラムのことを、OSGiバンドルと呼ぶ。
通信キャリアなどのサービスプロバイダが各家庭に設置しているゲートウェイデバイスなどの端末(ブロードバンドルータ等)のなかには、OSGiフレームワークを搭載しているものがある。OSGiフレームワークは、ゲートウェイデバイスにアプリケーションを配信し、実行する基盤としての役割を担う。端末がOSGiフレームワークを搭載し、配信サーバからOSGiバンドルを配信することにより、遠隔からモジュール単位で機能の追加やアップデートをすることができる。
家庭内のゲートウェイデバイスは、新たなOSGiバンドルを配信サーバから取得する必要が生じる場合がある。例えば、ユーザがZigBee(登録商標)通信機能を持ったUSBドングルを購入した場合について考える。
ZigBeeドングルをゲートウェイデバイスのUSBポートに挿せば、ゲートウェイデバイス10はハードウェア能力としてはZigBee通信機能を備えることができる。しかし、ゲートウェイデバイスがZigBee通信を実施するために必要な通信ソフトウェアを備えていなければ、ユーザはZigBee機能を使用することはできない。
このような場合、ユーザはサービスプロバイダのWebページ等からZigBee通信を実施するために必要なOSGiバンドルを探し、自宅のゲートウェイデバイスにダウンロードしインストールする。これにより、配信サーバから自宅ゲートウェイデバイスへZigBee通信のためのOSGiバンドルが送り込まれ、ゲートウェイデバイスはそのOSGiバンドルの機能を使用してZigBee機器を操作することができるようになる。
このときユーザがOSGiバンドルを探すために用いるユーザインターフェースとして、Webブラウザが考えられる。Webブラウザのアクセス先は、例えばサービスプロバイダが提供するWebページである。ユーザは、Webブラウザを用いて必要なOSGiバンドルを探し、ゲートウェイデバイス上にダウンロードしてインストールする。
上述のように、ゲートウェイデバイス上にインストールするOSGiバンドルをユーザが手動で探してインストールする他、配信サーバとゲートウェイデバイスの間の通信セッションを常時または定期的に確立し、ゲートウェイデバイスが必要とするOSGiバンドルを配信サーバ側からプッシュ配信することも考えられる。
OSGi Service Platform Release4、URL:http://www.osgi.org/Release4/HomePage(2011年8月22日取得)
ユーザがゲートウェイデバイス上に導入しようとしているアプリケーション(OSGiバンドル)が、上記例のように特定種類の外部デバイスと連動するものである場合、ユーザはその外部デバイスに対応するOSGiバンドルを探してゲートウェイデバイス上にインストールする必要がある。そのため、ユーザにとって作業負担が大きい。
また、配信サーバからプッシュ型でOSGiバンドルを配信する場合、多数のクライアント端末(ゲートウェイデバイス)を常に配信サーバ側で監視する必要があり、配信システム全体として大規模かつ複雑にならざるを得ない。新たなOSGiバンドルを配信する必要が常時発生するようなクライアント端末でない場合、このようなプッシュ型の配信システムはオーバースペックであると考えられる。
本発明は、上記のような課題を解決するためになされたものであり、OSGiフレームワークを搭載した電子機器に接続する外部デバイスを利用するために必要となるOSGiバンドルを、配信システムに負担をかけず電子機器へ自動的にインストールすることを目的とする。
本発明に係るOSGiプログラムは、OSGiフレームワークを搭載する電子機器に接続された外部デバイスを検出し、その外部デバイスに対応するOSGiバンドルを配信サーバからダウンロードし、電子機器にインストールする。
本発明に係るOSGiプログラムによれば、OSGiフレームワークを搭載する電子機器に外部デバイスを接続するだけで、その外部デバイスに対応するOSGiバンドルを電子機器にインストールすることができる。これにより、ユーザに作業負担をかけることなく、電子機器上で新たな外部デバイスを利用することができる。また、必要なOSGiバンドルを配信するように電子機器の側から要求するので、配信システムは電子機器を常時監視する必要はなく、配信システムにかかる負担を抑えることができる。
実施形態1に係るOSGiシステム100の構成図である。 バンドル取得バンドル14の機能ブロック図である。 デバイス情報取得部141の機能ブロック図である。 OSGiバンドルプール23の構成例を示す図である。 バンドル取得バンドル14の動作フローを示す図である。 図5のステップS502における配信サーバ20の動作フローを示す図である。 図5のステップS506における配信サーバ20の動作フローを示す図である。 図5のステップS502でバンドル取得部143が配信サーバ20に送信するHTTPリクエストの内容を例示する図である。 図5のステップS502で配信サーバ20がバンドル取得部143に送信するHTTPレスポンスの内容を例示する図である。 図5のステップS508でバンドル取得部143がポータルサーバ30に送信するHTTPメッセージの内容を例示する図である。 ポータルサーバ30がユーザに提供するWebページの画面推移を例示する図である。
<実施の形態1>
図1は、本発明の実施形態1に係るOSGiシステム100の構成図である。OSGiシステム100は、OSGiフレームワークに準拠した機能を提供するシステムであり、ゲートウェイデバイス10、配信サーバ20、ポータルサーバ30を有する。
ゲートウェイデバイス10は、ユーザ宅に配置され、OSGiフレームワークが搭載された電子機器である。ゲートウェイデバイス10は、OS(オペレーティングシステム)11、JavaVM12、OSGiフレームワーク13、バンドル取得バンドル14を備える。その他、各プログラムを実行するCPU(Central Processing Unit)、ネットワークインターフェースなどを適宜備える。ここでは、OSGiフレームワークを搭載した電子機器としてゲートウェイデバイスを例に説明するが、その他の電子機器も同様の構成を備えることができる。以下では記載の便宜上、各プログラムを動作主体として説明する場合があるが、実際にこれらプログラムを実行するのはCPUなどの演算装置である。
OS11は、ゲートウェイデバイス10のOSであり、例えばLinux(登録商標)などのOSを用いることができる。JavaVM12は、OS11上で動作し、OSGiフレームワーク13を実行する。OSGiフレームワーク13は、OSGiフレームワーク仕様を実装したソフトウェアである。
バンドル取得バンドル14は、OSGiフレームワーク13上で動作するOSGiバンドルである。バンドル取得バンドル14は、ZigBeeドングル40のようなUSBデバイスがゲートウェイデバイス10のUSBポートに接続されたことを検知し、そのデバイスに対応するOSGiバンドル(この例ではZigBeeバンドル15)を配信サーバ20よりダウンロードしてOSGiフレームワーク13上にインストールし実行する。その他、ゲートウェイデバイス10が属するネットワーク上に接続されたUPnP(Universal Plug and Play)デバイスを検出し、同様の処理を実施することもできる。
また、バンドル取得バンドル14は、新しくインストールされたOSGiバンドルの識別情報をユーザIDとともにポータルサーバ30に通知する。ここでいうユーザIDは、サービスプロバイダが各ユーザおよびユーザ宅のOSGiフレームワークに割り振ったユニークIDである。ポータルサーバ30は、このユーザIDを用いて、個々のゲートウェイデバイス10を識別することができる。
配信サーバ20は、各ユーザ宅のゲートウェイデバイス10にOSGiバンドルを配信するサーバである。配信サーバ20は、HTTPサーバ部21、デバイスマッチング部22、OSGiバンドルプール23を備える。HTTPサーバ部21とデバイスマッチング部22は、これらの機能を実現する回路デバイスなどのハードウェアを用いて構成することもできるし、同様の機能を実装したソフトウェアとCPUなどの演算装置を用いて構成することもできる。OSGiバンドルプール23は、データを格納する記憶装置を用いて構成することができる。
HTTPサーバ部21は、バンドル取得バンドル14から後述するデバイス識別情報やバンドル識別情報を受け取り、これらに対応するバンドル識別情報やOSGiバンドルを配信する。HTTPサーバ部21は、HTTPサーバとして実装することができる。
デバイスマッチング部22は、バンドル取得バンドル14から受け取ったデバイス識別情報に合致するバンドル識別情報またはOSGiバンドルをOSGiバンドルプール23から検索し、HTTPサーバ部21を介してバンドル取得バンドル14に送信する。
OSGiバンドルプール23は、OSGiバンドルおよび各OSGiバンドルを識別するバンドル識別情報を保持するデータベースである。OSGiバンドルプール23は、データベース内に保持するデータを例えばテーブル形式で記述することができる。
ポータルサーバ30は、Webページを通じてユーザに各種サービスを提供するサーバである。例えば、ゲートウェイデバイス10自身がユーザインターフェースを備えていない場合、ユーザはゲートウェイデバイス10内にどのようなOSGiバンドルがインストールされているかを知ることができない。そこでバンドル取得バンドル14は、OSGiフレームワーク13上にインストール済みのOSGiバンドルのバンドル識別情報をポータルサーバ30へ通知し、ポータルサーバ30はこれをWebページ形式に整形してユーザに公開する。その他、ユーザ情報の管理などの各種サービスを提供することもできるがここでは説明しない。
図2は、バンドル取得バンドル14の機能ブロック図である。バンドル取得バンドル14は、デバイス情報取得部141、バンドル配置・実行部142、バンドル取得部143を備える。これら機能部は、バンドル取得バンドル14が備えるJavaメソッドとして実装することができる。
デバイス情報取得部141は、USBデバイスがゲートウェイデバイス10のUSBポートに接続されたこと、またはゲートウェイデバイス10が属するネットワークにUPnPデバイスが接続されたことを検知し、そのデバイスを識別するためのデバイス識別情報を取得する。バンドル配置・実行部142は、OSGiバンドルをOSGiフレームワーク13にインストールし実行する。バンドル取得部143は、配信サーバ20にデバイス識別情報を送信し、そのデバイスにマッチするOSGiバンドルまたはそのバンドル識別情報を取得する。
図3は、デバイス情報取得部141の機能ブロック図である。デバイス情報取得部141は、USBデバイス情報取得部1411とUPnPデバイス情報取得部1413を備える。
USBデバイス情報取得部1411は、ゲートウェイデバイス10にUSBデバイスが接続されたことを検知し、そのデバイスの識別情報(例えば製造者、製品名など、以下同じ)を取得する。UPnPデバイス情報取得部1413は、UPnPデバイスがゲートウェイデバイス10の属するネットワーク(LAN)に接続されたことを検知し、そのデバイスの識別情報を取得する。
USBデバイス情報取得部1411は、例えばオープンソースのJavaライブラリであるJSR80モジュール1412を使用して、USBデバイスの識別情報を取得する。JSR80は、USBデバイスが接続されたことを検知する機能、USBデバイスの製造者名や製品名といったプロパティを取得する機能を提供する。JSR80モジュール1412がUSBデバイスを検知する前提として、そのUSBデバイスに適合するデバイスドライバがOS11に組み込まれているものとする。主要なデバイスドライバは一般的なOS11に組み込まれているため、JSR80モジュール1412は大多数のUSBデバイスからデバイス識別情報を取得することができると考えられる。
UPnPデバイス情報取得部1413は、UPnPサービス17を使用してUPnPデバイスを検知し、同デバイスのデバイス識別情報を取得する。UPnPサービス17は、OSGiフレームワーク13が動作しているデバイスと同じネットワーク内に存在するUPnPデバイスの検知、製造者や製品名といったデバイス識別情報の取得、およびそのUPnPデバイスが持つ機能を使用するためのインターフェースを提供する。UPnPサービス17は、OSGiフレームワーク13上で動作するOSGiバンドルである。UPnPサービス17は、OSGiAllianceによって仕様化され、多くのOSGiフレームワーク上で提供されている。
図4は、OSGiバンドルプール23の構成例を示す図である。OSGiバンドルプール23は、ゲートウェイデバイス10に接続される外部デバイスのデバイス識別情報と、そのデバイスに対応するOSGiバンドルのバンドル識別情報との対応関係を記述するテーブルを有する。
デバイス識別情報は、例えば当該デバイスの製造者名と製品名のような、当該デバイスから取得することができる情報を用いて構成することができる。バンドル識別情報は、各OSGiバンドルに固有のバンドルシンボル名とバンドルバージョン番号を用いて構成することができる。OSGi規格では全てのバンドルがバンドルシンボル名を持つよう規定されているので、バンドルシンボル名によって個々のOSGiバンドルを特定することができる。なお、実際にOSGiバンドルを配信するときに備えて、OSGiバンドルの実体ファイル(jarファイル)のファイル名をバンドル識別情報に含めてもよい。
デバイスマッチング部22は、ゲートウェイデバイス10に接続された外部デバイスのデバイス識別情報をバンドル取得バンドル14から取得し、OSGiバンドルプール23が格納しているデータと比較することにより、そのデバイスに対応するOSGiバンドルを特定する。ここでいう「対応するOSGiバンドル」とは、ゲートウェイデバイス10上でそのデバイスを利用するために必要となるOSGiバンドル、インストールすることが望ましいOSGiバンドルなど、ゲートウェイデバイス10上でそのデバイスを使用する際に何らかの形態で用いられるOSGiバンドルのことである、
図5は、バンドル取得バンドル14の動作フローを示す図である。以下、図5の各ステップについて説明する。
(図5:ステップS500)
OSGiフレームワーク13は常時実行型のフレームワークであるため、バンドル取得バンドル14は新たなデバイスを検出するように常時待機している。ゲートウェイデバイス10のUSBポートにUSBデバイスが接続されるか、またはゲートウェイデバイス10が属するネットワーク内に新たなUPnPデバイスが接続され、デバイス情報取得部141がその旨を検出すると、デバイス情報取得部141は本処理フローを開始する。
(図5:ステップS501)
デバイス情報取得部141は、新たに検出した外部デバイスのデバイス識別情報を取得し、そのデバイス識別情報をバンドル取得バンドル14に通知する。
(図5:ステップS502)
バンドル取得部143は、デバイス情報取得部141より受け取ったデバイス識別情報を、HTTPリクエストに載せて配信サーバ20に送信する。バンドル取得部143は、配信サーバ20からのレスポンスを待ち受ける。
(図5:ステップS503)
バンドル取得部143は、配信サーバ20からのHTTPレスポンスがNull(ボディ部分が空)であった場合、本処理を終了する。これは送信したデバイス識別情報にマッチするOSGiバンドルが見つからなかったことを意味する。HTTPレスポンス内にバンドル識別情報が含まれている場合は、ステップS504に進む。
(図5:ステップS503:補足)
本ステップにおいて、デバイスマッチング部22は、バンドル取得部143から受け取ったデバイス識別情報に合致するOSGiバンドルのバンドル識別情報をOSGiバンドルプール23から検索し、バンドル取得部143に返信する。バンドル識別情報とは、図4で説明したバンドルシンボル名とバージョン番号である。
(図5:ステップS504)
バンドル取得部143は、ステップS503で受け取ったバンドルシンボル名とバージョン番号に一致するOSGiバンドルが既にOSGiフレームワーク13上にインストールされているか否かをチェックする。
(図5:ステップS504:補足)
バージョン番号をチェックするのは、OSGiフレームワーク13上に同じバンドルシンボルでバージョンが古いOSGiバンドルがインストールされていた場合に、それを更新するためである。この仕組みにより、ゲートウェイデバイス10をネットワークに接続する毎に、OSGiバンドルを新しいバージョンに更新することができる。
(図5:ステップS505)
ステップS504でチェックしたOSGiバンドルがOSGiフレームワーク13上に既にインストールされている場合は本処理フローを終了し、インストールされていない場合はステップS506へ進む。
(図5:ステップS506)
バンドル取得部143は、ステップS503で取得したバンドルシンボル名を載せて配信サーバ20にHTTPリクエストを送り、そのバンドルシンボル名に該当するOSGiバンドルを配信サーバ20から取得する。
(図5:ステップS506:補足)
本処理フローでは、ステップS503〜S504でいったんバンドル識別情報を取得してそのOSGiバンドルがインストール済みであるか否かをチェックし、インストールされていない場合のみ本ステップでそのOSGiバンドルを取得することとした。これは、毎回OSGiバンドルを取得すると、ゲートウェイデバイス10や配信サーバ20の処理負荷が大きくなるからである。
(図5:ステップS507)
バンドル配置・実行部142は、ステップS506で取得したOSGiバンドルをインストール・実行する。同じバンドルシンボル名でバージョン番号が古いOSGiバンドルが既にインストールされている場合は、そのOSGiバンドルを上書インストールする。インストールに成功すればステップS508に進み、失敗した場合は本処理を終了する。
(図5:ステップS508)
バンドル配置・実行部142は、インストールしたOSGiバンドルのバンドルシンボル名とバージョン番号、およびOSGiフレームワーク13に設定されているユーザIDをポータルサーバ30に送信する。ここでのユーザIDは、先に説明したように、サービスプロバイダが各ユーザを識別するために各ユーザのOSGiフレームワーク13に割り当てたIDであり、OSGiフレームワークの仕様で定められたものではない。
図6は、図5のステップS502における配信サーバ20の動作フローを示す図である。以下、図6の各ステップについて説明する。
(図6:ステップS5021)
HTTPサーバ部21は、ゲートウェイデバイス10からデバイス識別情報を付加したHTTPリクエストを受け取ると、そのデバイス識別情報をデバイスマッチング部22に渡す。デバイス識別情報を受け取ったデバイスマッチング部22は、そのデバイス識別情報に対応するOSGiバンドルをOSGiバンドルプール23から検索する。
(図6:ステップS5022)
ステップS5021でデバイス識別情報に対応するOSGiバンドルを発見できた場合はステップS5023に進み、発見できなかった場合はステップS5024に進む。
(図6:ステップS5023)
デバイスマッチング部22は、ステップS5021で発見したOSGiバンドルのバンドル識別情報(バンドルシンボル名とバージョン)をOSGiバンドルプール23から取り出してHTTPサーバ部21に渡す。HTTPサーバ部21は、ゲートウェイデバイス10にそのバンドル識別情報を返信する。
(図6:ステップS5024)
HTTPサーバ部21は、ゲートウェイデバイス10にNull(ボディ部が空白のHTTPレスポンス)を返信する。
図7は、図5のステップS506における配信サーバ20の動作フローを示す図である。以下、図7の各ステップについて説明する。
(図7:ステップS5061)
HTTPサーバ部21は、ゲートウェイデバイス10からバンドル識別情報(バンドルシンボル名とバージョン)を付加したHTTPリクエストを受け取ると、そのバンドル識別情報に該当するOSGiバンドルをOSGiバンドルプール23から取得し、ゲートウェイデバイス10に返送する。
図8は、図5のステップS502でバンドル取得部143が配信サーバ20に送信するHTTPリクエストの内容を例示する図である。バンドル取得部143は、ゲートウェイデバイス10に接続されているUSBデバイスまたはUPnPデバイスのデバイス識別情報(ここでは製造者名と製品名)を配信サーバ20に送信し、これに対応するOSGiバンドルの識別情報(バンドルシンボル名とバージョン)を取得する。
図9は、図5のステップS502で配信サーバ20がバンドル取得部143に送信するHTTPレスポンスの内容を例示する図である。デバイスマッチング部22は、HTTPサーバ部21を介して、バンドル取得部143から受け取ったデバイス識別情報に合致するバンドル識別情報(ここではバンドルシンボル名とバージョン番号)を返信する。
図10は、図5のステップS508でバンドル取得部143がポータルサーバ30に送信するHTTPメッセージの内容を例示する図である。インストール・実行されたOSGiバンドルのバンドル識別情報をユーザIDと結び付けてポータルサーバ30に送信することにより、ポータルサーバ30はどのユーザのゲートウェイデバイス10にどのOSGiバンドルがインストールされたかを知ることができる。
図11は、ポータルサーバ30がユーザに提供するWebページの画面推移を例示する図である。説明の便宜上、ステップ番号を付与した。以下、図11の各ステップに示す画面遷移について説明する。
(図11:ステップS1101)
ポータルサーバ30は、図5のステップS508において、ゲートウェイデバイス10に新たなOSGiバンドルがインストールされたことを知る。ポータルサーバ30は、そのユーザに対して当該OSGiバンドルに対応する機能が利用できるようになった旨を通知する。
(図11:ステップS1101:補足その1)
ゲートウェイデバイス10にインストールしたOSGiバンドルの一覧をポータルサーバ30から通知するのは、OSGiフレームワーク13が基本的にGUI(Graphical User Interface)を持たないため、OSGiフレームワーク13にインストールされたOSGiバンドルの利用方法をユーザに知らせる必要があるからである。OSGiフレームワークが内部的にWebサーバを備えており、Webページ形式の画面を提供できる可能性もあるが、その場合でもユーザがそのページに頻繁にアクセスしているか否かは不明である。そのため、何らかのプッシュ型手段によってユーザに通知することが望ましいと考えられる。
(図11:ステップS1101:補足その2)
本ステップにおける通知の内容は、単純にそのOSGiサービスが提供するサービスの利用方法が記載されている場合、図11に示すようにサービス利用のためのWebページへのリンクが貼られている場合、などが考えられる。前者はそのOSGiバンドルがユーザ宅のLAN内で完結しているサービスを提供している場合に適している。後者はサービスプロバイダが提供するサーバを経由して利用する形態のサービスに適している。
(図11:ステップS1101:補足その3)
本ステップにおける通知は、例えばユーザが所持する所定の電子メールアドレス宛に送信してもよいし、ゲートウェイデバイス10が備えているWebページを介して操作を実施している場合は、そのWebページ上で通知してもよい。
(図11:ステップS1102)
ユーザは、Webブラウザを操作し、サービスプロバイダから割り当てられたIDとパスワードなどを用いて、ステップS1101で受け取った通知に記載されているWebサイトなどへログインする。このWebサイトは、ポータルサーバ30が提供するものでもよいし、ポータルサーバ30上のものでなくともよい。
(図11:ステップS1103)
ユーザがWebサイトにログインすると、当該ユーザが所持するゲートウェイデバイス10にインストールされ実行されているOSGiバンドルに対応するサービスの一覧が現れる。ここでは、ユーザはXXX社のZigBeeドングル40をゲートウェイデバイス10に挿し、そのZigBeeドングル40を操作するためのOSGiバンドルがゲートウェイデバイス10にインストールされている例を示した。このページ内のリンクより、ユーザ宅のZigBeeデバイスを操作するためのページに進むことができる。
(図11:ステップS1104)
本ステップで例示している画面は、ZigBeeドングル40が提供するZigBeeネットワークにZigBeeデバイスを追加するための機能ボタンを備える。本Web画面上でこのボタンを押し、一方でユーザ宅内のZigBeeデバイスがネットワークに参加手続き(多くの場合はこれもデバイス上のボタンを押すこと)を実施すると、ZigBeeデバイスがネットワークに追加され、このWeb画面を通じて操作することができるようになる。
(図11:ステップS1105)
ステップS1104で新たなZigBeeデバイスをZigBeeネットワーク上に追加した後は、そのZigBeeデバイスを本画面上で操作することができるようになる。例えば家庭内の電気機器をZigBeeデバイスとして遠隔操作することができる。
<実施の形態1:まとめ>
以上のように、本実施形態1によれば、ユーザがゲートウェイデバイス10に新たな外部デバイスを接続すると、その外部デバイスを利用するために必要なOSGiバンドルがゲートウェイデバイス10に自動的にインストールされる。これにより、ユーザは必要なOSGiバンドルを探したりインストールしたりする作業から解放され、ユーザの負担を軽減することができる。また、新たな外部デバイスを検出した時点で配信サーバ20に対してOSGiバンドルを配信するよう要求するので、配信サーバ20にかける負担を軽減することができる。
また、本実施形態1によれば、バンドル取得部143は、新たな外部デバイスに対応するOSGiバンドルがOSGiフレームワーク13上にインストールされていない場合のみ、配信サーバ20からOSGiバンドルを取得する。これにより、ゲートウェイデバイス10と配信サーバ20双方の負担を軽減することができる。
<実施の形態2>
実施形態1では、ゲートウェイデバイス10に新たな外部デバイスが接続されたとき、これに対応するOSGiバンドルを取得する例を説明した。新たなOSGiバンドルが必要になるその他の場合として、例えば以下のような例が考えられる。
<実施の形態2:ユーザ操作に対応するOSGiバンドル>
ゲートウェイデバイス10のユーザが、ゲートウェイデバイス10上である特定の操作を実施してゲートウェイデバイス10に命令を発したとき、その命令に対応するOSGiバンドルを配信サーバ10から取得することが考えられる。例えば、ユーザがゲートウェイデバイス10上でZigBeeデバイスを操作しようとした時点で、ZigBee機能を実装したOSGiバンドルを配信サーバ20から取得することが考えられる。
この場合、配信サーバ20のOSGiバンドルプール23は、ユーザがゲートウェイデバイス10に対して発する命令と、その命令に対応するOSGiバンドルとの対応関係を記述したテーブルを備える必要がある。また、バンドル取得バンドル14は、ゲートウェイデバイス10に接続された外部デバイスを検出することに加えて、ユーザがゲートウェイデバイス10に対して発する命令を検出する必要がある。
<実施の形態2:データ種別に対応するOSGiバンドル>
ゲートウェイデバイス10に新たな外部デバイスが接続されたとき、その外部デバイスは特定種類のデータを格納している場合がある。バンドル取得部143は、そのデータ種類に対応するOSGiバンドルを配信サーバ10から取得することが考えられる。例えば外部デバイスが動画データを格納している場合、その動画データを再生するためのDLNA(Digital Living Network Alliance)プレイヤー機能を実装したOSGiバンドルを配信サーバ20から取得することが考えられる。
この場合、配信サーバ20のOSGiバンドルプール23は、外部デバイスが格納するデータ種類と、そのデータ種類に対応するOSGiバンドルとの対応関係を記述したテーブルを備える必要がある。また、バンドル取得バンドル14は、ゲートウェイデバイス10に接続された外部デバイスを検出することに加えて、その外部デバイスに格納されているデータ種類を検出する必要がある。
<実施の形態3>
実施形態1では、ゲートウェイデバイス10に接続される外部デバイスの例として、USBデバイスとUPnPデバイスを例示したが、その他種類の外部デバイスを検出するようにしてもよい。例えば、PCI(Peripheral Component Interconnect)カード、IP(Internet Protocol)デバイスなどを検出してもよい。ただし、どのようなデバイスを検出してもよいものではなく、少なくともユーザがゲートウェイデバイス10を介して利用することができるデバイスである必要がある。
10:ゲートウェイデバイス、11:OS、12:JavaVM、13:OSGiフレームワーク、14:バンドル取得バンドル、141:デバイス情報取得部、1411:USBデバイス情報取得部、1412:JSR80モジュール、1413:UPnPデバイス情報取得部、142:バンドル配置・実行部、143:バンドル取得部、15:ZigBeeバンドル、17:UPnPサービス、20:配信サーバ、21:HTTPサーバ部、22:デバイスマッチング部、23:OSGiバンドルプール、30:ポータルサーバ、40:ZigBeeドングル、100:OSGiシステム。

Claims (10)

  1. OSGiフレームワーク仕様に準拠した処理を演算装置に実行させるOSGiプログラムであって、
    OSGiフレームワークを実装したソフトウェアモジュールと、
    前記OSGiフレームワークの配下で動作する処理を記述したOSGiバンドルと、
    を備え、
    前記OSGiバンドルは、前記演算装置に、
    前記演算装置を搭載している電子機器に接続された外部デバイスを検出するデバイス検出ステップ、
    前記外部デバイスを識別するデバイス識別情報を取得するステップ、
    前記デバイス識別情報に対応するOSGiバンドルを配信するように配信サーバへ要求するステップ、
    前記デバイス識別情報に対応するOSGiバンドルを前記配信サーバから受信して前記OSGiフレームワーク上にインストールするステップ、
    を実行させることを特徴とするOSGiプログラム。
  2. 前記OSGiバンドルは、前記デバイス検出ステップにおいて、前記演算装置に、
    前記電子機器が備えるUSBポートに接続されたUSBデバイスを前記外部デバイスとして検出するステップ、または前記電子機器が属しているネットワーク内に存在するUPnPデバイスを前記外部デバイスとして検出するステップの少なくともいずれかを実行させる
    ことを特徴とする請求項1記載のOSGiプログラム。
  3. 前記OSGiバンドルは、前記演算装置に、
    前記演算装置を搭載している電子機器に対してユーザが指示した命令を検出する命令検出ステップ、
    前記命令に対応するOSGiバンドルを配信するように配信サーバへ要求するステップ、
    前記命令に対応するOSGiバンドルを前記配信サーバから受信して前記OSGiフレームワーク上にインストールするステップ、
    を実行させることを特徴とする請求項1記載のOSGiプログラム。
  4. 前記OSGiバンドルは、前記演算装置に、
    前記演算装置を搭載している電子機器が格納しているデータの種類を検出するデータ検出ステップ、
    前記種類に対応するOSGiバンドルを配信するように配信サーバへ要求するステップ、
    前記種類に対応するOSGiバンドルを前記配信サーバから受信して前記OSGiフレームワーク上にインストールするステップ、
    を実行させることを特徴とする請求項1記載のOSGiプログラム。
  5. 請求項1記載のOSGiプログラムと、
    前記OSGiプログラムを実行する演算装置と、
    を備えることを特徴とする電子機器。
  6. 請求項5記載の電子機器と、
    前記電子機器にOSGiバンドルを配信する配信サーバと、
    を有し、
    前記配信サーバは、
    前記デバイス識別情報と前記電子機器に配信すべきOSGiバンドルとの対応関係を記述したバンドルテーブルを備え、
    前記デバイス識別情報に対応するOSGiバンドルを配信すべき旨の要求を前記電子機器から受け取ると、前記バンドルテーブルを参照してそのデバイス識別情報に対応するOSGiバンドルを特定し、特定したOSGiバンドルを前記電子機器に配信する
    ことを特徴とするOSGiシステム。
  7. 前記配信サーバは、
    前記電子機器から前記デバイス識別情報を受け取ると、前記バンドルテーブルを参照してそのデバイス識別情報に対応するOSGiバンドルを特定し、特定したOSGiバンドルを識別するバンドル識別情報を前記電子機器に配信し、
    前記電子機器は、
    前記バンドル識別情報を前記配信サーバから受け取ると、そのバンドル識別情報に対応するOSGiバンドルが前記OSGiフレームワーク上にインストールされているか否かを確認し、
    インストールされていない場合はそのOSGiバンドルを配信するように前記配信サーバへ要求する
    ことを特徴とする請求項6記載のOSGiシステム。
  8. 前記OSGiバンドルは、前記演算装置に、
    前記演算装置を搭載している電子機器に対してユーザが指示した命令を検出する命令検出ステップ、
    前記命令に対応するOSGiバンドルを配信するように配信サーバへ要求するステップ、
    前記命令に対応するOSGiバンドルを前記配信サーバから受信して前記OSGiフレームワーク上にインストールするステップ、
    を実行させ、
    前記バンドルテーブルは、
    前記命令と前記電子機器に配信すべきOSGiバンドルとの対応関係を記述しており、
    前記配信サーバは、
    前記命令に対応するOSGiバンドルを配信すべき旨の要求を前記電子機器から受け取ると、前記バンドルテーブルを参照してその命令に対応するOSGiバンドルを特定し、特定したOSGiバンドルを前記電子機器に配信する
    ことを特徴とする請求項6記載のOSGiシステム。
  9. 前記OSGiバンドルは、前記演算装置に、
    前記演算装置を搭載している電子機器が格納しているデータの種類を検出するデータ検出ステップ、
    前記種類に対応するOSGiバンドルを配信するように配信サーバへ要求するステップ、
    前記種類に対応するOSGiバンドルを前記配信サーバから受信して前記OSGiフレームワーク上にインストールするステップ、
    を実行させ、
    前記バンドルテーブルは、
    前記種類と前記電子機器に配信すべきOSGiバンドルとの対応関係を記述しており、
    前記配信サーバは、
    前記種類に対応するOSGiバンドルを配信すべき旨の要求を前記電子機器から受け取ると、前記バンドルテーブルを参照してその種類に対応するOSGiバンドルを特定し、特定したOSGiバンドルを前記電子機器に配信する
    ことを特徴とする請求項6記載のOSGiシステム。
  10. 前記OSGiフレームワーク上にインストールされているOSGiバンドルの一覧を公開するポータルサーバを有し、
    前記電子機器は、
    前記OSGiフレームワーク上にインストールされているOSGiバンドルを識別するインストール済バンドル情報と、当該電子機器を識別するユーザ識別情報とを前記ポータルサーバに対して送信し、
    前記ポータルサーバは、
    前記電子機器から受け取った前記インストール済バンドル情報と前記ユーザ識別情報に基づき、前記SGiフレームワーク上にインストールされているOSGiバンドルの一覧を前記電子機器に対して公開する
    ことを特徴とする請求項6記載のOSGiシステム。
JP2011196060A 2011-09-08 2011-09-08 OSGiプログラム、OSGiシステム Expired - Fee Related JP5740257B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2011196060A JP5740257B2 (ja) 2011-09-08 2011-09-08 OSGiプログラム、OSGiシステム
EP12829623.3A EP2672391B1 (en) 2011-09-08 2012-01-24 Osgi program and osgi system
PCT/JP2012/051446 WO2013035348A1 (ja) 2011-09-08 2012-01-24 OSGiプログラム、OSGiシステム
US14/002,811 US9218174B2 (en) 2011-09-08 2012-01-24 OSGi program, OSGi system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011196060A JP5740257B2 (ja) 2011-09-08 2011-09-08 OSGiプログラム、OSGiシステム

Publications (2)

Publication Number Publication Date
JP2013058083A true JP2013058083A (ja) 2013-03-28
JP5740257B2 JP5740257B2 (ja) 2015-06-24

Family

ID=47831816

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011196060A Expired - Fee Related JP5740257B2 (ja) 2011-09-08 2011-09-08 OSGiプログラム、OSGiシステム

Country Status (4)

Country Link
US (1) US9218174B2 (ja)
EP (1) EP2672391B1 (ja)
JP (1) JP5740257B2 (ja)
WO (1) WO2013035348A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017530496A (ja) * 2015-09-09 2017-10-12 小米科技有限責任公司Xiaomi Inc. 機器制御方法、装置、プログラムおよび記録媒体
JP2020087006A (ja) * 2018-11-27 2020-06-04 株式会社リコー 仲介装置、遠隔機器管理システム、通信方法およびプログラム

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2487587A1 (en) * 2011-02-11 2012-08-15 Alcatel Lucent Service gateway, management server and software module
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9715402B2 (en) * 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9413626B2 (en) 2014-12-05 2016-08-09 Amazon Technologies, Inc. Automatic management of resource sizing
US11354107B2 (en) * 2015-01-16 2022-06-07 Hewlett-Packard Development Company, L.P. Communicating a data image for installing an operating system
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US9928108B1 (en) 2015-09-29 2018-03-27 Amazon Technologies, Inc. Metaevent handling for on-demand code execution environments
US10042660B2 (en) 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10002026B1 (en) 2015-12-21 2018-06-19 Amazon Technologies, Inc. Acquisition and maintenance of dedicated, reserved, and variable compute capacity
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
US10365909B2 (en) * 2016-04-21 2019-07-30 Data Accelerator Ltd. Method and system for deploying virtualized applications
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007241560A (ja) * 2006-03-07 2007-09-20 Nippon Telegr & Teleph Corp <Ntt> ホームゲートウェイソフトウェアパーミッション管理システム
JP2010097590A (ja) * 2008-10-14 2010-04-30 Ind Technol Res Inst ゲートウェイサービス提供方法及びそれを用いたゲートウェイシステム
JP2010226456A (ja) * 2009-03-24 2010-10-07 Nippon Telegr & Teleph Corp <Ntt> 通信システム、通信サーバ、アクセス制御方法、アクセス制御プログラム、およびアクセス制御プログラムを記録した記録媒体

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716663B2 (en) * 2004-02-26 2010-05-11 International Business Machines Corporation Method, system and program product for controlling native applications using open service gateway initiative (OSGi) bundles
US7640542B2 (en) * 2005-03-24 2009-12-29 Nokia Corporation Managing midlet suites in OSGI environment
JP4791910B2 (ja) * 2005-08-26 2011-10-12 株式会社リコー 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体
US8448163B2 (en) * 2006-08-15 2013-05-21 International Business Machines Corporation Deploying J2EE web applications in an OSGI environment
GB2459682B (en) * 2008-04-30 2012-04-25 Vmware Inc A computer system and a method of deploying an application in a computer system
JP2011048503A (ja) * 2009-08-25 2011-03-10 Kyocera Mita Corp 画像形成装置
KR101636457B1 (ko) * 2009-12-28 2016-07-05 삼성전자주식회사 복수 개의 번들간에 서로 기능을 공유할 수 있는 프레임워크 기반으로 동작하는 화상형성장치 및 이러한 화상형성장치에 번들을 설치하는 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007241560A (ja) * 2006-03-07 2007-09-20 Nippon Telegr & Teleph Corp <Ntt> ホームゲートウェイソフトウェアパーミッション管理システム
JP2010097590A (ja) * 2008-10-14 2010-04-30 Ind Technol Res Inst ゲートウェイサービス提供方法及びそれを用いたゲートウェイシステム
JP2010226456A (ja) * 2009-03-24 2010-10-07 Nippon Telegr & Teleph Corp <Ntt> 通信システム、通信サーバ、アクセス制御方法、アクセス制御プログラム、およびアクセス制御プログラムを記録した記録媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017530496A (ja) * 2015-09-09 2017-10-12 小米科技有限責任公司Xiaomi Inc. 機器制御方法、装置、プログラムおよび記録媒体
JP2020087006A (ja) * 2018-11-27 2020-06-04 株式会社リコー 仲介装置、遠隔機器管理システム、通信方法およびプログラム
JP7279344B2 (ja) 2018-11-27 2023-05-23 株式会社リコー 仲介装置、遠隔機器管理システム、通信方法およびプログラム

Also Published As

Publication number Publication date
US20130346964A1 (en) 2013-12-26
US9218174B2 (en) 2015-12-22
WO2013035348A1 (ja) 2013-03-14
EP2672391A4 (en) 2015-08-12
JP5740257B2 (ja) 2015-06-24
EP2672391A1 (en) 2013-12-11
EP2672391B1 (en) 2018-08-29

Similar Documents

Publication Publication Date Title
JP5740257B2 (ja) OSGiプログラム、OSGiシステム
US10244058B2 (en) Extending functionality of applications
KR100850355B1 (ko) 피어 투 피어 프락시 서버 및 그 통신 방법
CN107463453B (zh) 同一终端不同应用间通信的方法、装置、设备和存储介质
CN103946804A (zh) 包括用于终端用户装置的远程管理的发布/订阅代理及相应的终端用户装置的系统
KR101775026B1 (ko) 페어 플레이 서비스 제공 방법 및 장치
JP2015500520A5 (ja)
CN102272747A (zh) 用于管理远程用户界面的状态信息的方法和装置
JP5970559B2 (ja) 遠隔ネットワーク管理システム及びその操作方法
CN102763373A (zh) 基于远程访问使用本地网络装置的服务的方法和设备
JP5590753B2 (ja) メッセージを提供する方法及びそのための端末装置
JP5678184B2 (ja) 遠隔ユーザインターフェース管理装置及び方法とそのためのシステム
CN101483568B (zh) UPnP设备的升级方法、控制设备及系统
JP5610654B2 (ja) 端末管理パッケージを提供する装置及び前記端末管理パッケージを受信する方法
US8880701B2 (en) System and method for supporting of network service
US8521911B2 (en) Apparatus, system and method for executing discovery in network
KR20080112923A (ko) 이벤트 메시지 수신 방법, 이벤트 메시지 전송 방법,피제어 장치 및 제어 포인트
KR101834637B1 (ko) 사설망을 지원하는 사물인터넷 서비스 제공 시스템 및 방법
KR101251099B1 (ko) 원격 접속 과정 모니터링 방법 및 원격 접속 모니터링 시스템
JP5718454B2 (ja) ホームネットワークに含まれる機器の機能を制御する方法
US9680940B2 (en) Method, device and system for acquiring data type definition
Huang et al. Design and implementation of an adaptive Web2. 0 QoS‐based home appliance control service platform
JP2010226456A (ja) 通信システム、通信サーバ、アクセス制御方法、アクセス制御プログラム、およびアクセス制御プログラムを記録した記録媒体
JP5194670B2 (ja) ウェブサービスシステム、ウェブサービス提供装置およびプログラム
JP2015114843A (ja) サービス提供システム及び方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150213

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: 20150407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150427

R150 Certificate of patent or registration of utility model

Ref document number: 5740257

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees