DEIM Forum 2017 F1-1

RMX 管理者の運用サポートアプリケーションの開発
日比 英憲†

遠山 元道 ††† 慶應義塾大学理工学部情報工学科 〒 223–8522 横浜市港北区日吉 3–14–1
E-mail: †hibi@db.ics.keio.ac.jp, ††toyama@ics.keio.ac.jp
あらましRMX(Rule-based e-Mail eXchange system) とはあらかじめ設定されたルールに基づき, 自動的にメールを転送するメール転送システムである. このシステムの利用を開始するには, あらかじめメール配送のルールを定義したSQL クエリを記述する必要がある. 本研究では, その際に利用者側に存在するデータベースに対しどのような配送のルールを定義するかを, そのデータベースに含まれる テーブル参照関係の情報を示しながら行うことが SQL クエリを記述するスキルの不足している利用者への重要なサポートとなるとし, さらに RMX を長期的に運用することを想定し, 配送ルールの編集を行うツールを提案する.
キーワード

RMX, メール, メーリングリスト

1. は じ め にする. RMX ではアドレスの記述方法は関数形式と自然形式の2 種類があり, これはそのうち関数形式の記述方式である.

Rule-based e-Mail eXchange(RMX) は管理者があらかじめ定義したルールに基づき, データベースから動的にメールを転< RM X のメール配信先指定 (関数形式) >:=送するメール転送システムである [1, 2]. 従来のメールアドレ< 配送ルール名 > {< パラメータ >}@ < サブドメイン > . < ドメイ

スはアカウント名とドメイン名から構成されるのに対し, RMXン>

では配送ルール, パラメータ, ドメイン名の 3 つから構成されている. これらの 3 種類の構成要素を組み合わせることによっ

RMX はこのように, 配送範囲を記述するサブドメイン以前て, データベースからアドレスの集合を得ることができ, 従来のの部分と, ドメイン移行が “.” によって組み合わされている. 配

メールと比べ広がりを持つ.

送範囲の中でも＠以後のサブドメインの部分は後述する配送このシステムの利用を開始するには, あらかじめメール配送ルールを保持するファイル名に相当する. また＠以前の部分のルールを定義した SQL クエリを記述する必要がある. よっは, “{}” の左側に示される配送ルールと, その “{}” 中に記述て運用者にはデータベースに関する一定の知識が求められるが,されるパラメータという 2 つの部分に区別される. その内, パ

初めてこのシステムを利用する者にとってはメール配送のルーラメータは 1 つ以上で構成される. サブドメインによって使用ルの設定時にサポートがあることが望ましい. また, SQL クエするルールを保持しているファイルが選択され, 配送ルールのリを記述するスキルのある者にとっても, このようなサポート記述によって該当ファイル内のルール部分が参照される. そのは利便性や, 記述時の間違いを軽減させるためには有効と考え後パラメータを用いてデータベースに問い合わせを行い送信先られる [3]. そこで本研究では RMX 管理者の運用サポートツーのアドレスを取得する. 最終的に得られたメールアドレスに基ルを提案・実装する. このツールではメール配送時のルールをづき, 配送が行われる (図１).

定義する SQL クエリを SQL の記述を伴わずに、使用するテーブルを指定することで設定する. さらに利用者のレベルに合わせてメール配送ルールのクエリを手動で編集する機能などを導入することで, RMX 運用者の意図に沿った長期的なサポートを実現する.
本論文の構成は以下の通りである. まず２章で RMX の概要について述べる. 次に３章で関連研究について述べる. ４章では今回提案するアプリケーションについて, ５章では評価について述べ, ６章では RMX 利用者の幅を広げるための今後の課題について, ７章で結論を述べる.

2. RMX
Rule-based e-Mail eXchange(RMX) は遠山研究室が提案している電子メールの配信方式である. RMX ではメールアドレ
スを下記のように記述することによって, 複数の送信先を指定

図 1 RMX におけるメール配信の流れ

以下, RMX の配送ルール (2.1), 複数の配送ルールの組み合わせ (2.2), サブドメインファイル (2.3), (2.4) 拡張プラグイン機構について概説する.

2. 1 配送ルール

よって上記の例では, 学科が ics で研究室が遠山である学生に配送ルールとは, 配送範囲記述とそれに基づき送信先のメー向けて, メールを配送することになる.

ルアドレスを取得するクエリを関連付けるルールである. 配送ルールは 以下のように定義する.

2. 2. 2 和 集 合Syntax: < name1 > {< par1 >} +配送ルール名query: 送信先メールアドレスを得るためのクエリ
query は SQL によって記述する. 配送ルール名に対応するクエリにパラメータを挿入し, データベース問い合わせを行うことで送信先メールアドレスの集合を取得する. このような配送ルールを用いることで, ユーザは簡潔な記述で配送範囲を記述することができる. 以下に配送ルールの定義の例を示す.

... + < namen >{< parn >}@ < subdomain > . < domain >Semantics: name1 (par1 ) ∪ ... ∪ namen (parn )“+” は，論理和によって複数の配送ルール及びパラメータを指定する際に用いられる. 各パラメータをそれぞれの配送ルールのクエリに代入し, 得られた結果の和集合から配送を行う. 論理和は, 同じ配送ルールでも異なる配送ルールでも使用が可能である.

dept

例：dept{ics}+grade{1}@demo.krmx.jp

dept[1]= select s.email from student s where s.dept

よって上記の例では, 学科が ics である学生または学年が 1 年= ’$1’ ;上記の例では所属学科ごとにメールを送信することができる,dept ルールである. このルールに基づいてメールの送信を行う.
メールの宛先が dept{ics}@demo.krmx.jp の場合, 図 2 のように query の部分で利用者のメールアドレスと所属学科が格納されているテーブル student を参照し, そこから学科が ics の学である学生に向けて, メールを配送することになる.
また, 配送ルール間の積集合をとる “.” と和集合をとる “+”が同時に使用された場合, 積集合をとる “.” の方が優先順位が高いものとする.
例：name{tabata}+grade{4}.dept{ics}@demo.krmx.jp

生のメールアドレスを取得するクエリを記述している.

例えばこの様なメールアドレスの場合, grade と dept の積集合をとった後, その結果と name との和集合をとる. つまりこの例の場合は, 学年が４年の情報工学科 (ics) に所属する学生,または田畑という名前の学生にメールを送信するという結果になる.

2. 3 サブドメインファイル
図 2 dept ルールと配送例

サブドメインファイルでは, データベースへの接続, 使用するルールの設定を管理する. また, 配送ルールをはじめとするルー

2. 2 複数の配送ルールの組み合わせ (関数形式)
RMX では, 複数の配送ルールを組み合わせることが可能である. 複数の配送ルールを組み合わせてメールを送る際, RMXで使用可能な演算子について説明する. To フィールドの配送ルールに, 演算子を使用することによって, ユーザに対してより詳細な配送範囲の指定を可能にする.

2. 2. 1 積 集 合Syntax: < name1 > {< par1 >}. ... . < namen > {<parn >}@ < subdomain > . < domain >Semantics: name1 (par1 ) ∩ ... ∩ namen (parn )“.” は，論理積によって複数の配送ルール及びパラメータをルを管理する領域をルールベースと呼んでいる. そしてファイル名をサブドメイン名.properties とし, .properties の前をサブドメイン名として使用する. 例えば, rmx.properties というファイルを作成し, サブドメインが rmx となるメールアドレスを受信した場合, rmx.properties を参照し, 配送ルールを取得する.
サブドメインに指定するファイルでは以下の項目においてデータベース情報を設定する．

•DB DRIVER = ＜データベースドライバ＞•

DB URL = ＜接続するデータベースの URL ＞•

DB ID = ＜データベース上のユーザ ID ＞•

DB PASSWORD = ＜ユーザ ID に対応するパスワー

ド＞指定する際に用いられる. 各パラメータをそれぞれの配送ルー
ルのクエリに代入し, 得られた結果の積集合から配送を行う.
例：dept{ics}.lab{toyama}@demo.krmx.jp

使用するルールの設定もサブドメインファイルの編集によって行う．

ルベースの配送ルールの初期的な設定を行うために, このアプ

3. 課題と提案

リケーションでは, 利用者側に存在するデータベースからテー

実際に RMX にの利用を開始するにあたり初期的な設定を行う例を図 X に示すスキーマを示していく.

ブル情報を取得し, どのようなテーブル、またその参照関係を用いて配送ルールを設定するかを指定する. そして最後に選択されたテーブルの各属性に対する配送ルールの SQL クエリが自動的に生成される. このシステムの概要を図 4 に示す.
さらに生成された, またはすでに存在する配送ルールを保持しているファイルの配送ルールに対して, 配送ルールの追加, 削除, またルール名の変更などの編集機能を持たせることで RMX運用者のメール配送の意図に柔軟に対応し, 使用時の利便性の向上を実現した.

図3

大学のスキーマ

3. 1 RMX 利用における配送ルールクエリの例
図 3 のようなスキーマに対して RMX で利用する配送ルールクエリを作成する場合を考える. ここである生徒 (student テーブル) が履修している授業 (section テーブル) の各属性に対する条件に該当する生徒にメールを送信するためには, 以下のような SQL クエリの記述が必要になる.
SELECT student.email FROM student JOIN takes
ON student.s id = takes.s id JOIN section

図 4 システムのアーキテクチャ

ON takes.course id = section.course id
AND takes.sec id = section.sec id
AND takes.semester = section.semester
AND takes.year = section.year
WHERE section.(section の各属性) = $1;

4. 2 各機能について本研究で提案するアプリケーションの各機能について説明していく.

4. 2. 1 配送ルールの初期生成機能

このようにテーブルの外部キーに対してテーブルを結合し,利用者は RMX でメール配送する際に使用すデータベースのさらに RMX の配送ルールとしてのクエリを記述するためには接続情報, 生成されるファイル名を指定する. その後にまずメーWHERE 句に”$1”と記述 SQL クエリを記述する必要があるな

ル配送の際に必要となるメールアドレスを保持したテーブルと,ど, 一定の知識を持たない利用者にとっては初期段階でのスキその属性を指定する. さらにそのテーブルを参照している, まル的なハードルが高く, RMX の運用を開始することが困難なたそのテーブルが参照しているテーブルが表示され, 利用者は場合があると考えられる.

どのようなテーブルを用いて配送ルールを生成するかを指定していく. 図 5 はその際の様子である.

3. 2 提案

前項で述べたように RMX やデータベースの知識, またSQL クエリの記述スキルを持たない者にとってこの利用を開始することには困難と考えられる. ここで本研究ではこのような RMX の運用を開始しようとしている利用者に対して, これらの知識を持たずとも一定の範囲での配送ルールを生成し, 運用を開始できるツールとしてのアプリケーションを提案・実装する.

図 5 テーブル選択画面

次章でこのアプリケーションの説明を行う.

4. 提案するアプリケーションについて
4. 1 機能の概要
１章で述べたように, RMX の運用を開始するにあたりルー

ここでは大学のデータベーススキーマを例としており, 図 5
ではアドレスを保持している”student”テーブルを初めに指定し, そのテーブルと参照関係にあるテーブルを指定している.
ここで示されている”Current Path”とは現在選択されている

テーブルの参照関係を示しており, この場合には”section”とい成することでメール送信時の配送ルール入力手間が軽減されう授業を表すテーブルの各属性に対して配送ルールが生成され,るとともに, 各配送ルール名が利用者にとってよりどのようなある授業の条件に対して, その授業を履修している学生にメールールかを認識しやすくなるなどの利点も考えられる. この様ルを送信するためのクエリが生成されることになる. 以下にこ子を図 7 に示す.の際に生成された配送ルールのクエリの 1 つを示す.
ここで JDBC メソッドを用いて, 指定されたテーブルのメタ情報を取得る. そしてそのテーブルが参照しているテーブルとこの他の機能として, 使用しない配送ルールの削除や作成された配送ルールの一覧表示などの機能を全てアプリケーション上で提供する.

そのテーブルを参照しているテーブルについてのメタ情報も同時に保持し, テーブル同士を関連付ける外部キー情報をによって下に示したようにテーブル同士をジョインしたクエリを自動生成する.
student-takes-section-day[1] =SELECT t0.email FROM student as t0 JOIN takes as t1
ON t0.s id = t1.s id JOIN section as t2 ON t1.course id =t2.course id AND t1.sec id = t2.sec id AND t1.semester =t2.semester AND t1.year = t2.year WHERE t2.day = $1;

図 7 配送ルール名変更画面

ここで, 指定したテーブルのパスが配送ルール名となる. このようにしてこの機能を用いると利用者はテーブルの指定を行

5. 評

価うだけで自動的に指定されたテーブルが結合されたクエリが生成されるが, 利用者側に存在するデータベースについて, アドレ

5. 1 設定時間の比較スを保持しているテーブルがどれであるかや, また各テーブル

手動での配送ルールの設定を行う場合と今回提案するアプリがどのような属性や意味を持つものかということを把握していケーションでの配送ルールの設定において, それぞれにかかるることがこの機能を利用する場合の前提条件となる. 尚, ここ時間を計測し比較を行う.

ではあるテーブルを複数回選択される場合のためにテーブルにそれぞれエイリアスを割り振っている.

5. 2 クエリの表現力
手動で配送ルールのクエリを作成する場合と今回のアプリ

4. 2. 2 配送ルールの編集機能

ケーションで行う配送ルールの設定において, 利用者の意図に生成された配送ルールの編集機能について説明する. このア

沿ったクエリが生成できるのかを検討し, その表現力にどのよプリケーションでは編集機能として, 新規配送ルールの追加、うな差異があるかを比較する. まず今回のアプリケーションでルール名の変更、ルールの削除を行う.

生成される配送ルールの SQL クエリはパラメータとなる値をこれらの機能の使用の流れとして, まず編集を行うファイル１つしか持たない. このためメール配送の条件としては等値なとそれに対する編集項目を選択する. このアプリケーションでものしか取らない. よって例えば値の範囲指定など, 複数の値をは RMX や SQL の知識がある利用者が操作する場合も想定し,用いる条件の配送ルールは生成できない. 一方で手動ではこれ手動で直接配送ルールのクエリを追加する機能がある. この際らの制限はなく自由にクエリを設定できる. この点で SQL クの様子を図 6 に示す. ここでは入力されたクエリは構文解析をエリを記述するスキルを持たない利用者にとっては配送ルールし, SQL クエリとして正しいものかを判定した後に配送ルールの設定の幅が限られる.
また, 複合主キーを多く持つテーブルが多数存在するようなに追加される.

データベーススキーマにおいてテーブル同士を結合するクエリを記述する場合は, 参照関係があらかじめ定義された対象の場合, 今回のアプリケーションでは自動的にそれらの結合を行ったクエリを生成するので, 手動での設定よりも作業量が低減されると予想できる.

図 6 配送ルール追加の様子

6. 関 連 研 究

また配送ルールの初期設定の項で述べたように配送ルールの遠山研究室の先行研究に, データベースや RMX の知識を名称は指定されたテーブルの並びになり, これはしばしルール持たない利用者による RMX の使用を想定したウェブアプリ

名としてメール送信時に手動で入力するには不便であることがケーションの開発という点で共通する開発がある. このアプリ

考えられるので, ルール名変更機能を用いてエイリアス名を作ケーションではあらかじめ利用するカテゴリを

5 章でも述べたように, 今回提案したのアプリケーションで(1) 大学の同窓会設定する配送ルールの SQL クエリではパラメータは１つしか(2) アルバイト持たない. よって, より複雑な配送ルールを設定するための機能(3) 車のディーラーが, さらに幅の広い配送ルールを設定するためには必要になる.

これら３種類とし, その中で特に使用が想定されるメール配送という観点でのアプリケーション開発であった. これによってルールをあらかじめ設定しておき利用者がアプリケーションRMX の利用を開始するまでの初期的な設定, また利用開始後

また, 今回は RMX の運用を行う利用者のサポートツール

上に存在するデータベースにデータを入力することによっての配送ルールの編集などによる運用意図への対応を行う. RMX

RMX の機能を直感的に使用できるというものである.のシステムの利用者の幅をより大きなものとするためには実

例えば車のディーラーの場合, 顧客テーブルや従業員テー際に RMX によってメールを送信する者のサポートも欠かせな

ブル, 車会社のテーブルや車種テーブルなどが用意されている.

い. そこで配送ルールに対して配送ルールとそれに埋め込むパそれらのテーブルをもとに設定されているルールを選択する.

ラメータの値をアプリケーション上で指定しメール送信を行う

この場合ではある車種を購入した顧客, 特定の期間に購入したなどのことも初期の利用には有効と考えられる.

顧客, ある販売店舗に所属している管理者などのルールが選択できる.
またアルバイトのアプリケーションでは単にメール送信を行

8. お わ り にうだけでなく, 図３のように指定した日にちにシフトが入って本研究では, RMX 運用者向けのスタートアップツールとしいるアルバイト員に対してワンクリックで連絡が送信されるよてのアプリケーションの実装を行った. このアプリケーション

うな機能を持つ. これらのアプリケーションによって, RMX やの開発によって RMX やデータベース, さらに SQL クエリをデータベースの知識がなくても RMX の機能を利用することが記述するスキルを持たない利用者でも一定の範囲での初期的な可能となる. そして本研究では RMX の運用者のスタートアッ

メール配送ルールの設定を, 利用者側に存在するデータベースプツール, また運用管理ツールとしての機能を提供する.

スキーマに対して行うことを可能にした.

RMX の利用者の幅を広げ, 今後このシステムが広く一般に利用されるようになるには６章でも述べたような本研究で提案したアプリケーションの機能の追加や改善, また RMX を利用して実際にメール送信を行うことをサポートする機能またはアプリケーションの開発が必要になる.

図8アルバイトのシフト日付け指定

また, 本研究と同様にデータベースの知識が無い利用者向けのメーリングリストシステムとして挙動する既存のメール配信システムに blaynmail [8], Benchmark Email [9], Acces Mail[10] などがある. これらは企業がマーケティングメールを送信する手助けをするために開発されたシステムであり, これ以外にも多くのメール配信システムが存在する. これらは運用前にあらかじめ送信先のグループを作成しておき, それらに対してメールの配送を行うものである. またこれらは既存のデータベースを利用してメール配送を行う機能や複数のテーブルから情報を抽出してメール配送を行う機能を持たない. この点で今回提案するアプリケーションによる RMX の利用は, より有用なものになる.

7. 今後の課題
今回提案したアプリケーションの今後の機能拡張や, RMX運用またはその利用のさらなる利便性の向上のために行う作業について述べる.

文献[1] Sascha Fahl, Marian Harbach, Thomas Muders, Matthew
Smith. Confidentiality as a Service - Usable Security for theCloud. In TrustCom, pages 153 - 162, 2012.
[2] Moeko Deguchi, Kazuhito Kita, Motomichi Toyama. “Webbased Mailing List Administration on RMX”,iiWAS 15, December 11-13,2015, Brussels, Belgium[3] Harry K.T. Wong and Ivy Kou. “Guide: Graphical User
Interface for Database Exploration”, Proceedings of theEighth International Conference on Very Large Database.
September 1982
[4] 高畑 理, 藤沼 健太郎, 石橋 玲, 遠山 元道. “Magic Mirror Mailing：個人情報データベースを利用する柔軟なメイル配送システム”, 情報処理学会データベースシステム研究報告 Pages:123-128
July 20[5] Rakesh Bobba,Joe Muggli,Meenal Pant,Jim Basney,Himanshu
Khurana. “Usable Secure Mailing Lists with Untrusted
Servers” IIDtrust 09 Gaithersburg.
[6]
blaynmail , http://blaynmail.jp/[アクセス日:2017-1-11][7] Benchmark Email , http://www.benchmarkemail.com/jp/[アクセス日:2017-1-11][8]
Acces Mail , http://www.accessmail.jp/[アクセス日:20171-11]