目次
参照ブログ
The Easiest Way to Stream your iPhone’s Sensor Data to SAP Cloud Platform [Updated]
Special Thanks to Author Patrick Colucci !
Step1 Internet of Things Service Setup
SAP Cloud Platformのトライアル環境の利用開始
http://cloudplatform.sap.com/try.html を開きます

S-userでログオンします。
本記事ではSユーザーを利用していますが、個人でGmail等のアドレスを元にアカウントを登録することも可能です。この場合、Pユーザー(pから始まる)がアカウントとして設定されます。


現状のSAP CPの管理体系の最上位は、「Region」です。
Regionは、Neo又はCloud Foundryベースの違いで2種類の環境が存在し、前者はSAP社のデータセンターで稼働し、後者はAWSでは既にEUとUS EASTで本稼働、AzureではUS West(CA)でベータになっていることがわかります。
ちなみにNeoという名前は、SAP NetWeaver Cloud で使われていました。出たのが2012年ですからかれこれ5年経っていますので、時の経つのは早いです。
今回は無料のトライアル環境が存在するEurope(Rot) -Trialを選択します。

s***********trialという個人のお試しアカウントが登録されていることがわかります。画面の上部に水色でEurope(Rot) – Trialが選ばれていますね、この管理画面のことを、SAP Cloud Platform Cockpitと呼びますが、画面遷移が複雑なために迷子になります。この水色のエリアの表記エリアを見ることは多いので、覚えておきましょう。

SAP Cloud Platform Cockpit Europe(Rot) – Trial
s***********trialをクリックすると、下記の画面になり、ようやく内部のシステム情報を見ることが出来ます。ちなみに、画面上部に水色でs***********trialが表示されていますね。

Internet of Thingsの有効化
Servicesタブを選択します。

internet of Thingsを選択します。

Enableを選択します。

有効化された後、Go to Serviceを選択してInternet of Things サービスコックピットへ画面を遷移させます。

メッセージ管理サービスのデプロイ
Internet Thingsサービスコックピット MMSデプロイを選択します。

アカウント設定・ユーザ設定を入力してデプロイします。

デプロイ完了

ロール割当
SAP Cloud CockpitのApplicationタブ Java Applicationを選択した後に、
iotmmsを選択します。

iotmms – overview

Securityタブ ロールを選択します。

Assignを選択します。

対象となるSユーザを入力します。

登録完了

Step2 Adding your iOS Device in the Internet of Things Cockpit
Internet of Thingsサービスコックピットからメッセージタイプ登録
メッセージタイプを選択します。

+ボタンを選択しメッセージタイプを新規登録します。

項目に下記情報を入力して、作成を選択します。
- 名前:IOS Message Type
フィールド
| 名前 | タイプ |
|---|---|
| timestamp | date |
| device | string |
| gyroscopex | string |
| gyroscopey | string |
| gyroscopez | string |
| accelerometerx | string |
| accelerometery | string |
| accelerometerz | string |
| altitude | string |
| longitude | string |
| latitude | string |
| audio | string |

登録完了
もし入力を間違った場合は、いったん削除して、最初から入力し直して下さい。

Internet of Thingsサービスコックピットからデバイスタイプ登録
デバイスタイプを選択します。

+ボタンを選択して、デバイスタイプを新規登録します。

項目に下記情報を入力して作成を選択します。
情報
- 名前:IOS Device Type
メッセージタイプ
- メッセージタイプ:iOS Message Type
- 方向:元のデバイス

登録完了

Internet of Thingsサービスコックピットからデバイスの登録
デバイスを選択します。

+ボタンを選択して、デバイスを新規登録します。

項目に下記情報を入力して作成します。
情報
- 名前:iOS Device
- デバイスタイプ:IOS Device Type

アクセストークンが発行されるので控えておきます。

Step3 Setup your SensorPhone app to send sensor data to SAP Cloud Platform
sensorphoneアプリの設定
| 項目 | 設定値 |
|---|---|
| URL | https://<host>/com.sap.iotservices.mms/<version>/api/http/data/<device id> |
| Mode | sync |
| Message Type | メッセージタイプのID |
| Countent Type | application/JSON;charset=utf-8 |
| Authorization | bearer <<デバイス登録時に発行されたトークン>> |


※AuthorizationでBearer <<トークン>>のようにbearerとトークンの間にspaceが入っている必要があるので注意。
POSTでデータ送信
POSTに成功すると、下記のようなポップアップが表示され、メッセージがSAP CP側で受け取られたことを確認します。

データ確認
Internet of Things サービスコックピットのMMSコックピットを選択します。

メッセージ管理サービスコックピットの保存されたメッセージの表示を選択します。

T_IOT<<メッセージタイプID>>のテーブルを選択します。

sensorphoneから送信されたデータを確認します。

(参考)APIを利用してテーブルを参照する
Sユーザとパスワードで認証情報を作成。
認証情報とテーブル情報をAPIに渡すとxml形式で帰ってくる。
下記powershellからAPIを叩いたサンプル。
#トライアルで紐付けたSユーザとパスワード$user = "Sユーザ"$pass = "パスワード" #認証情報処理$pair = "${user}:${pass}"$bytes = [System.Text.Encoding]::ASCII.GetBytes($pair)$base64 = [System.Convert]::ToBase64String($bytes)$basicAuthValue = "Basic $base64"$headers = @{ Authorization = $basicAuthValue } #APIでテーブル取得$tableData = Invoke-RestMethod -uri "https://<<Host>>/com.sap.iotservices.mms/v1/api/http/app.svc/<<Table Name>>" -Headers $headers※<<Host>> : iotmms<UserID>trial.hanatrial.ondemand.com
※<<TableName>> : T_IOT_~~~
- カテゴリー