内蔵Graph方式とは
イベント同期エンジンの内蔵Graph方式とは
Ver.6.3でOnTimeはGraph方式でカレンダーイベント同期を実行できるOnTime同期ハブを開発しました。運用の中で、OnTimeサーバーと同じ筐体に実装してMicrosoftからの通知も受信しているお客様が多いことが確認出来ました。
OnTimeは同等機能をOnTimeサーバーに内蔵することに決定し、Ver.6.4で実装いたしました。内蔵エンジンはOnTime同期ハブと比べて以下のような特徴があります。
- 設定が簡単。
ネットワーク構成などは既存の設定と共有します。 - アップグレードが簡単。
プログラムに内部実装なのでOnTimeのアップグレードで同期エンジンも自動でアップグレードされます。 - マシンへの負担が減る。
別々のプログラムを実行させる必要がなくなるので負荷が減ります。 - ネットワークトラフィックがシンプル。
通知情報はOnTimeサーバーの内部処理なのでOnTime←→同期ハブのトラフィックが無くなる。
ポートの受信構成はOnTimeクライアントと共存も可能。
可能であれば内蔵Graph方式を推奨します
上記特徴より以下の2点が課題でない限り、「内蔵Graph方式」を推奨いたします。
- ご利用ライセンスが3万から5万ライセンス程度である。
- 現在のOnTimeサーバーはOnTimeモバイルクライアント含めて外部からの接続ができない、または構成変更ができない。
内蔵Graph方式の設定
ドメイン設定の以下の2カ所の設定を行います。
接続先Exchangeで「Microsoft 365」を選択します。

同期方法タブ
同期方法でカレンダーイベント同期方法が「Graphを使用」を選択します。

イベント同期エンジンタブ
次に「イベント同期エンジン」タブを開きます。

イベント同期エンジンを選択で「内蔵Graph方式」を選択します。
内蔵Graph方式 通知用URL
通知用URLについて説明します。MIcrosoftのEWS APIの仕様では既にOnTimeサーバー側からMicrosoftに接続されたセッション内でリアルタイムに通知を受け取っていました。しかしMicrosoftのGraph APIの仕様では方式が変更となり、新しく提供された方法の中でOnTimeは世に大変普及しているWebhookの仕組みを利用して開発しました。
Webhookとは、あるWebアプリケーションで特定のイベント(データの追加や更新など)が発生した際に、外部のURL宛にリアルタイムで自動的にデータや通知を送信する仕組みです。
この通知用URLにはMicrosoftに指示する受信可能なサーバーとポートを登録します。現在ご利用の構成で外部からOnTimeクライアントが接続できているなら、同じ経路を利用できるので同等のサーバー名とポート番号を利用できます。

Microsoftに指定するイベント更新通知の通知先を入力します。
Microsoftから接続可能な「https://ホスト名:ポート」で指定します。
内蔵Graph方式の同期エンジンは80、8080、443、8443のいずれでもWebhook通信を受信可能です。いずれかを指定するのであれば追加設定なしでイベント更新通知を受け付けることができます。
デモサイトでの例

デモサイトクライアント接続が以下のURLの場合とします。
https://ontime.ontimedemo.com/ontimegcms/desktop
- クライアント用と同じポートを利用(推奨)
クライアント接続と同じホスト名とポートを指定します。デモサイトの場合は以下のようになります。
画像はこちらの例を採用
Microsoft通知用URL → https://ontime.ontimedemo.com:443 - OnTime管理センターと同じポートを利用
OnTime管理センターへの接続と同じホスト名とポートを指定します。デモサイトの場合は以下のようになります。Microsoft通知用URL → https://ontime.ontimedemo.com:8443 - ご利用のポートと別のポートを利用
ポートだけ別のポート(例えば9010)を指定します。
Microsoft通知用URL → https://ontime.ontimedemo.com:9010 - クライアント用と別のプロトコル、別のポートを利用
プロトコルをhttpに、ポートを別のポート(9010)を指定します。
Microsoft通知用URL → http://ontime.ontimedemo.com:9010 - 別のペイロードの終端も含めて指定
ホスト名やポートの全てが変わります。
TLS証明書も別途準備します。
Microsoft通知用URL → https://webhook.ontimedemo.com:9010
指定したURLにてMicrosoftから受信しOnTimeサーバーまで到達出来るようにネットワークやWindowsファイヤウォールを構成して下さい。
設定は以上となります。
受信用ポートに80/8080/443/8443と違うポートを準備する場合
注意)
デフォルトのポートと違うポートを指定する場合にのみお読みください。
80、8080、443、8443のいずれかのデフォルトポートを利用される場合は必要ありませんので読み飛ばしてください。
前述のように内蔵Graph方式のイベント同期エンジンは80、8080、443、8443のいずれかであれば設定なしでイベント更新通知を受け付けることができます。しかし、別途ペイロードの終端を設けるなど、OnTimeサーバーでは上記以外のポートを指定する場合はserver.xmlファイルに以下の手順で設定を追加する必要があります。
server.xmlはバージョンフォルダ\tomcat\confに存在します。エディタで編集してください。
バージョンフォルダなのでアップグレードのたびに新しいフォルダのファイルの修正を必要とします。
誤った記述や間違った挿入をした場合に備えて、元のファイルを復元できるよう必ずバックアップを準備してください。

<Connector port= タグを探して追加します
すでに8080、80、8443、443の4つのコネクターポートが実装されています。httpポートかTLS証明書を伴うhttpsポートかで追加方法が違います。いずれの場合も既存のコネクタータグをコピーして追加してください。
httpポートで受信させたい場合のポート追加する場合
既存のhttpポートと同じく既存のhttpsポートへリダイレクトさせます。
以下はマニュアル作成時の参照したコネクタータグです。こちらのタグを丸ごとコピーして新しいタグを作成します。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
compression="on"
maxThreads="800"
minSpareThreads="80"
maxSpareThreads="160"
relaxedQueryChars='{["]}\'
redirectPort="8443" />
1行目を以下のように修正します。ここでは8080番ポート用を9010番ポート用に修正しました。リダイレクト先は8443のままです。
<Connector port="9010" protocol="HTTP/1.1"
connectionTimeout="20000"
compression="on"
maxThreads="800"
minSpareThreads="80"
maxSpareThreads="160"
relaxedQueryChars='{["]}\'
redirectPort="8443" />
TLS証明書を伴うhttpsポートで受信させたい場合のポート追加する場合
既存のhttpsポート同様新しくコネクターポートを作成します。
以下はマニュアル作成時の参照したコネクタータグです。こちらのタグを丸ごとコピーして新しいタグを作成します。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
relaxedQueryChars='{["]}\'
compression="on"
maxThreads="150" SSLEnabled="true" >
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" compression="on"/>
<SSLHostConfig protocols="TLSv1.2">
<Certificate
certificateKeyFile="C:\ProgramData\IntraVision\OnTimeGCMS\keys\ontime-rsa-key.pem"
certificateFile="C:\ProgramData\IntraVision\OnTimeGCMS\keys\ontime-rsa-cert.pem"
certificateChainFile="C:\ProgramData\IntraVision\OnTimeGCMS\keys\ontime-rsa-chain.pem"
type="RSA" />
</SSLHostConfig>
</Connector>
1行目を以下のように修正します。ここでは8443番ポート用を9010番ポート用に修正しました。新しい受信ポートと証明書関連情報が記載されています。
<Connector port="9010" protocol="org.apache.coyote.http11.Http11NioProtocol"
relaxedQueryChars='{["]}\'
compression="on"
maxThreads="150" SSLEnabled="true" >
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" compression="on"/>
<SSLHostConfig protocols="TLSv1.2">
<Certificate
certificateKeyFile="C:\ProgramData\IntraVision\OnTimeGCMS\keys\ontime-rsa-key.pem"
certificateFile="C:\ProgramData\IntraVision\OnTimeGCMS\keys\ontime-rsa-cert.pem"
certificateChainFile="C:\ProgramData\IntraVision\OnTimeGCMS\keys\ontime-rsa-chain.pem"
type="RSA" />
</SSLHostConfig>
</Connector>
Tomcatの再起動
server.xmlファイルを保存します。ポートが追加されているため、OnTime管理センターのアプリの停止/起動では反映しません。WindowsのサービスからTomcatの再起動を実施してください。