UECジャーナル

ユニケージ開発手法 完全分散型システム

完全分散

日本語では「分かる(understand)」と「分ける(divide)」には同じ漢字が充てられている。理解することと分類するということに本質的な類似性があることが感じられる。ユニケージ開発手法はこの発想「理解=分類」をサーバ配置、ソフトウェア配置、データ配置に反映させている。

分けることにより、サーバやソフトウェアやデータの役割が明確化する。役割が明確になった対象には、役割以外の余計な機能や内容は持たせない。この結果、処理は無駄がなくなり高速になる。機能は必要になったところで積み上げればよいという発想である。

2つめの考えは「完全」である。完全とは自立可能という意味である。自立サーバ群はそれぞれ自分の仕事を実行し、仕事の結果を他サーバに対して必要に応じてコピーし連携する。人間社会は、それ自体が自立した個の集合体であり、個のサポートを行うシステムも人間社会と同じのアナロジを採用するのが無理のない発想だと考えている。

完全分散型システムの各サーバは個の仕事と対になっていて、互いに仕事の結果を交換しながら全体の仕事を進めていく。このサーバネットワーク形態をコンピューターズ・コミュニティと呼ぶ。疎結合された各サーバは、環境や内的要因にあわせてその数や組み合わせ方を変えていくことができる。

共有と全有

自立サーバには自身が必要とするすべてのデータがある。全体でみればそのデータには重複がでるだろうが、ユニケージ開発手法では重複分散を積極的に認めている。そして、同じデータを一箇所に集めるのでなく、同じデータを必要とするところにコピーして配るようにしている。すなわち「共有」するものは「全有」してよいと考える。

「全有」することにより、各自は自分の都合でデータを加工したり、アレンジすることができる。全有データはサーバ単位にとどまらず、サーバのアプリケーション単位にまで及ぶ。つまり各アプリケーションは、自身が必要とするデータを自分自身で独占所有できるようにデータを配置する(LEVEL4)。

アプリケーション自身にも全有の考え方が適用され、各アプリケーションはいわゆる共有ルーチンを呼び出すことはない。 似たような処理があっても、それぞれのプログラムの中で完結する。プログラム内部構造も共有分が錯綜しないよう、 ワンプログラムワンフローの原則を適用している。ユニケージ開発手法はシェル関数の記述さえも基本的には禁止している。

このような全有ポリシーにより各サーバ、各アプリケーションの完全独立性が確保され、自身の仕事を自身のリソースと能力で如何ようにも進歩させられる環境を作っている。ユニケージ開発手法は仕事のあり方として、他に迷惑をかけず、他に相談することはあっても許可をもらう必要なく、自律的に仕事ができることを理想としている。

ユニケージユニバーサル・シェル・プログラミング研究所の登録商標。

※ 2012年7月から始まる教育講座に合わせて、従来の「ユニケージ」または「ユニケージ方法論」は「ユニケージ開発手法」へ名称を統一。

※ 用語統一に合わせ、2012年9月から従来の「完全(完結)分散」は「完全分散」と名称を変更。

last modified: 2014-01-13 16:01:13