電子情報通信学会ソフトウェアインタプライズモデリング研究会 に参加して

特集
学生の研究活動報告−国内学会大会・国際会議参加記 15
電子情報通信学会ソフトウェアインタプライズモデリング研究会
に参加して
國 枝 秀 行
Hideyuki KUNIEDA
情報メディア学専攻修士課程
1.はじめに
1年
3.データストア上のトランザクション
私は 2011 年 6 月 17 日に機械振興会館で開催され
GAE ではデータストアにアクセスする API とし
た電子情報通信学会 2011 年度ソフトウェアインタ
て JDO(JavaDataObjects)が推奨されており,CRUD
プライズモデリング研究会に参加し,「CPN による
処理をトランザクション処理で行っている.データ
GoogleAppEngine のモデル化と検証」というテーマ
ストアのトランザクションには「トランザクション
について研究発表を行いました.
は 1 つのエンティティグループの中だけに限られ
る」という非常に強い制約が存在する.
2.基本技術
トランザクションを JDO によって記述する.
トランザクションとは複数のデータベース更新処
1.PersistenceManager#currentTransaction メソッドで
理を単一の原始的な処理として扱うための概念およ
Transaction オブジェクトを取り出す.
び実装技術である.クラウドのような大規模分散シ
2.Transaction#メソッドでトランザクションを開始
ステムにおいて排他制御や同期に大量のノード間通
3.Tramsaction#commit メソッドでトランザクショ
信と待ちを伴い,クラウドの可用性(Availability)
ンをコミット後,操作をデータストアに反映する.
と相容れないが,永続性(Durability)は分散サー
バや分散システムの多重化で対応できると考えられ
4.CPN による GAE モデリング
る.クラウドでのトランザクションモデルとしてよ
図 1 において,プレース p 1 は初期マーキングで
り制約の緩和された BASE という考えが提案され
あり,トランジション t 1 により,トランザクショ
た.
BA : Basically Available
S : Soft-State
E : Eventually Consitent
アプリケーションの処理データはエンティティと
してデータストアに送られ,エンティティグループ
単位で Bigtable に保管され,さらに Bigtable の中
では前エンティティをタブレットという単位に分割
し,管理する.各タブレットは GFS により物理媒
体に収められており,チャンクという単位で管理さ
れる.
図1
― S-101 ―
CPN におけるトランザクション
開始からオブジェクトマッピング
段階でルートエンティティのタイムスタンプの値に
よる整合性のチェックを行う.Bigtable 層から受け
取り,p 4 に置かれた値と p 1 に置かれた値の比較
を t 4 と t 5 で判定を行う.
5.結論と今後の課題
本研究において,パブリッククラウドの PaaS で
ある GAE の挙動を形式的モデリング手法である
CPN により,モデル化する方法を提示した.GAE
においてトランザクション処理を行う場合,従来の
RDB とは異なる制約や仕様上の制限があるためト
ランザクションを動かすには要求される機能が制約
や制限による影響を事前に検証する必要がある.よ
図2
CPN におけるオブジェクトマッピン
グから終了
って GAE の機能がまず適切にモデル化されている
ことが前提となる.モデル化に CPN を使用する事
により,GAE の機能や動作に加え,その構造的な
ンが開始される.アーク関数 begin
()としている p
特徴を表すことができた.したがって使用するアプ
2 はトランザクション開始を Bigtable 層に伝えるソ
リケーションのデータへのアクセスが定義されれ
ケットプレースと呼ばれる.データストア内におい
ば,このモデル上で検証可能となる.この検証には
て複数のトランザクションが平行に実行され,p 2
CPN-tools という支援ツールが利用可能である.モ
に保存されるトークンのカラーはトランザクション
デル化に当たり,GAE を三層に分割し,層別にモ
処理のリスト型とする.各トランザクションの識別
デル化する事で,モデルのモジュラリティを高め
を p 3 に整数型の trCount というトークンのカラー
た.今後の課題として,障害時における処理と時間
で採番する.トランザクションが開始後は,エンテ
制約を加えた時間 CPN によって表現し,より厳密
ィティごとに順次実行され,t 5.1 から t 5.n までの
性の高いモデリングを行う手法を提案し,実装する
直列化したトランジションにより,最終的に getBy-
ことである.
IdMethod により,Bigtable 層に送られる.Bigtable
層に読み込まれた各エンティティは事前に定義した
6.おわりに
エンティティグループの各構造に従い,階層化され
今回の発表は私にとって初めての学会発表であ
る.階層化されたエンティティグループを保管する
り,非常に良い経験になりました.ペース配分に問
のが図 2 における p 1 である.トークンのカラーは
題があったものの,落ち着いて話すことができ,自
階層構造を表す n 分木により,CPN/ML の datatype
分のプレゼンテーション能力に少し自信が付きまし
文により定義できる.図上ではエンティティグルー
た.今後の課題としては,やはり,質問に対して適
プというカラーで名付け,処理内容が異なるため t
切な返答ができるように,専門分野についての十分
2.1 から t 2.n までの各エンティティに用意されたト
な知識を身に付けることが挙げられます.最後に,
ランジションにより処理される.全てのエンティテ
今回の発表を行うにあたり,特別研究に引き続きご
ィの処理後,t 3 によってコミットが bigtable 層に
指導いただいた新川芳行教授に深く感謝いたしま
送られる.GAE は楽観的ロックの使用の為,最終
す.
― S-102 ―