トップスポーツチームの監督に教わる秘訣
この論文では、氏が発見した原則を要約し、その原則をいかにしてソフトウェア開発に応用するかを説明します。
作者 Gavin Terrill, 翻訳者 沼田 暁子 投稿日 2008年6月13日 午後6時19分
Neo4j(サイト・英語)は組み込み型で高性能な軽量の永続化ソリューションである。ネットワーク・データベース・モデルに基づいており、これは近ごろ高い関心を得ている。
Neoはネットベース-ネットワーク指向データベース-であり、組み込み型で、ディスクベースの、完全にトランザクションに対応したJava永続化エンジンです。テーブルよりもむしろ、ネットワークの中に構造化されたデータを保存します。ネットワーク(または数学用語ではグラフ)はデータ構造が柔軟で、もっとアジャイルで素早い開発のスタイルを可能にします。
Neoは、成熟していて堅牢なデータベースの全ての機能を備えた、高性能なグラフエンジンと考えることができます。プログラマは、厳密で静的なテーブルよりも、オブジェクト指向の柔軟なネットワーク構造を扱う仕事をします-それにもかかわらず、完全にトランザクションに対応した、エンタプライズ用途に耐え得るデータベースの全ての恩恵を享受します。
Neo を興味深いものにしているのは、いわゆる「ネットワーク指向データベース」を使用していることである。このモデルでは、ドメインのデータは「ノード空間」- ノードや関連、プロパティ(キーと値のペア)のネットワーク -で表現される。関係モデルのテーブルと対比すると、行と列である。関連はファーストクラスのオブジェクトで、プロパティでアノテートされることもあり、ノードが相互に作用するコンテキストを明らかにする。ネットワークモデルは、例えばセマンティックWebアプリケーションのように、自然に階層的に構成される問題領域によく適している。Neoを作成した人たちは、階層的で半構造化されたデータは従来の関係データベースモデルには適していないと考えた。
Neoは比較的新しいオープンソースプロジェクトであるが、1億を超えるノードや関連、プロパティを扱う製品アプリケーションで使用されており、エンタプライズに求められる堅牢性や性能の要件を満たしている。
JTA とJTS、分散ACIDトランザクションの2相コミットを完全にサポートしており、隔離レベルの設定が可能で、トランザクションのリカバリは試練に耐えたものです。これらは言葉だけではありません。Neoは非常に要求の厳しい年中無休の環境で、3年以上に渡って稼動しています。成熟していて堅牢であり、いつでも配備可能なのです。
Java API(source)は12個のクラスで構成されている。ノードの生成はわかりやすい。
Transaction tx = Transaction.begin();
EmbeddedNeo neo = ... // Get factory
// Create Thomas ’Neo’ Anderson
Node mrAnderson = neo.createNode();
mrAnderson.setProperty( ”name”, ”Thomas Anderson” );
mrAnderson.setProperty( ”age”, 29 );
// Create Morpheus
Node morpheus = neo.createNode();
morpheus.setProperty( ”name”, ”Morpheus” );
morpheus.setProperty( ”rank”, ”Captain” );
morpheus.setProperty( ”occupation”, ”Total bad ass” );
// Create a relationship representing that they know each other
mrAnderson.createRelationshipTo( morpheus,
MatrixRelationshipTypes.KNOWS );
// Create Trinity, Cypher, Agent Smith, Architect similarly
...
tx.commit();
ネットワーク内のノードの検索は「traverser」フレームワークを通して行われる。
// Instantiate a traverser that returns all mrAnderson’s friends
Traverser friendsTraverser = mrAnderson.traverse(
Traverser.Order.BREADTH_FIRST,
StopEvaluator.END_OF_NETWORK,
ReturnableEvaluator.ALL_BUT_START_NODE,
MatrixRelationshipTypes.KNOWS,
Direction.OUTGOING);
Neo4j はデュアルライセンスモデルであり、フリー・ソフトウェア(GPL方式(source))と商用がある(しかし、Webページには価格の情報は記載されていない)。現在のバージョンは1.0 beta 6で、Neo4jの次期リリースはRelease Candidate 1になる予定である。Ruby(source)とPython(source)のNeo4j用ラッパも現在開発中である。
原文はこちらです:http://www.infoq.com/news/2008/06/neo4j
12/16 ~野村総合研究所が提案~ 「不況を乗り切る!効果的なIT投資を考えるセミナー」
セキュアなIT基盤と付帯運用サービス”SecureOnline”
ITマネージャ必聴!IT活用セミナー 勝ち残りの法則~管理・統合化スペシャル~
この記事では、私達がどのようにして大規模(240人月、10万行強)でインドとオランダの開発者も参加したスクラム・プロジェクトを成功させたのかを示しています。
Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。参加者はカンファレンスで各々の発表や、各セッションへの参加、諸外国のエンジニアとの出会い、ステージ上で DearXPを熱演などの様々な思い出を抱えて、無事日本に戻ってきました。
マイクロソフトのRobert Bellが、SilverlightとJavaを使用したインターオペラビリティのシナリオを紹介し、サンプルコードを例にとってアーキテクチャの手引きを提供します。
Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。サブミッションが選択された人、そうでない人も含めて、個々の目的意識の確認、膨大なプログラムから聞きたいセッションの選択、旅行の準備、プレゼンテーションの準備の期間を終えて、無事当日を迎えました。
筆者はアジャイルソフトウェア開発についての年に一度の国際会議であるAgile2008に初めて参加してきました。今年の日本からの参加者の数は14名にも及び、発表者は5名、受け持ったセッションは8つに及び、例年にない活躍を見せました。なぜ今年のAgile2008では、これほど多くの日本人が参加し発表に至ったのか? そのレポートをお届けします。
エスエムジーでは、Java全般を対象にしたトラブルシューティングサービス「JaTS」を提供しています。この記事では、前回に引き続き、JaTSにて蓄積したトラブル事例とその解決ノウハウの一部をお送りしている「Javaトラブルシューティングメールマガジン」(JTSMM)の総集編として、過去2ヶ月のトラブル事例と追加情報をダイジェストとして提供いたします。
この記事では、モデル駆動アプローチがうまく機能しない、または機能しなくなることによって期待した結果が実現できなくなる 8 つの理由について書きたいと思います。
No comments
返信