• 検索結果がありません。

アスペクト指向を用いた分散データベースシステムの構築 〜自動販売機売上管理システムの構築〜

N/A
N/A
Protected

Academic year: 2021

シェア "アスペクト指向を用いた分散データベースシステムの構築 〜自動販売機売上管理システムの構築〜"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)

アスペクト指向を用いた分散データベースシステムの構築

副題:自動販売機売上管理システムの構築

2000MT057

村瀬 陽介

指導教員

野呂 昌満

1

はじめに

現在

,

データベースシステムで扱うデータの量や種類が

増加しており

,

ネットワークを介してデータを分散させ

る分散データベースシステムの開発が行なわれている

.

しかし

,

分散データベースシステムの開発は

,

通信する相

手の位置情報や通信に関する記述が複数のモジュールに

横断的に散在し

,

柔軟性や拡張性の高いソフトウェア開

発の妨げとなっている

.

この問題の解決策として近年

,

スペクト指向

[1][2]

が注目されている

.

本研究の目的は

,

柔軟性や拡張性の高い分散データベー

スシステムのソフトウェアアーキテクチャを構築するこ

とである

.

事例として自動販売機売上管理システムを扱

.

自動販売機売上管理システムのソフトウェアアーキ

テクチャを構築するさいに

,

複数のクラスに横断するコ

ンサーンが存在するとの仮定に基づき

,

これらを矛盾な

く統一的に記述するためにアスペクト指向を適応する

.

構築した自動販売機売上管理システムのアスペクト指向

アーキテクチャでは

,

通信に関する記述を分離したこと

により

,

システムの再利用性の向上が実現できた

.

研究方針を以下に述べる

.

オブジェクト指向を用いて

自動販売機売上管理システムを設計し

,

アスペクト指向

を用いて横断するコンサーンを抽出する

.

抽出したコン

サーンをもとに

,

アスペクト指向ソフトウェアアーキテ

クチャを構築する

.

構築した自動販売機売上管理システ

ムのソフトウェアアーキテクチャの有用性について考察

する

.

2

自動販売機売上管理システムのソフトウェ

アア−キテクチャ

本研究では

,

各サーバのデータベース内に格納するデー

タの種類が共通である点から分散データベースシステム

の中で自動販売機売上管理システムは一般性が高いと考

,

題材として扱う

.

2.1

自動販売機売上管理システムの概要

自動販売機売上管理システムは

,

県ごと

,

市ごとに自動販

売機のデータを加工して保持したいと考え

,

垂直分散型

構造を採用した

.

この構造では

,

データベースを保持する

各サーバをノードとし

,

上の階層から順に各ノードを県

,

,

自動販売機とした

.

売上げ

,

在庫数

,

販売数などの最も

詳細なデータは下層の自動販売機上に保持され

,

それよ

り上層のサーバは

,

下層のサーバが保持するデータを集

約した形である合計値を保持するものとする

(

1).

ステムにおける機能は

,

使用者からの県

,

,

自動販売機

サーバに対する売上げ

,

在庫数

,

販売数の検索処理と自動

販売機の販売イベントによるデータベース更新処理があ

るとした

.

Prefecture_A

City_A City_B City_C Client

Server

Server Server Server

Server Server Server Server Server Server

Vend_B Vend_C Vend_D Vend_E Vend_F Vend_A  12. 1 12. 1 12. 1 12. 2 12. 2 :           54 48 32 25 42 :     A  B  C  B  A  "! "# $%! %# &  & A & B & C '$(*) +$$, .*/102 ! "#   %-.3/402 ! %# : 5 12. 1 12. 1 12. 1 12. 2 12. 2 : 9 8 5 4 7 :    A  B  C  B  A : 687 30 20 35 9: 100 150 200 23 15 6878 180 120 200 138 88 900 1200 750 800 700 <;*= : < : : 7200 4800 5000 4200 : ;=> 5400 :

1:

各階層のサーバが持つデータベース情報

2.2

オブジェクト指向開発での問題点

オブジェクト指向を用いた自動販売機売上管理システム

の開発は

,

各サーバの配置を構成するデータ構造に注目

して設計すると,通信に関する記述が複数のクラスに横

断してしまう

(

2).

この問題を解決するためにアスペ

クト指向を適用し

,

自動販売機売上管理システムの構造

をいくつかのコンサーンに分離することで整理する

.

Stub Skelton Queue OODB D B SearchRoute (SearchInfo) ReturnRoute (NodeInfo) SearchVendProc (SearchInfo) SearchVendProc (SearchInfo) SearchVendProc (SearchInfo) SendProc (GoodsInfo, NodeInfo) getNode( )

2:

横断する通信に関する記述

分散コンサーン

各ノー ドが通 信する 相手に ついて の位置 情報を 取得

,ORB(Object Request Broker)

を用いて遠隔通信を

行なう

.

トランザクションコンサーン

システムの検索・更新要求に基づいて次にどのノードに

アクセスするべきかを決めることで

,

垂直分散型などの

データ構造を実現することができる

.

また

,

ネットワーク

に異常が発生してもシステムを故障とせずにサービスを

提供させる必要がある

.

その場合

,

正常時とは通信する相

手を変える必要があるので

,

それぞれの処理について分

けて考える

.

(2)

データベースコンサーン

データベースの更新時において

,

県や市サーバが必要と

する合計値を求める計算処理や

SQL(Structured Query

Language)

を用いたデータベースのアクセス処理を行

なう

.

2.3

分散自動販売機システムのアスペクト指向ア−キ

テクチャ

抽出したコンサーンをもとに自動販売機売上管理シス

テムを分離し

,

アスペクト指向ソフトウェアアーキテク

チャを提案する

.

分散コンサーンから分散フィールド

,

常時におけるトランザクションコンサーンから正常分散

フィールド

,

異常時におけるトランザクションコンサー

ンから異常分散フィールド

,

データベースコンサーンか

らデータベースフィールドが得られた

.

これらのフィー

ルド

,

オブジェクトを合成すると図

3

に示す構成要素と

構成要素間の関係が得られた

.

 Configuratiron Start( )   Start( )   Start( ) Configuration  Data OODB D B Search( ) Update( )  Data Data    Stub  Stub Skelton  Stub  Stub "!Stub  Stub  Stub Skelton  Stub  Stub Stub Stub "!Stub Stub OODB D B Skel Skelton Concrete OODB Concrete DB # $%&  # $'   ( )*+       Skelton ,   -/.0 132 , 34 -/.0132 , 34 ,  , 34

3:

自動販売機売上管理システムのソフト

ウェアアーキテクチャ

3

考察

本研究で構築した自動販売機売上管理システムのソフ

トウェアアーテキテクチャでは

,

横断的に関連するコン

サーンを

,

矛盾なく分離し記述できた

.

本ソフトウェア

アーキテクチャの有用性について考察する

.

3.1

データ構造の変更に関する考察

自動販売機売上管理システムのデ−タ構造の変更に関

する考察をする

.

データ構造とは

,

システムを構成する

サーバの配置を表し

,

その変更とは市町村合併などの場

合に

,

市サーバの下の階層の相手が変わる場合である

.

ブジェクト指向でデ−タ構造の変更を解決するために

,

2

に示した通信に関わるすべてのクラスの記述を

変更する必要がある

.

アスペクト指向で実現すると

,

サーバがシステムの検索・更新要求に基づいてどのサー

バと通信するかというトランザクションコンサーンの記

述を変更するだけでよい

(

4).

このように

,

変更するコ

ンサーン以外には影響がないという利点がある

.

Vend_A Server Server Server Server Server Server Server Server Server

Vend_B Vend_C Vend_D Vend_E Vend_F City_B City_C Prefecture_A

public aspect Trans_Aspect { private String name; pointcut _SearchProc(SearchInfo si) : call (void Skel.SearchProc(SearchInfo)) && args(si) ; void around : _SearchProc(si) { oodb = OODB.instance( ) ; stubC = StubC.instance( ) ; stubD = StubD.instance( ) ; name = si.getName(); if(name == nodeB) { oodb.SearchProc(SearchInfo); } else { stubC.SearchProc(SearchInfo); stubD.SearchProc(SearchInfo); } } }

public aspect Trans_Aspect { private String name; pointcut _SearchProc(SearchInfo si) : call (void Skel.SearchProc(SearchInfo)) && args(si) ; void around : _SearchProc(si) { oodb = OODB.instance( ) ; stubA = StubA.instance( ) ; stubB = StubB.instance( ) ; stubC = StubC.instance( ) ; stubD = StubD.instance( ) ; name = si.getName(); if(name == nodeB) { oodb.SearchProc(SearchInfo); } else { stubA.SearchProc(SearchInfo); stubB.SearchProc(SearchInfo); stubC.SearchProc(SearchInfo); stubD.SearchProc(SearchInfo); } } }       

B

               

4:

データ構造の変更

3.2

機能の拡張に関する考察

自動販売機売上管理システムにおける各県

,

市サーバに

対して平均値の検索要求の機能を追加する場合について

考察する

.

オブジェクト指向で実現する場合

,

平均を計算

するコードを

OODB

クラスのメソッド内に記述し実現

する

.

しかし

,

平均の計算処理とデータベースへのアクセ

ス処理のコードを分離させたいので

,

アスペクト指向を

用いて実現する

.

平均を計算するコードはアスペクト指

向技術であるアドバイス内に記述し実現できる

.

そのた

,OODB

クラス内にはデータベースへのアクセス処理

のコードのみが残り

,

平均を計算するコードを取り除く

ことができる

(

5).

public aspect Database_Aspect { private String Servernum = 3 ; private int proc ; pointcut _SendProcAve(GoodsInfo gi) : call (void stubA.sendAve(GoodsInfo)) && args(gi) ; after(GoodsInfo gi) : _SendProAve(gi){ oodb = OODB.instance( ) ; stubA = StubA.instance( ) ; proc = gi.getProc( ) ; proc = proc / Servernum ; // 

gi.setProc(proc) ; stubA.sendAve(gi) ; } }

5:

各県

,

市サーバに対する平均値の検索機能の追加

4

おわりに

本研究では

,

アスペクト指向を用いた自動販売機売上管

理システムのソフトウェアアーキテクチャを提案し

,

のアーキテクチャに対して変更や機能追加の例を用い

て柔軟性についての確認ができた

.

提案したアーキテク

チャを整理し

,

他の分散データベースシステムの事例に

適用することを今後の課題とする

.

参考文献

[1] AspectJ. http://eclipse.org/aspectj/

[2] H.Ossher and P.Tarr: Multi-Dimensional

Separa-tion of Concerns and the Hyperspace approach, in

Proceedings of the Symposium on Software

Archi-tectures and Component Technology: The State of

the Art in Software Development.kluwer,(2001).

参照

関連したドキュメント

This novel [7+2] cycloaddition with RhI catalyst involves the unprecedented Csp3−Csp3 bond activation of “normal-sized” cyclopentane ring presumably via the intermediate A..

ドリフト流がステップ上段方向のときは拡散係数の小さいD2構造がテラス上を

1)まず、最初に共通グリッドインフラを構築し、その上にバイオ情報基盤と

ソリューション事業は、法人向けの携帯電話の販売や端末・回線管理サービス等のソリューションサービスの提

①物流品質を向上させたい ②冷蔵・冷凍の温度管理を徹底したい ③低コストの物流センターを使用したい ④24時間365日対応の運用したい

自動車販売会社(2社) 自動車 自動車販売拠点設備 1,547 自己資金及び借入金 三菱自動車ファイナンス株式会社 金融 システム投資 他

[r]

契約先業者 ( 売り手 ) 販売事業者 ( 買い手