特集 学生の研究活動報告−国内学会大会・国際会議参加記 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 ―
© Copyright 2024 Paperzz