Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Page: 1
Empress M2M
レプリケーション
マニュアル
Version 1.00
株式会社 EMPRESS SOFTWARE JAPAN
Page: 2
内容 Empress M2Mレプリケーション 3
1.Empress M2Mレプリケーションの説明 3
2.Empress M2Mレプリケーションの機能 3
3.Empress M2Mレプリケーションの特長 4
4.Empress M2Mレプリケーションの構成図 5
4.Empress M2Mレプリケーションの導入 6
5.Empress M2Mレプリケーションの API 10
外部関数一覧 10
外部関数仕様 13
Page: 3
Empress M2M レプリケーション
1.Empress M2M レプリケーションの説明 Empressのレプリケーションは Empressのテーブル同士用のレプリケーションである「Empressレ
プリケーション」と Empressのテーブルと他社製のデータベースのテーブル用のレプリケーションで
ある「M2Mレプリケーション」と 2種類あります。Empressレプリケーションは Empress暗号化組
込みデータベースのエンジンにより実装されていますので詳細は Empress組込みデータベースのマニ
ュアルを参照してください。Empress M2M レプリケーションの実装は中機器のアーキテクチャー、連
携先のデータベースがオンプレミスかクラウドに設置されるのかなどにより実装方法は異なります。例
えば X86のアーキテクチャーでオンプレミスのデータベースにデータ連携される場合、中継器に連携す
るデータベース用の ODBCクライアントをインストールしデータ連携します。これに対して、X86の
アーキテクチャー以外やクラウドの場合などは REST APIを使用します。本書では主に REST APIを用
いた Empress M2M レプリケーションについて解説します。
2.Empress M2M レプリケーションの機能 中継器内の Empress暗号化組込みデータベースに収集されたデータをオンプレミスやクラウド上のデ
ータベースに人の手を介さずに M2M(Machine To Machine)でレプリケーションするソリューション
です。中継器内の Empress暗号化組込みデータベースとオンプレミスやクラウド上のデータベースの
データ連携はアトミック性を保ったままでトランザクション処理されますのでデータの重複、欠損はな
くデータの整合性を保証します。Empress M2M レプリケーションの動作は設定ファイルにより動作が
制御されます。
Page: 4
3.Empress M2M レプリケーションの特長 Empress M2M レプリケーションの特長は以下の通りです。
1.Empress M2M レプリケーションは高速です。
2.ANSI SQL92、ODBC、JDBCサポートします。
3.断電、断線に強いレプリケーション機能を提供します。
4.M:Nの(複数Master、複数 Slave)レプリケーションをサポートします。
5.サブセットレプリケーションをサポート(テーブル単位、Where文単位)
6.暗号化データベースと SSL通信により、すべてのデータと通信を暗号化することが可能です。
7.オンプレミス、クラウドの Oracle、Empress、SQL Server、MySQL、PostgreSQLなどのデータ
ベースに対応しています。
8.オンプレミス、クラウドの業務システム(ERP、CRM、SCMなど)に対応しています。
Page: 5
4.Empress M2M レプリケーションの構成図 センサのようにローリソースで Empress組込みデータベースを搭載できない機器は中継器内の Data
Collect APIを使用し、中継器の Empress暗号組込みデータベースにデータ登録後、M2Mレプリケー
ションで連携先のデータベースにレプリケーションします。FA機器のように Empress組込みデータベ
ースを搭載できる場合は、デバイスに保全されたデータを中継器まで Empressレプリケーションを用
いて Empress暗号組込みデータベースにデータ登録し、データ登録後、M2Mレプリケーションで連携
先のデータベースにレプリケーションします。
Page: 6
4.Empress M2M レプリケーションの導入 Linuxにインストールする手順は以下の通りです。
インストール sudo cp lib/*.so /usr/local/lib
sudo ldconfig
Makefile の編集 restrepl: REST_API.o
$(CC) -o bin/restrepl REST_API.o $(LIB_PATH) $(LIBS) $(M2MLIBS) $(EMPLIBS)
$(EMPODBCLIBS)
rm REST_API.o
clean:
rm -f *.o bin/restrepl
/ect/odbcinst.ini ファイルの修正
/ect/odbcinst.ini ファイルを下記のように修正します。
[Empress Driver 10.20 (UTF8)]
Driver=/home/atmark/Empress/v10.20/installation/shlib/libempodbcbcs.so
/delivery/m2m_app/run/env.shを catし Driverの名称が/ect/odbcinst.iniファイルの Driverと同
じ名称であることを確認してください。
Page: 7
odbcinst.iniファイルを編集後に env.shを実行します。
Parameter.txt ファイルの修正 インストールされたディレクトリ(例えばm2mrest_demo)内に Restrepl、Parameter.txt、
replication_sample.xml、CreateConfigDB.sh、configdbにデプロイされていることを確認したうえ
で下記のように Parameter.txtを編集してください。
設定項目 設定値
EMP_BIN_PATH $EMPRESSPATH
EMP_LICENSE_PATH $EMPRESSPATH”/config”
EMP_LICENSE_USR empcnsv ユーザ
EMP_LICENSE_PW Empcnsvパスワード
EMP_SERVER_URL REST Server URL rest server url
USER_NAME REST Server user account rest serverのログイン名
USER_PW REST Server user password rest serverのパスワード
SERVICE_TOKEN REST Server project token rest serverのプロジェクトのトークン名
WAIT_TIME rest push allの実行間隔の単位は秒です。
CreateConfigDB.sh の編集
パスを以下の通りに修正します。
<full_path>configdb 例: <full_path>/m2m_app/ configdb
<full_path> RepConfigDB.sql 例:<full_path>/m2m_app/sql
/RepConfigDB.sql
Page: 8
replication_sample.xml の編集
replication_sample.xmlは M2M Replication containerの RESTの操作のための設定ファイルです。
IDM2M_Server remote server
IDM2M_ServerUserName empress データベースのユーザ名
IDM2M_ServerUserPWD empress データベースのパスワード
IDM2M_ContainerName container 任意の Container名を設定出来ますが、
Container名は重複できません。
IDM2M_RemoteTableName/IDM2M_LocalTa
bleName
IDM2M_RepDirection 0(0 は pushを意味します)
src/REST_API.c の修正
パスを以下の通り修正します。
#include "include/idm2mlib.h"
#include "include/idm2m_restc.h"
#define PARAMETER "Parameter.txt" // "Parameter.txt" へのパスです。
プログラムの実行
以下の手順で Empress M2M レプリケーションを実行します。 . env.sh
/*env.shを実行します*/
./restrepl BUILD
/* restrepl をビルドし、CreateConfigDB.sh が実行され configDB が作成されます。configDB がすでに存在する場合は作り直されます。*/
./restrepl IMPT
/* replication_sample.xml 内に記載されている設定情報が configDB に登録されます。*/
./restrepl PUSH BIND
Page: 9
/*始めて実行する場合は./restrepl PUSH BIND を実行します。2回目以降は./restrepl PUSH を実行します。*/
Page: 10
5.Empress M2M レプリケーションの API
外部関数一覧
M2M REST Clientライブラリが提供する関数です。
param int IDM2M_RESTC_SUCCESS = 0
ユーザリクエストが成功、もしくは関数実行が成功場合のリターン値 int IDM2M_RESTC_FAIL = -1 ユーザリクエストが失敗、もしくは関数実行が失敗場合のリターン値 int IDM2M_RESTC_REQUEST_CHANGEPWD = 2 ユーザリクエストが成功、パスワード変更必要場合のリターン値 int IDM2M_RESTC_REQUEST_USER_LOCKED = -2 ユーザリクエストが成功、アカウントロックした場合のリターン値 int IDM2M_RESTC_REQUEST_TIMEOUT = -10 ユーザリクエストがタイムアウト場合のリターン値 int IDM2M_RESTC_PUSH_REQUESTSIZE_OVERFLOW = -20 ユーザリクエストが設定値を越えた場合のリターン値 int IDM2M_RESTC_CLEAN_NO = 0 ローカルデータをクリーンしない場合のリターン値 int IDM2M_RESTC_CLEAN_YES = 1 ローカルデータをクリーンする場合のリターン値 int IDM2M_RESTC_OPERATION_SUCCESS = 0; ユーザ操作が成功場合リターン値 int IDM2M_RESTC_OPERATION_FAIL = -1; ユーザ操作が失敗場合リターン値 int IDM2M_RESTC_OPERATION_EXECUTING = 1; ユーザ操作が実行中場合リターン値、少々待ってもう一度確認してください。 int IDM2M_RESTC_OPERATION_UNKNOWN = -2; ユーザ操作が存在していない場合リターン値 int IDM2M_RESTC_OPERATION_UNRECOGNIZED = -9 ユーザ操作が不明場合リターン値 char* IDM2M_RESTC_SERVERURL RESTAPI のサーバアドレスです、内部用引数です、ユーザが自由な設定できないに実装します。 char* IDM2M_RESTC_JSESSIONID サーバでログイン状態を維持するため、使用の SessionID です、内部用引数です、ユーザが触れないに実装します。
M2M RESTC 共有 API
IDM2M_RESTC_init M2M RESTC 初期化
Page: 11
IDM2M_RESTC_end M2M RESTC 終了 IDM2M_RESTC_skip_verfiypeer https 接続用、接続側で証明書検証をしない IDM2M_RESTC_init_maxJsonLength M2M RESTC 初期化、最大 JSON 長を設定
エラー関連関数 IDM2M_RESTC_getError エラーメッセージを取得します
M2M RESTC 認証用 API
IDM2M_RESTC_setUserInformation ユーザ情報を設定します IDM2M_RESTC_setToken プロジェクトトークンを設定します IDM2M_RESTC_bindDevice デバイスを登録します IDM2M_RESTC_login ユーザログイン IDM2M_RESTC_logout ユーザログアウト
IDM2M_RESTC_getEmpLicenseKey ログイン成功したら、Empress のライセンスキーを取得します。 IDM2M_RESTC_getEncryptionKey ログイン成功したら、サーバ側で発行の EmpressDB 暗号化キーを取得します。 IDM2M_RESTC_getCleanupStatus ローカルすべてデータをクリーンするの状態を確認します。 IDM2M_RESTC_updatePassword ユーザパスワードを更新します。 IDM2M_RESTC_getOperatingID ログイン成功したら、サーバ側で発行の操作 ID(唯一 ID です)を取得します。毎回実行されば、新しい操作 ID を発行します。 IDM2M_RESTC_validateOperatingID ログイン成功したら、操作結果を確認します。 optoken を使用しての関数を使用する場合のみ有効です。
M2M RESTC レプリケーション用 API
IDM2M_RESTC_REPL_getServerTimestamp サーバの現在 GMT 時間を取得します。 IDM2M_RESTC_REPL_pullUpdatedData サーバから差分データを取得します。 IDM2M_RESTC_REPL_pushUpdatedData ローカルの差分データをサーバに送りて同期 IDM2M_RESTC_REPL_getContainerInfo サーバから Container 情報を取得します。(まだ実装していません)
Page: 12
IDM2M_RESTC_REPL_uploadConfigToServer サーバにレプリケーション情報を一括登録します。(まだ実装していません) IDM2M_RESTC_REPL_cleanConfigFromServer サーバのレプリケーション情報を全部クリーンします。(まだ実装していません)
M2M RESTC RDBC 用 API
IDM2M_RESTC_RDBC_execQuery サーバの DB でクエリーを実行します。 IDM2M_RESTC_RDBC_batchUpload サーバの DB で SQL バッチを実行します。
ファームウェア用API
IDM2M_RESTC_getFirmwareVersion サーバからファームウェアのバージョン番号を取得します。(まだ実装していません) IDM2M_RESTC_downloadFirmware サーバからファームウェアをダウンロードします。(まだ実装していません)
ファイル管理用API
IDM2M_RESTC_FILE_getFolderInfo サーバからフォルダツリーを取得します IDM2M_RESTC_FILE_createFolder サーバからフォルダを作成します IDM2M_RESTC_FILE_deleteFolder サーバからフォルダを削除します IDM2M_RESTC_FILE_upload サーバからファイルをアップロードします IDM2M_RESTC_FILE_download サーバからファイルをダウンロードします IDM2M_RESTC_FILE_deleteFile サーバからファイルを削除します IDM2M_RESTC_FILE_getFileLines サーバからファイルの行データを取得します
IoTHub クライアント用 API
IDM2M_RESTC_IoTHub_getConnectionInfo IoTHub に関する接続情報を取得する IDM2M_RESTC_IoTHub_registerDevice IoTHub に関するデバイス情報を登録します IDM2M_RESTC_IoTHub_editDeviceIp IoTHub に関するデバイス IP を修正する IDM2M_RESTC_IoTHub_getDeviceInfo IoTHub に関するデバイス情報を取得する
デバイス死活監視用 API
IDM2M_RESTC_devmonitor_updateStatus デバイスの状態を更新する IDM2M_RESTC_devmonitor_getInstruction サーバから指示を確認する IDM2M_RESTC_devmonitor_getCheckInterval デバイスの監視時間間隔を取得する
Page: 13
ファームウェア更新用 API
IDM2M_RESTC_firmware_getList ファームウェア一覧を取得 IDM2M_RESTC_firmware_getLastVersion 指定ファームウェアの最新のバージョン情報を取得 IDM2M_RESTC_firmware_getFmwFiles 指定ファームウェアのファイル情報を取得 IDM2M_RESTC_firmware_downloadFileByName ファームウェアの指定ファイル(by name)をダウンロード IDM2M_RESTC_firmware_downloadFileByFileId ファームウェアの指定ファイル(by file if)をダウンロード IDM2M_RESTC_firmware_downloadFileByUniqueId ファームウェアの指定ファイル(by unique id)をダウンロード IDM2M_RESTC_firmware_downloadFileCheck_md5 ダウンロードしたファイルのMD5ハッシュ値チェック IDM2M_RESTC_firmware_sendDownloadResult ファームウェアファイルのダウンロード結果をサーバに報告
外部関数仕様
M2M RESTC 共有関数
HIDM2M_RESTC IDM2M_RESTC_init (
char* serverUrl,
int requestTimeout)
機 能 M2M RESTC初期化します
引 数 serverUrl:サーバのアドレス
requestTimeout:タイムアウト時間(単位:秒)
戻 り 値 M2M RESTCハンドル
異常の場合には、NULL
異 常
備 考
注意事項
関連関数
int IDM2M_RESTC_end(HIDM2M_RESTC hIDM2M_RESTC) 機 能 M2M RESTC 終了します
Page: 14
引 数 hIDM2M_RESTC:M2M RESTC ハンドル 戻 り 値 IDM2M_RESTC_SUCCESS: 成功
IDM2M_RESTC_FAIL: 失敗 異 常 備 考 M2M RESTC ハンドルが解放されます 注意事項 関連関数
HIDM2M_RESTC IDM2M_RESTC_skip_verfiypeer(HIDM2M_RESTC hIDM2M_RESTC) 機 能 https 接続用、接続側で証明書検証をしない 引 数 hIDM2M_RESTC:M2M RESTC ハンドル 戻 り 値 M2M RESTC ハンドル 異 常 備 考 注意事項 関連関数
HIDM2M_RESTC IDM2M_RESTC_init_maxJsonLength (
char* serverUrl,
unsigned int maxJsonLength,
int requestTimeout)
機 能 M2M RESTC初期化、最大 JSON長を設定。
引 数 serverUrl:サーバーのアドレス
maxJsonLength:最大 JSON長
requestTimeout:タイムアウト時間(単位:秒)
戻 り 値 M2M RESTCハンドル
異常の場合には、NULL
異 常
備 考
注意事項
関連関数
Page: 15
M2M RESTC エラー関数
const char* IDM2M_RESTC_getError(HIDM2M_RESTC hIDM2M_RESTC)
機 能 エラーメッセージを取得します
引 数 hIDM2M_RESTC:M2M RESTCハンドル
戻 り 値 エラーメッセージ
異 常
備 考 エラーなしの場合は、Nullを戻ります。
注意事項 1.すべて関数実行失敗されば、この関数をコールして、エラーメッセージを取得でき
ます
2.この関数は最後実行した関数のエラーメッセージしか返しません
3.関数成功されば、エラーメッセージは NULLです
関連関数
M2M RESTC 認証関数
int IDM2M_RESTC_setUserInformation (HIDM2M_RESTC hIDM2M_RESTC,
char* userName,
char* userPassword)
機 能 ユーザ情報を設定します。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
userName:ログイン用ユーザ名
userPassword:ログイン用ユーザパスワード
戻 り 値 IDM2M_RESTC_SUCCESS: 成功
IDM2M_RESTC_FAIL: 失敗
異 常
備 考
注意事項 二回目実行が発生されば、IDM2M_RESTC_JSESSIONIDをクリーンします
関連関数 IDM2M_RESTC_Login
int IDM2M_RESTC_setToken (HIDM2M_RESTC hIDM2M_RESTC,
char* token)
機 能 プロジェクトトークンを設定します。
Page: 16
引 数 hIDM2M_RESTC:M2M RESTCハンドル
token:プロジェクトトークン
戻 り 値 IDM2M_RESTC_SUCCESS: 成功
IDM2M_RESTC_FAIL: 失敗
異 常
備 考
注意事項
関連関数 IDM2M_RESTC_Login
int IDM2M_RESTC_setProductID (HIDM2M_RESTC hIDM2M_RESTC,
char* productID)
機 能 プロダクト IDを設定します。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
productID:プロダクト ID
戻 り 値 IDM2M_RESTC_SUCCESS: 成功
IDM2M_RESTC_FAIL: 失敗
異 常
備 考 プロダクト IDは数字、英字で組み合わせた 12バイトの文字列。例:
ABC001abc999
注意事項 プロダクト IDの長さが 12でない場合は、>12:前頭の 12文字を使用、<12:後
に「0」で補足
関連関数 IDM2M_RESTC_Login、IDM2M_RESTC_bindDevice
int IDM2M_RESTC_bindDevice (HIDM2M_RESTC hIDM2M_RESTC)
機 能 デバイスを登録します。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
戻 り 値 IDM2M_RESTC_SUCCESS: 成功
IDM2M_RESTC_FAIL: 失敗
IDM2M_RESTC_REQUEST_TIMEOUT:タイムアウト
異 常
備 考
注意事項
関連関数
Page: 17
int IDM2M_RESTC_login (HIDM2M_RESTC hIDM2M_RESTC) 機 能 ユーザログイン。 引 数 hIDM2M_RESTC:M2M RESTC ハンドル 戻 り 値 IDM2M_RESTC_SUCCESS: 成功
IDM2M_RESTC_FAIL: 失敗 IDM2M_RESTC_REQUEST_USER_LOCKED: Locked IDM2M_RESTC_REQUEST_TIMEOUT:タイムアウト
異 常 備 考 [IPAddress]/device/auth/login を参照します
ログイン成功されば、ハンドル中のユーザ名とユーザパスワードを”**********”に書き込みします。 注意事項 Locked が発生されば、IDM2M_RESTC_JSESSIONID をクリーンします 関連関数 IDM2M_RESTC_setUserInformation
IDM2M_RESTC_logout
int IDM2M_RESTC_updatePassword (HIDM2M_RESTC hIDM2M_RESTC,
char* oldPassword,
char* newPassword)
機 能 ユーザパスワードを更新。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
戻 り 値 IDM2M_RESTC_SUCCESS: 成功
IDM2M_RESTC_FAIL: 失敗
IDM2M_RESTC_REQUEST_USER_LOCKED : Locked
IDM2M_RESTC_REQUEST_TIMEOUT:タイムアウト
異 常
備 考 [IPAddress]/device/auth/upd_pwdを参照します
注意事項
関連関数 IDM2M_RESTC_login
int IDM2M_RESTC_logout (HIDM2M_RESTC hIDM2M_RESTC)
機 能 ユーザログアウト, IDM2M_RESTC_JSESSIONIDをクリーンします
引 数 hIDM2M_RESTC:M2M RESTCハンドル
戻 り 値 IDM2M_RESTC_SUCCESS: 成功
IDM2M_RESTC_FAIL: 失敗
IDM2M_RESTC_REQUEST_TIMEOUT:タイムアウト
Page: 18
異 常
備 考 [IPAddress]/device/auth/logoutを参照します
注意事項
関連関数 IDM2M_RESTC_login
char* IDM2M_RESTC_getEmpLicenseKey (HIDM2M_RESTC hIDM2M_RESTC)
機 能 ログイン成功したら、ライセンスキーを取得します。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
戻 り 値 Empressのライセンスキー
異 常 未ログイン
備 考 [IPAddress]/device/auth/loginを参照します
注意事項 ログイン時に、ハンドルに登録して、ログイン後にハンドルから参照します。
関連関数 IDM2M_RESTC_login
char* IDM2M_RESTC_getEncryptionKey (HIDM2M_RESTC hIDM2M_RESTC)
機 能 ログイン成功したら、サーバ側で発行の EmpressDB暗号化キーを取得します。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
戻 り 値 暗号化キー
異 常 未ログイン
備 考 [IPAddress]/device/auth/loginを参照します
注意事項 ログイン時に、ハンドルに登録して、ログイン後にハンドルから参照します。
関連関数 IDM2M_RESTC_login
int IDM2M_RESTC_getCleanupStatus (HIDM2M_RESTC hIDM2M_RESTC)
機 能 ローカルすべてデータをクリーンするの状態を確認します。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
戻 り 値 IDM2M_RESTC_CLEAN_NO: No clean
IDM2M_RESTC_CLEAN_YES: clean local data
IDM2M_RESTC_FAIL:失敗
IDM2M_RESTC_REQUEST_TIMEOUT:タイムアウト
Page: 19
異 常 タイムアウト
未ログイン
アカウントロック
備 考 [IPAddress]/device/auth/cleanup_statusを参照します
注意事項
関連関数 IDM2M_RESTC_Login
char* IDM2M_RESTC_getOperatingID (HIDM2M_RESTC hIDM2M_RESTC)
機 能 ログイン成功したら、サーバ側で発行の操作 ID(唯一 IDです)を取得します。毎
回実行されば、新しい操作 IDを発行します。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
戻 り 値 操作 ID
異 常 タイムアウト
未ログイン
アカウントロック
備 考 [IPAddress]/device/auth/op_tokenを参照します
注意事項
関連関数 IDM2M_RESTC_login
int IDM2M_RESTC_validateOperatingID (
HIDM2M_RESTC hIDM2M_RESTC,
char* operatingID)
機 能 ログイン成功したら、操作結果を確認します。
optokenを使用しての関数を使用する場合のみ有効です。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
operatingID:操作 ID
戻 り 値 IDM2M_RESTC_OPERATION_SUCCESS :成功
IDM2M_RESTC_OPERATION_EXECUTING :実行中
IDM2M_RESTC_OPERATION_FAIL:失敗
IDM2M_RESTC_OPERATION_UNKNOWN:操作 ID存在しない
IDM2M_RESTC_OPERATION_UNRECOGNIZED:不明の原因失敗しました。
IDM2M_RESTC_REQUEST_TIMEOUT:タイムアウト
Page: 20
異 常
備 考 [IPAddress]/device/auth/op_retを参照します
注意事項
関連関数 IDM2M_RESTC_login
M2M RESTC レプリケーション用 API
char* IDM2M_RESTC_REPL_getServerTimestamp (
HIDM2M_RESTC hIDM2M_RESTC,
char* operatingID)
機 能 サーバの現在 GMT時間を取得します。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
戻 り 値 サーバの現在時間
異 常 失敗
タイムアウト
備 考 [IPAddress]/device/replication/db/current_timestampを参照します
注意事項
関連関数 IDM2M_RESTC_login
IDM2M_RESTC_getOperatingID
char* IDM2M_RESTC_REPL_pullUpdatedData (
HIDM2M_RESTC hIDM2M_RESTC,
char* operatingID,
char* containerInfo,
char* localCurrentTimestamp,
int maxRecord)
機 能 サーバから差分データを取得します。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
operatingID:操作 ID
containerInfo:container情報、複数可能
Page: 21
例:{container:[{"container_name":"ci1","db_id":"serverdb1",
"server_table_name":"tab1",
"server_field_timestamp":"EMPRESS_TIMESTAMP",
"server_field_del":"EMPRESS_LOGIC_DELETED",
"server_field_ownerlabel":"EMPRESS_OWNER_LABEL",
"local_db_id":"localdb1",
"local_table_name":"tab1",
"rep_last_time":"20150215120628123456",
"rep_direction":0,"subset":"groupid>10"},{次の container情報},...]}
localCurrentTimestamp:ローカルの GMTタイムスタンプです、DBで
gmt_now()実行して取得します
maxRecord:取得するレコード概数です。
戻 り 値 サーバの差分データ,json文字列
異 常 失敗
タイムアウト
備 考 [IPAddress]/device/replication/diffdataを参照します
注意事項
関連関数 IDM2M_RESTC_login
IDM2M_RESTC_getOperatingID
int IDM2M_RESTC_REPL_pushUpdatedData(
HIDM2M_RESTC hIDM2M_RESTC,
char* operatingID,
char* containerInfo,
char* diffdata)
機 能 ローカルの差分データをサーバに送りて同期します。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
operatingID:操作 ID
containerInfo:container情報
例:{"container_name":"ex","localDBPath":"","localDBEncryptKey":"",
"localDBCipher":"","localDBBrand":1,"localTableName":"test",
"remoteDBPath":"/opt/testdb","remoteDBEncryptKey":"",
"remoteDBCipher":"","remoteDBBrand":1,"remoteTableName":"test",
Page: 22
"remoteFieldTimestamp":"EMPRESS_TIMESTAMP","remoteFieldDel":"EMPRES
S_LOGIC_DELETED","LastRepTime":"20170101010101000000000",
"repDirection":1,"subset":""}
diffdata:ローカルの差分データ,json文字列
戻 り 値 IDM2M_RESTC_SUCCESS:成功
IDM2M_RESTC_FAIL:失敗
異 常 タイムアウト
備 考 [IPAddress]/device/replication/syncを参照します
注意事項
関連関数 IDM2M_RESTC_login
IDM2M_RESTC_getOperatingID
M2M RESTC RDBC 用 API
char* IDM2M_RESTC_RDBC_execQuery (
HIDM2M_RESTC hIDM2M_RESTC,
char* operatingID,
char* querySQL)
機 能 サーバの DBでクエリーを実行します。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
operatingID:操作 ID。
querySQL:クエリーSQL、ex:{"sql":["select * from tab1","select * from
tab2",…]}。
戻 り 値 クエリーの実行結果
attrs:列名
rows:対応するデータ
ex
"attrs": [{"id":”int”},{"data1":”char”}, {"data2":”text”},…],
"rows" :[ {1,"xxx","xbox"},{2,”yyy”,”ps4”},…],
異 常 成功
失敗
Page: 23
タイムアウト
備 考 [IPAddress]/device/db/sql/queryを参照します
注意事項
関連関数 IDM2M_RESTC_Login
int IDM2M_RESTC_RDBC_batchUpload(
HIDM2M_RESTC hIDM2M_RESTC,
char* operatingID,
char* batch,
int transactionFlag,
int continueFlag)
機 能 サーバの DBにレコードを更新します。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
operatingID:操作 ID。
tableName:テーブル名前。
batch:サーバに送るバッチ文字列、JSON。
ex: batch:[{"op":"insert",
"table_name":"t1",
"data":{"attrs": [***,...],
"rows" :[{1,....},
{2,....}]}},
{"op":"delete",
"table_name":"t2",
"query":"id=2",
"data":null},
{"op":"update",
"table_name":"t2",
"query":"id=2",
"data":{"attrs": [***,...],
"rows" :[{1,....},
{2,....}]}}
],
Page: 24
transactionFlag:トランザクション起動フラグ,1は起動します、0は起動しませ
ん。
continueFlag:トランザクション起動していない時に、エラー発生されば、続けて
実行フラグ、1は続けます、0は続けません
戻 り 値 IDM2M_RESTC_SUCCESS:成功
IDM2M_RESTC_FAIL:失敗
異 常
備 考 [IPAddress]/device/db/batchを参照します
注意事項
関連関数 IDM2M_RESTC_login
M2M RESTC ファイル管理用 API
char* IDM2M_RESTC_FILE_getFolderInfo (
HIDM2M_RESTC hIDM2M_RESTC,
char* operatingID,
char* folderPath) 機 能 サーバからフォルダツリーを取得します。 引 数 hIDM2M_RESTC:M2M RESTC ハンドル
operatingID:操作 ID。 folderPath:フォルダの URI
戻 り 値 フォルダ以下のファイルやフォルダ情報のツリー形式,json 文字列 異 常 失敗
タイムアウト 備 考 [IPAddress]/device/filectl/dir/info を参照します 注意事項 関連関数 IDM2M_RESTC_getOperatingID
int IDM2M_RESTC_FILE_createFolder (
HIDM2M_RESTC hIDM2M_RESTC,
char* operatingID,
Page: 25
char* folderPath,
char* folderName) 機 能 サーバからフォルダを作成します。 引 数 hIDM2M_RESTC:M2M RESTC ハンドル
operatingID:操作 ID。 folderPath:フォルダの URI folderName:作成するフォルダの名前
戻 り 値 IDM2M_RESTC_SUCCESS: 成功 IDM2M_RESTC_FAIL: 失敗
異 常 備 考 [IPAddress]/device/filectl/dir/create を参照します 注意事項 関連関数 IDM2M_RESTC_getOperatingID
int IDM2M_RESTC_FILE_deleteFolder (
HIDM2M_RESTC hIDM2M_RESTC,
char* operatingID,
char* folderPath) 機 能 サーバからフォルダを削除します。 引 数 hIDM2M_RESTC:M2M RESTC ハンドル
operatingID:操作 ID。 folderPath:フォルダの URI
戻 り 値 IDM2M_RESTC_SUCCESS: 成功 IDM2M_RESTC_FAIL: 失敗
異 常 備 考 [IPAddress]/device/filectl/dir/delete を参照します 注意事項 関連関数 IDM2M_RESTC_getOperatingID
int IDM2M_RESTC_FILE_upload (
HIDM2M_RESTC hIDM2M_RESTC,
char* operatingID,
char* filePath,
Page: 26
char* serverFileName,
char* serverFolderPath) 機 能 サーバからファイルをアップロードします。 引 数 hIDM2M_RESTC:M2M RESTC ハンドル
operatingID:操作 ID。 filePath:ローカルのファイルパス serverFileName:ファイルの名前 serverFolderPath:フォルダの URI
戻 り 値 IDM2M_RESTC_SUCCESS: 成功 IDM2M_RESTC_FAIL: 失敗
異 常 備 考 [IPAddress]/device/filectl/file/upload を参照します 注意事項 関連関数 IDM2M_RESTC_getOperatingID
int IDM2M_RESTC_FILE_download (
HIDM2M_RESTC hIDM2M_RESTC,
char* operatingID,
char* downloadPath,
char* serverFileName,
char* serverFolderPath) 機 能 サーバからファイルをダウンロードします。 引 数 hIDM2M_RESTC:M2M RESTC ハンドル
operatingID:操作 ID。 downloadPath:ダウンロードしたファイルのパス serverFileName:ファイルの名前 serverFolderPath:フォルダの URI
戻 り 値 IDM2M_RESTC_SUCCESS: 成功 IDM2M_RESTC_FAIL: 失敗
異 常 備 考 [IPAddress]/device/filectl/file/download を参照します 注意事項 関連関数 IDM2M_RESTC_getOperatingID
Page: 27
int IDM2M_RESTC_FILE_deleteFile (
HIDM2M_RESTC hIDM2M_RESTC,
char* operatingID,
char* filePath) 機 能 サーバからファイルを削除します。 引 数 hIDM2M_RESTC:M2M RESTC ハンドル
operatingID:操作 ID。 filePath:ファイルの URI
戻 り 値 IDM2M_RESTC_SUCCESS: 成功 IDM2M_RESTC_FAIL: 失敗
異 常 備 考 [IPAddress]/device/filectl/file/delete を参照します 注意事項 関連関数 IDM2M_RESTC_getOperatingID
char* IDM2M_RESTC_FILE_getFileLines (
HIDM2M_RESTC hIDM2M_RESTC,
char* operatingID,
char* filePath,
char* lineSeparator,
int startPos,
int lineCount) 機 能 サーバからファイルの行データを取得します。 引 数 hIDM2M_RESTC:M2M RESTC ハンドル
operatingID:操作 ID。 filePath:ファイルの URI lineSeparator:行のセパレータ startPos:行の開始位置 lineCount:取得する行数
戻 り 値 ファイルデータの行情報,json 文字列 異 常 失敗
タイムアウト 備 考 [IPAddress]/device/filectl/file/lines を参照します 注意事項
Page: 28
関連関数 IDM2M_RESTC_getOperatingID
M2M RESTC IoTHub クライアント用 API
char **IDM2M_RESTC_IoTHub_getConnectionInfo(
HIDM2M_RESTC hIDM2M_RESTC,
char* IoTHubName) 機 能 IoTHub に関する接続情報を取得する。 引 数 hIDM2M_RESTC:M2M RESTC ハンドル
IoTHubName:IoTHub 名。 戻 り 値 六つの要素を持つ配列
‘status’ 、’pk’、’sk’ 、’ device_id’、’connection’、’hostname’ 異 常 失敗
タイムアウト 備 考 [IPAddress]/device/iothub/conninfo を参照します 注意事項 関連関数
int IDM2M_RESTC_IoTHub_registerDevice(
HIDM2M_RESTC hIDM2M_RESTC,
char* authToken,
char* deviceId,
char* deviceIp) 機 能 IoTHub に関するデバイス情報を登録します。 引 数 hIDM2M_RESTC:M2M RESTC ハンドル
authToken:認証トークン。 deviceId:デバイス ID deviceIp:デバイス IP
戻 り 値 IDM2M_RESTC_SUCCESS: 成功 IDM2M_RESTC_FAIL: 失敗 IDM2M_RESTC_REQUEST_TIMEOUT:タイムアウト
異 常
Page: 29
備 考 [IPAddress]/device/iothub/device/register を参照します 注意事項 関連関数
int IDM2M_RESTC_IoTHub_editDeviceIp(
HIDM2M_RESTC hIDM2M_RESTC,
char* authToken,
char* deviceId,
char* newDeviceIp) 機 能 IoTHub に関するデバイス IP を修正する。 引 数 hIDM2M_RESTC:M2M RESTC ハンドル
authToken:認証トークン。 deviceId:デバイス ID newDeviceIp:新しいデバイス IP
戻 り 値 IDM2M_RESTC_SUCCESS: 成功 IDM2M_RESTC_FAIL: 失敗 IDM2M_RESTC_REQUEST_TIMEOUT:タイムアウト
異 常 備 考 [IPAddress]/device/iothub/ip/edit を参照します 注意事項 関連関数
char **IDM2M_RESTC_IoTHub_getDeviceInfo(
HIDM2M_RESTC hIDM2M_RESTC,
char* authToken,
char* deviceId,
char* deviceIp) 機 能 IoTHub に関するデバイス情報を取得する。 引 数 hIDM2M_RESTC:M2M RESTC ハンドル
authToken:認証トークン。 deviceId:デバイス ID deviceIp:デバイス IP
戻 り 値 三つの要素を持つ配列 ‘status’、‘deviceid、’deviceip’
Page: 30
異 常 失敗 タイムアウト
備 考 [IPAddress]/device/iothub/device/info を参照します 注意事項 関連関数
M2M RESTC デバイス(DTC)死活監視クライアント用 API
int IDM2M_RESTC_devmonitor_updateStatus (
HIDM2M_RESTC hIDM2M_RESTC,
int status)
機 能 デバイスの状況を更新する。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
status:デバイスの状況
戻 り 値 IDM2M_RESTC_SUCCESS: 成功
IDM2M_RESTC_FAIL: 失敗
IDM2M_RESTC_REQUEST_TIMEOUT:タイムアウト
異 常
備 考 Statusの値は下記の通り:
-1:error;
0:dead; 3:shutdown;
1:live; 4:cleardata
2:reboot; 5:in update
[IPAddress]/device/devmonitor/updstatusを参照
注意事項
関連関数
int IDM2M_RESTC_devmonitor_getInstruction (
HIDM2M_RESTC hIDM2M_RESTC,
int *cmd)
機 能 サーバから指示を確認する。
Page: 31
引 数 hIDM2M_RESTC:M2M RESTCハンドル
cmd:サーバからの指示
戻 り 値 IDM2M_RESTC_SUCCESS: 成功
IDM2M_RESTC_FAIL: 失敗
IDM2M_RESTC_REQUEST_TIMEOUT:タイムアウト
異 常
備 考 cmdの値は下記の通り:
0 : do nothing
1:reboot
2:shutdown
3:cleardata
[IPAddress]/device/devmonitor/getcmdを参照
注意事項
関連関数
int IDM2M_RESTC_devmonitor_getCheckInterval (
HIDM2M_RESTC hIDM2M_RESTC,
int *chkintsec)
機 能 死活監視の時間間隔を確認する。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
chkintsec:確認間隔時間(秒)
戻 り 値 IDM2M_RESTC_SUCCESS: 成功
IDM2M_RESTC_FAIL: 失敗
IDM2M_RESTC_REQUEST_TIMEOUT:タイムアウト
異 常
備 考 [IPAddress]/device/devmonitor/getfreq を参照
注意事項
関連関数
Page: 32
M2M RESTC ファームウェア更新クライアント用 API
char **IDM2M_RESTC_firmware_getList (
HIDM2M_RESTC hIDM2M_RESTC)
機 能 ファームウェア一覧を取得する。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
戻 り 値 成功:ファームウェア名(文字列)の配列
失敗:NULL
異 常
備 考 戻り値の例:
[“fmwname1”, “fmwname2”, …, “fmwnamen”]
注意事項
関連関数
int IDM2M_RESTC_firmware_getLastVersion (
HIDM2M_RESTC hIDM2M_RESTC,
char *fmwname,
int *version,
char *releasedate)
機 能 指定ファームウェアの最新のバージョン情報を取得する。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
fmwname:ファームウェア名
version:ファームウェアの最新バージョン [OUTPUT]
releasedate:リリース時間 [OUTPUT]
戻 り 値 IDM2M_RESTC_SUCCESS: 成功
IDM2M_RESTC_FAIL: 失敗
異 常
備 考 ファームウェアのバージョン(version)は数字(1, 10, 999等)、
リリース時間(releasedate)は年月日時分の文字列(“201705051234”等)
注意事項
関連関数 IDM2M_RESTC_firmware_getList
Page: 33
char **IDM2M_RESTC_firmware_getFmwFiles (
HIDM2M_RESTC hIDM2M_RESTC,
char *fmwname,
int version,
char *path)
機 能 ファームウェアのファイル情報を取得する。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
fmwname:ファームウェア名
version:ファームウェアのバージョン
path:ファームウェアのサーバ側のパス(NULLで固定)
戻 り 値 成功:ファームウェアのファイル情報一覧(文字列)の配列
失敗:NULL
異 常
備 考 戻り値の例:
[“name:fnm1,fileid:1,size:10”, “name:fnm2,fileid:25,size:400”, …]
注意事項
関連関数 IDM2M_RESTC_getError
int IDM2M_RESTC_firmware_downloadFileByName (
HIDM2M_RESTC hIDM2M_RESTC,
char *fmwname,
int version,
char *path,
char *filename)
機 能 ファームウェアの指定ファイル(by name)をダウンロードする。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
fmwname:ファームウェア名
version:ファームウェアのバージョン
path:ファームウェアのサーバ側のパス(NULLで固定)
filename:ダウンロードするファイル名
戻 り 値 IDM2M_RESTC_SUCCESS: 成功
Page: 34
IDM2M_RESTC_FAIL: 失敗
異 常 失敗した時に下記のエラーメッセージを DM2M_RESTC_getErrorで取得できる
1.「The file could not be downloaded.」
2.「A component of the path does not exist.」
備 考
注意事項 Pathを NULLで設定した時に、サーバのディフォルトパスからファームウェアのフ
ァイルをダウンロードする
関連関数 IDM2M_RESTC_getError
int IDM2M_RESTC_firmware_downloadFileByFileId (
HIDM2M_RESTC hIDM2M_RESTC,
char *fmwname,
int version,
char *path,
char *fileid)
機 能 ファームウェアの指定ファイル(by file id)をダウンロードする。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
fmwname:ファームウェア名
version:ファームウェアのバージョン
path:ファームウェアのサーバ側のパス(NULLで固定)
fileid:ダウンロードするファイルの FileID
戻 り 値 IDM2M_RESTC_SUCCESS: 成功 、IDM2M_RESTC_FAIL: 失敗
異 常 失敗した時に下記のエラーメッセージを DM2M_RESTC_getErrorで取得できる
1.「The file could not be downloaded.」
2.「A component of the path does not exist.」
備 考
注意事項 Pathを NULLで設定した時に、サーバのディフォルトパスからファームウェアのフ
ァイルをダウンロードする
関連関数 IDM2M_RESTC_firmware_getFmwFiles 、IDM2M_RESTC_getError
int IDM2M_RESTC_firmware_downloadFileByUniqueId (
HIDM2M_RESTC hIDM2M_RESTC,
Page: 35
char *fmwname,
int version,
char *path,
char *uniqueid)
機 能 ファームウェアの指定ファイル(by unique id)をダウンロードする。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
fmwname:ファームウェア名
version:ファームウェアのバージョン
path:ファームウェアのサーバ側のパス(NULLで固定)
uniqueid:ダウンロードするファイルの FileID
戻 り 値 IDM2M_RESTC_SUCCESS: 成功
IDM2M_RESTC_FAIL: 失敗
異 常 失敗した時に下記のエラーメッセージを DM2M_RESTC_getErrorで取得できる
1.「The file could not be downloaded.」
2.「A component of the path does not exist.」
備 考
注意事項 Pathを NULLで設定した時に、サーバのディフォルトパスからファームウェアのフ
ァイルをダウンロードする
関連関数 IDM2M_RESTC_firmware_getFmwFiles 、IDM2M_RESTC_getError
int IDM2M_RESTC_firmware_downloadFileCheck_md5 (
HIDM2M_RESTC hIDM2M_RESTC,
char *fmwname,
int version,
char *path,
char *filename,
char *md5sum)
機 能 ダウンロードしたファイルの MD5ハッシュ値チェック
引 数 hIDM2M_RESTC:M2M RESTCハンドル
fmwname:ファームウェア名
version:ファームウェアのバージョン
path:ファームウェアのサーバ側のパス(NULLで固定)
filename:チェックするファイル名
md5sum:ファイルのMD5ハッシュ値
戻 り 値 IDM2M_RESTC_SUCCESS: 成功
Page: 36
IDM2M_RESTC_FAIL: 失敗
異 常
備 考
注意事項 Pathを NULLで設定した時に、サーバのディフォルトパスからファームウェアのフ
ァイルをダウンロードする
関連関数
int IDM2M_RESTC_firmware_sendDownloadResult (
HIDM2M_RESTC hIDM2M_RESTC,
char *fmwname,
int version,
int result)
機 能 ファームウェアファイルのダウンロード結果をサーバに報告する。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
fmwname:ファームウェア名
version:ファームウェアの最新バージョン
result:ダウンロード結果。
戻 り 値 IDM2M_RESTC_SUCCESS: 成功
IDM2M_RESTC_FAIL: 失敗
異 常
備 考 ダウンロード結果は成功=1、失敗=0
指定ファームウェアの全てファイルのダウンロード結果を纏めてサーバに報告する。
注意事項
関連関数
int IDM2M_RESTC_firmware_getUpdatePermission (
HIDM2M_RESTC hIDM2M_RESTC,
char *fmwname,
int preversion,
int updversion)
機 能 ファームウェアの更新可否をサーバに確認する。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
Page: 37
fmwname:ファームウェア名
preversion:ファームウェアの更新前のバージョン
updversion:ファームウェアの更新後のバージョン
戻 り 値 IDM2M_RESTC_SUCCESS: 成功 (更新可)
IDM2M_RESTC_FAIL: 失敗 (更新不可)
異 常
備 考
注意事項
関連関数
int IDM2M_RESTC_firmware_ sendUpdateResult (
HIDM2M_RESTC hIDM2M_RESTC,
char *fmwname,
int preversion,
int updversion,
int result)
機 能 ファームウェアの更新結果をサーバに報告する。
引 数 hIDM2M_RESTC:M2M RESTCハンドル
fmwname:ファームウェア名
preversion:ファームウェアの更新前のバージョン
updversion:ファームウェアの更新後のバージョン
result:更新の結果:成功=1、失敗=0
戻 り 値 IDM2M_RESTC_SUCCESS: 成功 (更新可)
IDM2M_RESTC_FAIL: 失敗 (更新不可)
異 常
備 考
注意事項
関連関数