JP2008501202A - ローカルネットワーク化システム用の装置アブストラクションレイヤ - Google Patents

ローカルネットワーク化システム用の装置アブストラクションレイヤ Download PDF

Info

Publication number
JP2008501202A
JP2008501202A JP2007517573A JP2007517573A JP2008501202A JP 2008501202 A JP2008501202 A JP 2008501202A JP 2007517573 A JP2007517573 A JP 2007517573A JP 2007517573 A JP2007517573 A JP 2007517573A JP 2008501202 A JP2008501202 A JP 2008501202A
Authority
JP
Japan
Prior art keywords
application
entity
platform
service
hierarchy
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.)
Withdrawn
Application number
JP2007517573A
Other languages
English (en)
Inventor
アンソニー アダムソン
ドウグラス アール ホスキンス
ロビン ジェイ ブラックウェル
フィリップ エイ ルトランド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Koninklijke Philips Electronics NV
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 Koninklijke Philips NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JP2008501202A publication Critical patent/JP2008501202A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2805Home Audio Video Interoperability [HAVI] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2809Exchanging configuration information on appliance services in a home automation network indicating that an appliance service is present in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/281Exchanging configuration information on appliance services in a home automation network indicating a format for calling an appliance service function in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2816Controlling appliance services of a home automation network by calling their functionalities
    • H04L12/282Controlling appliance services of a home automation network by calling their functionalities based on user interaction within the home
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L2012/284Home automation networks characterised by the type of medium used
    • H04L2012/2841Wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Abstract

ローカルネットワーク化システムが、処理プラットフォーム(110)と、住宅機器等の目標装置(151〜153)とを有する。上記プラットフォームは、オープン・サービス・ゲートウェイ・イニシアチブ(OSGi)のもののようなオープン・サービス・ゲートウェイ・フレームワークをサポートすると共に、目標装置(151〜153)を制御するためのアプリケーション(130)を実行する。上記目標装置は、各々、アプリケーション・プログラミング・インターフェース(API,134)を介してアプリケーション(130)により操作することが可能なエンティティ(133)により表される。これらエンティティは装置タイプの共通の階層構造に従い、その場合において、この階層構造におけるより低い装置タイプを表すエンティティは該階層構造におけるより高い装置タイプの特性を受け継ぐ。これは、アプリケーションに対して一貫したAPIを提供する。上記エンティティは、住宅定型制御言語(HUCL)のような共通言語を使用するアブストラクションレイヤの一部を形成することができる。各エンティティは上記フレームワークに装置サービスとして登録することができ、又は複数のエンティティ(147)を表す単一の装置サービス(146)を上記フレームワークに登録することができる。

Description

本発明は、ローカルネットワーク化システム、斯かるシステムに使用するプラットフォーム及び斯かるプラットフォームを動作させる命令に関する。
住宅環境内で機器をネットワーク化することへの大きな関心が存在し、近年、種々のネットワーク化プロトコルが開発されている。ユニバーサル・プラグ・アンド・プレイ・プロトコル(UPnP)は主にパーソナルコンピュータ周辺機器に採用されており、該プロトコルのオーディオ・ビジュアル(AV)拡張は、メディアサーバ又はメディアプレーヤ等のAV装置が、同様の装置上でどのようなコンテンツが利用可能であるかを決定すると共に、斯かるコンテンツの装置間での伝送を制御するのを可能にする。UPnPは、処理能力及び電力消費を含み、ホスト装置に大きな要求を行い得るような、かなり“重い”プロトコルと考えられる。結果として、UPnPは、限られた資源しか有さず、それ以外では最小限の処理能力しか必要としないような低(電池)給電機器に使用するには理想的には適していない。ヨーロッパ・ホーム・システム(EHS)プロトコル、ジグビ及びX10等の他のプロトコルは、各々、住宅用機器を制御するために使用されている。ホームネットワークは広範囲の機器を含む傾向があり、斯かる機器は、強力な処理能力を備えるパーソナルコンピュータ及びメディアプレーヤから、小型機器、サーモスタット及び電灯スイッチ等の単純なオン/オフ命令のみしか必要としない単純装置まで多様である。
オープン・サービス・ゲートウェイ・イニシアチブ(OSGi)は、アプリケーション(又は“サービス”)が、住宅、車及び小さなオフィス等のローカルネットワークにおいて配備され、インストールされ、且つ、実行されるのを可能にすることを狙ったオープンな管理されたフレームワークである。斯かるローカルネットワークの心臓部はゲートウェイであり、該ゲートウェイはOSGiフレームワークを実行するOSGiサービスプラットフォームをサポートする。OSGiサービスプラットフォーム仕様の最新公開版は、OSGiアライアンスからの2003年の3月のバージョン3であり、OSGiに関する更なる情報はwww.osgi.orgで見付けることができる。該サービスプラットフォーム仕様の一部は、サービスプラットフォームに接続された装置のアクセスをカバーする。これを達成するために、該仕様は2つのタイプのエンティティを導入する。即ち、“プリンタ”、“マウス”、“電灯(ランプ)”等の概念を表す“装置エンティティ”及び“USB”、“シリアル”等の概念を表す“ドライバ”エンティティである。例えば、“USBマウス”を表すために、OSGiドライバ選択器エンティティは適切な装置及びドライバを選択し、これらを一緒にする。
オープンであり且つ拡張可能であるために、OSGiは、これら装置エンティティに対するアプリケーションからの共通インターフェースも、装置エンティティとドライバエンティティとの間の共通インターフェースも定義していない。この結果、会社が自身の所有のアプリケーションプログラミングインターフェース(API)を開発してしまい、これが当該仕様のオープンさを低減させている。
図1は、既存のOSGi装置アクセス仕様の簡略化モデルを示す。アプリケーション10は、特定のサービスを実施するソフトウェアを表している。この簡単なケースにおいて、アプリケーション10は住宅内の2つの電灯20、30を制御し、これら電灯を1日の特定の時間においてオン及びオフする。制御されるべき第1の電灯20は、ヨーロッパ・ホーム・システム(EHS)プロトコルに従い動作する。制御されるべき第2の電灯30は、ジグビ(ZigBee)プロトコルに従い動作する。EHS及びジグビの両者は、住宅ネットワーク化用の既存のプロトコルである。各電灯20、30用のベースドライバ22、32は、新たなハードウェアを発見し、OSGiフレームワークによる対応する“装置サービス”25、35を登録する。各装置サービス25、35は、制御されるべき実際のハードウェア装置20、30のソフトウェア表現である。アプリケーション10は、自身が対話する各々の可能性のある電灯装置25、35について知らねばならず、当該アプリケーション10を装置サービス25、35とインターフェースさせる各APIの詳細を知らねばならない。電灯装置のEHS表現25は、電灯装置のジグビ表現35とは大幅に相違する。従って、アプリケーション10は、簡単なアプリケーションに対しても複雑なソフトウェアとなる。更に、装置サービスは標準化されていないので、異なる売り手は、同じハードウェア装置(例えば、電灯20)を、異なるドライバ21及び装置サービス表現25を用いて異なる方法で自由に表すことができる。第2のアプリケーション11は、異なる売り手により供給されるが、電灯20もオン及びオフする必要があるような例を考察すると、該第2のアプリケーションの開発者は、API26の詳細を知らねばならないか、又は電灯20を制御することができる自身の装置及びドライバを供給しなければならない。
本発明は、OSGiフレームワークのような、ローカルネットワーク化アーキテクチャ内での改善されたインターフェースを提供するものである。
従って、本発明の第1の態様は、ローカルネットワークにおける目標装置を制御するために使用するプラットフォームにおいて、オープン・サービス・ゲートウェイ・フレームワークをサポートすると共に、前記目標装置を制御するための少なくとも1つのアプリケーションを実行することができるプロセッサを有し、前記目標装置の各々はアプリケーション・プログラミング・インターフェース(API)を介して前記アプリケーションにより操作することが可能なエンティティにより表され、これらエンティティは装置タイプの共通の階層構造に従い、該階層構造においてより低い装置タイプを表すエンティティは、該階層構造においてより高い装置タイプの特性を受け継ぎ、これにより、アプリケーションに対して一貫したAPIを提供するようなプラットフォームを提供する。
上記オープン・サービス・ゲートウェイ・フレームワークは、限定されるものではないが、好ましくはオープン・サービス・ゲートウェイ・イニシアチブ(OSGi)フレームワークである。
一貫した階層構造を持つエンティティの使用は、アプリケーションが目標装置と簡略化されているが、それでも能力のある態様で通信するのを可能にする。上記エンティティは、各装置固有及びネットワーク固有のAPIから離れて抽象化すると共に、好ましくは共通の言語を使用するようなアブストラクション(抽象化)レイヤの一部を形成する。好ましくは、上記階層構造は、住宅定型制御言語(HUCL:Home Uniform Control Language)のような軽プロトコルの一部として設けられる。これは、アプリケーション開発者が当該システム上の各装置サービス(従って、目標装置)に標準のユーザに優しい方法でアクセスするのを可能にする。開発者は、アプリケーションを、OSGiフレームワーク内の目標装置に対して高信頼度で使用することができるという確信をもって独立に書くことができる。加えて、当該システム上の“HUCLドライバ”及び“HUCL装置サービス”オブジェクト間のインターフェースは、今や全ての対(pairing)の間で共通のHUCLインターフェースを使用して標準化される。これは、簡単なアプリケーションが、当該プラットフォームに異なるネットワーク化プロトコルにより接続された目標装置を、単一の装置サービスに基づいて制御するのを可能にする。新たな目標装置は、依然として既存のサービスアプリケーションは使用するが、新たなプロトコルを使用して追加することができる。HUCLは、目標装置につなぐローカルネットワーク化プロトコルにインターフェースする、全ての装置サービス及びブリッジ(bridging)ドライバの間の共通言語として使用することができる。HUCLを使用する他の利点はプロトコルの軽い性質であり、これはホスト装置に対する要求を低くさせる。HUCLは圧縮されたXMLメッセージを使用することができると共に、基本及び拡張記述を提供し、これはメッセージ処理のオーバーヘッドを減少させることができる。HUCLの主たるフィーチャは、国際特許出願公開第WO2004/015926号、第WO2004/015927号、第WO2004/015928号及び第WO2004/015929号に記載されている。
HUCLは、元々は、装置を制御するための軽量のプロトコルとして開発されたが、HUCLがOSGiゲートウェイ内で使用するための理想的プロトコルを提供することもできることが理解された。HUCLは、より低いレベルのベースドライバと一緒に、ネットワーク独立(共通言語)及びプロトコル独立(コマンドセット、パラメータ、機能等を含み、当該言語内での標準化された装置コマンド)の両方を与えるものである。他のプロトコルは、ブリッジする能力、複合装置のサポート、2以上のレイヤの副装置をサポートする能力又はHUCLにより提供されるオープンな仕様に欠け、従ってアブストラクションレイヤとして使用するには不適である。
アプリケーションは目標装置の“装置サービス”を介して通信し、該装置サービスは目標装置の装置タイプに対して固有であると共に、HUCLバンドルからOSGiにおけるUPnPに使用されるものと同様の方法で得られる。これらの装置サービスは、アプリケーションに対して装置固有のジャバ・インターフェースを提供するので、“ヘルパ(helper)バンドル”と見ることができるが、XML又は圧縮されたXMLメッセージを使用して低いレベルのドライバと通信することができる。目標装置がHUCLでないプロトコル(例えば、UPnP、X10又はジグビ)を使用する場合、HUCLドライバ(ブリッジドライバ)がHUCLから当該目標装置により使用されるプロトコルへ変換する。
装置サービスを扱う2つの主要な方法が提案される。第1の方法においては、各目標装置は、OSGiフレームワークに登録されたHUCL装置サービスにより表される。装置サービスは、これらが表す目標装置の機能、及び目標装置に従う装置タイプの階層構造を有する。階層構造を達成する1つの好ましい方法は、階層的ジャバクラス構造を使用することによるものであり、その場合、より低いレベルのジャバクラスは、これらが従属する一層高いレベルのクラスの特性を受け継ぐ。しかしながら、後の詳細な説明で一層完全に説明するように、この階層構造機能を達成する他の方法が存在する。第2の方法においては、単一の装置サービスがOSGiフレームワークに登録され、該装置サービスは、多数の副装置を表すことが可能なHUCL複合装置である。各副装置は識別子により参照されると共に、第1の方法で使用された装置サービスのHUCL等価版であり、これは装置タイプ及び機能の同一の階層構造に従う。第2の方法は、OSGiフレームワークにより登録及び追跡されるべきエンティティの数を低減する利点を有する。
エンティティ又は装置サービスは、通常、個々のハードウェア目標装置にマッピングするが、OSGi仕様は、これに限られないことを記している。
本発明は、OSGiフレームワークを実施化し、目標装置を制御するような如何なるプラットフォームにも適用可能である。これは、住居用ゲートウェイ、セットトップボックス、PC、パーソナル・デジタル・アシスタント(PDA)、メディア・サーバ及び他の消費者向け電子又は医療装置を含む。
ここで述べる機能は、ソフトウェア、ハードウェア又はこれらの組み合わせで実施化することができる。本発明は、幾つかの別個のエレメントを有するハードウェアにより、及び適切にプログラムされたコンピュータにより実施化することができる。従って、本発明の他の態様は、ローカルネットワークにおける目標装置を制御するプラットフォームのための命令であって、これら命令は、前記プラットフォームのプロセッサにオープン・サービス・ゲートウェイ・フレームワークをサポートさせると共に、前記目標装置を制御するための少なくとも1つのアプリケーションを実行させ、前記目標装置の各々はアプリケーション・プログラミング・インターフェース(API)を介して前記アプリケーションにより操作することが可能なエンティティにより表され、これらエンティティは装置タイプの共通の階層構造に従い、該階層構造においてより低い装置タイプを表すエンティティは、該階層構造においてより高い装置タイプの特性を受け継ぎ、これにより、アプリケーションに対して一貫したAPIを提供するような命令を提供する。
上記ソフトウェアは、当該装置の寿命の間における如何なる時点においてもゲートウェイにインストールすることができることが理解されるであろう。斯かるソフトウェアは、電子メモリ装置、ハードディスク、光ディスク又は他のマシン読み取り可能な記憶媒体に記憶することができる。該ソフトウェアは、マシン読み取り可能な担体上のコンピュータプログラム製品として供給することができるか、又はネットワーク接続を介して前記プラットフォームに直接ダウンロードすることができる。
本発明の更なる態様は、オープン・サービス・ゲートウェイ・フレームワークをサポートすると共に、ローカルネットワークにおける目標装置を制御するための少なくとも1つのアプリケーションを実行することができるようなプラットフォームと共に使用するためのエンティティのライブラリであって、各エンティティは、前記ネットワークにおける目標装置を表すと共にアプリケーション・プログラミング・インターフェース(API)を介してアプリケーションにより操作することができ、これらエンティティは装置タイプの共通の階層構造に従い、該階層構造においてより低い装置タイプを表すエンティティは、該階層構造においてより高い装置タイプの特性を受け継ぎ、これにより、アプリケーションに対して一貫したAPIを提供するようなエンティティのライブラリを提供する。該ライブラリは前記ゲートウェイにより、又は上記プラットフォームによりアクセス可能な遠隔サーバによりホストされ得る。
以下、本発明の実施例を、添付図面を参照して例示のみとして説明する。
図2は、オープン・サービス・ゲートウェイ・イニシアチブ(OSGi)の住居用ゲートウェイに関する簡略化された全体モデルを示す。サービス・ゲートウェイ110は、住宅、事務所、車等に配置される。サービス・ゲートウェイ110は、OSGiフレームワークをサポートするサービス・プラットフォーム112を含む。住宅内で種々のサービスを提供するアプリケーション130は、プラットフォーム112により実行されて、目標装置20〜23を制御する。アプリケーションは、消費者向け電子機器、白物、暖房及び換気、照明等の機器の制御を含む種々の目的を有することができる。目標装置20〜23は、電灯20、電子機器21又は如何なる他の電子装置も含むことができる。ゲートウェイ110は、ローカルネットワーク化プロトコルを使用して目標装置20〜23につながる。典型的な住宅は、ジグビ、X10、UPnP、EHS、KNX及びエシュロン(Echelon)等の一連の目標ネットワークプロトコルに従って動作する目標装置を含むであろう。各ハードウェア装置に対する物理ネットワークレイヤは、無線(例えば、ジグビの場合のIEEE 802.15.4、IEEE 802.11等)又は有線(例えば、シリアルバス、イーサネット、ケーブル配線、電気ケーブル配線(X10)等)であり得る。図2において、ネットワーク40はジグビネットワークであり、ネットワーク45はX10ネットワークである。当該住宅の外の遠隔サーバ50は、ゲートウェイ110と通信することができる。サービスはサーバ50によりゲートウェイ110に供給することができるか、又は、幾つかの状況においては、サーバ50上のアプリケーション120が住宅内の目標装置20〜23を制御することができる。上記遠隔サーバは、ネットワーク管理のために、及び新たなサービス又は更新されたサービスをゲートウェイ110に供給するためにも使用することができる。
図3は、OSGiゲートウェイ110の一般的アーキテクチャを示す。サービスプラットフォーム112はOSGiフレームワークをサポートし、これは典型的には当該ゲートウェイ内のプロセッサにより実行されるソフトウェアにより適用される。ネットワーク内の目標装置を制御するアプリケーションは、サーバ50上で遠隔的に(アプリケーション120)、又はサービスプラットフォーム112上でローカルに(アプリケーション130)実行することができる。本発明の一実施例によれば、住宅定型制御言語(HUCL)が、サービスプラットフォーム112によりサポートされるOSGiフレームワーク内のアブストラクションレイヤとして使用される。ローカルネットワーク内に存在する各目標装置151〜153は、“装置サービス”133により表される。これは、実際の物理的装置151〜153のソフトウェアでの表現である。完全な装置サービスは下記の情報を含む:
− HUCLバージョン及び最小限サポートされるHUCLバージョンを含む、装置と対話するための基本情報;
− 装置タイプのリスト(HUCL装置タイプのコードのリスト、各コードは例えば電灯等の指定された装置タイプを表すように規格化されている)、この装置が制御することができる装置タイプの同様のリストを含む、装置を識別するための基本情報;
− 例えば、装置名、ロケーション・ストリング、製造者、モデル名、シリアル番号、UI URL(ユーザインターフェースURL)等の種々の拡張データ;
− 目標装置へコマンドを送信すると共に、応答及びイベントを受信する機能。
更に、複数の目標装置を表すことができる複合装置は、該装置が表す副装置に対する参照を含む。
図1で使用された装置25、35とは対照的に、装置サービス133は階層構造を有している。これは、下記に説明するように、アプリケーション130が可能な限り大きな程度に目標装置を制御するのを可能にする。電灯、テレビジョン、冷蔵庫等の種々のタイプの目標装置(機器)は、各々、標準化された装置サービス133を有する。アプリケーション130が各装置サービス133と対話するのを可能にするAPIは、良好に規定され、最早、所有物となるようなたいしたものではない。これは、アプリケーション130が装置サービス133と簡単な標準化された態様で通信するのを可能にする。斯かる階層構造を達成する一つの方法は、標準化された組のジャバ(登録商標)オブジェクト又はクラスタイプの階層構造を提供する他のプログラミング言語を使用することによるものであるが、他の方法も利用可能である。OSGiフレームワーク内で動作するアプリケーション120、130は、目標装置により何のタイプのネットワーク化プロトコル(例えば、UPnP、ジグビ等)が使用されるかを知る必要はなく、これは当該アプリケーションを大幅に簡略化させる。複数のアプリケーションが、同一の装置サービス及びAPIを使用することができる。
HUCLバンドル140は、ドライバ141、142、143を接続し、OSGiフレームワークに装置サービス133を登録し、HUCL管理システム等の一般的管理フィーチャを提供する。ジグビ及びUPnP用のドライバ141、143は、各々、単一のエンティティとして示されている。しかしながら、これらドライバは、X10用のドライバに関して示したのと同様の態様で、ベースドライバ162と、該ベースドライバ163の機能の幾つかを使用する特殊化(refinement)ドライバ142により分割することもできる。装置サービス133が自身をOSGiフレームワークに登録し、イベント予約を管理し(後に詳述する)、HUCLメッセージをドライバに渡すのを可能にすると共に、斯かるドライバが目標ネットワークにより使用されるプロトコルへの翻訳の全てを実行するのを可能にすることにより、中央管理エンティティの役割を最小化することが可能である。この場合、HUCLバンドル140の主たるタスクは:
− 中央管理;バージョンID等を記憶する;
− ドライバ及び装置サービスを追跡する(OSGiフレームワークの関連する予約メカニズムを使用することによる等);
− 装置サービスを登録する(図5Aにおいては各装置サービスに対して、図5Bにおいては、装置サービスは複合装置に対してのみ登録することができる);
− OSGiドライバのロケータ対話(又は、低レベルベースドライバとして働くHUCLドライバに対するネットワーク対話)に参加する;
− イベント予約を管理する(必要に応じてイベントを送ることができるように);
− HUCLを使用して通信する;
− プロトコル翻訳(HUCLと目標ネットワークプロトコルとの間の)を実行する;
− プログラマに優しいジャバAPIから/へHUCLメッセージストリングを整理(marshall)/分解(unmarshall)する。
ドライバ141、142、143は、目標ネットワーク上の目標装置を管理し、これら目標装置をOSGiフレームワーク内のHUCL装置サービス133として提示する。これは、装置サービス133が、標準化されたHUCLインターフェースを介してドライバ141、142、143と通信するのを可能にする。ドライバ141、142、143は、ジャバ、ネイティブコードで書くことができるか、又はジャバとネイティブコードとの混合で書くことができる。目標ネットワークドライバが存在する場合、他のネットワークもHUCLを使用することができるように、HUCLブリッジドライバが標準のHUCL APIに変換する。
図4は、HUCLアブストラクションレイヤを実施化したゲートウェイにおける、図1と同様のシナリオを示す。電灯を制御するアプリケーション130は、所定の時間で2つの電灯20、30をオン/オフする。この場合、各電灯20、30は、標準化されたAPI 134を有する共通の汎用電灯装置サービス133により表される。アプリケーション130はAPI 134を介して電灯装置133に対し命令を、目標ハードウェア装置がEHSネットワークに接続された電灯20であるか、又はジグビネットワークに接続された電灯30であるかに無関係に同じ態様で渡すことができる。HUCL/EHSドライバ144は、HUCLレイヤをEHSプロトコル用のドライバにブリッジする。同様に、HUCL/ジグビドライバ141は、HUCLレイヤをジグビプロトコル用のドライバにブリッジする。
図5A及び5Bは、HUCLバンドル140の2つの主たるオプションを示す。第1に、図5Aにおいて、HUCLバンドル140はベースドライバとして動作し、個々のHUCL装置サービス133(各々が目標装置20を表す)をOSGiフレームワークに登録する。OSGiフレームワークは、サービス・リポジトリ(即ち、登録された装置サービス133の照会可能なリスト)を提供する。代替として、HUCLバンドル140はEHSベースドライバ160により発見された新たな装置を聴取し、次いで、これらをHUCL装置に翻訳することができる。この場合、HUCLバンドル140は、ベースドライバというよりも、特殊化(refining)ドライバである。HUCLバンドル140と装置サービスとの間のインターフェース160を介しての全ての通信は、SendHUCLMsg()及びReceiveHUCLMsg()等のAPIコールの形態である。アプリケーション130はHUCL装置サービス133に対する機能をコールし、これはブリッジドライバ144と直接的に又は間接的に通信する。HUCLバンドル140は全ての既存のブリッジドライバ144を追跡する。
図5Bにおいて、HUCLバンドル140は自身をOSGiフレームワークにHUCL装置サービスとして登録する。この場合、該HUCL装置サービスはHUCL複合装置146である。複合装置146は多数の装置サービス147を表すことができ、これは、目標ネットワーク上に多数の目標装置20が存在する場合に、より少ないシステム資源を使用する故に利点を有する。一例として、10個の異なる目標装置20が存在する場合、図5Aに示した構成においては、これは10個の装置サービスがOSGiフレームワークに登録されることを要するであろう。これに対し、図5Bに示す複合装置構成においては、1個の複合装置146のみがOSGiフレームワークに登録される。HUCL複合装置の概念は、国際特許出願公開第WO2004/15927号に記載されている。これは、多数の目標装置20に一層容易に対処することができるので、当該システムを一層スケーラブルにさせる。HUCLバンドル140とアプリケーション130との間のAPI 165(図5AにおけるAPI 160と等価である)の主たる構成要素は、SendHUCLMsg及びReceiveHUCLMsg()なるコマンドである。これらのコール内では、各メッセージ内でHUCL複合装置146における何の副装置147が識別されるかを識別するために何らかの追加のアドレス指定情報が必要とされるが、メッセージ処理の全体の量は減少される。幾つかの段取りコマンド以外では、これらのみがAPI 165に必要とされるコマンドである。複合装置146の使用は、ゲートウェイ110とバックエンドサーバ50との間、又はジャバ-ネイティブ・インターフェース(JNI)を介しての何れかにおける一層単純なインターフェースを可能にする。国際特許出願公開第WO2004/015956号に記載されたHUCLプロトコルのフィーチャによれば、アプリケーション130は装置サービスの簡単な記述及び拡張された記述に関して複合装置146に照会することができる。
図6A〜8Bは、3つの典型的な動作に関して、図3のフレームワーク内で発生するメッセージの流れの例を示している。各例において、メッセージの流れは、個々の装置サービスが使用されるような状況(図5Aにおけるような)、並びに汎用HUCLバンドル及び複合装置146が使用されるような状況(図5Bにおけるような)の両方に関して示される。明瞭化のために、これらの及び後の例においては疑似コードが使用される。また、簡略化のために、当該例は目標装置として電灯20を示すが、目標装置がもっと複雑であり得ることは理解されるであろう。
図6A及び6Bは、新たな目標装置20が当該システムに追加された場合に発生するメッセージの流れを示している。図6Aは、個々の装置サービスが使用される場合のメッセージの流れを示す。新たな装置(電灯20)が当該システムに最初に追加された場合、これは、EHSドライバ160により認識され、ステップ201においてバス活動が生じる。
ドライバ160は、HUCL/EHSドライバ144を介してHUCLバンドル140に、
eventListener.indicate(
EHSDriver, NEW_DEVICE, <type>)
なる形のメッセージ202を送信する。ステップ203において、電灯を表す新たな装置サービス133が‘myHUCLLamp2’なる名称で作成され、
Framework.registerNewDevice(myHUCLLamp2)
なる機能がOSGiフレームワーク上でコールされ、該新たな装置サービス133を登録する。該機能は、ドライバ144、HUCLバンドル140又は装置サービス133自体によりコールすることができる。
ステップ204において、アプリケーション130内のサービストラッカは、新たな装置サービス‘myHUCLLamp2’を通知される。OSGiのサービストラッカのフィーチャは、OSGiサービスプラットフォーム仕様(バージョン3の19章)に一層詳細に記載されている。
ステップ201に戻ると、新たな目標装置が当該システムに参加する正確な態様は、目標ネットワークプロトコルに従い変化する。幾つかのプロトコルにおいては、新たな目標装置20はバス上に“新たな装置”イベントを生じさせる。他のものにおいては、新たな目標装置は目標ネットワーク内のポーリングメカニズムにより発見される。X10の場合、新たな装置の指示は存在せず、斯かる装置は当該システムにユーザにより手で追加されねばならない。益々、安全要件はユーザが対話に関わることを必要とする。WiFiの場合、ユーザが、一旦、新たな目標装置に対する暗号キーを入力すると、ゲートウェイ上の低レベルドライバ160が該新たな装置を識別し、記述を要求することができる。HUCL/UPnPブリッジドライバ143は、これを認識し、該新たな装置識別は当該スタックを上まで続く。
図6Bは、汎用HUCLバンドル及び複合装置146が使用される場合のメッセージの流れを示す。新たな装置(電灯20)が当該システムに最初に追加されると、これは、EHSドライバ160により認識され、ステップ211においてバス活動が生じる。前と同様に、ドライバ160は、HUCL/EHSドライバ144を介してHUCLバンドル140に、
eventListener.indicate(
EHSDriver, NEW_DEVICE, <type>)
なる形のメッセージ212を送信する。しかしながら、この場合、該新たな装置はHUCL複合装置146内の副装置として表される。該副装置に関して記憶される情報は、前述したサービス装置に関して記憶される情報のHUCL等価版であり、実際の装置の上の階層構造における装置タイプのリストを含む。HUCLバンドルのリスナとして予約された全てのアプリケーション130には、
HUCLEvent(“<deviceDescriptionChanged>”)
なるメッセージ213が送信される。アプリケーション130は、HUCLバンドル140のリスナとして予約される。アプリケーション130内のイベントリスナは、ステップ214において、HUCLバンドル140に対する更新を通知され、新たに追加された副装置を発見する。該新たに追加された副装置は、OSGiフレームワークに明示的には登録されない。
図7A及び7Bは、既存の装置が当該システムから削除された場合に発生するメッセージの流れを示している。図7Aは、個々の装置サービス133が使用される場合のメッセージの流れを示す。既存の装置(電灯20)が当該システムから削除された場合、これは、EHSドライバ160により認識され、ステップ221においてバス活動が生じる。ドライバ160はHUCL/EHSドライバ144を介してHUCLバンドル140に、
eventListener.indicate(
EHSDriver, GONE_DEVICE,ID)
なる形のメッセージ222を送信する。ステップ223において、‘myHUCLLamp2’装置サービスが停止される。アプリケーション130のサービストラッカは、ステップ224において、装置サービス‘myHUCLLamp2’の削除を通知される。
次に、図7Bは、汎用HUCLバンドルが使用される場合のメッセージの流れを示す。既存の装置(電灯20)が当該システムから削除された場合、これは、EHSドライバ160により認識され、ステップ231においてバス活動が生じる。ここでも、ドライバ160はHUCL/EHSドライバ144を介してHUCLバンドル140に、
eventListener.indicate(
EHSDriver, GONE_DEVICE,ID)
なる形のメッセージ232を送信する。該電灯を表す副装置は、ステップ233においてHUCL複合装置146から削除される。
HUCLEvent(“<deviceDescriptionChanged>”)
なる形のメッセージが全ての予約リスナに送信され、これらリスナに当該削除を通知する。ステップ234において、アプリケーション130のイベントリスナは、該更新を通知され、削除された副装置を発見する。ここでも、OSGiフレームワークには該削除は明示的には通知されない。ユーザが、装置の削除を、ユーザインターフェース上で確認アイコンをクリックすること等により確認するのが好ましい。
第3の例において、図8A及び8Bはアプリケーション130が当該システムに既に登録された装置を制御したい場合に発生するメッセージの流れを示す。この例において、アプリケーション130は電灯20をオンするための制御メッセージを送信し、電灯20は当該システムに‘myHUCLLamp’なる名称で登録されている。図8Aは、個々の装置サービス133が使用される場合のメッセージの流れを示す。最初に、アプリケーション130はステップ241においてHUCL電灯装置サービス133に対して、
myHUCLLamp.on()
なる形のメッセージを送信する。ステップ242において、電灯装置サービス133は、
sendHUCLMsg(“…
<param1>255</param1>…”)
なる形のHUCLメッセージを送信する。これは、HUCL/EHSドライバ144により、ドライバ160に送信される(243)、
EHSDev5.sendEHSMsg(
TURN_ON)
なるメッセージに翻訳される。該翻訳は、単に上記メッセージのささいな再フォーマットであるか、又はルックアップテーブルの使用によるコマンドの翻訳を含み得る。最後に、ドライバ160は目標ネットワークのフォーマットのメッセージ244を電灯20に送出し、これが電灯20をオンさせる。
図8Bは、汎用HUCLバンドル140が使用された場合のメッセージの流れを示す。最初に、アプリケーション130はステップ251においてHUCLバンドル140に対して、
sendHUCLMsgAddressedTo(DevID, “…
<param1>255</param1>…”)
なる形のメッセージを送信する。これは、複合装置サービス146のうちの特定の副装置147に供給され、その場合において、‘DevID’は、HUCL複合装置146のうちの電灯20を表す副装置147を識別する識別子である。HUCLバンドル140は制御メッセージを送出し、該メッセージはHUCL/EHSドライバ144によりステップ252において、
EHSDev5.sendEHSMsg(TURN_ON)
なる形のEHSメッセージに翻訳される。このメッセージはEHSドライバ160に供給される。最後に、ドライバ160は目標ネットワークのフォーマットのメッセージ253を送出し、該メッセージが電灯20をオンさせる。
図5Aに戻ると、API 134を介してアプリケーション130とHUCL装置オブジェクトとの間で受け渡されるメッセージは、LampOn(), LampOff(), TVOn(), TVOff(), SetChannel(int num), SetVolume(int level)のように標準化される。アプリケーション130の開発者には、これらの標準の組が提供される。
上述したように、HUCLは階層構造の装置サービスを有する。図9Aは、頂部に汎用HUCL装置301を有する装置サービス300の例示的階層構造を示す。機能‘getSubDevices()’は、もし存在するならば、次のレイヤの副装置の装置サービスを戻す。該階層構造を下に移動すると、装置サービスは増加されたレベルの詳細/機能を有する。このように、装置サービス302は、オン/オフする能力を持つような目標装置を表す。該階層構造の左側を下に移動すると、装置サービス303はベーシックな電灯を定義し、該電灯は上の等級のフィーチャを受け継ぐ(即ち、これもオン/オフすることができる)。装置サービス304は、調光可能な電灯、即ち可能な値の範囲内で特定の輝度値に設定される機能を持つ電灯、を定義する。装置サービス304も、上の302及び303のフィーチャ(即ち、電灯であり、オン/オフすることができる)を受け継ぐ。該階層構造の右側を下に移動すると、装置サービス305はドアベルを定義し、該ドアベルはHUCLオン/オフ装置302のフィーチャを受け継ぐ。この例では、アプリケーション(例えば、アプリケーション130)が、“HUCLDimmableLamp”なるタイプの装置にどのように対話すべきかが分からない場合、該アプリケーションは依然として“HUCLBasicLamp”の定義を、又はベーシックな“HUCLDevice”の定義さえも、その機能を上記装置が理解するであろうとの確実性を以って使用することができる。効果的には、HUCLはアプリケーションが“階層構造ツリーを上に歩む”のを可能にし、もし、アプリケーションが装置タイプ(例えば、調光可能な電灯)を認識することができないことが分かった場合は、装置サービス133の一部として提供される装置タイプリストに掲げられた他の装置タイプをチェックする。同様に、何かをオン/オフさせる能力を有するアプリケーションは、電灯、ドアベル又はオン/オフされることが可能な如何なる他のタイプの装置も駆動することができる。何故なら、全ての目標装置を表す装置サービスが、階層構造に従うからである。目標装置は、自身の“最低の”最も正確な表現の上の各レベルにおいて表されている。この方法は、開発者が特定の装置の全詳細を知らないような状況でも、装置が可能な最大限の程度に操作されるのを可能にする。
図9Bは階層構造の他の例を示す。プラットフォーム(この場合は、パーソナル・デジタル・アシスタント(PDA)320)は、上述したOSGiフレームワーク及び制御アプリケーションをサポートする。PDA320上で動作するアプリケーションは、調光可能な電灯304又は電灯303により使用される特定のコマンドを認識することはできないが、該アプリケーションはOnOffDevice用の装置タイプコード(即ち、オン/オフすることが可能な装置のタイプを表すコード)を認識し、従って電灯304の調光機能は制御することはできないが、電灯を有用な程度に制御することはできる。同様に、PDA320上で動作するアプリケーションは“サーモスタット”308のレベルまでの装置サービスのみをサポートし、医療用又は工業用のサーモスタットのフィーチャを制御する能力は有さない。PDA320上で動作するアプリケーションは、医療用サーモスタット309又は工業用サーモスタット310の進んだフィーチャを使用することはできないが、サーモスタット357、358の各々をオン及びオフし、基本的な温度の読みを得ることはできる。これは、目標装置の製造者が或るレベルまで相互動作する製品を提供するのみならず、斯かる製造者の製品に他の製品から差別化するような固有のフィーチャを追加させることを可能にする。図5Bを参照して先に説明した複合装置モデルにおいては、複合装置146内の各副装置147に関して記憶される情報は、この同じ階層構造に従う。
上述したように、多くのプログラミング言語が関連した機能を提供する。例えば、ジャバ(登録商標)においては、各オブジェクトは“クラス”のインスタンス生成であり、クラスは他のクラスを拡張して、クラス階層構造を形成することができる。図9A及び9Bに示す階層構造は、ジャバ又は他のプログラミング言語における一群のオブジェクトのクラス階層構造を用いて実施化することができる。他の例として、階層構造は、プログラミング言語の“組み込み型”クラス階層構造を使用しない方法で実施化することもできる。実施化されるプログラミング言語のクラス階層構造を使用しないで装置階層構造を動作させる一つの方法は、単一の固定のクラス(多分、HUCLDeviceと呼ばれる)のインスタンス生成により装置を表すことであり、これは“sendMessage (commandText)”,“setVariable (variableID, variableValue)”又は“invokeCommand (commandID, commandParameter1, ...)”のような汎用の非装置固有の方法のみを有する。この場合、階層構造は紙上に文書化され、ソフトウェアコンポーネントのプログラミングにおいて、個々の呼出しに対する応答をコーディングすることにより(即ち、非オブジェクト指向コード)、又は非露出APIのオブジェクト指向設計により(即ち、オブジェクト指向コードは使用するが、これをAPIでは表現しない)、実施化される。各場合において、拡張装置が、簡単な装置により理解されるメッセージ、変数及び/又はコマンド呼出の全てに対し正しく反応すると共に、幾つかの追加のコマンド及び機能に対する応答を理解及び実施化することも期待することができる。この第2の状況においては、装置階層構造は依然として存在し(少なくとも概念的に)且つ有用であるが、プログラミング言語の組み込み型クラス階層構造を用いることにより直接的には実施化されない。
一例として、機能On()及びOff()をサポートするベーシックな電灯と、機能Dim()もサポートする複雑な電灯を考察しよう。非オブジェクト指向コードにおいては、これを、スイッチステートメントを使用して実施しなければならない。以下は、ベーシックな電灯のためのHUCL装置ソフトウェア用の例示的疑似コードである:
Figure 2008501202
複雑な電灯のためのHUCL装置ソフトウェア用の疑似コードは:
Figure 2008501202
ここで、“複雑な電灯(ComplexLamp)”用のコードは、“電灯(Lamp)”の機能の全てを果たすと共に、ComplexLamp仕様に定義された追加のコマンドも果たす。両プログラムは、機能On()、Off()及びUnknownCommand()も果たし、ComplexLampは付加的に機能Dim(dimLevel)を果たす。この例は、装置階層構造をプログラミング言語のクラス階層構造を使用せずに実施化する。上記階層構造を、この第2のやり方ではあるが、幾つかのオブジェクト指向プログラミングのフィーチャを用いて実施化することも可能である。複雑な電灯に対するHUCL装置ソフトウェアのための例示的疑似コードは:
Figure 2008501202
ここで、アプリケーションに提供されるAPIは先の例と同じであり、プログラミング言語のクラス階層構造を直接的には使用しない。しかしながら、この例では、ソフトウェアを一層明瞭に又は一層保守容易にするために、複雑な電灯用の疑似コード内でComplexLamp及びLampなるクラスが使用されている。
目標装置は、開発者から如何なる低いレベルのHUCLコードも隠蔽するような態様で制御される。図5Aのモデルにおいては、装置サービスクラス自体が高いレベルの方法コール(例えば、LampOn(), SetChannel(int num))を低いレベルのHUCLコードに翻訳する責任を負う一方、図5Bでは、ラッパ機能162が使用される。ラッパ機能は、開発者に優しい高レベルのジャバコマンドの低レベルHUCLコードへの翻訳を実行する。
図8A及び8Bには、アプリケーション130が如何にして制御メッセージを目標装置20に送出することができるかが示されていた。これは、アプリケーションが、目標装置をアプリケーション130に分かる時間にオン/オフすることを要する場合に生じ得る。しかしながら、アプリケーションが目標装置において発生する特定のイベントに応答することが望ましいような状況も存在する。一例として、移動センサの形態の目標装置が部屋内の移動を検出した場合、ゲートウェイ110で動作している保安アプリケーションに通知し、該アプリケーションがユーザに警告することができるようにするのが望ましい。既存のOSGiフレームワークは、この種の通知をサポートするメカニズムを提供していない。
図10はイベントの警報アプリケーション用の簡単なメカニズムを示す。最も低いレベルにおいて、ドライバ160は、数秒毎のように、周期的に目標装置20をポーリングする。該目標装置20の状態の変化があった場合、ドライバ160は装置サービス133に通知する。ドライバのAPIから、如何なる状態の変化も検出することができる。これは、ドライバ160からHUCLバンドル140に対する方法コールにより、又はHUCLバンドル140がドライバ160をポーリングして該ドライバの状態を監視することにより達成することができる。HUCLバンドル140は、ドライバ160から得られた情報をHUCLイベントメッセージに整形する。次いで、これらのイベントは装置サービス133に渡され、該装置サービスは斯かるイベントをジャバイベントオブジェクトに編成する。アプリケーション130は、これらアプリケーションが制御する又はこれらアプリケーションが状態を通知されることに関心のある装置バンドルを予約する。各装置サービス133は、リスニング予約リスト180を維持し、該リストは関心を登録した(例えば、登録する際に、java.util.Vectorに各々を追加する)アプリケーションを掲載する。各アプリケーションは、イベントの通知を受信するためのイベントリスナ182を含む。ドライバ160により送信され、電灯の新たな状態を示すメッセージは、装置サービス133により受信される。装置サービス133は、報告可能なイベントが発生したかを決定し(183)、もしそうなら、登録された(180)全ての関心のあるアプリケーションに通知する。
以下、このメカニズムを使用する例を、調光可能な電灯である目標装置に関して説明する。図9Aに示した階層構造によれば、調光可能電灯(DimmableLamp)装置304は、HUCLベーシック電灯装置303及びオン/オフ装置(OnOffDevice)302の機能を拡張する。したがって、イベント階層構造が、このオブジェクト階層構造を鏡写するのが好ましい。これは、DimmableLamp装置サービスに予約されたアプリケーションも、全てのオン/オフイベントの通知を受信することを意味する。多くの高いレベルのクラスのイベントを受け継ぐ装置サービスにより表された、もっと複雑な目標装置の場合、アプリケーションは、該装置サービスにより受け継がれた全てのイベントの通知を受信するであろう。階層構造的装置サービスによるのと同様に、これは、アプリケーション開発者に対して簡単ではあるが、それでも強力なツールを提供する。付録は、この例におけるイベント階層構造を実施化するためのコードの更なる詳細を含んでいる。
前述したように、HUCL管理エンティティは、ドライバ及び装置サービスを登録する責任を負う。OSGiフレームワークは、全ての関心バンドルに、当該システム上の全ての新たな装置サービスの到来を通知するためのメカニズムを提供する。当該システム上にHUCL管理バンドルを設けることにより、このバンドルは全ての新たな装置サービスの到来を聴取し、これら装置サービスがHUCL装置を表すなら、これら装置サービスを装置サービスの集合に追加することができる。次いで、このバンドルは、この集合に対するアクセスを、これら装置サービスを使用する関心のある如何なる他のバンドルにも提供する。
Figure 2008501202
上記コードの断片は、これらの装置サービスを使用することに関心のあるバンドルが、どの様にして、全ての装置サービスのリストをHUCL管理バンドルから得ることができるかを示している。装置サービスは、これら装置サービスが実施化するHUCL装置インターフェースに関して照会することができ、そのように使用することができる。このコードは、開発者が、装置に関心があるかを発見するために如何にして同質多形を使用するかの図示である。この例において、開発者はHUCLLamp及びHUCLDoorbellに関心がある。“instanceof”演算子は現在のHUCLDeviceが関心装置“のインスタンス(instance of)”であるかを調べるために使用される。もしそうなら、HUCLDeviceは、発見された装置のクラスに割り当てられる。かくして、該割り当てられたオブジェクトは該装置を制御するために使用することができる。
前述したゲートウェイは、汎用PC又は専用処理ユニット等の種々の処理プラットフォーム上で実施化することができる。図11は、斯かる処理プラットフォームの主たる構成要素を示す。中央処理ユニット401は、前述したようにソフトウェアを実行して、OSGiフレームワーク、アプリケーション及びHUCLアブストラクションレイヤをサポートする。典型的には、中央処理ユニット401は、ジャバ仮想マシン(JVM)をサポートするネイティブなオペレーティングシステム(例えば、リナックスに基づく)を有する。上記JVMは、OSGiフレームワーク及びアプリケーションをホストする。ハードディスクのような、不揮発性メモリ402及び揮発性メモリ403は、オペレーティングソフトウェア及び装置サービスのライブラリを記憶し、処理ユニット401により使用される。広帯域ADSL又はケーブルモデム等のモデム406は通信回線407につながり、該回線は当該ゲートウェイを、これもアプリケーションがサポートされ得るような遠隔サーバ(図2の50)に結合する。広帯域モデム406はゲートウェイ110の外側でもよい。制御される装置への/からの制御メッセージは、ローカルネットワーク接続部415により伝達され、これら接続部は有線(412)及び無線(411)技術の組み合わせを使用する。特定のローカルネットワークをサポートするために、ローカルエリアネットワークカード及び無線、赤外線又は電力線(X10)モデム等の適切なハードウェアを設けることができる。ユーザ入力は、キーパッド、キーボード、マウス又はタブレット等の入力装置410により、直接的にゲートウェイに供給することができる。他の例として、ユーザ入力は、ゲートウェイ110とローカルにネットワーク化されたリモートコントロールユニットから、又は通信リンク407から受信することもできる。一例として、ユーザが住宅から離れており、住宅内の機器を制御するためにゲートウェイに命令を送信したい場合、ユーザは遠隔端末と対話して、回線407を介しゲートウェイ110に命令を送信する。出力は、ディスプレイドライバ408及びディスプレイ409を介してユーザに直接提示するか、ローカルのリモートコントロールユニットへ、又はリンク407を介して遠隔端末へ供給することができる。バス405、又は異なるタイプのバスの組み合わせが、上記各ユニットを接続する。
多様なアプリケーション130を、ゲートウェイ110上で、又は遠隔サーバ50上で実行することができる。これらの例は、所定の時間に電灯をオン及びオフさせることによる建物の占有の模擬、暖房及び換気の制御、ビデオレコーダのプログラミング、娯楽及び消費者用電子装置の制御のような住宅制御;建物の保安又は建物の占有者の健康の遠隔監視;遠隔故障報告/診断を含む。
尚、上述した実施例は本発明を限定するというよりは解説するものであり、当業者であれば添付請求項の範囲から逸脱することなしに他の実施例を設計することができることに注意すべきである。また、請求項において、括弧内に配置された如何なる符号も請求項を限定するものと見なしてはならない。また、“有する”及び“含む”なる用語は、請求項に記載されたもの以外の他の構成要素又はステップの存在を排除するものではない。
上記記載において、図面を参照して、処理プラットフォーム(110)及び住宅機器等の目標装置(151〜153)を有するローカルネットワーク化システムが説明された。該プラットフォームはオープン・サービス・ゲートウェイ・イニシアチブ(OSGi)のもののようなオープン・サービス・ゲートウェイ・フレームワークをサポートすると共に、目標装置(151〜153)を制御するためのアプリケーション(130)を実行する。目標装置は、各々、アプリケーション・プログラミング・インターフェース(API、134)を介してアプリケーション(130)により操作することが可能なエンティティ(133)により表される。斯かるエンティティは装置タイプの共通の階層構造に従い、その場合において、当該階層構造における一層低い装置タイプを表すエンティティは、該階層構造における一層高い装置タイプの特性を受け継ぐ。これは、アプリケーションに対して一貫したAPIを提供する。上記エンティティは、住宅定型制御言語(HUCL)のような共通言語を使用するアブストラクションレイヤの一部を形成することができる。各エンティティは、上記フレームワークに装置サービスとして登録することができるか、又は単一の装置サービスを、複数のエンティティを表すフレームワークに登録することができる。
付録
イベント報告フィーチャのための他の説明題材。
基本イベントクラスは:
Figure 2008501202
であり得る。
予約アプリケーションにDimmableLamp装置上のイベントを通知するDimmableLampEventは、以下のように、クラスにより指定することができる:
public class DimmableLampEvent extends OnOffDeviceEvent {
static int BRIGHTNESS_CHANGED;

/* Overridden from OnOffDeviceEvent */
public int getEventTrigger();

public DimmableLampEvent(int trigger);
}
アプリケーションは、これらのイベントに対する関心を、適切なイベント・リスナ・インターフェースを実施化することにより登録する。OnOffDeviceのための斯様なインターフェースの一例は:
public interface OnOffDeviceListener extends EventListener {
public void onOffDeviceEventOccurred(OnOffDeviceEvent e);
}
である。
図1は、従来のOSGiフレームワークを使用して電灯を制御する例示的シナリオを示す。 図2は、OSGi住居用ゲートウェイのための全体モデルを示す。 図3は、本発明の一実施例によるOSGiフレームワークを示す。 図4は、図3のフレームワーク上で実施化された、図1と同様のシナリオを示す。 図5Aは、図3のフレームワークを実施化する1つの方法を示す。 図5Bは、図3のフレームワークを実施化する他の方法を示す。 図6Aは、新たな目標装置がネットワークに参加した場合に発生するメッセージの流れを示す。 図6Bは、新たな目標装置がネットワークに参加した場合に発生するメッセージの流れを示す。 図7Aは、既存の目標装置がネットワークから削除された場合に発生するメッセージの流れを示す。 図7Bは、既存の目標装置がネットワークから削除された場合に発生するメッセージの流れを示す。 図8Aは、アプリケーションが目標装置を制御する場合に発生するメッセージの流れを示す。 図8Bは、アプリケーションが目標装置を制御する場合に発生するメッセージの流れを示す。 図9Aは、当該フレームワーク内で使用される装置サービスの階層構造の一例を示す。 図9Bは、当該フレームワーク内で使用される装置サービスの階層構造の他の例を示す。 図10は、アプリケーションに目標装置内のイベントを通知するメカニズムを示す。 図11は、図3のフレームワークを実施化することができるプラットフォームの一例を示す。

Claims (35)

  1. ローカルネットワークにおける目標装置を制御するために使用するプラットフォームにおいて、オープン・サービス・ゲートウェイ・フレームワークをサポートすると共に、前記目標装置を制御するための少なくとも1つのアプリケーションを実行することができるプロセッサを有し、前記目標装置の各々はアプリケーション・プログラミング・インターフェース(API)を介して前記アプリケーションにより操作することが可能なエンティティにより表され、これらエンティティは装置タイプの共通の階層構造に従い、該階層構造においてより低い装置タイプを表すエンティティは、該階層構造においてより高い装置タイプの特性を受け継ぎ、これにより、アプリケーションに対して一貫したAPIを提供することを特徴とするプラットフォーム。
  2. 請求項1に記載のプラットフォームにおいて、前記エンティティが、共通言語を使用する装置アブストラクションレイヤの一部を形成することを特徴とするプラットフォーム。
  3. 請求項2に記載のプラットフォームにおいて、前記アブストラクションレイヤが、前記共通言語と、前記目標装置とインターフェースするために使用されるプロトコルとの間でメッセージを翻訳するブリッジドライバを更に有することを特徴とするプラットフォーム。
  4. 請求項2又は請求項3に記載のプラットフォームにおいて、前記共通言語が住宅定型制御言語(HUCL)であることを特徴とするプラットフォーム。
  5. 請求項1ないし4の何れか一項に記載のプラットフォームにおいて、目標装置を表すエンティティが、前記フレームワークに装置サービスとして登録されることを特徴とするプラットフォーム。
  6. 請求項1ないし5の何れか一項に記載のプラットフォームにおいて、複数の目標装置を表すことが可能な装置サービスが前記フレームワークに登録され、各目標装置が該装置サービス内の個々のエンティティにより表されることを特徴とするプラットフォーム。
  7. 請求項6に記載のプラットフォームにおいて、前記装置サービスがHUCL複合装置を有し、各目標装置が該複合装置の副装置であるようなエンティティにより表されることを特徴とするプラットフォーム。
  8. 請求項6又は請求項7に記載のプラットフォームにおいて、前記装置サービスとアプリケーションとの間のAPIが、前記装置サービスにメッセージを送信するためのコマンドと前記装置サービスからメッセージを受信するためのコマンドとを有していることを特徴とするプラットフォーム。
  9. 請求項6ないし8の何れか一項に記載のプラットフォームにおいて、アプリケーションに、高レベルコマンドを前記APIを介して使用される低レベルメッセージに翻訳するためにラッパ機能が設けられることを特徴とするプラットフォーム。
  10. 請求項1ないし9の何れか一項に記載のプラットフォームにおいて、アプリケーションが、前記装置タイプの階層構造の特定のレベルにおける目標装置を制御することができないと判断した場合、該アプリケーションが、前記目標装置を制御することが可能であるような前記階層構造における低いレベルを見付けることを特徴とするプラットフォーム。
  11. 請求項10に記載のプラットフォームにおいて、前記エンティティが、特性が受け継がれているような前記階層構造における一層高い装置タイプのリストを含んでいることを特徴とするプラットフォーム。
  12. 請求項10に記載のプラットフォームにおいて、前記アプリケーションが、前記装置タイプの階層構造に関する知識を使用することにより、前記目標装置を制御することが可能な前記階層構造における一層低いレベルを決定することを特徴とするプラットフォーム。
  13. 請求項1ないし12の何れか一項に記載のプラットフォームにおいて、前記エンティティが、目標装置におけるイベントの発生を前記アプリケーションに通知するように構成されていることを特徴とするプラットフォーム。
  14. 請求項13に記載のプラットフォームにおいて、エンティティが、イベントの発生を通知されることを欲するアプリケーションのリストを保持し、イベントが発生した場合に、これらアプリケーションに通知することを特徴とするプラットフォーム。
  15. 請求項13又は請求項14に記載のプラットフォームにおいて、前記エンティティがイベント通知の一貫した階層構造を有し、エンティティが該構造のより高いメンバのイベントを受け継ぐことを特徴とするプラットフォーム。
  16. 住居用ゲートウェイの形態の請求項1ないし15の何れか一項に記載のプラットフォーム。
  17. 遠隔サーバと通信するための通信リンクに接続可能な請求項16に記載の住居用ゲートウェイにおいて、該ゲートウェイにおいてサポートされる前記フレームワークが、前記遠隔サーバにより実行されるアプリケーションに対するインターフェースを提供することを特徴とする住居用ゲートウェイ。
  18. ローカルネットワークにおける目標装置を制御するプラットフォームのための命令において、これら命令は、前記プラットフォームのプロセッサにオープン・サービス・ゲートウェイ・フレームワークをサポートさせると共に、前記目標装置を制御するための少なくとも1つのアプリケーションを実行させ、前記目標装置の各々はアプリケーション・プログラミング・インターフェース(API)を介して前記アプリケーションにより操作することが可能なエンティティにより表され、これらエンティティは装置タイプの共通の階層構造に従い、該階層構造においてより低い装置タイプを表すエンティティは、該階層構造においてより高い装置タイプの特性を受け継ぎ、これにより、アプリケーションに対して一貫したAPIを提供することを特徴とする命令。
  19. 請求項18に記載の命令において、前記エンティティが、共通言語を使用する装置アブストラクションレイヤの一部を形成することを特徴とする命令。
  20. 請求項19に記載の命令において、前記アブストラクションレイヤが、前記共通言語と、前記目標装置とインターフェースするために使用されるプロトコルとの間でメッセージを翻訳するブリッジドライバを更に有することを特徴とする命令。
  21. 請求項19又は請求項20に記載の命令において、前記共通言語が住宅定型制御言語(HUCL)であることを特徴とする命令。
  22. 請求項18ないし21の何れか一項に記載の命令において、目標装置を表すエンティティが、前記フレームワークに装置サービスとして登録されることを特徴とする命令。
  23. 請求項18ないし22の何れか一項に記載の命令において、複数の目標装置を表すことが可能な装置サービスが前記フレームワークに登録され、各目標装置が該装置サービス内の個々のエンティティにより表されることを特徴とする命令。
  24. 請求項23に記載の命令において、前記装置サービスがHUCL複合装置を有し、各目標装置が該複合装置の副装置であるようなエンティティにより表されることを特徴とする命令。
  25. 請求項23又は請求項24に記載の命令において、前記装置サービスとアプリケーションとの間のAPIが、前記装置サービスにメッセージを送信するためのコマンドと前記装置サービスからメッセージを受信するためのコマンドとを有していることを特徴とする命令。
  26. 請求項23ないし25の何れか一項に記載の命令において、アプリケーションに、高レベルコマンドを前記APIを介して使用される低レベルメッセージに翻訳するためにラッパ機能が設けられることを特徴とする命令。
  27. 請求項18ないし26の何れか一項に記載の命令において、アプリケーションが、前記装置タイプの階層構造の特定のレベルにおける目標装置を制御することができないと判断した場合、該アプリケーションが、前記目標装置を制御することが可能であるような前記階層構造における低いレベルを見付けることを特徴とする命令。
  28. 請求項27に記載の命令において、前記エンティティが、特性が受け継がれているような前記階層構造における一層高い装置タイプのリストを含んでいることを特徴とする命令。
  29. 請求項27に記載の命令において、前記アプリケーションが、前記装置タイプの階層構造に関する知識を使用することにより、前記目標装置を制御することが可能な前記階層構造における一層低いレベルを決定することを特徴とする命令。
  30. 請求項18ないし29の何れか一項に記載の命令において、前記装置サービスが、目標装置におけるイベントの発生を前記アプリケーションに通知するように構成されていることを特徴とする命令。
  31. 請求項30に記載の命令において、エンティティが、イベントの発生を通知されることを欲するアプリケーションのリストを保持し、イベントが発生した場合に、これらアプリケーションに通知することを特徴とする命令。
  32. 請求項30又は請求項31に記載の命令において、前記エンティティがイベント通知の一貫した階層構造を有し、エンティティが該構造のより高いメンバのイベントを受け継ぐことを特徴とする命令。
  33. 請求項18ないし32の何れか一項に記載の命令を担持するマシン読み取り可能な媒体を有するコンピュータプログラム。
  34. オープン・サービス・ゲートウェイ・フレームワークをサポートすると共に、ローカルネットワークにおける目標装置を制御するための少なくとも1つのアプリケーションを実行することができるようなプラットフォームと共に使用するためのエンティティのライブラリにおいて、前記エンティティの各々は、前記ネットワークにおける目標装置を表すと共にアプリケーション・プログラミング・インターフェース(API)を介してアプリケーションにより操作することができ、これらエンティティは装置タイプの共通の階層構造に従い、該階層構造においてより低い装置タイプを表すエンティティは、該階層構造においてより高い装置タイプの特性を受け継ぎ、これにより、アプリケーションに対して一貫したAPIを提供することを特徴とするエンティティのライブラリ。
  35. 請求項1ないし34の何れか一項に記載のプラットフォーム、命令、コンピュータプログラム又はエンティティのライブラリにおいて、前記オープン・サービス・ゲートウェイ・フレームワークがオープン・サービス・ゲートウェイ・イニシアチブ(OSGi)フレームワークであることを特徴とするプラットフォーム、命令、コンピュータプログラム又はエンティティのライブラリ。
JP2007517573A 2004-05-24 2005-05-23 ローカルネットワーク化システム用の装置アブストラクションレイヤ Withdrawn JP2008501202A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0411528.3A GB0411528D0 (en) 2004-05-24 2004-05-24 Device abstraction layer for local networking system
PCT/IB2005/051670 WO2005117389A1 (en) 2004-05-24 2005-05-23 Device abstraction layer for local networking system

Publications (1)

Publication Number Publication Date
JP2008501202A true JP2008501202A (ja) 2008-01-17

Family

ID=32607852

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007517573A Withdrawn JP2008501202A (ja) 2004-05-24 2005-05-23 ローカルネットワーク化システム用の装置アブストラクションレイヤ

Country Status (10)

Country Link
EP (1) EP1757060A1 (ja)
JP (1) JP2008501202A (ja)
KR (1) KR20070033338A (ja)
CN (1) CN1957583A (ja)
BR (1) BRPI0511455A (ja)
GB (1) GB0411528D0 (ja)
MX (1) MXPA06013703A (ja)
RU (1) RU2006145862A (ja)
TW (1) TW200616398A (ja)
WO (1) WO2005117389A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011081488A (ja) * 2009-10-05 2011-04-21 Nippon Telegraph & Telephone East Corp 情報処理装置及び情報処理プログラム
JP2012203656A (ja) * 2011-03-25 2012-10-22 Nippon Telegraph & Telephone East Corp 通信装置及びコンピュータプログラム
KR20170041743A (ko) * 2014-08-11 2017-04-17 퀄컴 인코포레이티드 사물 인터넷(iot)네트워크에서 이벤트 사전을 자동으로 생성하기 위한 방법 및 장치

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1835690B1 (en) * 2006-03-15 2014-10-22 Alcatel Lucent TR69 based service interface for OSGi bundles
EP1928186B1 (en) * 2006-11-30 2014-01-29 Alcatel Lucent Method to configure device dependent services of a device at a customer premises equipment and a device to execute the method
NZ586674A (en) * 2007-12-31 2013-02-22 Schlage Lock Co Method and system for remotely controlling access to an access point
JP6009734B2 (ja) * 2008-02-05 2016-10-19 フィリップス ライティング ホールディング ビー ヴィ 受信ユニットの電力消費を制御する方法
EP2088741A1 (en) * 2008-02-11 2009-08-12 Alcatel Lucent Method and OSGi bundle to enable sharing of a local service on an embedded device
US8082312B2 (en) 2008-12-12 2011-12-20 Event Medical, Inc. System and method for communicating over a network with a medical device
EP2427026A4 (en) * 2009-05-18 2012-06-20 Huawei Tech Co Ltd DATA TRANSMISSION PROCESS, DEVICE PROCESSOR AND DEVICE DEVICE IN THE ZIGBEE NETWORK
US8171094B2 (en) 2010-01-19 2012-05-01 Event Medical, Inc. System and method for communicating over a network with a medical device
RU2486578C2 (ru) * 2011-09-16 2013-06-27 Российская Федерация, от имени которой выступает Министерство промышленности и торговли Российской Федерации (Минпромторг России) Способ построения системы сообщений многоуровневой несимметричной транспортной системы
RU2486584C2 (ru) * 2011-09-16 2013-06-27 Российская Федерация, от имени которой выступает Министерство промышленности и торговли Российской Федерации (Минпромторг РФ) Способ построения иерархической системы сетевого взаимодействия виртуальных рабочих мест
CN104113488A (zh) * 2013-04-16 2014-10-22 中兴通讯股份有限公司 接口切换方法和装置
KR102085114B1 (ko) * 2013-07-17 2020-03-05 삼성전자주식회사 홈 네트워크 시스템에서 스마트 모듈을 이용한 통신 방법 및 장치
FR3021829A1 (fr) * 2014-05-30 2015-12-04 Orange Technique de mediation dans un reseau residentiel
CA3128834C (en) 2015-01-02 2023-11-14 Systech Corporation Control infrastructure
US10877785B2 (en) * 2017-01-24 2020-12-29 Microsoft Technology Licensing, Llc Enclave abstraction model

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101058065B1 (ko) * 2002-08-06 2011-08-22 코닌클리케 필립스 일렉트로닉스 엔.브이. 네트워크 설정 및 관리 프로토콜
EP1394986B1 (en) * 2002-09-02 2005-11-09 Sony Deutschland GmbH Service gateway for controlling audio/video devices in a local network

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011081488A (ja) * 2009-10-05 2011-04-21 Nippon Telegraph & Telephone East Corp 情報処理装置及び情報処理プログラム
JP2012203656A (ja) * 2011-03-25 2012-10-22 Nippon Telegraph & Telephone East Corp 通信装置及びコンピュータプログラム
KR20170041743A (ko) * 2014-08-11 2017-04-17 퀄컴 인코포레이티드 사물 인터넷(iot)네트워크에서 이벤트 사전을 자동으로 생성하기 위한 방법 및 장치
KR102552789B1 (ko) 2014-08-11 2023-07-06 퀄컴 인코포레이티드 사물 인터넷(iot)네트워크에서 이벤트 사전을 자동으로 생성하기 위한 방법 및 장치

Also Published As

Publication number Publication date
MXPA06013703A (es) 2007-03-23
WO2005117389A8 (en) 2006-07-27
KR20070033338A (ko) 2007-03-26
EP1757060A1 (en) 2007-02-28
BRPI0511455A (pt) 2007-12-26
TW200616398A (en) 2006-05-16
GB0411528D0 (en) 2004-06-23
WO2005117389A1 (en) 2005-12-08
CN1957583A (zh) 2007-05-02
RU2006145862A (ru) 2008-06-27

Similar Documents

Publication Publication Date Title
JP2008501202A (ja) ローカルネットワーク化システム用の装置アブストラクションレイヤ
US20080069121A1 (en) Gateway For A Local Network System
US7882256B2 (en) Gateway device and control device
US8699501B2 (en) Residential gateway system for home network service
JP4745337B2 (ja) ゲートウェイ装置及び制御装置
US8423671B2 (en) Middleware device and method of supporting compatibility of devices in home network
EP1131919B1 (en) Bridging multiple home network software architectures
US9998336B2 (en) System, method, and computer-readable medium for dynamic device discovery for servers binding to multiple masters
JP2002514797A (ja) ネットワークで汎用的にアクセスする命令及び制御情報のための方法及び装置
JP2004320747A (ja) 協業サービスのためのホームネットワークシステム及び方法
US20060190571A1 (en) Service framework for home network
Papadopoulos et al. A connected home platform and development framework for smart home control applications
KR20080112918A (ko) 동적으로 변경되는 UPnP 명세를 제공하는 방법 및 장치
WO2006083148A1 (en) Address management method and message transmitting and receiving method in network control system
EP1693990B1 (en) Service framework for a home network
KR20130077734A (ko) 다중 디바이스간 정보교환 프로토콜 기반의 정보제공 서비스 시스템 및 방법
US20080320469A1 (en) Method of receiving/transmitting event message, controlled device, and control point
Šuba et al. Towards a common sensor network api: Practical experiences
WO2009086529A1 (en) System, method, and computer-readable medium for dynamic device discovery for servers binding to multiple masters
Kwon et al. Design and implementation of control point under the home network environments
Meliones et al. Adaptive Networking

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080805