5

私が主任開発者である私のプロジェクトでは、以前は単一の XML ファイルに格納されたネットワーク構成がありました。構成には、ネットワーク レイアウトに関する情報 (構成ホスト、OS などの各ホストに関するさまざまな詳細、プラットフォーム、それぞれに構成されたユーザー、各ユーザーのいくつかの属性など) が含まれます。製品の次のバージョンでは、構成が拡張されてより多くの要素と詳細が含まれるようになり、それらを XML ファイルで維持するのが面倒になるため、データを何らかのデータベースに移動したいと考えています。

最初の選択は RDBMS でした。ただし、構成データの階層的な性質と拡張性の基準により、ディレクトリ サーバーの方が適しているように思われました。ディレクトリ サーバーを使用する動機は次のとおりです。

  1. RDBMS よりもディレクトリ サーバーで階層データをモデル化する方が簡単です。

  2. また、基本型を追加の属性で拡張する新しいエンティティ型を作成/定義するのもはるかに簡単です。これは、問題解決の観点から非常に魅力的です。

  3. 構成データは、更新されるよりも頻繁に読み取られます。パフォーマンスは問題ではありませんが、ディレクトリ サーバーはこの特性に非常に適しています。

LDAP とディレクトリ サーバーの基礎を一から学び始めて約 1 週間が経ちましたが、ディレクトリ サーバーの選択についてやや懐疑的になりました。いくつかの問題があります。

  1. LDAP は RDBMS ほど主流ではありません。多くの人が SQL の経験があり、ディレクトリ サーバーよりも RDBMS の方が早く使い始めることができます。前述したように、LDAP の基本 (スキーマの作成方法、DIT の定義方法、エントリの追加方法、LDIF ファイルへのデータのエクスポート方法など) を学ぶのに 1 週​​間強かかりました。新しいメンバーがチームに参加するとき、彼/彼女は学習曲線に直面していないため、これは重要です.

  2. 将来的には、より多くのデータを維持してデータベースに保存する可能性があります。ディレクトリ サーバーは、そのようなデータ (読み取りと同じくらい頻繁に更新されるデータなど) には適していない場合があります。私の意見では、2 つのストレージ メカニズムを持つことは負担です。

  3. より政治的な面では、RDBMS が現在直面している問題に適していなくても、RDBMS を選択したことで私が責められたり解雇されたりすることはありません。ディレクトリサーバーで、上記2が実現したとしても、「なんでもっと早く考えなかったの?」という質問には答えたくありません。

選び方のアドバイスをお待ちしています。誰かが以前に同様の状況に直面したことがありますか?

EDIT-1 : プロジェクト内でこれについて話し合い、ここで行った正確なポイントを提示しました。次の理由により、それ以上評価せずに RDBMS を選択する可能性が非常に高くなります。

  1. ポイント 2 は何よりも重要であると考えられました。

  2. 私のユニット内の考え方は、あらゆるレベルの人々が安全にプレイしたいと考えているため、どちらかというと保守的なようです。私は本当に彼らを責めることはできません。

  3. 「なぜ RDBMS ではないのですか?」が最初の質問でした。「RDBMSでできる?」2番目でした。最後にメッセージを受け取りました。

4

6 に答える 6

4

通常、私はできるだけ早く LDAP から離れますが、LDAP をより適切な選択にする 2 つの魔法のフレーズ「構成データの階層的性質」と「構成データ」を呼び出しました。

LDAP は、この (そしてこの) タイプのデータ用に設計されました。

LDAP を選択するより実際的な理由は他にもあります。

  1. すべての LDAP は同じです。これはデータベースの実装ではなくアクセス プロトコルであるため、顧客がオープンソースの LDAP を使用しているか商用の LDAP を使用しているかにかかわらず、ソフトウェアを変更する必要はありません。

  2. すべての RDBMS は異なります。どのような RDBMS を選択しても、互換性のない別の RDBMS で標準化された顧客が少なくとも 1 人はいるでしょう。もしあなたの製品がそれなりに成功すれば、少なくとも MySQL、Postgress、SQLServer、Oracle、DB2、Sybase のフォークを維持することになります。

顧客/上司が、ORACLE/DB2 ほど防弾性/パフォーマンス/トランザクション性が高くないと不平を言う場合、顧客には ORACLE または DB2 の LDAP 実装を使用するオプションがあることを指摘します。

唯一の本当の欠点は、LDAP の経験が不足していることです。ほとんどの開発者は、J2EE に付属するデフォルトのユーザー セキュリティ スキーマでしか LDAP を経験しません。

LDAP スキーマはデータベースであり、管理や変更管理手順などのデータベースが必要です!

  1. リスト項目
于 2009-09-29T08:26:48.400 に答える
1

構成変更DBを探しているだけの場合は、RDBMSが最適です。これは一般的なITの問題であり、さまざまな商用ソリューションがあります。カスタムソリューションに多額の投資をする前に、そこに何があるかを確認する価値があるかもしれません。

最終的に複数のプラットフォーム(Windows / Linuxなど)に統合認証を組み込むことを検討している場合は、LDAPが最適です。ほとんどのサーバーおよびデスクトップOSはLDAP認証をネイティブにサポートしているだけでなく、LDAPは複数のサイト間で簡単にクラスター化または同期化できます。

ハイブリッドソリューションになってしまう可能性は十分にあります。変更管理データベース(CCDB)の大部分はRDBMSに常駐できますが、認証はLDAPクラスターを使用して処理できます。統合されたフロントエンドは、両方の情報を管理できます。セキュリティ上の理由から、CCDBにアカウントのパスワードを保持することは避けてください。代わりにLDAPを使用してください。

RDBMSとLDAPのどちらを使用する場合でも、CCDBに情報を追加/更新するために、ラッパースクリプト、アプリケーション、またはWebベースのフロントエンドを作成する可能性があります。これにより、新入社員の学習曲線が短縮され、変更管理データベースの更新が簡素化および管理されます。

新しい従業員を生のRDBMSに向け、最高のものを期待するリスクを過小評価しないでください。包括的なCCDBのスキーマは、モデル化するテクノロジーに関係なく、非常に複雑になる可能性があります。

于 2009-09-29T18:03:10.333 に答える
0

答えは簡単です。ディレクトリが必要な場合は、LDAP を使用してください。データベースが必要な場合は、RDBMS を使用してください。あなたの目標は、ディレクトリのような構造 (「電話帳」のように聞こえます) を持つことなので、LDAP を使用してください。RDBMS は、必要なものに対してオーバーヘッドが大きすぎます。

于 2009-09-29T18:11:37.183 に答える
0

「誰も解雇されなかった...」という議論がここに当てはまるかどうかはわかりません。結局のところ、ディレクトリ サーバーが本当に必要なのです。想像できる LDAP データベース軸の真ん中にある要求について話しているのではありません。

私は間違いなく LDAP を使用しますが、ディレクトリ サーバーの問題に対応するディレクトリ サーバー ソリューションを選択したために解雇される可能性のある人間の立場に身を置くことはできません...

于 2009-09-29T18:20:50.597 に答える
0

次の理由から、RDBMS アプローチを使用します。

  1. 構造を簡単に変更および拡張できます。
  2. モデリングしているネットワークが私のようなものである場合、それを階層的にモデル化しようとすると失敗します。(本質的ではありません。)たとえば、ファイアウォール ルール、他のサーバーにアクセスするサーバー、サブネットなど。
  3. 非常に簡単にレポートできます。
  4. LDAP よりも SQL に熟練した開発者を見つける方が簡単です。
  5. 特殊なケースに対応するのは比較的簡単ですが、これは LDAP で簡単に行うことができますか?

そうは言っても、私は RDBMS アプローチに慣れているので、偏っています。

于 2009-09-29T08:34:31.780 に答える
0

あなたのデータの構造のために、私は LDAP に傾倒する傾向がありますが、階層型データベースを扱い、「RDBMS は唯一のデータベース」という考え方を持っているため、より大きなアプリケーションに組み込むことができる、簡単に移植できる LDAP サーバーを知りません。

DRBMS ルートに進みたい場合は SQLite を使用できますが、実際には 3 番目のオプションである XML データベースを使用します。すでに XML を使用しているので、ストレージ用にBerkeley DB XMLのようなものに簡単に移行できることを願っています。ウィキペディアで他の選択肢のリストを確認することもできます

(免責事項 -- 私は XML データベースを使用したことがありません。LDAP 側では OpenLDAP、iDS、eDirectory を使用し、RDBMS 側では Oracle、SQL Server、mySQL、PostgreSQL、SQLite などを使用しました)

于 2009-09-29T21:12:47.430 に答える