SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Principles of Transaction Processing
                     Second Edition
                          4章 5 9節	
  




         筑波⼤大学	
  ⼤大学院	
  ビジネス科学研究科	
  経営システム科学専攻
                                            斎藤	
  祐⼀一郎	
  
4.5 キューマネージャ	
  

                            pp.108   112	
  




2	
         Yuichiro Saito	
  
4.5 キューマネージャ	
  
    キューストアのストレージを抽象化したもの。
    キューの属性(所有者権, 最⼤大容量, キュー名, ユーザ
     権限)の作成・破棄・変更に対応する。
    まあ、⾃自分でキューマネージャを作らなくてもいい
     よ、という物と理解してください。

    おまけ
         キューは⽇日本語で「待ち⾏行行列」と訳される事がある。
         メールサーバがとてもいい例になるので、時間があれば
          事例を織り交ぜて説明します。


 3	
                     Yuichiro Saito	
  
4.5 キューメッセージの操作	
  
    主な操作…”enqueue”(投⼊入)と”dequeue”(取出)。
    キューからデータを取り出す事無く、内容を⾛走査す
     る操作を⾏行行えなければならない。
    キュー内のメッセージへのランダムアクセスを⾏行行え
     る必要がある。
         例:特定のIDを持つキュー or メッセージの中にある第三
          のメッセージを読む・取り出す操作。
    Dequeueには、空のキューを扱う2種類のオプショ
     ン。
         ノンブロッキング: キューが空になるという例外が返る
         ブロッキング: キューの読み書きが完了するまで他のス
          レッドは読み書きできない。

 4	
                      Yuichiro Saito	
  
4.5 キューメッセージの操作	
  
    おまけ
         ノンブロッキングは並列性が極めて⾼高い。スレッドセー
          フなのはキューに対し⼀一意に振る追番管理のみでいい。
          メールサーバやソーシャルアプリはこちらが主流。
         だから、 dequeue が起きた時の追番管理のことを考えて
          システムを組まないと、dequeue前後のqueueに不整合
          が起こってトラブルの元になる。
         ブロッキングはデータの排他処理が単純、かつシングル
          スレッドで出来るので⼿手軽。
         See also
          http://www.ibm.com/developerworks/jp/java/
          library/j-jtp04186/
          http://itpro.nikkeibp.co.jp/article/COLUMN/
          20070831/280869/

 5	
                             Yuichiro Saito	
  
4.5 汎⽤用的なメッセージング	
  
    信頼性の⾼高いqueued messageとは何か?
    Enqueue, Dequeue 操作は任意のメッセージの送受
     信に使⽤用できる。
    対向だけでなく、⼀一致した要求・応答のペアとして
     ⽤用いる事が出来るアプリケーションで定義された
     メッセージパターンである。
    揮発性の(即ち障害が起こるとパーになる)キューは、
     このシナリオを適⽤用すると、4.1節で説明した次の
     観点に対応できる。
         負荷分散・優先順位のスケジューリング・利⽤用負荷の
          サーバと通信する

 6	
                    Yuichiro Saito	
  
4.5 タイムアウト	
  
    キューに溜まったメッセージが⻑⾧長らく処理されずに
     残る時は注意が必要。
         補⾜足: 記憶域の容量を逼迫したり、処理能⼒力力低下の原因に
          なるから、でしょう。実際、そうです。
    これを防ぐためにタイムアウト処理を⼊入れる。
    時間内にdequeueされなければ破棄。
    時間内に何らかのアクセスがあれば、そのアクセス
     の時間からタイムアウトを再勘定。

    おまけ
         よい例は、これまたメールサーバ、特にPOP3です。

 7	
                      Yuichiro Saito	
  
4.5 汚染されたメッセージの処理	
  
       Dequeueを中⽌止させるようなキューがあったとする。
            Dequeueできなかったメッセージはキューに残る
            しかしエラーが出続けると永遠に残る…
       これを防ぐためにユーザが定義可能な再試⾏行行回数を設定
        する。
       エラー時の処理は、「エラーキュー」に移動してその後
        に⼿手動処理。または、実装に応じてアプリケーション・
        キューマネージャ・ディスパッチャが動きの定義を⾏行行え
        る。

       おまけ
            メールサーバだと、何度やってもメールを送れなかったサーバ
             があった場合、ユーザにエラーメールを返す。	
  

     8	
                      Yuichiro Saito	
  
4.5 メッセージの順序	
  




9	
                Yuichiro Saito	
  
4.6 書き込み予約	
  

                               pp.112   113	
  




10	
      Yuichiro Saito	
  
4.6 発⾏行行と購読(を通じた同報送信) 1	
  
      キュー通信を⽤用い、各メッセージは単⼀一の受信者(メッ
       セージをデキューしたプロセスのこと)がいる。
      対照的に、複数の受信者にメッセージを送信する必要が
       ある⼀一部のアプリケーションがある。
             例えば、株式のシステム。⼤大きな株価変動のアラートを同報送
              信する。
             同報送信すれば、送信者個別に送信するより便利である。
      ブロードキャストのために、発⾏行行と購読(publish-
       subscribe)を⽤用いる事が出来る。
             発⾏行行時のタグはメッセージの種別を表す。
             購読者は、購読したいメッセージの種別を仲介者に登録。
             発⾏行行者(キュー登録者)からメッセージを受け取り次第、仲介者
              は該当種別を購読した者にメッセージを同報送信。


     11	
                      Yuichiro Saito	
  
4.6 発⾏行行と購読 2	
  
    本パラダイムは、3つの⽅方法でキューイングされる
     ような形である。
    第⼀一に、送信者・受信者は直接通信しないが、仲介
     者と通信する。仲介者がキューマネージャというこ
     と。
    第⼆二に、メッセージはトランザクションコンテキス
     ト内で送受信可能。そのため、中⽌止した場合は送受
     信操作は取り消される。
    第三に、購読者はプッシュ・プルモデルのいずれか
     を使⽤用可能。
         プルだと、メッセージをポーリング可能。
         プッシュだと、ディスパッチャが受信を管理する。

 12	
                  Yuichiro Saito	
  
4.6 発⾏行行と購読 3	
  
    キューイングと発⾏行行と購読のシステム間での類似点。
         多くの場合、共通のキューの管理を⾏行行う実装を⾏行行ってい
          る。JMSの開発以来、⼀一般的。
         ほかに、CORBAベースの通知サービス、WS-Eventingま
          たはWS-Notification。
    より⾼高度なバージョンでは、名前空間をグループ化
     する事が出来る。
    メッセージ内容は、(ここではそう⾔言われていない
     が)key-valueのvalue部分で把握できる。
    購読者情報を永続的・揮発的にするかを選択できる。
    購読者が受信できる状態に無いとき、再送できる。
     ただし、揮発的である場合は再送信は⾏行行われない。

 13	
                      Yuichiro Saito	
  
4.7 その他のメッセージ指向
                  ミドルウェア	
  
                                     pp.113   115	
  




14	
            Yuichiro Saito	
  
4.7 その他のメッセージ指向ミドルウェア	
  
    多くのTPシステムは、関連する機能を提供する他の
     TPシステムと組み合わされる。2.4節でその例を⾒見見
     た。そのためにはシステムの統合が必要。
    しかし、統合には3つの差異を調整しなければなら
     ない。
         通信プロトコル
         アプリケーションの機能
         メッセージ形式
    2つのアーキテクチャがそれを両⽴立立させられる。
         ブローカーベース	
  アーキテクチャ
          …送り出す時に変換
         バスベース	
  アーキテクチャ
          …受け取る時に変換	
  
 15	
                      Yuichiro Saito	
  
4.7 ブローカーベース	
  アーキテクチャ	
  
    メッセージサーバが異種アプリ(Fig 4.10)間のブ
     リッジを提供。翻訳してくれるような感じ。
    3つの差異に対して3つの機能を提供する。
         必要な通信プロトコルすべてを採⽤用。通史相⼿手毎に通じ
          るプロトコルに変換してくれる。
         各々が提供する機能の和集合を提供。他の技術に依存し
          ない均⼀一なインタフェースを使⽤用し機能を呼び出せる。
         メッセージの変換を⾏行行う。計算(⽇日付等)・テーブル(国
          コード等)・為替等の外部ソースからのルックアップを⽤用
          いてもよい。ここのパラメータではなく構造化⽂文章(XML
          等)もサポート。
    ルーティング、ロギング、監査、パフォーマンスモ
     ニタ、運管等の機能も提供。	
  

 16	
                    Yuichiro Saito	
  
4.7 バスベース	
  アーキテクチャ	
  
    全TPアプリケーションは同⼀一のプロトコルで呼び出
     される。WCFやArtixなど。
    Fig 4.11に⽰示すように、共通のプロトコルからシス
     テム固有のものに変換する必要がある。
    全TPを同⼀一のプロトコルを使って呼び出せる。例え
     ば、WSDLを使⽤用して定義され、UDDIを使⽤用して呼
     び出す。
         おまけ: ただ、最近のWeb系はJSONでやりとりして内部
          で変換というのが多いです。
    ブローカーがいないためメッセージの変換責任をク
     ライアントが負わなければならない。これは翻訳の
     共通ライブラリを使⽤用して⾏行行う。	
  

 17	
                     Yuichiro Saito	
  
4.7 各々の⽐比較	
  
    (先にも述べましたが)クライアント側で変換するの
     がブローカーベース、サーバ側で変換するのがバス
     ベース。
    しかしながら、バスベースのアーキテクチャでこの
     サブシステムを提供しようとするのは、冴えない
     (muddyな)やり⽅方である。
    どちらの視点で⾒見見たか、が問題。説明します。
    どちらにしても、ディレクトリサービスによってイ
     ンタフェース定義を公開する必要がある。
    パラメータ変換の点の違いは、機能を実装する場所
     の選択の問題である。	
  

 18	
             Yuichiro Saito	
  
4.8 キューイングをサポートした
                     製品と標準	
  
                                       pp.115   118	
  




19	
              Yuichiro Saito	
  
4.8 製品紹介	
  
    これまで解説してきたキューの機能について、各⾃自
     のミドルウェアがどのように実装しているのかを解
     説している。
    IBM Websphere MQ
         プラットフォーム間での透過的なメッセージ交換が可能
          (Fig 4.12)
    Oracle Streams AQ
         メッセージの送受信者の不正介⼊入を防⽌止できる。




 20	
                    Yuichiro Saito	
  
4.8 特徴をまとめると…	
  
    メッセージを受信者の明⽰示的なセットでエンキュー
     可能。
    キュー処理のバッチ処理が可能。
    キューを取り出す時に削除せずに、SELECTクエ裏
     として実⾏行行可能。即ち、デキューされるメッセージ
     のスナップショットを取得している。
    メッセージを原始性を保ちながら複雑なグループに
     分割してエンキューできる。
    メッセージの到着を待って、複数のキューを待ち受
     ける(listen)事が出来る。
    メッセージの内容を取得する事無く、デキューでき
     る。メッセージの⼀一括削除時に便利。	
  

 21	
               Yuichiro Saito	
  
4.9 まとめ	
  

                              pp.118,119	
  




22	
     Yuichiro Saito	
  
4.9 キューの利点	
  
    サーバがダウンしていても、リクエストを送る事が
     出来る。
    サーバは、クライアントがダウンしていても、リク
     エストを返す事が出来る。
    通信障害が起きても、応答が失われたり、不確実な
     結果になる事は無い。
    負荷分散が容易。
    リクエストと関係がある他のリクエストに対し、優
     先順位をつける事が出来る。	
  



 23	
             Yuichiro Saito	
  
4.9 基本操作	
  
    メッセージに対する「エンキュー」「デキュー」
     「キューの⾛走査」「キー指定によるアクセス」
    キューの作成と破棄。
    キュー属性変更。
    キューの開始と停⽌止。	
  




 24	
             Yuichiro Saito	
  

Contenu connexe

En vedette

Cronograma Capacitação Gestão de Projetos - 2012
Cronograma Capacitação Gestão de Projetos - 2012Cronograma Capacitação Gestão de Projetos - 2012
Cronograma Capacitação Gestão de Projetos - 2012
Portal Voluntários Online
 
자료구조 01 최종 보고서
자료구조 01 최종 보고서자료구조 01 최종 보고서
자료구조 01 최종 보고서
pkok15
 
TeamLabLT20120630
TeamLabLT20120630TeamLabLT20120630
TeamLabLT20120630
tayama0324
 
Documento 1
Documento 1Documento 1
Documento 1
zol963
 
The Ultimate Marketing Stack
The Ultimate Marketing StackThe Ultimate Marketing Stack
The Ultimate Marketing Stack
Tony Davis
 

En vedette (20)

Cronograma Capacitação Gestão de Projetos - 2012
Cronograma Capacitação Gestão de Projetos - 2012Cronograma Capacitação Gestão de Projetos - 2012
Cronograma Capacitação Gestão de Projetos - 2012
 
자료구조 01 최종 보고서
자료구조 01 최종 보고서자료구조 01 최종 보고서
자료구조 01 최종 보고서
 
TeamLabLT20120630
TeamLabLT20120630TeamLabLT20120630
TeamLabLT20120630
 
Guardias De Seguridad Privada
Guardias De Seguridad PrivadaGuardias De Seguridad Privada
Guardias De Seguridad Privada
 
Tic En La Docencia
Tic En La DocenciaTic En La Docencia
Tic En La Docencia
 
Anos 80 / 90
Anos 80 / 90Anos 80 / 90
Anos 80 / 90
 
Módulo II
Módulo IIMódulo II
Módulo II
 
2012.07.02新聞簡報
2012.07.02新聞簡報2012.07.02新聞簡報
2012.07.02新聞簡報
 
TRAJE RÁDIO RAP
TRAJE RÁDIO RAPTRAJE RÁDIO RAP
TRAJE RÁDIO RAP
 
קיץ
קיץקיץ
קיץ
 
Documento 1
Documento 1Documento 1
Documento 1
 
Futbolsitesi
FutbolsitesiFutbolsitesi
Futbolsitesi
 
Vanessa Aguiar de Jesus
Vanessa Aguiar de JesusVanessa Aguiar de Jesus
Vanessa Aguiar de Jesus
 
Lugares
LugaresLugares
Lugares
 
Ingles 4
Ingles 4Ingles 4
Ingles 4
 
The Ultimate Marketing Stack
The Ultimate Marketing StackThe Ultimate Marketing Stack
The Ultimate Marketing Stack
 
01 reproducción alteraciones
01 reproducción alteraciones01 reproducción alteraciones
01 reproducción alteraciones
 
Modulemaking
ModulemakingModulemaking
Modulemaking
 
Jaki to kraj
Jaki to krajJaki to kraj
Jaki to kraj
 
SCENARIOS, STORIES, USE CASES 1章, 2章
SCENARIOS, STORIES, USE CASES 1章, 2章SCENARIOS, STORIES, USE CASES 1章, 2章
SCENARIOS, STORIES, USE CASES 1章, 2章
 

Similaire à Principles of Transaction Processing Second Edition 4章 5~9節

Principles of Transaction Processing Second Edition 9章 4~9節
Principles of Transaction Processing Second Edition 9章 4~9節Principles of Transaction Processing Second Edition 9章 4~9節
Principles of Transaction Processing Second Edition 9章 4~9節
Yuichiro Saito
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
Masataka MIZUNO
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3
openrtm
 
Tech Ed 2010 Japan T1-303 Exchange Server 2010 と次世代 Exchange Online の共存
Tech Ed 2010 Japan T1-303 Exchange Server 2010 と次世代 Exchange Online の共存Tech Ed 2010 Japan T1-303 Exchange Server 2010 と次世代 Exchange Online の共存
Tech Ed 2010 Japan T1-303 Exchange Server 2010 と次世代 Exchange Online の共存
kumo2010
 
Beginning java ee 6 13章メッセージ通信
Beginning java ee 6 13章メッセージ通信Beginning java ee 6 13章メッセージ通信
Beginning java ee 6 13章メッセージ通信
zuisener .
 
Beginning java ee 6 13章メッセージ通信up
Beginning java ee 6 13章メッセージ通信upBeginning java ee 6 13章メッセージ通信up
Beginning java ee 6 13章メッセージ通信up
zuisener .
 
Beginning Java EE 6 勉強会(5) #bje_study
Beginning Java EE 6 勉強会(5) #bje_studyBeginning Java EE 6 勉強会(5) #bje_study
Beginning Java EE 6 勉強会(5) #bje_study
zuisener .
 
Principles of Transaction Processing Second Edition 7章 1, 2節
Principles of Transaction Processing Second Edition 7章 1, 2節Principles of Transaction Processing Second Edition 7章 1, 2節
Principles of Transaction Processing Second Edition 7章 1, 2節
Yuichiro Saito
 
CloudStack User Inferface
CloudStack User InferfaceCloudStack User Inferface
CloudStack User Inferface
Kimihiko Kitase
 
COBOL技術者のためのJava勉強会
COBOL技術者のためのJava勉強会COBOL技術者のためのJava勉強会
COBOL技術者のためのJava勉強会
naka hide
 

Similaire à Principles of Transaction Processing Second Edition 4章 5~9節 (20)

【学習メモ#11th】12ステップで作る組込みOS自作入門
【学習メモ#11th】12ステップで作る組込みOS自作入門 【学習メモ#11th】12ステップで作る組込みOS自作入門
【学習メモ#11th】12ステップで作る組込みOS自作入門
 
Principles of Transaction Processing Second Edition 9章 4~9節
Principles of Transaction Processing Second Edition 9章 4~9節Principles of Transaction Processing Second Edition 9章 4~9節
Principles of Transaction Processing Second Edition 9章 4~9節
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3
 
Tech Ed 2010 Japan T1-303 Exchange Server 2010 と次世代 Exchange Online の共存
Tech Ed 2010 Japan T1-303 Exchange Server 2010 と次世代 Exchange Online の共存Tech Ed 2010 Japan T1-303 Exchange Server 2010 と次世代 Exchange Online の共存
Tech Ed 2010 Japan T1-303 Exchange Server 2010 と次世代 Exchange Online の共存
 
Redmine導入しました(公開)
Redmine導入しました(公開)Redmine導入しました(公開)
Redmine導入しました(公開)
 
Beginning java ee 6 13章メッセージ通信
Beginning java ee 6 13章メッセージ通信Beginning java ee 6 13章メッセージ通信
Beginning java ee 6 13章メッセージ通信
 
Beginning java ee 6 13章メッセージ通信up
Beginning java ee 6 13章メッセージ通信upBeginning java ee 6 13章メッセージ通信up
Beginning java ee 6 13章メッセージ通信up
 
Beginning Java EE 6 勉強会(5) #bje_study
Beginning Java EE 6 勉強会(5) #bje_studyBeginning Java EE 6 勉強会(5) #bje_study
Beginning Java EE 6 勉強会(5) #bje_study
 
Principles of Transaction Processing Second Edition 7章 1, 2節
Principles of Transaction Processing Second Edition 7章 1, 2節Principles of Transaction Processing Second Edition 7章 1, 2節
Principles of Transaction Processing Second Edition 7章 1, 2節
 
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018
 
CloudStack User Inferface
CloudStack User InferfaceCloudStack User Inferface
CloudStack User Inferface
 
Oracle Cloud Infrastructure Streaming Service 技術詳説
Oracle Cloud Infrastructure Streaming Service 技術詳説Oracle Cloud Infrastructure Streaming Service 技術詳説
Oracle Cloud Infrastructure Streaming Service 技術詳説
 
Wsfc basic 130720
Wsfc basic 130720Wsfc basic 130720
Wsfc basic 130720
 
オープンソースを利用したモデル駆動トライアル
オープンソースを利用したモデル駆動トライアルオープンソースを利用したモデル駆動トライアル
オープンソースを利用したモデル駆動トライアル
 
Istio, Kubernetes and Cloud Foundry
Istio, Kubernetes and Cloud FoundryIstio, Kubernetes and Cloud Foundry
Istio, Kubernetes and Cloud Foundry
 
読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム
 
Clrh 110716 wcfwf
Clrh 110716 wcfwfClrh 110716 wcfwf
Clrh 110716 wcfwf
 
20120117 13 meister-elasti_cache-public
20120117 13 meister-elasti_cache-public20120117 13 meister-elasti_cache-public
20120117 13 meister-elasti_cache-public
 
COBOL技術者のためのJava勉強会
COBOL技術者のためのJava勉強会COBOL技術者のためのJava勉強会
COBOL技術者のためのJava勉強会
 

Plus de Yuichiro Saito

FinTech スタートアップの セキュリティチェックシートとの向き合い方
FinTech スタートアップのセキュリティチェックシートとの向き合い方FinTech スタートアップのセキュリティチェックシートとの向き合い方
FinTech スタートアップの セキュリティチェックシートとの向き合い方
Yuichiro Saito
 
コミュニケーションスキルを重視したソフトウェア技術者教育手法の研究
コミュニケーションスキルを重視したソフトウェア技術者教育手法の研究コミュニケーションスキルを重視したソフトウェア技術者教育手法の研究
コミュニケーションスキルを重視したソフトウェア技術者教育手法の研究
Yuichiro Saito
 

Plus de Yuichiro Saito (15)

ワークショップ FinTech アーキテクチャ
ワークショップFinTech アーキテクチャワークショップFinTech アーキテクチャ
ワークショップ FinTech アーキテクチャ
 
FinTech スタートアップの セキュリティチェックシートとの向き合い方
FinTech スタートアップのセキュリティチェックシートとの向き合い方FinTech スタートアップのセキュリティチェックシートとの向き合い方
FinTech スタートアップの セキュリティチェックシートとの向き合い方
 
クラウドを積極活用した サービスの開発のために
クラウドを積極活用したサービスの開発のためにクラウドを積極活用したサービスの開発のために
クラウドを積極活用した サービスの開発のために
 
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 PresentationMicrosoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
 
Simple steps and tips to improve IT infrastructure operations #yapcasia #yapc...
Simple steps and tips to improve IT infrastructure operations #yapcasia #yapc...Simple steps and tips to improve IT infrastructure operations #yapcasia #yapc...
Simple steps and tips to improve IT infrastructure operations #yapcasia #yapc...
 
我が家の運用環境 - (第1回 IT × 家事育児 LT大会&交流会 LT資料)
我が家の運用環境 - (第1回 IT × 家事育児 LT大会&交流会 LT資料)我が家の運用環境 - (第1回 IT × 家事育児 LT大会&交流会 LT資料)
我が家の運用環境 - (第1回 IT × 家事育児 LT大会&交流会 LT資料)
 
ある現役エンジニアからの提案 (高専生向け進路指導関連講演)
ある現役エンジニアからの提案 (高専生向け進路指導関連講演)ある現役エンジニアからの提案 (高専生向け進路指導関連講演)
ある現役エンジニアからの提案 (高専生向け進路指導関連講演)
 
hb-agent 秘伝のタレからソースコードへ (ITインフラ 業務自動化現状確認会 ) #infra_auto
hb-agent 秘伝のタレからソースコードへ (ITインフラ 業務自動化現状確認会 ) #infra_autohb-agent 秘伝のタレからソースコードへ (ITインフラ 業務自動化現状確認会 ) #infra_auto
hb-agent 秘伝のタレからソースコードへ (ITインフラ 業務自動化現状確認会 ) #infra_auto
 
春らんまん!カメラ女子・男子をはじめよう
春らんまん!カメラ女子・男子をはじめよう春らんまん!カメラ女子・男子をはじめよう
春らんまん!カメラ女子・男子をはじめよう
 
コミュニケーションスキルを重視したソフトウェア技術者教育手法の研究
コミュニケーションスキルを重視したソフトウェア技術者教育手法の研究コミュニケーションスキルを重視したソフトウェア技術者教育手法の研究
コミュニケーションスキルを重視したソフトウェア技術者教育手法の研究
 
SCENARIOS, STORIES, USE CASES 10章
SCENARIOS, STORIES, USE CASES 10章SCENARIOS, STORIES, USE CASES 10章
SCENARIOS, STORIES, USE CASES 10章
 
写真で見るGPGPUサーバの選び方 (hbstudy#18)
写真で見るGPGPUサーバの選び方 (hbstudy#18)写真で見るGPGPUサーバの選び方 (hbstudy#18)
写真で見るGPGPUサーバの選び方 (hbstudy#18)
 
VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)
VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)
VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)
 
進路比較表
進路比較表進路比較表
進路比較表
 
言語処理を用いた (株式銘柄)相関関係取得の紹介
言語処理を用いた (株式銘柄)相関関係取得の紹介言語処理を用いた (株式銘柄)相関関係取得の紹介
言語処理を用いた (株式銘柄)相関関係取得の紹介
 

Dernier

The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
 

Dernier (8)

東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 

Principles of Transaction Processing Second Edition 4章 5~9節

  • 1. Principles of Transaction Processing Second Edition 4章 5 9節   筑波⼤大学  ⼤大学院  ビジネス科学研究科  経営システム科学専攻 斎藤  祐⼀一郎  
  • 2. 4.5 キューマネージャ   pp.108 112   2   Yuichiro Saito  
  • 3. 4.5 キューマネージャ     キューストアのストレージを抽象化したもの。   キューの属性(所有者権, 最⼤大容量, キュー名, ユーザ 権限)の作成・破棄・変更に対応する。   まあ、⾃自分でキューマネージャを作らなくてもいい よ、という物と理解してください。   おまけ   キューは⽇日本語で「待ち⾏行行列」と訳される事がある。   メールサーバがとてもいい例になるので、時間があれば 事例を織り交ぜて説明します。 3   Yuichiro Saito  
  • 4. 4.5 キューメッセージの操作     主な操作…”enqueue”(投⼊入)と”dequeue”(取出)。   キューからデータを取り出す事無く、内容を⾛走査す る操作を⾏行行えなければならない。   キュー内のメッセージへのランダムアクセスを⾏行行え る必要がある。   例:特定のIDを持つキュー or メッセージの中にある第三 のメッセージを読む・取り出す操作。   Dequeueには、空のキューを扱う2種類のオプショ ン。   ノンブロッキング: キューが空になるという例外が返る   ブロッキング: キューの読み書きが完了するまで他のス レッドは読み書きできない。 4   Yuichiro Saito  
  • 5. 4.5 キューメッセージの操作     おまけ   ノンブロッキングは並列性が極めて⾼高い。スレッドセー フなのはキューに対し⼀一意に振る追番管理のみでいい。 メールサーバやソーシャルアプリはこちらが主流。   だから、 dequeue が起きた時の追番管理のことを考えて システムを組まないと、dequeue前後のqueueに不整合 が起こってトラブルの元になる。   ブロッキングはデータの排他処理が単純、かつシングル スレッドで出来るので⼿手軽。   See also http://www.ibm.com/developerworks/jp/java/ library/j-jtp04186/ http://itpro.nikkeibp.co.jp/article/COLUMN/ 20070831/280869/ 5   Yuichiro Saito  
  • 6. 4.5 汎⽤用的なメッセージング     信頼性の⾼高いqueued messageとは何か?   Enqueue, Dequeue 操作は任意のメッセージの送受 信に使⽤用できる。   対向だけでなく、⼀一致した要求・応答のペアとして ⽤用いる事が出来るアプリケーションで定義された メッセージパターンである。   揮発性の(即ち障害が起こるとパーになる)キューは、 このシナリオを適⽤用すると、4.1節で説明した次の 観点に対応できる。   負荷分散・優先順位のスケジューリング・利⽤用負荷の サーバと通信する 6   Yuichiro Saito  
  • 7. 4.5 タイムアウト     キューに溜まったメッセージが⻑⾧長らく処理されずに 残る時は注意が必要。   補⾜足: 記憶域の容量を逼迫したり、処理能⼒力力低下の原因に なるから、でしょう。実際、そうです。   これを防ぐためにタイムアウト処理を⼊入れる。   時間内にdequeueされなければ破棄。   時間内に何らかのアクセスがあれば、そのアクセス の時間からタイムアウトを再勘定。   おまけ   よい例は、これまたメールサーバ、特にPOP3です。 7   Yuichiro Saito  
  • 8. 4.5 汚染されたメッセージの処理     Dequeueを中⽌止させるようなキューがあったとする。   Dequeueできなかったメッセージはキューに残る   しかしエラーが出続けると永遠に残る…   これを防ぐためにユーザが定義可能な再試⾏行行回数を設定 する。   エラー時の処理は、「エラーキュー」に移動してその後 に⼿手動処理。または、実装に応じてアプリケーション・ キューマネージャ・ディスパッチャが動きの定義を⾏行行え る。   おまけ   メールサーバだと、何度やってもメールを送れなかったサーバ があった場合、ユーザにエラーメールを返す。   8   Yuichiro Saito  
  • 9. 4.5 メッセージの順序   9   Yuichiro Saito  
  • 10. 4.6 書き込み予約   pp.112 113   10   Yuichiro Saito  
  • 11. 4.6 発⾏行行と購読(を通じた同報送信) 1     キュー通信を⽤用い、各メッセージは単⼀一の受信者(メッ セージをデキューしたプロセスのこと)がいる。   対照的に、複数の受信者にメッセージを送信する必要が ある⼀一部のアプリケーションがある。   例えば、株式のシステム。⼤大きな株価変動のアラートを同報送 信する。   同報送信すれば、送信者個別に送信するより便利である。   ブロードキャストのために、発⾏行行と購読(publish- subscribe)を⽤用いる事が出来る。   発⾏行行時のタグはメッセージの種別を表す。   購読者は、購読したいメッセージの種別を仲介者に登録。   発⾏行行者(キュー登録者)からメッセージを受け取り次第、仲介者 は該当種別を購読した者にメッセージを同報送信。 11   Yuichiro Saito  
  • 12. 4.6 発⾏行行と購読 2     本パラダイムは、3つの⽅方法でキューイングされる ような形である。   第⼀一に、送信者・受信者は直接通信しないが、仲介 者と通信する。仲介者がキューマネージャというこ と。   第⼆二に、メッセージはトランザクションコンテキス ト内で送受信可能。そのため、中⽌止した場合は送受 信操作は取り消される。   第三に、購読者はプッシュ・プルモデルのいずれか を使⽤用可能。   プルだと、メッセージをポーリング可能。   プッシュだと、ディスパッチャが受信を管理する。 12   Yuichiro Saito  
  • 13. 4.6 発⾏行行と購読 3     キューイングと発⾏行行と購読のシステム間での類似点。   多くの場合、共通のキューの管理を⾏行行う実装を⾏行行ってい る。JMSの開発以来、⼀一般的。   ほかに、CORBAベースの通知サービス、WS-Eventingま たはWS-Notification。   より⾼高度なバージョンでは、名前空間をグループ化 する事が出来る。   メッセージ内容は、(ここではそう⾔言われていない が)key-valueのvalue部分で把握できる。   購読者情報を永続的・揮発的にするかを選択できる。   購読者が受信できる状態に無いとき、再送できる。 ただし、揮発的である場合は再送信は⾏行行われない。 13   Yuichiro Saito  
  • 14. 4.7 その他のメッセージ指向 ミドルウェア   pp.113 115   14   Yuichiro Saito  
  • 15. 4.7 その他のメッセージ指向ミドルウェア     多くのTPシステムは、関連する機能を提供する他の TPシステムと組み合わされる。2.4節でその例を⾒見見 た。そのためにはシステムの統合が必要。   しかし、統合には3つの差異を調整しなければなら ない。   通信プロトコル   アプリケーションの機能   メッセージ形式   2つのアーキテクチャがそれを両⽴立立させられる。   ブローカーベース  アーキテクチャ …送り出す時に変換   バスベース  アーキテクチャ …受け取る時に変換   15   Yuichiro Saito  
  • 16. 4.7 ブローカーベース  アーキテクチャ     メッセージサーバが異種アプリ(Fig 4.10)間のブ リッジを提供。翻訳してくれるような感じ。   3つの差異に対して3つの機能を提供する。   必要な通信プロトコルすべてを採⽤用。通史相⼿手毎に通じ るプロトコルに変換してくれる。   各々が提供する機能の和集合を提供。他の技術に依存し ない均⼀一なインタフェースを使⽤用し機能を呼び出せる。   メッセージの変換を⾏行行う。計算(⽇日付等)・テーブル(国 コード等)・為替等の外部ソースからのルックアップを⽤用 いてもよい。ここのパラメータではなく構造化⽂文章(XML 等)もサポート。   ルーティング、ロギング、監査、パフォーマンスモ ニタ、運管等の機能も提供。   16   Yuichiro Saito  
  • 17. 4.7 バスベース  アーキテクチャ     全TPアプリケーションは同⼀一のプロトコルで呼び出 される。WCFやArtixなど。   Fig 4.11に⽰示すように、共通のプロトコルからシス テム固有のものに変換する必要がある。   全TPを同⼀一のプロトコルを使って呼び出せる。例え ば、WSDLを使⽤用して定義され、UDDIを使⽤用して呼 び出す。   おまけ: ただ、最近のWeb系はJSONでやりとりして内部 で変換というのが多いです。   ブローカーがいないためメッセージの変換責任をク ライアントが負わなければならない。これは翻訳の 共通ライブラリを使⽤用して⾏行行う。   17   Yuichiro Saito  
  • 18. 4.7 各々の⽐比較     (先にも述べましたが)クライアント側で変換するの がブローカーベース、サーバ側で変換するのがバス ベース。   しかしながら、バスベースのアーキテクチャでこの サブシステムを提供しようとするのは、冴えない (muddyな)やり⽅方である。   どちらの視点で⾒見見たか、が問題。説明します。   どちらにしても、ディレクトリサービスによってイ ンタフェース定義を公開する必要がある。   パラメータ変換の点の違いは、機能を実装する場所 の選択の問題である。   18   Yuichiro Saito  
  • 19. 4.8 キューイングをサポートした 製品と標準   pp.115 118   19   Yuichiro Saito  
  • 20. 4.8 製品紹介     これまで解説してきたキューの機能について、各⾃自 のミドルウェアがどのように実装しているのかを解 説している。   IBM Websphere MQ   プラットフォーム間での透過的なメッセージ交換が可能 (Fig 4.12)   Oracle Streams AQ   メッセージの送受信者の不正介⼊入を防⽌止できる。 20   Yuichiro Saito  
  • 21. 4.8 特徴をまとめると…     メッセージを受信者の明⽰示的なセットでエンキュー 可能。   キュー処理のバッチ処理が可能。   キューを取り出す時に削除せずに、SELECTクエ裏 として実⾏行行可能。即ち、デキューされるメッセージ のスナップショットを取得している。   メッセージを原始性を保ちながら複雑なグループに 分割してエンキューできる。   メッセージの到着を待って、複数のキューを待ち受 ける(listen)事が出来る。   メッセージの内容を取得する事無く、デキューでき る。メッセージの⼀一括削除時に便利。   21   Yuichiro Saito  
  • 22. 4.9 まとめ   pp.118,119   22   Yuichiro Saito  
  • 23. 4.9 キューの利点     サーバがダウンしていても、リクエストを送る事が 出来る。   サーバは、クライアントがダウンしていても、リク エストを返す事が出来る。   通信障害が起きても、応答が失われたり、不確実な 結果になる事は無い。   負荷分散が容易。   リクエストと関係がある他のリクエストに対し、優 先順位をつける事が出来る。   23   Yuichiro Saito  
  • 24. 4.9 基本操作     メッセージに対する「エンキュー」「デキュー」 「キューの⾛走査」「キー指定によるアクセス」   キューの作成と破棄。   キュー属性変更。   キューの開始と停⽌止。   24   Yuichiro Saito