分散システム

記事数:(5)

IT活用

遠隔操作を実現するRPCとは?

遠隔手続き呼び出し、略して遠隔手続呼び出しとは、離れた場所にある計算機の仕組みを、まるで自分の計算機上にあるかのように扱うことができる技術です。自分の計算機で動かしている仕組みの一部として、別の計算機にある仕組みを呼び出し、その結果を受け取ることができます。例えて言うなら、電話をかけるようにして、遠くにある計算機に指示を出し、その返事を受け取るようなものです。電話をかける人が、受話器の向こうにいる人に頼みごとをするように、自分の計算機から、ネットワークを通じて別の計算機に処理を依頼します。そして、相手が頼みごとを済ませたら、その結果を電話で教えてくれるように、依頼された計算機は処理結果を呼び出し元の計算機に返します。この技術は、計算機同士が連携して動作する様々な場面で利用されています。例えば、大きな商店の会員情報を管理する際に、会員の購買履歴を記録する計算機と、会員の住所などの個人情報を管理する計算機が別々に存在する場合を考えてみましょう。会員が商品を購入すると、購買履歴を記録する計算機は、遠隔手続呼び出しを使って、個人情報を管理する計算機に会員の住所を問い合わせます。そして、受け取った住所を使って、商品の配送手続きを進めることができます。このように、遠隔手続呼び出しを使うことで、複数の計算機を連携させて複雑な処理を実現したり、一つの計算機にすべての処理を集中させずに負荷を分散させたりすることが可能になります。会社の中の事務連絡網のように、計算機同士が情報をやり取りすることで、より効率的に作業を進めることができるのです。インターネットや会社内の連絡網など、計算機が網の目状に繋がった環境であれば、この技術を使って様々な処理を行うことができます。
IT活用

結果整合性とは何か?

近ごろ、情報の技術がとても進歩し、たくさんの情報を扱う仕組みが必要不可欠になっています。このような多くの情報を扱う大きな仕組みでは、情報をいくつかの機械に分けて保存するのが普通です。しかし、情報をいくつかの機械に分けると、情報の正しさを保つのが難しくなります。そこで出てくるのが、結果整合性という考え方です。これは、情報をいくつかの機械に分けて保存する仕組みでも、情報の正しさを保つための大切な考え方です。この考え方を使うと、仕組みがより使いやすくなり、速く動くようになります。結果整合性とは、簡単に言うと、情報の変化がすぐに全ての機械に反映されなくても、いずれは全ての機械で同じ情報になるようにするしくみのことです。例えば、買い物をしたとき、全体の在庫数はすぐに減りませんが、しばらくすると正しい在庫数に更新されます。この考え方の良いところは、仕組みを止めずに動かせることです。もし、全ての機械で情報をすぐに一致させようとすると、どこかで問題が起きたときに全体の処理が止まってしまうことがあります。しかし、結果整合性を使うと、一部の機械に問題があっても、他の機械はそのまま動き続けることができます。一方で、情報の変化がすぐに反映されないという面もあります。そのため、常に最新の情報を必要とする処理には向いていません。例えば、銀行の預金残高などは、常に正確な情報が必要です。このような場合は、結果整合性ではなく、他の方法で情報の正しさを保つ必要があります。結果整合性は、動画配信や買い物など、多くの情報を扱う様々な場面で使われています。これらのサービスでは、一時的に情報が古くても大きな問題にはならず、むしろ仕組みを止めずに使い続けられることのほうが大切です。このように、結果整合性は、現代の情報化社会を支える重要な技術の一つと言えるでしょう。
IT活用

アウトボックスパターンでデータ整合性を確保

近頃は、複数の仕組が協調して動く分散型の仕組みや、小さな仕組を組み合わせる設計手法が広く使われています。このような仕組みでは、情報の正確さを保つことが大きな課題となっています。複数の仕組みがそれぞれ情報を管理していると、どこかで不具合が発生した場合、全体の整合性が取れなくなる危険性があるからです。 例えば、注文処理と在庫管理が別々の仕組みで動いている場合、注文は受け付けたのに在庫の更新が間に合わず、実際には商品がないにも関わらず注文が確定してしまうといった問題が起こりえます。このような問題を防ぐ有効な方法として、「外部の箱」のような仕組みを使う方法があります。これは、「情報の正確さを保つための箱」のようなイメージで、情報を一時的に保管し、確実に処理を進めるための仕組みです。具体的には、情報を記録するためのデータベースの処理単位と、処理の指示を伝えるための伝達手段を組み合わせることで実現します。データベースの処理単位は、一連の操作をまとめて確実に実行するための仕組みです。例えば、銀行の預金口座からお金を引き出して別の口座に振り込む場合、引き出しと振り込みは必ず両方成功するか、両方失敗するかのどちらかになります。片方だけ成功してしまうと、お金が消えてしまうといった問題が発生するため、処理単位を使うことでこのような事態を防ぎます。伝達手段は、処理の指示を確実に伝えるための仕組みです。例えば、注文情報を受け付けたら、在庫管理システムに在庫を減らすように指示を出します。この指示は、伝達手段を通じて確実に在庫管理システムに届けられます。仮に在庫管理システムが一時的に停止していても、伝達手段が指示を保持しておき、復旧後に処理を実行することで、指示が失われることを防ぎます。このように、データベースの処理単位と伝達手段を組み合わせることで、複数の仕組みが連携する複雑な状況でも、情報の正確さを確実に保つことができます。この「外部の箱」のような仕組みは、システムの信頼性を高める上で非常に重要な役割を果たします。
IT活用

OTM:これからの基幹システム

複数の機械で動く複雑な仕組を扱う場合、それぞれの機械で動く部品同士がうまく連携する必要があります。この連携を助けるのが、仲立ち役となる部品、つまり「間に入る部品」です。間に入る部品の一つに、「もの同士のやり取りを仲立ちする部品」があります。これは、それぞれの部品が互いに必要な情報をやり取りするのを助ける役割を担います。例えば、ある部品が別の部品に「これをください」と要求すると、この仲立ち役が要求を適切な部品に伝え、その返事を要求元に返すといった具合です。しかし、複雑な仕組では、単に情報をやり取りするだけでなく、一連のやり取りをひとまとまりとして扱う必要が生じます。例えば、お金のやり取りで、引き落としと振り込みという二つの動作を別々に扱うと、途中で問題が起きた時に片方だけ完了してしまい、帳尻が合わなくなる恐れがあります。これを防ぐために、一連の動作を「全て成功するか、全て失敗するか」のどちらかにする必要があります。これが「取引のまとめ処理」です。「もの同士のやり取りを仲立ちする部品」に、この「取引のまとめ処理」の機能を付け加えたものが「もの同士の取引を監視する部品」です。これは、それぞれの部品からの要求を監視し、取引のまとめ処理が正しく行われるように管理します。従来の「もの同士のやり取りを仲立ちする部品」は、取引のまとめ処理を十分に考慮していませんでした。そのため、複雑な仕組で使うには限界がありました。「もの同士の取引を監視する部品」は、この点を改良し、より確実で、より多くの機械に対応できるように進化したものです。これにより、大規模で複雑な仕組でも、情報のやり取りを安全かつ確実に管理できるようになりました。
IT活用

ORB:遠隔プログラム連携の要

近年の情報通信技術の急速な発展は目覚ましく、複数の計算機を繋ぎ合わせて複雑な処理を行う分散処理技術は、現代社会の様々な場面で重要な役割を担っています。計算機の処理能力の向上や記憶装置の大容量化、そして高速な通信網の普及といった技術の進歩が、分散処理技術の進化を支えてきたと言えるでしょう。複数の計算機を協調させて動作させることで、一つの計算機では処理しきれないような大規模な計算や、膨大な量の情報の処理が可能になります。また、一つの計算機に障害が発生した場合でも、他の計算機が処理を引き継ぐことで、システム全体の安定性を高めることができます。このような利点から、分散処理技術は、大規模な情報処理システムや、高い信頼性が求められるシステムで広く利用されています。分散処理システムにおいて中心的な役割を担うのが、オブジェクトリクエスト仲介者と呼ばれるソフトウェアです。これは、異なる計算機上で動くプログラム同士が、あたかも隣り合わせで会話するように情報のやり取りを可能にする仲介役を果たします。具体的には、あるプログラムが他の計算機にあるプログラムの機能を利用したい場合、オブジェクトリクエスト仲介者に依頼を送ります。オブジェクトリクエスト仲介者は、依頼を受けた内容に基づいて適切な計算機を探し、その計算機上で目的のプログラムを実行します。そして、実行結果を受け取ると、元のプログラムに返します。このように、オブジェクトリクエスト仲介者を使うことで、利用者はネットワークで繋がった計算機をあたかも自分の計算機の一部であるかのように利用できるようになります。たとえ物理的に遠く離れた場所に計算機があっても、簡単にその機能を利用できるため、システムの構築や運用が容易になります。これにより、システム全体の処理能力の向上、柔軟性、そして拡張性の向上といった様々な効果が期待できます。複数の計算機を効率的に活用することで、より高度な処理を実現し、社会の様々な課題を解決する上で重要な役割を果たすと考えられます。