ヒューマンレジストリ

2008年12月1日

SOA(サービス指向アーキテクチャ)推進派が提唱した新しいサービスの世界の特徴の一つに、レジストリという概念がありました。多くの場合、これは、システムがレジストリ内の有用なサービスを自動的に検索し、それらのサービスを自動的にバインドして利用できるようにする自動化システムとして説明されました。

まあ、コンピュータは時々賢く見えるかもしれませんが、私は特にその考えを信じていませんでした。自動化されたサービス検索の奇妙なエッジケースがあるかもしれませんが、22回中20回は人間プログラマーが検索を行うだろうと私は思っています。

最近、同僚のエリック・ドーレンブルクと、彼がハルヴァルド・スコグルドと共同で構築した、人間が使用および管理するために設計されたサービスレジストリのプロジェクトについて話していました。組織はすでにプロジェクトの開発を管理するためにServiceCustodiansを使用していたため、レジストリはそのコンテキストで機能する必要がありました。これが以下の原則につながりました。

  • 人はサービスを開発し使用するため、人を中心に考えます(UDDI(Universal Description, Discovery, and Integration)ごめんなさい、お疲れ様でした)。
  • 人々が最新の状態を維持するために情報を入力することを期待しないでください。人々はすでに十分に忙しいのです。
  • 人々が読んで貢献しやすいようにします。

レジストリの中核は、人々が特定のサービスに関する情報を簡単に入力できる Wiki です。サービスの作成者だけでなく、それを使用した人も含みます。結局のところ、ユーザーの意見はプロバイダーの意見よりも役立つことがよくあります(製品レビューサイトの方がベンダーサイトよりも多くのトラフィックがあると思います)。

Wiki は人々がサービスを簡単に説明するのに役立ちますが、それは人々が貢献する時間があることに依存しています。Wiki はクリックするだけで済むので簡単にできますが、それでも時間がかかります。そのため、彼らは自動的に収集されたいくつかの有用な情報で、人間の入力をバックアップしました。

  • ソースコード管理システムを調査し、誰が、いつ、どれくらいの量をサービスにコミットしたかを表示するツール。これは、人間の読者が、話をするべき他の人間を見つけるのに役立ちます。たとえしばらく前であっても、ほとんどのコミットを行った人は、サービスのコア設計と目的について多くのことを知っている可能性があります。最近いくつかのコミットを行った人は、最近の使用法と癖についてより多くを知っているかもしれません。
  • CI サーバーとソースコード管理システムからの RSS フィード。
  • 課題追跡システムからのタスクとバグ情報。
  • サービスがどれだけ使用されているか、いつ使用されているかを示すメッセージバスからのトラフィックデータ。また、メッセージバスはサービスのコンシューマーに関する手がかりも提供します。
  • コンシューマーアプリケーション名をキャプチャした EJB コンテナ内のインターセプター。ここでも、誰がサービスを消費しているかを知るためです。これらは、コンシューマーアプリケーション名をキャプチャするためにコンシューマー側で、使用パターンを把握するためにサービス側で使用されました。
  • Ivy の依存関係からの情報。

このようなレジストリのポイントは、情報を得るために多くの自動化された作業を実行するものの、人間が読むことを想定した方法で提示することです。さらに、人間の読者が持つ最も重要な質問は、プロジェクトに取り組んだ人間についてであると理解しています。彼らは誰なのか、いつ取り組んだのか、誰にメールを送るべきか、本当に美味しいカイピリーニャを飲むにはどこへ行くべきか。

謝辞

この機能の多くは ohloh.net から着想を得ています。