CouchDBとLotus Notesの違いは何ですか?
-
03-07-2019 - |
質問
CouchDBを使用する可能性を検討していました。誰もが嫌いなロータスノーツに似ていると聞きました。これは本当ですか?
解決
Lotus Notesの開発は20年以上前に始まり、バージョン1がリリースされました1989 。現在マイクロソフトのチーフソフトウェアアーキテクトであるRay Ozzieによって開発されました。
ロータスノーツ(クライアント)とドミノ(サーバー)は長い間存在しており、成熟した優れた製品です。
- 迅速なアプリケーション設計とドキュメント指向データベースの展開を備えた完全なクライアントサーバースタック。
- セキュリティと暗号化のための完全な公開鍵インフラストラクチャ。
- 異種プラットフォーム間での堅牢なレプリケーションモデルとアクティブアクティブクラスタリング(誰かがかつて xboxと巨大なAIXサーバー)。
- LDAP経由でもアクセスできるユーザーを管理するための組み込みのネイティブディレクトリ。
- ライブGBAメールファイルを使用して数百万人のユーザーを管理し、ライブサーバーにアクセスするか、オフラインアクセス用にローカルにレプリケートできる、ネイティブメールシステム。これは、SMTPを介した標準インターネットメールとのインターフェースが可能で、POPおよびIMAPアクセスも組み込まれています。メールインフラストラクチャは、Notes Dominoで構築されたすべてのアプリケーションで利用可能なコア機能です(データベース内の文書は、単純なdoc.send()コマンド)。
- サーバーがホストするデータベースにWeb経由でアクセスできるようにする組み込みHTTPスタック。
- RDBMSおよびERPシステムへのアクセス、転送、相互運用のための統合オプションのホスト。DB2との緊密な統合により、Notesデータベースを必要に応じてリレーショナルストアでバックアップできます。
下位互換性は常にNotes Dominoの強力な機能であり、最新バージョンで問題なく動作するバージョン3用に開発されたデータベースを見つけることは珍しくありません。 IBMはこれに多大な努力を払い、現在の製品の動作に大きな影響を与えています。
-
CouchDBは、2004年に開発を開始したDamien Katzによって作成されました。彼は以前IBMでノーツドミノで働いており、テンプレートを開発し、最終的にND6のコア機能の1つである数式エンジンを完全に書き直しました。
CouchDBは、Notes Dominoが持つビューとドキュメント指向データベースの基本概念を共有しています。
このモデルでは、「ドキュメント」何らかの方法で格納される値の単なる任意のコレクションです。 CouchDBでは、ドキュメントは任意の複雑さのJSONオブジェクトです。 Notesでは、値は単純な名前と値のペアであり、値は文字列、数値、日付、またはそれらの配列にすることができます。
ビューは、データベース内のドキュメントのインデックスであり、特定の値を表示し、他の値を計算し、望ましくないドキュメントを除外します。インデックスが作成されると、データベース内のドキュメントが変更(作成または更新または削除)されると、インデックスが増分更新されます。
CouchDBのビューは、データベース内の各ドキュメントでマッピング関数を実行することにより構築されます。マッピング関数は、指定されたドキュメントに対して作成するすべてのインデックスエントリに対して、JSONオブジェクトを使用してemitメソッドを呼び出します。このJSONオブジェクトは、任意に複雑にすることができます。 CouchDBは、ビューのマップされたインデックスに対して2番目の縮小関数を実行できます。
Notes Dominoのビューは、データベース内の各文書に対して(Notes Domino式言語で記述された)選択関数を実行することにより構築されます。 select関数は、ドキュメントをビューに含めるかどうかを単に定義します。 Notes Dominoのビュー設計では、ビューの列の数も定義しています。各列には、選択したドキュメントに対して実行される数式があり、その列の値を決定します。
CouchDBは、Notes Dominoよりもはるかに洗練されたビューインデックスを作成できます。
CouchDBには複製システムもあります。
他のヒント
これは、人々が通常嫌うNotesアプリケーションとUIです。背後にあるアーキテクチャではありません。
Damien KatzはIris(Lotus)で働いていましたが、Notesデータベースの背後にいる男ではありませんでした。彼は Notes Formula Engine 。
CouchDBとLotus Notesには、ドキュメント指向の非リレーショナルデータ、レプリケーション機能など、確かにいくつかの類似点がありますが、類似点よりも異なっています。 CouchDBはデータベースサーバーであり、Lotus Notesはエンタープライズレベルのコラボレーションプラットフォームです。
@Lex、コメントが間違っているため、作業しているNotes / Dominoのバージョンを伝える必要があります。
"トランザクションサポートなし" -Dominoにはトランザクションログがあります。より複雑なトランザクションロギングが必要な場合は、コーディング内でも使用できます。
"複数のデータトランザクションの処理にはあまり適していません" -実際にはうまく処理します。ドキュメントのロックと複製の競合解決があります。ワークフローを処理するためのアプリケーションの設定方法に大きく依存します。
"運用環境と開発環境を分離しません。" -偽。これが当てはまる唯一の方法は、環境が適切に展開されていない場合です。開発者は通常、本番環境に設計変更を展開するためのアクセス権が0である必要があります。それらは、メインサーバーに複製されないテンプレートで動作します。更新が完了して承認されると、管理者はそれを展開します。これを行うには、テンプレートを取得し、実稼働環境での実行を許可された制御された署名で署名してから、テンプレートをドロップして、関連するアプリケーションのデザインを更新します。
"ロータスノートに含まれるデータが多いほど、作成されるビューが多くなります" -このコメントはまったく意味がありません。ノーツ/ドミノをプロの能力で使ったことはないと思います。
"ロータススクリプトはオブジェクト指向ではありません" -はい、あなたはそこに良い点を作ります。ただし、言語に欠陥があるという意味ではありません。また、8.x以降と8.5.1で多数の改善を行っています。たとえば、ビルトインWebサービスのサポート(WSDLをポイントし、LSコードが作成されます)。 8.5.1また、コードテンプレート、オートコンプリート、独自の関数に関するLSDocポップアップヘルプなど、多くの新しいデザイナー機能があります。
また、LotusScriptのみをタッチします。ただし、次のコードも作成できます。 Java、SSJS / DOJO(XPages)、Javascript、@ Formula言語、Webサービス(SOAP / REST)、C-API、Eclipseプラグイン(RCP)。 JSONおよびXMLで出力します。
8.5.1 Designerクライアントは、テストする場合に無料でダウンロードできるようになりました。
だから、私はCouchDbについてコメントする立場にないと思いますが、Notes / Dominoについては間違いないでしょう。
Lotus Notesクライアント/ Dominoサーバーは、オブジェクト(「ドキュメント」)ストレージ(リレーショナルではない)メカニズムで構成され、完全に統合された証明書ベースのセキュリティモデル/ユーザー管理と、オフライン/オンラインの変更を同期するための競合解決を備えていますデータ-分散アプリケーションのプラットフォームです。
" CouchDB は、ドキュメント指向の非リレーショナルデータベース管理サーバーです。 (NRDBMS)。"
CouchDBはRESTスタイルAPIを介してアクセスできます。
すべてが任意の構造のドキュメントであるという点で、Notesがデータを処理する方法に似ており、リレーショナルデータベースにあるようなテーブルやレコードではなく、それらのドキュメントを表示します。レプリケーションなどにもいくつかの類似点があります。
Notesサーバーのアーキテクチャに問題はありません。人々はそれほど嫌いではありません。 Notesに付属するのは、実装と肥大化です。
CouchDBにもフロントエンドはなく、サーバーコンポーネントのみがあります。 Notesクライアントはひどく、それが人々が本当に嫌うものです。 Notesから何か" memo" をメールで送信したことがありますか?気持が悪い:(