One MaxCode instead of ten keys: How PushMeld adds notifications where they were not before
MaxCodeを使って、サイト、サーバー、スクリプト、デバイスからのプッシュおよびメール通知の管理をPushMeldに移行します。
家庭用コンピュータを想像してみてください。毎晩重要なファイルのバックアップを作成し、その結果はシステムログに記録されます:操作は正常に完了したか、エラーが発生したか。
技術的にはすべて正常に動作しています。ただし、朝には不便が生じます。人間が自らログを開き、結果を確認しなければならないのです。モバイルアプリもなく、通知を送る仕組みもなく、単一の機能のために別のインフラを構築する人はいません。
PushMeldを使えば、こうしたプロセスにシンプルなリクエストを追加できます。バックアップ完了後に、「コピーが作成されました」または「操作がエラーで終了しました」という通知がスマートフォンに届きます。必要に応じて、その通知をメールで受け取ることも可能です。
このアイデアの基本はMaxCodeです — 通知を配信するためにPushMeldが必要とする情報を一括して管理する、統一された安全なコードです。
プロジェクトに初めて触れたとき、私にはこのMaxCodeが最も興味深い部分のように思えました。プッシュ通知やメールはすでに古典的な仕組みです。より重要なのは、もともとのプログラムが通知の配信を管理しなくなることです。もはや、それらの情報を直接扱うのはプログラムではなく、PushMeld側です。プログラムはイベントを通知し、あとはすべてPushMeld側で処理されます。
まず前提を明確にします:PushMeldはMELD®システムに属し、DigiMeld UGが開発しています。
通知の情報はソースだけが知っている
通常の通知連携は技術的な詳細に複雑に絡まりやすいです。プロジェクトを設定し、アクセス権を構築し、キーを保存し、デバイスのトークンを考慮し、メール送信を設定し、異なるモバイルプラットフォームの要件に対応しなければなりません。
PushMeldはこれらすべてを、もとのシステムから切り離して管理可能な別のコンターに移動します。
バックアッププログラムは知っているのは「操作が成功したかエラーで終わったか」だけです。MaxCodeとともに、メッセージのタイトルと本文を渡します。
知る必要のない情報は次の通りです:
プロジェクトに何台のデバイスが接続されているか
現在アクティブな電話はどれか
プッシュがどのキャリアを経由すべきか
メール送信が有効かどうか
ユーザーに新しいスマートフォンが追加されたか
古いタブレットはオフになっているか
誰に通知を送るか
これらはすべてPushMeldの内部で制御されます。
私の意見では、ここにこのプロジェクトの主要なアーキテクチャのアイデアがあります。MaxCodeは、イベント発生元のプログラムから通知の管理を移し、配信を担うシステムに移すことができるという点です。
一つのMaxCodeで複数のキーを代替
外部サービスの連携時には、多くのエンティティとやり取りしなければなりません。プロジェクトID、アクセスキー、秘密情報、デバイストークン、各種プロバイダーの設定などです。
MaxCodeはこれらすべてを1つの安全なコードにまとめます。
各プロジェクトには独自のMaxCodeが生成され、その中にはプロジェクトのID、送信権限、PushMeldが適用する配送設定に必要な情報が含まれています。
通知送信システムは次の情報を別途保存する必要がありません:
プロジェクトID
APIキーと追加秘密情報
接続されたデバイスのトークン
各受信者のパラメータ
さまざまなpushプロバイダーのキー
pushとメール用の個別設定
プログラムやウェブサイト、スクリプトにMaxCodeを1つ追加するだけで、PushMeldは自動的にプロジェクトを識別し、リクエストを検証し、接続されたデバイスや利用可能なチャネルを選択します。
したがって、MaxCodeは単なる追加のキーではなく、多くのバラバラなキー、トークン、IDを1つのコードに置き換える役割を持ちます。
通知元や範囲を超えた管理
MaxCodeは、HTTPリクエストを自ら行えるシステムならどこでも利用可能です。例として以下があります:
- 家庭サーバーの応答障害通知
- バックアップ完了やエラー通知
- 長時間実行されるスクリプト完了通知
- 3Dプリンターの印刷完了通知
- 漏水センサーの検知
- ドアの開放やセンサー作動の警報
- Webサイトの重要情報の更新
- 商品の価格変動通知
- 記録用の空き容量通知
- 大きなファイルの処理完了通知
- 小規模なオンラインショップの新規注文通知
これらの情報源には独自のアプリがなくても構いません。単にURLにアクセスするだけの一部の機器、カスタムコマンドを実行できる機器、自動化用のスクリプトなども可能です。
これだけで、PushMeldへのイベント送信が完了します。
ただし、情報源は独立した通知サービスに変わるわけではありません。あくまで発生した事象を記録し、MaxCode付きのメッセージを送るだけです。その他の要素—受信者、機器、チャネル、経路設定—はすべてPushMeld側で管理されます。
Pushだけでなくメールも可能
PushMeldの名前はスマートフォン通知のイメージが一般的ですが、その可能性はそれだけに留まりません。
通知はpush、メール、または両方のチャネルで配送可能です。これはプロジェクトの設定や利用可能な機能によります。
たとえば、バックアップの成功通知はスマホの画面に表示、重大なエラー通知はメールでも送信、など状況に応じて使い分けられます。
もとのプログラムは、どちらの場合も同じMaxCode付きリクエストを送信します。メールサーバーや設定を個別に準備したり、別々のシナリオを作成したりする必要はありません。
通知チャネルの選択はすべてPushMeldが管理します。あとでユーザーがメールを追加しても、バックアッププログラムを改修せずに済みます。
ここでのメールは、単なる一斉配信ではなく、特定のイベントを知らせるための補助的な方法です。
一つのプロジェクトは一つのイベント源
プロジェクトの分離により、通知の用途に応じた区分けが可能です。例として:
HomeServer— 家庭サーバーの状態Backups— バックアップ結果SmartHome— センサーと自動化PriceMonitor— 価格変動Website— ウェブサイトの新しい問い合わせ
各プロジェクトには個別のMaxCodeがあり、これにより自動化やコスト監視も明確に区分されます。それぞれの通知がどのタスクに関連するかも分かりやすくなります。
複数の通知源がある場合でも、個別のチャネルを用意しやすくなります。
新しい電話でもプログラムの変更不要
通常のプッシュトークンは特定のアプリインストールとデバイスに紐づいています。複数端末やOSの違いもトークン管理の複雑さを増します。
MaxCodeはこれを超えた階層にあります。これは単一のデバイスではなく、プロジェクトのレベルの情報です。
ユーザーは自ら、どのデバイスに通知を送るかのポリシーを決めることが可能です。例)家庭サーバーの通知はスマホとタブレットへ、作業用のサイトは業務用スマホへのみ送信、など。
新しい電話を購入したり、古い端末をオフにした場合も、バックアップスクリプトは同じMaxCodeを使い続けます。実際の通知先リストはPushMeld内で更新されます。
メールや配送ルートの追加も同様です。MaxCodeは単なるキーの集まりではなく、イベントとその配信の境界線を作り出します。この境界線の後は、プログラムを書き換えることなく自由に変更可能です。
無料で利用できるシンプルなタスク向け
インフラに関わる製品はしばしば企業のシステムやサーバーコマンド、大規模なデータセットとして扱われがちです。そのため、PushMeldはプロ向けや企業専用と思われることもありますが、実際には家庭のタスクから始められます。
アプリ自体は無料で、MaxCodeの基本的な機能も無料枠内で動作します。ユーザーはプロジェクトを作成し、デバイスを接続し、サーバーやサイト、スクリプト、家庭automationから通知を受け取れます。
これが一時的なデモモードではなく、日常利用に十分な範囲の無料利用です。リクエスト数や追加機能次第で有料プランが必要となるケースもありますが、標準的な用途なら無料で十分です。
MaxCodeの仕組みは、タスクの規模に影響されず、一貫した動作を保証します。
人と企業のための共通原則
MaxCodeのメカニズムは、タスクの規模に関係なく一定です。人はバックアップ完了の通知を受け取り、小さな工房では3Dプリンターの長時間印刷の終了を知り、オンラインショップは新しい注文を把握し、IT部門はエラー通知を受け取るのです。
実際のプロジェクト数や範囲は異なりますが、基本的な仕組みは変わりません。例えば、"Orders"(注文)、"Payments"(支払い)、"ServerStatus"(サーバーステータス)など複数のソースを例に、各々にMaxCodeを用意し、情報をPushMeldで制御します。スタッフやデバイスの変更、配送方法の変更も、基幹システムの設定をいじる必要はありません。全てPushMeld側で管理されます。
APNs、FCM、HMSは外部のまま
各種プッシュサービス(APNs、FCM、HMS)は、それぞれ規則やトークン、技術的な仕様が異なりますが、PushMeldはこれを境界の外側に置きます。これにより、送信システムの開発時にそれらを考慮する必要はありません。家庭サーバーやサイトは、どのスマートフォンに通知を送るかや、どのインフラを経由して配送されるかを気にせず、リクエストを送るだけで済みます。MaxCodeは、これらすべてのルートを統括し、適切な経路に導きます。
結果として、ユーザーは端末の違いやインフラの変化に左右されず、スムーズに通知やメールを受け取ることが可能です。今日FMCNを使い、明日APNsに切り替えても、MaxCodeの仕組みは変わりません。
通常のAPIキーとMaxCodeの違い
一般的なAPIキーは、認証だけを目的とし、どのプロジェクトや配信先を管理しません。MaxCodeはこれらを一つのコードに統合し、PushMeldがリクエスト時にそれを識別し、適用される設定を適応します。外部に渡されるのはMaxCodeとイベント内容だけです。これにより、単なる認証情報以上の意味を持たせ、通知のコンテキスト管理も実現します。
通知を付加的に追加できる仕組み
PushMeldを知った今、単なるプッシュ通知のアプリ以上のものだと考えています。これは、通知を以前はなかった場所に追加し、そしてそれをイベントの管理者から切り離して制御できる仕組みです。
ホームサーバー、センサー、旧アプリ、ECサイト、スクリプト、企業内システムなど、HTTPリクエストを自ら送れるものなら何でも、PushMeldにイベントを伝えることが可能です。その後、MaxCodeが通知と配信の境界を引き、送信元と配信先を分離します。最終的に、通知元は通知されたことを伝えるだけで、PushMeldがプロジェクトやデバイス、ルートを決定し、管理します。これにより、キーカードや配置、チャネル、ルート設定を変更しても、通知元のプログラムを改修する必要はありません。単一のコード(MaxCode)が、その全ての管理を可能にします。