MOCCIについてIT技術の視点からご説明します

2020年06月30日

先日リリースをしたMOCCIですが、ちいさくちいさく実地検証を重ねさせていただいております。ご協力いただいている企業様、この場を借りてお礼申し上げます。

エンジニアの方向けとしてかなり深いところまでMOCCIの実現方法についてご案内します。

MOCCIシステムの解説 

実際のアーキテクチャ図がこちらになります。

[ 事前準備 ]

  • salesforceeのレポートで「今日」という条件を元に「配信予定リスト」のレポートを作っておきます。(今日という条件にするとで「レポートを開いた時点の当日」の配信対象がリスト表示されます。

  • 『Data connector for Salesforce』を使って一定期間でレポートをスプレッドシートに出力するよう設定しておきます。

<salesforceからスプレッドシートに出力された「配信先リストの例」> 

[ 車両が配送を開始しログ情報が通知された場合 ] 

1)SmartDrive Fleetからメールで通知が配信されます。

2)Zapierにメールボックスを監視させ、条件一致のメールをスプレッドシートに転記します。

3)スプレッドシート内に関数を仕込み、文面(テキスト)を分解し「配送先」の住所情報を抽出します。

4)AppScript(Google スプレッドシート版のマクロ)は「行が追加された(フォーム送信)」条件をトリガーに起動します。

5)スプレッドシートの最終行から項番3)で取得した住所情報を元に「配信先リスト」に近似値情報の記載がないかをチェックします。

6)住所の近似値判定がTRUE(有り)と判定された場合、配信先リストから「住所近似値の判定がされた配送先のメールアドレス」を取得し、メールを送付します。

スクリプトは書いていますが、100行程度の簡単なスクリプトです(実行部は30行ほどであとはdebug用です)。


実はそんなすごくないMOCCI 

MOCCIのロジックはSmartDrive Fleetに依存するところが大きく、SmartDriveの技術はもちろんすごいですがそこから通知されたデータを拡張する方法は実はそんな大したことはしていません。プログラマーさんが上記を見たら「なんだ、こんなもんか」という印象だと思います。

『なんかすごそうな事をしてる』という感想をいただくのですが、作った本人からすると謙遜でもなく「大したことはしていない」と思ってます。

(この程度の仕組みをコソコソ隠しているほうが、みっともないと思ってます)

どうしてここまで詳細にロジックを公開しているのかというと、「オープンイノベーション」の思想を元に「できる人たちが寄り集まって、知恵を出しあう」という事を先だって進めたいと考えているためです。

業界を問わず「目の前にある課題を解決するため」に知恵を出し合う事は素晴らしい事だと思っています。

むしろ「こうすればもっと良いのに」とか「もっとこうすると便利」といったご提案・挑戦をいただけたらと思いこの記事で公開しています。


スクラップ&ビルドのための「ローコスト設計」 

現状データベースとして利用している「Googleスプレッドシート」やZapierといった、ものはいわゆる「システムインフラ」としては脆弱であることは確かです。

ただ、現状はまだ「検証フェーズ」という考えのため、身軽な設計にしてあります。

データの接続ポイントはそれぞれSOA設計になっているため、今後の利用者増加、詳細なトラッキングデータの分析の負荷状況を見ながら、コネクターの設定変更だけでデータベースやウェブサーバーに接続変更できるようにしてあります。


これからのMOCCI 

ここから先はまだ検討段階ですがSmartDrive Fleet情報だけでなく、渋滞情報や気象情報との連携を視野に入れています。他にも有益なサービスがあればどんどん繋ぎこみをするつもりです。

Google apps scriptでは処理が追い付かないとなった場合は、言語を変えての開発もあると思っています。APIサーバーがあればもっと柔軟でシンプルな設計になりますので、今後はサーバー側の処理を強化する設計になると思います。

機能追加と並行して、他システムとの柔軟な連携が可能になりましたらこちらのBLOGでご案内させていただきますのでお待ちください。