• 検索結果がありません。

[1] Web ( ) Web Web [2] Web Web (RuCAS, Rule based management framework for -Aware Services) [3] 5 (WebServiceLayer, AdapterLayer, Layer, Layer, ECARu

N/A
N/A
Protected

Academic year: 2021

シェア "[1] Web ( ) Web Web [2] Web Web (RuCAS, Rule based management framework for -Aware Services) [3] 5 (WebServiceLayer, AdapterLayer, Layer, Layer, ECARu"

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)

ҟछ෼ࢄ Web αʔϏεʹجͮ͘ίϯςΩετΞ΢ΣΞαʔϏεͷ

؅ཧϓϥοτϑΥʔϜͷ࣮૷

∁௩ ޿و

ࠤഢ ޾࿠

㤟ຊ ਅ༎

தଜ ڡल

ਆށେֶ ˟ 657–8501 ਆށࢢಿ۠࿡ߕ୆ொ 1–1

E-mail:

[email protected],

††

[email protected],

†††{

shinsuke,masa-n

}

@cs.kobe-u.ac.jp

͋Β·͠ M2M ٕज़΍Ϋϥ΢υαʔϏεͷීٴʹ൐͍ɼଟछଟ༷ͳσʔλ͕ Web αʔϏεΛհͯ͠ར༻ՄೳͱͳΓ

ͭͭ͋Δɽ͜ΕΒͷσʔλ͔Βݱ࣮ੈքͷঢ়گʢίϯςΩετʣΛ൑அ͠ɼࣗ཯తͳ੍ޚΛߦ͏ίϯςΩετΞ΢Σ

ΞαʔϏεͷ࣮ݱ͕ظ଴͞Ε͍ͯΔɽզʑ͸ઌߦݚڀʹ͓͍ͯɼ༷ʑͳछྨͷ෼ࢄͨ͠ Web αʔϏε (ηϯααʔϏ

εɼ৘ใγεςϜɼՈిαʔϏεͳͲ) Λར༻ͨ͠ίϯςΩετΞ΢ΣΞαʔϏεΛ౷Ұతʹ࡞੒ɾ؅ཧͰ͖ΔϑϨʔ

ϜϫʔΫͷఏҊΛߦ͍ͬͯΔɽఏҊϑϨʔϜϫʔΫ͸ 5 ͭͷϨΠϠ͔Βߏ੒͞Εɼطଘͷ Web αʔϏε͔Βऔಘ͞

ΕΔσʔλʹج͍ͮͯίϯςΩετΛఆٛ͠ɼίϯςΩετΞ΢ΣΞαʔϏεΛ Event, Condition, Action ͷ૊Ͱ͋

Δ ECA نଇͰఆٛ͢ΔɽຊߘͰ͸ɼఏҊ͞ΕͨϑϨʔϜϫʔΫʹج͖ͮɼ֤ϨΠϠͷཁૉͷ࡞੒ɼ࡟আɼऔಘɼฤू

ٴͼίϯςΩετΞ΢ΣΞαʔϏεΛ࣮ߦ͢ΔػೳΛ࣋ͭج൫ͷ࣮૷Λߦ͏ɽ͜ΕΒͷػೳΛ Java Λ༻͍࣮ͯ૷͠ɼ

API

Λ Web αʔϏεͱͯ͠ެ։͢Δɽ

Ωʔϫʔυ Web αʔϏεɼίϯςΩετɼECA نଇɼϗʔϜωοτϫʔΫγεςϜɼηϯααʔϏε

Implementing Execution Platform for Managing Context-Aware Services

Based on Heterogeneous and Distributed Web Services

Hiroki TAKATSUKA

, Sachio SAIKI

, Shinsuke MATSUMOTO

, and Masahide NAKAMURA

Kobe University

Rokko-dai-cho 1–1ɼNada-kuɼKobeɼHyogoɼ657–8501 Japan

E-mail:

[email protected],

††

[email protected],

†††{

shinsuke,masa-n

}

@cs.kobe-u.ac.jp

Abstract With the spread of Machine-to-Machine (M2M) and cloud services, we have become to be able to

use heterogeneous and distributed data. Implementation of the service which judges the context and controls

au-tonomous from these data is expected. We have previously proposed the framework, which can create and manage

in a unified manner context-aware services using heterogeneous and distributed Web services (sensor services,

infor-mation system, state of appliance services and so on). The proposed framework consists of five layers and we define

the context based on the data of the existing Web services, and then define the context-aware service by the ECA

rule that is a set of event, condition and action. In this paper, we implement a platform based on the framework.

The platform has the functions to register, delete, get and edit elements in each layer and to run the services. We

implement these using Java, and publish APIs as the Web service.

Key words Web services, context, event-condition-action rule, home network system, sensor services

1.

͸ ͡ Ί ʹ

ۙ೥ɼܭࢉࢿݯΛωοτϫʔΫܦ༝ͰϢʔβ͕αʔϏεͱ͠ ͯར༻͢ΔΫϥ΢υٕज़ͷൃలɼฒͼʹਓؒͷհࡏͳ͠ʹػث ಉ͕࢜૬ޓʹ௨৴Λߦ͍ಈ࡞͕ߦΘΕΔM2Mٕज़ͷൃలʹΑ ΓɼؾԹͳͲͷ৘ใΛ͸͡Ίͱͨ͠ݱ࣮ੈքʹؔ͢Δଟछଟ༷ ͳσʔλΛɼWebαʔϏε΍Web-APIܦ༝ͰऔಘͰ͖ΔΑ ͏ʹͳ͍ͬͯΔɽ͜ΕΒͷσʔλ͔Βݱ࣮ੈքͷঢ়گ(ίϯς Ωετ)Λ൑அ͠ɼࣗ཯తͳ੍ޚΛߦ͏ίϯςΩετΞ΢ΣΞ αʔϏεͷ࣮ݱʹΑΓɼ؀ڥͷมԽ΍ਓؒͷߦಈʹରͯ͠ɼ“ؾ ͷར͍ͨ”αʔϏεͷ࡞੒͕ՄೳͱͳΔɽ ߴ౓ͳίϯςΩετΞ΢ΣΞαʔϏεͷ࣮ݱʹ޲͚ͨɼηϯ α৘ใ͔ΒͷίϯςΩετਪఆٴͼͦͷར༻ํ๏ʹ͍ͭͯ͸ɼ ϢϏΩλε෼໺ʹ͓͍ͯίϯςΩετΞ΢ΣΞٕज़ͱͯ͜͠Ε

― 71 ―

This article is a technical report without peer review, and its polished and/or extended version may be published elsewhere. 一般社団法人 電子情報通信学会 信学技報

THE INSTITUTE OF ELECTRONICS,        IEICE Technical Report

INFORMATION AND COMMUNICATION ENGINEERS ISEC2013-70 LOIS2013-36 (2013-11)         

(2)

·Ͱʹใࠂ͞Ε͍ͯΔ[1]ɽ͜Εʹର͠ɼηϯαʹݶΒͣҟछ෼ ࢄWebαʔϏεܦ༝ͰऔಘͰ͖Δσʔλ(ηϯαɼ৘ใγε ςϜɼՈిͷঢ়ଶͳͲ)ΛίϯςΩετਪఆʹར༻͢Ε͹ɼߋ ʹߴ౓ͳίϯςΩετΞ΢ΣΞαʔϏεͷ࣮ݱ͕ՄೳͱͳΔ͕ɼ ೖྗ͞ΕΔ֤छσʔλͷఏڙݩ΍ϑΥʔϚοτͳͲͷ؅ཧ͕ෳ ࡶͱͳΔͨΊɼ࣮ࡍͷใࠂྫ͸গͳ͍ɽ·ͨɼίϯςΩετΞ ΢ΣΞαʔϏεͱͯ͠WebαʔϏεͷݺͼग़͠Λߦ͏͜ͱͰɼ ΑΓෳࡶͳαʔϏεͷఏڙ͕ՄೳͱͳΔɽຊ݅ʹ͍ͭͯ͸ઌߦ ݚڀʹ͓͍ͯɼ෺ཧηϯα͔Βऔಘͨ͠ίϯςΩετΛ΋ͱʹ WebαʔϏεͷݺͼग़͠Λߦ͏ηϯαۦಈαʔϏε[2]͕ఏҊ ͞Ε͍ͯΔɽ ͜ͷΑ͏ʹίϯςΩετΞ΢ΣΞαʔϏεͷೖग़ྗ૒ํΛ WebαʔϏεԽ͢Δ͜ͱʹΑΓɼίϯςΩετΞ΢ΣΞαʔϏ εΛΑΓॊೈʹɾ࢖͍΍͘͢ఏڙ͢Δ͜ͱ͕ՄೳͱͳΔɽ͔͠ ͠ͳ͕ΒɼίϯςΩετਪఆʹ༻͍ΔσʔλɼίϯςΩετͷ ਪఆɼίϯςΩετʹىҼͨ͠ಈ࡞ɼͦΕͧΕͷؔ܎͕ෳࡶʹ ͳΔͨΊɼମܥతͳ؅ཧΛߦΘͳ͚Ε͹αʔϏεͷఏڙ͕ࠔ೉ ͱͳΔɽ͜ΕΒͷίϯςΩετΛ༻͍ͨαʔϏεΛ࡞੒ɾ࠶ར ༻Ͱ͖Δ౷Ұతͳ࿮૊Έ͕ଘࡏ͢Ε͹ɼैདྷͷίϯςΩετΞ ΢ΣΞαʔϏεΑΓ΋ଟ͘ͷݱ࣮ੈքͷσʔλʹج͍ͮͨɼΑ Γߴ౓ͳίϯςΩετΞ΢ΣΞαʔϏεͷ࡞੒͕ՄೳͱͳΔɽ զʑ͸ઌߦݚڀʹ͓͍ͯɼҟछ෼ࢄWebαʔϏεΛར༻͠ ͨίϯςΩετΞ΢ΣΞαʔϏεͷ։ൃࢧԉٴͼɼମܥత؅ཧ ΛՄೳͱ͢ΔϑϨʔϜϫʔΫ(RuCAS, Rule based manage-ment framework for Context-Aware Services) [3]ΛఏҊͯ͠ ͍ΔɽఏҊϑϨʔϜϫʔΫ͸5ͭͷϨΠϠ(WebServiceLayer, AdapterLayer, ContextLayer, ActionLayer, ECARuleLayer)

͔Βߏ੒͞Εɼ֤ϨΠϠͷཁૉΛ࢖༻ͯ͠ɼECARuleLayerʹ ͓͍ͯࣄ৅(Event),৚݅(Condition),ಈ࡞(Action)ͷ૊Ͱ͋

ΔECAنଇΛఆٛ͢Δ͜ͱͰίϯςΩετΞ΢ΣΞαʔϏε

Λ࡞੒͢ΔɽఏҊϑϨʔϜϫʔΫͰ͸ɼೖग़ྗΛηϯαͳͲͷ

ಛఆͷσόΠεʹݶఆͤͣɼҟछ෼ࢄWebαʔϏεΛ૊Έ߹

ΘͤͨίϯςΩετΞ΢ΣΞαʔϏεΛ࡞੒ɾ؅ཧͰ͖ΔΑ͏ ʹͳΔɽ

ͦ͜ͰຊߘͰ͸ɼRuCASͷ࣮ߦج൫Ͱ͋ΔɼRuCAS

Plat-formͷ࣮૷Λߦ͍ɼίϯςΩετΞ΢ΣΞαʔϏεͷ։ൃࢧ ԉɼମܥత؅ཧٴͼ࣮ߦΛՄೳͱ͠ɼ͜ΕΒͷػೳΛWebαʔ Ϗεͱͯ͠࢖༻ՄೳͳAPIͷఏڙΛ࣮ݱ͢Δɽ·ͨɼRuCAS PlatformΛར༻ͨ͠ίϯςΩετΞ΢ΣΞαʔϏεͷಈ࡞֬ ೝͷͨΊɼέʔεελσΟͱ࣮ͯ͠ࡍͷϗʔϜωοτϫʔΫγ εςϜʹ͓͍ͯɼRuCAS Platformͷར༻ʹΑΔίϯςΩετ Ξ΢ΣΞαʔϏεͷ࡞੒ٴͼ࣮ߦΛߦ͏ɽ

2.

2. 1 WebɾΫϥ΢υ࣌୅ʹ͓͚ΔίϯςΩετਪఆͷͨΊ ͷٕज़ ৘ใ௨৴ٕज़ͷൃୡʹΑΓɼ࠷ۙͰ͸Web͔Β༷ʑͳ৘ใ

͕औಘͰ͖ΔɽಛʹM2M(Machine to Machine)΍Webαʔ Ϗεͱ͍ٕͬͨज़͸ॏཁͳ໾ׂΛ୲͍ͬͯΔɽ M2Mͱ͸ɼηϯα΍௨৴ϞδϡʔϧΛ಺ଂ༷ͨ͠ʑͳػث ͕ɼਓͷखΛհͣ͞ʹɼݱ࣮ੈքͷঢ়گΛൃ৴͢Δٕज़Ͱ͋Δɽ M2Mൃୡͷഎܠʹ͸ɼ௨৴ͷߴ଎Խ΍ɼηϯαٕज़ͷਐԽ͕ ͋ΔɽՃ͑ͯɼΫϥ΢υٕज़ɾϏοάσʔλٕज़ͷൃୡʹΑΓɼ ηϯγϯά͠औಘͨ͠σʔλΛػثଆͰॲཧ͢Δ͜ͱͳ͘શͯ αʔόʹ఻ୡՄೳͱͳͬͨ͜ͱʹΑΓɼ࣌ࠩͳ͘ঢ়ଶΛऔಘ͠ɼ ϦΞϧλΠϜʹσʔλΛॲཧ͢Δ͜ͱ͕Մೳͱͳͬͨɽ WebαʔϏεͱ͸ɼωοτϫʔΫܦ༝ͰҟͳΔΞϓϦέʔ γϣϯ΍αʔϏεͷػೳΛڞ༗͢Δٕज़Ͱ͋ΔɽWebαʔϏε Ͱ͸ɼαʔϏεͷAPIΛެ։͢Δଆͱར༻͢ΔଆͰ௨৴Λߦ ͏ٕज़ͱͯ͠ɼSOAP΍RESTͱݺ͹ΕΔHTTPͳͲͷϓϩ τίϧΛ࢖༻͠ɼXMLܗࣜͷσʔλΛૹड৴͢Δ࢓૊ΈΛར ༻͢ΔɽWebαʔϏεΛར༻͢Δ͜ͱͰɼݸਓͰ͸࡞Δ͜ͱ͕ ࠔ೉ͳػೳ΍ɼσʔλϕʔεΛར༻ͨ͠։ൃ͕ՄೳͱͳΔɽ M2Mͷ׆༻ʹΑΓϦΞϧλΠϜʹॲཧ͞ΕͨσʔλΛ࢖༻ ͨ͠αʔϏεͱɼWebαʔϏεΛ૊Έ߹ΘͤΔ͜ͱͰɼηϯγ ϯά͞ΕͨσʔλΛωοτϫʔΫܦ༝Ͱ࢖༻ͨ͠ίϯςΩετ Ξ΢ΣΞαʔϏεͷ࣮ݱ͕ՄೳͱͳΔɽ 2. 2 ϗʔϜωοτϫʔΫγεςϜ(HNS) ୐಺ͷՈి΍ઃඋػثΛωοτϫʔΫʹऩ༰ͯ͠ɼ෇ՃՁ ஋αʔϏεΛ࣮ݱ͢ΔγεςϜΛϗʔϜωοτϫʔΫγε ςϜ(HNS) ͱ͍͏ɽTV ΍র໌ɼΤΞίϯɼΧʔςϯɼઔ ෩ػͳͲͷՈిٴͼɼԹ౓ηϯα΍࣪౓ηϯαɼর౓ηϯα ͳͲͷ֤छηϯαΛ͸͡Ίͱͨ͠ػث͕ωοτϫʔΫʹ઀ଓ ͞Εɼ༷ʑͳαʔϏεɾΞϓϦέʔγϣϯ͕࣮ݱ͞ΕΔɽ͜ ͷHNSͷ࣮ݱ๏ͱͯ͠ɼզʑͷݚڀࣨͰ͸ɼαʔϏεࢦ޲ ΞʔΩςΫνϟ(SOA) ΛHNS ʹద༻͠ɼ֤Ոిɾηϯαͷ ػೳΛWeb αʔϏεͱͯ͠ར༻Ͱ͖ΔHNS ؀ڥ CS27-HNS[4]Λ։ൃ͍ͯ͠ΔɽCS27-HNS Ͱ͸ػثґଘͷ੍ޚํ ๏΍௨৴ϓϩτίϧΛWebαʔϏεͰϥοϓ͓ͯ͠Γɼશͯ

ͷػثͷػೳΛSOAP ·ͨ͸REST ܗࣜͷWeb-APIͱ͠

ͯར༻Ͱ͖Δɽྫ͑͹ɼςϨϏͷνϟϯωϧΛ6ch ʹ͢Δʹ ͸ɼhttp://hns/TVService/setChannel?channel=6ͱ͍ͬͨ URLʹΞΫηε͢Δ͜ͱͰ࣮ݱͰ͖Δɽ 2. 3 ίϯςΩετΞ΢ΣΞαʔϏε ίϯςΩετͱ͸ɼਓ΍෺ɼ؀ڥͳͲݱ࣮ੈքͷঢ়گͷ͜ͱ Ͱ͋Γɼ༷ʑͳηϯα΍γεςϜ͔Βಘͨ৘ใΛ΋ͱʹఆٛ͞ ΕΔɽίϯςΩετΞ΢ΣΞαʔϏεͱ͸ɼίϯςΩετͷม ԽΛࣗಈతʹݕ஌͠ɼͦͷมԽʹରԠͨ͠ػೳ΍৘ใΛఏڙ͢ ΔαʔϏεͷ͜ͱΛࢦ͢ɽ ྫ͑͹ɼʮ෦԰ͷԹ౓ηϯαͷ஋͕28ˆҎ্ʯͱ͍͏৘ใ͔Β ͸ʮॵ͍ʯͱ͍͏ίϯςΩετ͕ਪఆ͞ΕΔɽγεςϜ͸͜ͷ ʮॵ͍ʯͱ͍͏ίϯςΩετΛ΋ͱʹʮΤΞίϯͷྫྷ๪ӡసΛ ։࢝͢Δʯͱ͍ͬͨίϯςΩετʹԠͨ͡αʔϏεΛఏڙ͢Δɽ

3.

ҟछ෼ࢄ

Web

αʔϏεʹجͮ͘ίϯςΩε

τΞ΢ΣΞαʔϏεͷ؅ཧϑϨʔϜϫʔΫ

ຊઅͰ͸ɼઌߦݚڀʹ͓͍ͯఏҊͨ͠ϑϨʔϜϫʔΫ (Ru-CAS)ͷઆ໌Λߦ͏ɽͨͩ͠ɼRuCAS಺ͷཁૉͷදݱʹ͸ӳ ޠදهΛ༻͍Δɽ

(3)

Do nothing Event when false ڀ true ECARule Condition Action then false then true ਤ 1 ECA نଇͷྲྀΕ Adapter ϝ૷ AdapterLayer 䜶䜰䝁䞁KE Adapter ૣ฻ܺෟด

Event Condition Action

WebServiceLayer Context

࠙Ǒ ૣ฻̪પContext ๐എONAction ContextLayer ECARuleLayer ActionLayer Context ࠙Ǒ ૣ฻̪પContext ๐എMLAction Action ɄȤĘɈ ਤ 2 RuCAS ͷΞʔΩςΫνϟ

3. 1 ECAنଇ(Event-Condition-Action Rule)

ECAنଇͱ͸ɼτϦΨͱͳΔEvent͕ൃੜͨ͠ࡍɼ৚݅෦ ͱͳΔCondition͕ຬͨ͞Ε͍ͯͨ৔߹ɼActionΛ࣮ߦ͢Δɼ ͱ͍͏نଇͰ͋ΔɽECAنଇͷྲྀΕΛਤ1ʹࣔ͢ɽRuCASͰ ͸ɼҎԼͷΑ͏ʹίϯςΩετΞ΢ΣΞαʔϏεΛECAنଇ ͷܗͰఆٛ͢Δɽ Event: αʔϏεͷτϦΨͱͳΔContext Condition: ඞཁ৚݅ͱͳΔҰͭҎ্ͷContext Action: ࣮ߦର৅ͷAction 3. 2 RuCASͷΞʔΩςΫνϟ

ਤ2ʹRuCASͷΞʔΩςΫνϟΛࣔ͢ɽRuCAS͸ECA

ن ଇ Λ ఆ ٛ ͢ Δ ্ Ͱ ͷ ໾ ׂ ʹ Α Γ ෼ ׂ ͞ Ε ͨ 5ͭ ͷ Ϩ Π Ϡ(WebServiceLayer, AdapterLayer, ContextLayer, Action-Layer, ECARuleLayer)͔Βߏ੒͞Ε͍ͯΔɽ֤ϨΠϠʹ͓͍ ͯɼԼ૚ͷػೳΛར༻͢Δ͜ͱͰཁૉΛ࡞੒͠ɼECARuleLayer ʹ͓͍ͯɼ࡞੒ͨ͠ཁૉΛ૊Έ߹ΘͤͯECAنଇΛఆٛ͢Δ ͜ͱͰίϯςΩετΞ΢ΣΞαʔϏεΛ࡞੒͢ΔɽҎԼʹ֤Ϩ ΠϠͷػೳʹ͍ͭͯࣔ͢ɽ 3. 2. 1 WebServiceLayer طଘͷWebαʔϏεͷϨΠϠͰ͋ΓɼίϯςΩετΞ΢Σ ΞαʔϏεͷೖྗͱͳΔ਺஋΍ਅِ஋ͳͲɼԿΒ͔ͷ஋͕औಘ Ͱ͖ΔWebαʔϏεͱɼίϯςΩετΞ΢ΣΞαʔϏεͷग़ ྗͱͳΔػث੍ޚͳͲΛߦ͏WebαʔϏε͕͜ͷϨΠϠʹؚ ·ΕΔɽ 3. 2. 2 AdapterLayer ίϯςΩετΞ΢ΣΞαʔϏεͷೖྗͱͳΔWebαʔϏεͷ

APIΛ౷Ұ͢ΔϨΠϠͰ͋ΓɼαʔϏεͷAPIΛgetValue()

ʹ౷Ұ͢ΔAdapterΛͦΕͧΕͷαʔϏεʹ͍ͭͯొ࿥͢Δɽ 3. 2. 3 ContextLayer ৚݅ࣜ΍൑ఆִؒΛ΋ͱʹఆٛ͞ΕͨContextΛҰݩ؅ ཧ͢ΔϨΠϠͰ͋ΔɽContext͸൑ఆִؒ͝ͱʹࢦఆ͞Εͨ AdapterΛ࢖༻͢Δ͜ͱͰ஋Λऔಘ͠ɼ৚͕݅ࣜ੒ཱ͍ͯ͠ Δ͔൱͔ͷ൑ఆΛߦ͏ɽ৚݅ࣜ͸ʮvalue >= 20ʯͷΑ͏ͳൺ ֱԋࢉͰදݱ͞Εɼ“value”ͷ෦෼ʹAdapter͔Βऔಘͨ͠ ஋͕୅ೖ͞ΕΔɽ੒ཱ͍ͯ͠Ε͹ͦͷContext͕ਅ(true)Ͱ ͋Δͱ͠ɼ੒ཱ͍ͯ͠ͳ͚Ε͹ِ(false)Ͱ͋Δͱͯ͠ɼ࣍ճ ͷ൑ఆ·Ͱ͜ͷਅِ஋Λอ࣋͢ΔɽContextʹ͸Atomic(୯ Ұ)ͱCompound(ෳ߹)ͷೋछྨ͕ଘࡏ͢Δɽ্هͷྫ͸ AtomicContextͷ৚݅ࣜͰ͋ΓɼCompoundContextͷ৔߹ ͸ʮHot && HumidʯͷΑ͏ʹɼContextLayerʹଘࡏ͢Δෳ ਺ͷContextΛ࿦ཧԋࢉࢠ(!, &&,||)Ͱܨ͙͜ͱͰ৚݅ࣜΛ දݱ͢Δɽ 3. 2. 4 ActionLayer ίϯςΩετΞ΢ΣΞαʔϏεͷग़ྗͱͳΔWebαʔϏε Λ؅ཧ͢ΔϨΠϠͰ͋ΓɼWebαʔϏεͷΤϯυϙΠϯτ΍ϝ ιου໊ɼҾ਺Λ΋ͱʹActionΛొ࿥͢Δɽ 3. 2. 5 ECARuleLayer

ContextLayerͰొ࿥ͨ͠ContextͱɼActionLayerͰొ࿥ ͨ͠ActionΛ࢖༻͠ECAنଇΛఆٛ͢Δ͜ͱͰɼίϯςΩ ετΞ΢ΣΞαʔϏεΛ࡞੒͢ΔϨΠϠͰ͋Δɽ

Eventʹࢦఆ͞ΕͨContext͕ʮfalse͔Βtrueʯʹͳͬͨ ࡍʹɼConditionʹࢦఆ͞ΕͨContext͕ʮશͯtrueʯͰ͋Δ ৔߹ɼActionʹࢦఆ͞ΕͨWebαʔϏε͕࣮ߦ͞ΕΔɽ

3. 3 ίϯςΩετΞ΢ΣΞαʔϏε࡞੒ͷ֓ཁ

RuCASͰ͸ɼೖྗͱͳΔWebαʔϏεΛAdapterͱͯ͠ ొ࿥͠ɼొ࿥ͨ͠Adapter͔Βऔಘ͢Δ஋ʹର͢Δ৚݅ࣜͳͲ Λ΋ͱʹΛContextΛొ࿥͢Δɽ·ͨɼग़ྗͱͳΔWebαʔ ϏεΛActionͱͯ͠ొ࿥͢Δɽొ࿥ͨ͠ContextͱActionΛ

૊Έ߹ΘͤͯECAنଇΛఆٛ͢Δ͜ͱͰίϯςΩετΞ΢Σ

ΞαʔϏεΛ࡞੒͢Δɽ

4. RuCAS Platform

ຊઅͰ͸ɼRuCASͷ࣮ߦج൫Ͱ͋ΔRuCAS Platform

ʹ͓͚Δ֤Ϋϥεͷػೳʹ͍ͭͯࣔ͢ɽRuCAS͸ίϯςΩε

τΞ΢ΣΞαʔϏεͷମܥత؅ཧɼ࡞੒ࢧԉٴͼ࣮ߦΛߦ͏ج ൫Ͱ͋Δɽਤ3ʹRuCAS PlatformͷΫϥεਤΛࣔ͢ɽ

4. 1 Adapter

Adapter͸ɼRuCASʹ͓͚ΔAdapterLayerͷΫϥεͰ͋ Δɽendpoint, methodΛ΋ͱʹgetValue()ʹΑΓWebαʔ

Ϗε͔Β஋Λऔಘ͢ΔɽWebαʔϏεͷฦΓ஋͕ෳ਺͋Δ৔߹

͸propertyͰͦΕΒͷ໊শΛอ࣋͠ɼ͍ͣΕ͔ΛgetValue()

ͷҾ਺ʹ͢Δ͜ͱͰऔಘ͢Δ஋Λબ୒͢ΔɽAdapterͷ࣋ͭओ ཁͳଐੑͱϝιουΛҎԼʹࣔ͢ɽ

(4)

Ͳ ĂĚĂƉƚĞƌŵĂƉ͗,ĂƐŚDĂƉф^ƚƌŝŶŐ͕ĚĂƉƚĞƌх Ͳ ĐŽŶƚĞdžƚŵĂƉ͗,ĂƐŚDĂƉф^ƚƌŝŶŐ͕ŽŶƚĞdžƚх Ͳ ĂĐƚŝŽŶŵĂƉ͗,ĂƐŚDĂƉф^ƚƌŝŶŐ͕ĐƚŝŽŶх Ͳ ĞĐĂŵĂƉ͗,ĂƐŚDĂƉф^ƚƌŝŶŐ͕х

ZƵ^DĂŶĂŐĞƌ

нZƵ^DĂŶĂŐĞƌ;Ϳ нƐƚĂƌƚ;Ϳ нƐƚŽƉ;Ϳ нƌĞŐŝƐƚĞƌĚĂƉƚĞƌ;Ϳ нƌĞŐŝƐƚĞƌŽŶƚĞdžƚ;Ϳ нƌĞŐŝƐƚĞƌĐƚŝŽŶ;Ϳ нƌĞŐŝƐƚĞƌ;Ϳ нƵŶƌĞŐŝƐƚĞƌĚĂƉƚĞƌ;Ϳ нƵŶƌĞŐŝƐƚĞƌŽŶƚĞdžƚ;Ϳ нƵŶƌĞŐŝƐƚĞƌĐƚŝŽŶ;Ϳ нƵŶƌĞŐŝƐƚĞƌ;Ϳ нŐĞƚKŶĞĚĂƉƚĞƌ;Ϳ нŐĞƚKŶĞŽŶƚĞdžƚ;Ϳ нŐĞƚKŶĞĐƚŝŽŶ;Ϳ нŐĞƚKŶĞ;Ϳ нŐĞƚůůĚĂƉƚĞƌ;Ϳ нŐĞƚůůŽŶƚĞdžƚ;Ϳ нŐĞƚůůĐƚŝŽŶ;Ϳ нŐĞƚůů;Ϳ нĞĚŝƚĚĂƉƚĞƌ;Ϳ нĞĚŝƚŽŶƚĞdžƚ;Ϳ нĞĚŝƚĐƚŝŽŶ;Ϳ нĞĚŝƚ;Ϳ Ͳ ĐŽŶƚĞdžƚŝĚ͗^ƚƌŝŶŐ Ͳ ƚLJƉĞ͗^ƚƌŝŶŐ Ͳ ůĂďĞů͗^ƚƌŝŶŐ Ͳ ĚĞƐĐƌŝƉƚŝŽŶ͗^ƚƌŝŶŐ Ͳ ĞdžƉƌĞƐƐŝŽŶ͗^ƚƌŝŶŐ Ͳ ŝŶƚĞƌǀĂů͗ŝŶƚ Ͳ ĞĐĂĂƌƌĂLJ͗΀΁ Ͳ ƉƌĞƐĞŶƚ͗ůĞĂŶ

ŽŶƚĞdžƚ

нŽŶƚĞdžƚ;Ϳ нƌĞƐŽůǀĞ;Ϳ нĞǀĂů;Ϳ нƌƵŶ;Ϳ нƵƉĚĂƚĞ;Ϳ нĂĚĚ;Ϳ нĚĞůĞƚĞ;Ϳ нƚŝŵĞƌdĂƐŬ^ƚĂƌƚ;Ϳ нƚŝŵĞƌdĂƐŬ^ƚŽƉ;Ϳ Ͳ ĂĚĂƉƚĞƌ͗ĚĂƉƚĞƌ Ͳ ƉƌŽƉĞƌƚLJ͗^ƚƌŝŶŐ

ƚŽŵŝĐŽŶƚĞdžƚ

нƚŽŵŝĐŽŶƚĞdžƚ;Ϳ нƌĞƐŽůǀĞ;Ϳ нƵƉĚĂƚĞ;Ϳ ͲĐŚŝůĚƌĞŶ͗ŽŶƚĞdžƚ΀΁

ŽŵƉŽƵŶĚŽŶƚĞdžƚ

нŽŵƉŽƵŶĚŽŶƚĞdžƚ;Ϳ нƌĞƐŽůǀĞ;Ϳ нƵƉĚĂƚĞ;Ϳ Ͳ ĂĚĂƉƚĞƌŝĚ͗^ƚƌŝŶŐ Ͳ ĚĞƐĐƌŝƉƚŝŽŶ͗^ƚƌŝŶŐ Ͳ ƵŶŝƚ͗^ƚƌŝŶŐ Ͳ ĞŶĚƉŽŝŶƚ͗^ƚƌŝŶŐ Ͳ ŵĞƚŚŽĚ͗^ƚƌŝŶŐ Ͳ ƉƌŽƉĞƌƚLJ͗^ƚƌŝŶŐ΀΁

ĚĂƉƚĞƌ

нĚĂƉƚĞƌ;Ϳ нŐĞƚsĂůƵĞ;Ϳ нŐĞƚůůsĂůƵĞ;Ϳ нƌĞĂĚyŵů;Ϳ нƵƉĚĂƚĞ;Ϳ Ͳ ĂĐƚŝŽŶŝĚ͗^ƚƌŝŶŐ Ͳ Ƶƌů͗^ƚƌŝŶŐ Ͳ ĚĞƐĐƌŝƉƌŝŽŶ͗^ƚƌŝŶŐ

ĐƚŝŽŶ

нĐƚŝŽŶ;Ϳ нƵƉĚĂƚĞ;Ϳ нŝŶǀŽŬĞhƌů;Ϳ Ͳ ĞĐĂŝĚ͗^ƚƌŝŶŐ Ͳ ĞǀĞŶƚ͗ŽŶƚĞdžƚ Ͳ ĐŽŶĚŝƚŝŽŶ͗ŽŶƚĞdžƚ΀΁ Ͳ ĂĐƚŝŽŶ͗ĐƚŝŽŶ΀΁ Ͳ ĚĞƐĐƌŝƉƚŝŽŶ͗^ƚƌŝŶŐ Ͳ ƌĂŶĚŽŵǀĂůƵĞ͗ŝŶƚ



н;Ϳ нŶŽƚŝĨLJ;Ϳ нĂĚĚĐƚŝŽŶ;Ϳ нĚĞůĞƚĞĐƚŝŽŶ;Ϳ нƵƉĚĂƚĞ;Ϳ ϭ ϭ ϭ Ύ Ύ Ύ Ύ ZƵ^WůĂƚĨŽƌŵ Ύ ਤ 3 RuCAS Platform ͷΫϥεਤ endpoint: ࢖༻͢ΔWebαʔϏεͷΤϯυϙΠϯτ

method: ࢖༻͢ΔWebαʔϏεͷAPI

getValue(): WebαʔϏεΛ࣮ߦ͠ࢦఆͨ͠஋Λऔಘ͢Δ

4. 2 Context

Context͸ɼRuCAS͓͚ΔContextLayerͷΫϥεͰ͋Δɽ ·ͨɼContext͸ந৅ΫϥεͰ͋Γɼޙड़ͷAtomicContext

ͱCompoundContextʹΑΓܧঝ͞Ε͍ͯΔɽContextͰ͸ɼ

intervalͰઃఆ͞Εִͨؒ͝ͱʹrun()Λ࣮ߦ͢Δɽrun()಺ Ͱ͸ɼWebαʔϏε͔Βऔಘͨ͠஋Λ৚݅ࣜͰ͋Δexpression

ʹ୅ೖ͢Δresolve()ɼ୅ೖ͞Εͨ৚݅ࣜͷධՁΛߦ͏eval()͕ ॱʹ࣮ߦ͞Εɼ࣍ճͷrun()࣮ߦ·ͰධՁͷ݁ՌΛpresentʹ อ࣋͢Δɽ·ͨɼpresentͷ஋͕“false”͔Β“true”ʹͳͬͨ ৔߹͸ɼContext͕Eventʹࢦఆ͞Ε͍ͯΔECAͷΠϯελ ϯεͷnotifyECA()Λ࣮ߦ͢ΔɽContextͷ࣋ͭओཁͳଐੑ ͱϝιουΛҎԼʹࣔ͢ɽ contextid: ContextΛҰҙʹܾఆ͢ΔID type: ୯Ұ(A)·ͨ͸ෳ߹(C)͔ͷछྨ expression: Contextͷ৚݅ࣜ interval: Contextͷ੒ཱ൑ఆΛߦ͏ִؒ(ϛϦඵ) ecaarray: ࣗ৴͕Eventʹࢦఆ͞Ε͍ͯΔECAͷ഑ྻ

present: Contextͷݱࡏͷ੒ཱঢ়ଶ

eval(): ৚݅ࣜͷධՁΛߦ͏

run(): ൑ఆִؒ͝ͱʹ୅ೖɾධՁΛߦ͏

4. 2. 1 AtomicContext

AtomicContext͸ɼRuCASʹ͓͚ΔAtomicContextͷΫ

ϥεͰ͋ΓɼContextΛܧঝ͍ͯ͠Δɽ৚݅ࣜͷධՁʹ࢖༻

͢ΔAdapterΛ࣋ͪɼresolve()ʹ͓͍ͯͦͷAdapterͷ get-Value()Λݺͼग़͠ɼऔಘͨ͠஋Λ৚݅ࣜͷ“value”෦෼ʹ୅ೖ ͢ΔɽAtomicContextͷओཁͳଐੑͱϝιουΛҎԼʹࣔ͢ɽ

adapter: ஋Λऔಘ͢ΔAdapter

resolve(): ৚݅ࣜͷ“value”෦෼ʹऔಘͨ͠஋Λ୅ೖ͢Δ

4. 2. 2 CompoundContext

CompoundContext͸ɼRuCASʹ͓͚Δ CompoundCon-textͷΫϥεͰ͋ΓɼContextΛܧঝ͍ͯ͠Δɽ৚݅ࣜͰ͋ Δexpressionʹؚ·Ε͍ͯΔContextΛchildrenʹ࣋ͪɼ re-solve()ʹ͓͍ͯchildrenͷͦΕͧΕͷContextʹ͍ͭͯ re-solve()Λ࠶ؼతʹݺͼग़͠ɼ৚݅ࣜͷcontextid෦෼ʹ୅ೖ͢ ΔɽConmpundContextͷओཁͳଐੑͱϝιουΛҎԼʹࣔ͢ɽ

children: ৚݅ࣜʹؚ·Ε͍ͯΔContextͷ഑ྻ

resolve(): ৚݅ࣜͷcontextid෦෼ʹऔಘͨ͠஋Λ୅ೖ͢Δ

4. 3 Action

Action͸ɼRuCASʹ͓͚ΔActionLayerͷΫϥεͰ͋Δɽ

WebαʔϏεͷΤϯυϙΠϯτɼϝιουɼҾ਺Λ·ͱΊͯurl ͱͯ࣋ͭ͠ɽActionͷओཁͳଐੑͱϝιουΛҎԼʹࣔ͢ɽ actionid: ActionΛҰҙʹܾఆ͢ΔID url: ϝιουͱҾ਺ΛؚΉWebαʔϏεͷΞυϨε involeUrl(): WebαʔϏεΛ࣮ߦ͢Δ 4. 4 ECA

ECA͸ɼRuCASʹ͓͚ΔECAنଇʹΑΔίϯςΩετΞ ΢ΣΞαʔϏεͷΫϥεͰ͋Δɽeventʹࢦఆ͞Ε͍ͯΔ Con-text͕“false”͔Β“true”ʹͳͬͨࡍʹɼͦͷContext͔Β

(5)

ʹࢦఆ͞Ε͍ͯΔContextͷ੒ཱঢ়ଶΛ֬ೝ͠ɼશͯ“true”

ͳΒ͹ɼactionʹࢦఆ͞Ε͍ͯΔActionͷinvokeUrl()Λݺͼ ग़͠ɼWebαʔϏεΛ࣮ߦ͢Δɽ·ͨɼECAΫϥεͷΠϯελ ϯε͕࡞੒͞Εͨࡍɼeventʹࢦఆ͞ΕͨContextͷecaarray

ʹ࡞੒͞ΕͨECAΛ௥Ճ͢ΔɽECAͷओཁͳଐੑͱϝιου ΛҎԼʹࣔ͢ɽ

ecaid: ࡞੒ͨ͠αʔϏεΛҰҙʹܾఆ͢ΔID event: EventͱͳΔContext

condition: ConditionͱͳΔContextͷ഑ྻ

action: ECAنଇͷActionͱͳΔActionͷ഑ྻ

notifyECA(): ECAنଇʹ͋ͨΔϝιου

4. 5 RuCASManager

RuCASManager͸RuCAS Platformͷ֤ΦϒδΣΫτΛ ૢ࡞͢ΔΠϯλʔϑΣʔεΛఏڙ͢ΔΫϥεͰ͋Δɽ֤Ϋϥ εͷΠϯελϯεͷੜ੒ɼ࡟আɼऔಘɼฤूΛߦ͏ϝιου΍

Contextͷ੒ཱ൑ఆͷ։࢝ͱఀࢭɼͭ·ΓίϯςΩετΞ΢Σ ΞαʔϏεͷ࣮ߦͱఀࢭΛҰׅͯ͠ߦ͏ϝιουΛ࣋ͭɽ·ͨɼ

RuCASManagerͷϝιου͸RuCAS PlatformͷAPIͱ͠ ͯ֎෦ʹఏڙ͞ΕΔɽྫ͑͹ɼԹ౓ηϯααʔϏεΛ΋ͱʹ͠ ͨAdapterʮTempʯΛొ࿥͢ΔAPIΛ࣮ߦ͢Δ৔߹ɼҎԼͷ

Α͏ͳURLʹΞΫηε͢Ε͹Α͍ɽ

http://hns/RuCASPlatform/registerAdapter?adapterid= Temp&description=ࣨ಺Թ౓ͷऔಘ&unit=ˆ&endpoint=http ://hns/TemperatureSensorService&method=getValue&pro perty=return

ͳ͓ɼWebαʔϏεͱͯ͠࢖༻Մೳʹ͢ΔͨΊʹɼ RuCAS-ManagerͰContext΍ECAΛѻ͏ࡍʹ͸ଐੑͷม׵Λߦͬ ͍ͯΔɽ 4. 6 ࣮ ૷ RuCAS PlatformͰ͸֤Πϯελϯεͷ͍࣋ͬͯΔଐੑΛ BSONܗࣜʹม׵͠ɼMongoDBʹอଘ͍ͯ͠Δɽ·ͨɼ։ൃ ޻਺͸3ਓ݄ɼߦ਺͸3296ߦͰ͋ͬͨɽRuCAS Platformͷ ࣮૷ʹ࢖༻ٕͨ͠ज़ΛҎԼʹࣔ͢ɽ ։ൃݴޠ: Java 1.7.0 21 DB: MongoDB 2.4.3

Webαʔό: Apache Tomcat 7.0.39 WebαʔϏεΤϯδϯ: Apache Axis2 1.6.2

5.

έʔεελσΟ

ຊઅͰ͸ɼέʔεελσΟͱͯ͠CS27-HNSʹ͓͚ΔRuCAS PlatformΛར༻ͨ͠ίϯςΩετΞ΢ΣΞαʔϏεʮ CoolSer-viceʯͷ࡞੒ٴͼ࣮ߦΛߦ͏ɽʮCoolServiceʯ͸ɼʮৠ͠ॵ͘ͳͬ ͨࡍɼؔ੢ͷిྗ࢖༻ྔʹ༨༟͕͋Ε͹ɼྫྷ๪ΛONʹ͢Δʯ ͱ͍ͬͨαʔϏεͰ͋ΔɽαʔϏε࡞੒ʹ͸ɼҎԼͷطଘͷ WebαʔϏεΛ࢖༻͢Δɽ Թ౓ɾ࣪౓ηϯααʔϏε: APIΛ௨ͯ͡ɼԹ౓ɾ࣪౓ ηϯαͷ஋Λऔಘ͢ΔαʔϏεͰ͋Δɽ ిྗ࢖༻ঢ়گAPI [5]: ిྗձࣾͷిྗ࢖༻ঢ়گΛऔಘ ͢ΔAPIͰ͋Δɽ ՈిϦϞίϯαʔϏε: WebαʔϏεܦ༝ͰՈిΛૢ࡞ ͢ΔαʔϏεͰ͋Δɽ

RuCAS PlatformͷAPIͷ࣮ߦܥྻΛҎԼʹࣔ͢ɽ

/* Adapterొ࿥ */ registerAdapter("Temp", "ࣨ಺Թ౓ͷऔಘ", "ˆ"ɼ "http://.../TemperatureSensorService"ɼ "getValue", "return"); registerAdapter("Humidity", "ࣨ಺࣪౓ͷऔಘ", "%"ɼ "http://.../HumiditySensorService"ɼ "getValue", "return"); registerAdapter("PowerUsageOfKansai", "ؔ੢ͷిྗ࢖༻ ঢ়گ", "kW"ɼ"http://...Setsuden"ɼ"latestPowerUsage ?appid=...&area=kansai", {"Usage", "Capacity"}); /* Contextొ࿥ */

registerContxt("Hot", "A", "؀ڥ", "ࣨ಺Թ౓͕28ˆҎ ্", "value>=28", 5000, "Temp", "return");

registerContxt("Humid", "A", "؀ڥ", "ࣨ಺࣪౓͕75%

Ҏ্", "value>=75", 5000, "Humidity", "return"); registerContxt("Muggy", "C", "؀ڥ", "ৠ͠ॵ͍", "Hot&&Humid", 5000, "", ""); registerContxt("PowerStable", "A", "ిྗ", "ؔ੢ͷ ిྗ࢖༻ྔʹ༨༟͕͋Δ", "value<=18000000", 1800000, "PowerUsageOfKansai", "Usage"); /* Actionొ࿥ */ registerAction("CoolingOn", "http://.../IRemoconService/sendIRSignal?...", "ྫྷ๪ΛONʹ͢Δ"); /* ECAొ࿥ = ίϯςΩετΞ΢ΣΞαʔϏε࡞੒*/ registerECA("CoolService", "Muggy", "PowerStable", "CoolingOn", "ৠ͠ॵ͘ͳͬͨࡍʹిྗ࢖༻ྔʹ༨༟͕͋Ε ͹ྫྷ๪ΛONʹ͢Δ", 0); APIͷ࣮ߦʹΑΓɼࣨ಺ͷԹ౓͕28ˆҎ্͔ͭࣨ಺ͷ࣪౓ ͕75%Ҏ্ʹͳͬͨࡍɼؔ੢ͷిྗ࢖༻ྔ͕1800ສkWҎԼ ͳΒ͹ɼྫྷ๪ΛONʹ͢ΔίϯςΩετΞ΢ΣΞαʔϏεΛ RuCAS Platformͷ࢖༻ʹΑΓ࡞੒ͨ͠ɽͳ͓ɼ࡞੒ʹཁͨ͠ ࣌ؒ͸໿20෼Ͱ͋ͬͨɽ ࣍ʹɼίϯςΩετΞ΢ΣΞαʔϏεʮCoolServiceʯΛ࣮ߦ ͢Δɽ࣮ߦʹࡍ͠ɼContextͷ੒ཱΛ༰қʹ͢ΔͨΊɼ“Hot” ͷ৚݅Λʮ25ˆҎ্ʯɼ“Humid”ͷ৚݅Λʮ27%Ҏ্ʯʹม ߋͨ͠ɽਤ4ʹαʔϏεͷ࣮ߦΛߦͬͨ2013೥11݄2೔ͷ8 ͔࣌Β20࣌ͷݚڀࣨ಺ͷԹ౓ɾ࣪౓ɼؔ੢ͷిྗ࢖༻ঢ়گΛࣔ

͢ɽEventͰ͋Δ“Muggy”ͷ੒ཱ͸ɼ“Hot”ͱ“Humid”͕

྆ํ੒ཱ͢Δ͜ͱ͕ඞཁͰ͋Δɽ“Humid”ʹ͍ͭͯ͸ৗʹ੒

ཱ͓ͯ͠Γɼ“Hot”ʹ͍ͭͯ͸12࣌͝Ζʹࣨ಺Թ౓͕25ˆΛ ্ճΓɼEventͰ͋Δ“Muggy”͕੒ཱͨ͠ɽ͜ͷ࣌ɼ Condi-tionͰ͋Δ“PowerStable”͕੒ཱ͍ͯͨͨ͠ΊɼActionͰ͋ Δ“CoolingOn”͕࣮ߦ͞Εɼྫྷ๪͕ONʹͳͬͨɽ

Ҏ্ʹΑΓɼRuCAS PlatformͷAPIͷ࣮ߦʹΑΓίϯς ΩετΞ΢ΣΞαʔϏεͰ͋ΔʮCoolServiceʯ࡞੒ͨ͠ɽ· ͨɼαʔϏεΛ࣮ߦͨ͠ࡍɼ࣮ࡍʹఆٛͨ͠ίϯςΩετʹԠ ͯ͡ಈ࡞͕ߦΘΕΔ͜ͱΛ֬ೝͨ͠ɽ

(6)

22 22.5 23 23.5 24 24.5 25 25.5 26 8 9 10 11 12 13 14 15 16 17 18 19 20 (٦) (ৎ) Temperature in S101 on 2013-11-02 “Hot” value >= 25 26 27 28 29 30 31 32 33 34 35 8 9 10 11 12 13 14 15 16 17 18 19 20 (%) (ৎ) Humidity in S101 on 2013-11-02 “Humid” value >= 27 1200 1300 1400 1500 1600 1700 1800 1900 2000 8 9 10 11 12 13 14 15 16 17 18 19 20 (ਐkW) (ৎ)

Power Usage of Kansai on 2013-11-02

“PowerStable” value <= 18,000,000 ਤ 4 2013 ೥ 11 ݄ 2 ೔ͷݚڀࣨ಺ͷԹ౓ɾ࣪౓ɼؔ੢ͷిྗ࢖༻ঢ়گ

6.

ߟ

ҰൠʹɼؾԹͳͲͷ஋͸୯ௐʹ૿Ճɾݮগ͢ΔͷͰ͸ͳ͘ɼ૿ ݮΛ܁Γฦ͠ͳ͕Β૿Ճɾݮগ͍ͯ͘͠ɽͦͷͨΊਤ4ͷԹ౓ άϥϑʹ͓͚Δ16͔࣌Β19࣌ͷؒͷΑ͏ʹɼEventʹ͋ͨΔ Context͕੒ཱ͢Δ͖͍͠஋෇ۙʹ͓͍ͯ஋͕૿ݮ͢Δ৔߹ɼ

“true”ͱ“false”ؒͷঢ়ଶભҠΛ܁Γฦ͠ɼ݁Ռͱͯ͠Action

ΛԿ౓΋࣮ߦ͢Δɽ͜ͷ໰୊ʹର͠ɼContext͕“false”͔Β

“true”ʹͳͬͨࡍʹɼҰ࣌తʹ৚݅ࣜͷ͖͍͠஋Λ҆ఆิঈ ஋α͚ͩมԽͤ͞ɼ࠶ͼ“false”ʹͳͬͨࡍʹݩͷ஋ʹ໭͢ɼ ͱ͍࣮ͬͨ૷Λߦͬͨɽྫ͑͹ɼ“Hot”ͳΒ͹ɼ“false”͔Β

“true”ʹͳͬͨࡍʹɼ৚݅ࣜΛʮvalue>=25ʯ͔Βʮvalue>=25 +αʯʹҰ࣌తʹมߋ͢Δɽ ·ͨɼ࡞੒͞ΕͨίϯςΩετΞ΢ΣΞαʔϏεͷ਺͕૿Ճ ͢Δʹ͕ͨͬͯ͠ɼෳ਺ͷαʔϏε͕ޓ͍ʹׯবɾিಥΛى͜ ͢αʔϏεڝ߹͕ൃੜ͢Δɽྫ͑͹ɼʮ֎ग़͢Δࡍɼྫྷ๪ΛOFF ʹ͢Δʯͱ͍͏ίϯςΩετΞ΢ΣΞαʔϏεʮ͓Ͱ͔͚αʔ Ϗεʯͱ5.Ͱ࡞੒ͨ͠ʮCoolServiceʯ͕ଘࡏ͍ͯ͠Δͱ͢Δɽ ͜͜ͰɼʮCoolServiceʯʹΑΓྫྷ๪͕ONʹͳ͍ͬͯΔঢ়ଶͰ ୭͔͕֎ग़͢Δͱɼʮ͓Ͱ͔͚αʔϏεʯʹΑΓྫྷ๪͕OFFʹ ͳΔɼͱ͍͏ڝ߹͕ൃੜ͢ΔɽαʔϏεڝ߹໰୊ʹ͍ͭͯ͸ɼ ઌߦݚڀ[6]ʹ͓͍ͯݕग़ɾղফࡦ͕ߟҊ͞Ε͍ͯΔͨΊɼ͜ ΕΒΛϑϨʔϜϫʔΫͰར༻͢Δ͜ͱͰղܾͰ͖Δɽ ࠓޙͷ՝୊ͱͯ͠͸ɼRuCAS PlatformΛ࢖༻ͯ͠ίϯςΩ ετΞ΢ΣΞαʔϏεΛ࡞੒͢Δ৔߹ͱRuCAS PlatformΛ ࢖༻ͤͣίϯςΩετΞ΢ΣΞαʔϏεΛ࡞੒͢Δ৔߹ͷ޻਺ ͷൺֱ΍ɼίϯςΩετٴͼίϯςΩετΞ΢ΣΞαʔϏεͷ ਺͕૿Ճͨ͠ࡍͷಈ࡞ͷ҆ఆੑͳͲͱ͍ͬͨRuCAS Platform ͷධՁΛߦ͏͜ͱɽ·ͨɼRuCAS Platformͷ࢖༻Λࢧԉ͢Δ αʔϏεͷఏڙΛߦ͏͜ͱͰ͋Δɽ

7.

͓ Θ Γ ʹ

ຊߘͰ͸ɼҟछ෼ࢄWebαʔϏεΛ࢖༻ͨ͠ίϯςΩετ Ξ΢ΣΞαʔϏεͷ։ൃࢧԉͱମܥత؅ཧٴͼ࣮ߦΛߦ͏ج൫ Ͱ͋ΔRuCAS Platformͷ࣮૷Λߦ͍ɼRuCAS Platformͷ

APIΛ࢖༻ͯ͠ɼίϯςΩετΞ΢ΣΞαʔϏεͷ࡞੒ٴͼ࣮

ߦͷ֬ೝΛߦͬͨɽRuCAS PlatformʹΑΓίϯςΩετΞ ΢ΣΞαʔϏεͷମܥత؅ཧΛߦ͏͜ͱͰɼैདྷͷίϯςΩε τΞ΢ΣΞαʔϏεΑΓ΋ଟ͘ͷݱ࣮ੈքͷ৘ใʹج͍ͮͨɼ ΑΓߴ౓ͳίϯςΩετΞ΢ΣΞαʔϏεͷ࡞੒͕ՄೳͱͳΔɽ ·ͨɼέʔεελσΟΛ௨ͯ͠ɼRuCAS PlatformͷAPIΛ ࢖༻࣮ͯ͠ࡍʹಈ࡞͢ΔίϯςΩετΞ΢ΣΞαʔϏεΛ࡞੒ ͨ͠ɽ

ࠓޙͷ՝୊ͱͯ͠͸ɼRuCAS PlatformͷධՁٴͼɼRuCAS Platformͷ࢖༻Λࢧԉ͢ΔαʔϏεͷ࣮૷Λߦ͏͜ͱͰ͋Δɽ ँࣙ ͜ͷݚڀͷҰ෦͸ɼՊֶٕज़ݚڀඅʢج൫ݚڀC 24500079,ج൫ݚڀB 23300009ʣɼٴͼɼੵਫϋ΢εͷݚڀॿ ੒Λड͚ͯߦΘΕ͍ͯΔɽ จ ݙ [1] ௰ݡଠ࿠ɼ্Ԭӳ࢙ɼ“ηϯα৘ใʹج͍ͮͨϢʔβ΁ͷΞ ϥʔςΟϯάํࣜɼ”ిࢠ৘ใ௨৴ֶձٕज़ݚڀใࠂɼvol.108ɼ no.290ɼpp.15–20ɼNov. 2008ɽ [2] ࡔຊ׮޾ɼҪ֞ ޺ɼதଜڡलɼ“ίϯςΩετΞ΢ΣΞΞϓϦ έʔγϣϯͷ։ൃΛ༰қԽ͢ΔηϯααʔϏεج൫ɼ”ిࢠ৘ใ ௨৴ֶձٕज़ݚڀใࠂɼvol.108ɼno.458ɼpp.381–386ɼMarch 2009ɽ [3] ߴ௩޿وɼࠤഢ޾࿠ɼ·ͭຊਅ༎ɼதଜڡलɼ“ҟछ෼ࢄ web αʔϏεʹجͮ͘ίϯςΩετΞ΢ΣΞαʔϏεͷ؅ཧϑϨʔϜ ϫʔΫͷఏҊɼ”ిࢠ৘ใ௨৴ֶձٕज़ใࠂɼvol.113ɼno.245ɼ pp.1–6ɼOct. 2013ɽ

[4] M. Nakamura, A. Tanaka, H. Igaki, H. Tamada, and K. Matsumoto, “Constructing home network systems and in-tegrated services using legacy home appliances and web services,” International Journal of Web Services Research, vol.5, no.1, pp.82–98, Jan. 2008.

[5] “Yahoo JAPAN Web API ి ྗ ࢖ ༻ ঢ় گ API,” http:// developer.yahoo.co.jp/webapi/shinsaiɽ

[6] ஑্߂༞ɼ٢ଜ༔ฏɼҪ֞޺ɼதଜڡलɼ“αʔϏεظؒΛߟྀ ͨ͠ϗʔϜωοτϫʔΫαʔϏεڝ߹ݕग़ɾղফγεςϜͷ࣮ ૷ɼ”ిࢠ৘ใ௨৴ֶձɼvol.108ɼno.462ɼpp.007–012ɼMarch 2009ɽ

参照

関連したドキュメント

ユーザ情報を 入力してくだ さい。必要に 応じて複数(2 つ目)のメー ルアドレスが 登録できます。.

※ログイン後最初に表示 される申込メニュー画面 の「ユーザ情報変更」ボタ ンより事前にメールアド レスをご登録いただきま

Webカメラ とスピーカー 、若しくはイヤホン

When change occurs in the contact person name, address, telephone number and/or an e-mail address, which were registered when the Reporter ID was obtained, it is necessary to

ユーザ情報を 入力してくだ さい。必要に 応じて複数(2 つ目)のメー ルアドレスが 登録できます。.

[r]

教職員用 平均点 保護者用 平均点 生徒用 平均点.

[r]