34

「建設的ではない - 現在のところ、この質問は私たちの Q&A 形式には適していません。」- この質問をどこに投稿すればよいか教えていただければ幸いです( https://softwareengineering.stackexchange.com/ ? または CMS に焦点を当てたフォーラムですか?)

同様の質問が以前に尋ねられました:

それらはすべて数年前のものなので、これに関する新しい推奨事項/議論があるかどうか疑問に思っています.

いくつかの背景: 私たちは Java ショップであり、クライアントのために Web サイトを作成/維持しています。私たちの技術スタックは、Java、Spring、SQL、JSP、HTML5、JQuery、Tomcat、JBoss、Maven などです。これまでのところ、「コンテンツ」に関しては、コピー用に JSP によって読み取られるいくつかのプロパティ ファイル (例: 製品 X の説明) または動的コンテンツを提供するバックエンド サービス (例: 製品 X の現在の値) のいずれかに配置します。 )。

現在、同じコンテンツ (ウェブサイト、モバイル ウェブサイト、モバイル アプリなど) を持つクライアントのプロパティをますます多く管理しているため、コンテンツを管理するアプローチを再考しています。同じ内容が広まる。

私が特に探しているいくつかのこと:

  1. Java ベース (私たちは Java ショップであるため: 1) Java ベースのものを処理するためのより多くの専門知識、および 2) スタックに別の技術を導入することを避けます)

  2. 拡張性/カスタマイズ。CMS をカスタマイズできるようにする必要があります (そのため、私たちは Java の専門知識に固執したいと考えています)。これにより、他の Web サービスと接続してコンテンツを消費するなどの拡張が可能になります。

  3. コンテンツに焦点を当てる- コンテンツと UI レンダリングを明確に分離する必要があります。探しているものに戻って、コンテンツを個別のプロパティに配信する必要があります。

  4. コンテンツにアクセスするための RESTful サービス / API - 上記と同じ。JSON / JSON-P / としてコンテンツに直接アクセスできる必要があります。XML フィード。

  5. プラットフォームに移行する可能性のある一部のクライアントは、自分のコンテンツを管理したいと考える可能性が高いため、適切な UI を使用する必要があり、より直感的であるほどビジネス ユーザーに適しています。

  6. 多言語サポート

  7. オープンソース・低コスト

これまでのところ、私が持っているいくつかのオプションは次のとおりです。

Adobe CQ - 最も理想的なソリューションのように見えますが、残念ながらコストがかかりすぎます

Hippo CMS - 私たちが探しているものに合っているように見えます。文書化されているかどうかはわかりません。チュートリアル/ハウツーはかなりまばらなようです。市場シェアは北米よりもヨーロッパで大きいようです.

Liferay - コンテンツを提供する CMS とは対照的に、「ポータル」に重点を置いています。

Alfresco - 「ドキュメント」をより重視

dotCMS - Hippo CMS のように、これは私たちのニーズに合っているようです。

Magnolia CMS - dotCMS や Hippo と同じ路地を見て回る。私が見たコメントによると、彼らは単一の Web サイトに重点を置いており、コンテンツと UI を明確に分離していないようです。

個人的には、以前に CMS を直接使用した経験はあまりありません。

上記の各オプションについてのあなたの考えやコメント、またはここに記載されていない他の解決策がある場合は、大歓迎です! 私の課題の 1 つは、本当に健全な決定を下す必要があるということです。なぜなら、どの道をたどろうと決めたとしても、行き詰まる可能性が高いからです。決定は、簡単に破棄して最初からやり直すことができるものではありません。

4

2 に答える 2

37

個人的には、Hippo である程度の経験があり、dotCMS で多くの経験があります。Alfresco、Liferay、Magnolia については少し知っていますが、これまで一緒に仕事をしたことはありません。時間をかけて調査したことがないため、Adobe CQ の経験はまったくありません。これは、コストが高く、多くのお客様にとって手放せないためです。Alfresco は、オンラインのドキュメント管理システムを探しているなら、確かに優れたソリューションですが、私はそうではないと思います。Hippo、Magnolia、および dotCMS がいくぶん似ているというのはあなたの言うとおりです。これらは同じ問題を解決しようとしているので、それほど奇妙ではありません。つまり、エンタープライズ クラスの Java ベースの Web コンテンツ管理システムであることです。CMS でも管理できるページで使用できるコンテンツの管理に重点を置いています。

正直に言うと、私は dotCMS に偏見を持っています。なぜなら、私はシステムで多くの作業を行っており、それについて多くのことを知っているからです。なぜそれが私たちにとってうまくいくのかを説明したいと思いましたので、それを考慮してください. 私は、JBoss と EE スタック全体を使用してクライアント向けのミドルウェア開発を数多く行う Java ショップで働いています。古い (Cobol) システムと新しいシステムを接続し、そのミドルウェアの上に、管理者と消費者の両方を対象とする光沢のある新しい Web インターフェイスを配置します。これらのインターフェイスを作成できるようにするには、いくつかのことをうまく行う CMS が必要です。

  1. Java ベース (私たちは Java ショップであるため、CMS とミドルウェアの作業を同じ人に任せることができます)
  2. 手間をかけずに数十台のサーバーに水平に拡張できます。複数のサーバーにスケールアウトする場合の従来のケースでは、データベースとアセット フォルダーがノード間で共有されます。これは、多くのノードがある場合に問題になる可能性がありますが、実際には、ほとんどの負荷がデータベースやディスクではなくインデックスにヒットするため、それほど大きな問題ではありません。2.5 以降の dotCMS は、各ノードが独自のデータベースとアセット フォルダーを持つ「共有なし」モードを提供しますが、これには、コンテンツを各ノードにプッシュする追加の (ライセンス取得済み) オーサリング サーバーを使用する必要があります。私はこのセットアップを自分で試したことはありませんが、特に各ノードが postgresql / mysql と tomcat のみを使用するシンプルで安価なボックスになり、単一障害点がなくなるため、有望に思えます。古典的なケースでは、共有アセットフォルダーまたはデータベースが停止すると、すべてのノードもダウンします。ただし、データベースとディスクをクラスター化する場合は費用がかかります。この「何も共有しない」設定では、これはもはや当てはまりません。私が言ったように:私はこれについての経験はありませんが、うまくいくように思えます.
  3. パワー ユーザーと非技術者 (クライアント) の両方が使用できる管理インターフェイス。誰もが「コンピューターに長けている」わけではありませんが、コンテンツを管理できる必要があります (クライアントのマーケティング部門で働く人が非常に多いです)。dotCMS は、dotCMS が提供する機能の一部のみを表示する管理インターフェイスを作成する方法を提供します。これにより、システム全体を理解する必要がなくなり、トレーニングと受け入れがスピードアップします。
  4. 構造化されたコンテンツ。これは大物です。データベース テーブルのように、固定された一連のフィールドを使用して、多くの種類のコンテンツを定義できるようにしたいと考えています。システムを再構築または再起動する必要はありません。この構造 (dotCMS がこれらのタイプに使用する名前) に基づいてコンテンツを定義する人は、無効なデータを入力できません。これは、システムがそれを防ぐためです。これにより、Web サイトの構築がより将来性のあるものになり、便利になります。特に開発者にとっては。
  5. 最初にコンテンツに焦点を当てます。dotCMS を使用した最初の数か月は、実際には、コンテンツ自体を管理し、JSON API を介してそれを公開するためにのみ dotCMS を使用していました。テンプレートの定義やページの作成などの CMS 機能は使用しませんでした。これは問題なく動作し、探しているもののように聞こえます。dotCMS には、クエリに基づいてコンテンツを返す JSON/XML Web サービスがあります。ほとんどすべてのプロジェクトでこれをよく使用します。詳細については、http: //dotcms.com/docs/latest/ContentAPIを参照してください。フロントエンド全体に dotCMS 自体を使用することも可能です。特に、それがサポートする Spring コントローラーと、CSS フレームワークに依存しない新しいテンプレート デザイナーを使用すると、単なるコンテンツ以上のものを必要とするシステムを構築するための優れた方法になります。
  6. 多言語。dotCMS には、これを行う方法がいくつか用意されています。画像などの非テキスト コンテンツであっても、必要なすべての言語でコンテンツを作成できます。「コンテンツ ファースト」のアプローチにより、多くのものが dotCMS のコンテンツであり、必要な言語ごとにバージョンを作成するなど、そのように扱うことができます。
  7. オープンソース。dotCMS は、私たちが最も頻繁に使用するコミュニティ バージョンを提供します。ロード バランシング、データベースに oracle を使用するなどのプロ機能のみ、有料版が必要です。それでも、コストは管理可能です。詳細については、 http://dotcms.com/products/editions/を参照してください。
  8. 内部キャッシング メカニズム。負荷が高いため、構築したサイトの一部はキャッシュが必要です。DotCMS は、キャッシュに Google Guava を使用していますが、これは非常にうまく機能します。
  9. 拡張性も重要です。明らかな理由から、dotCMS の機能を拡張できる必要がありました。DotCMS は、プラグインを実行する古い学校の方法しか提供していませんでした。これは、少し見苦しく、独自の dotCMS クラスを上書きする ant スクリプトに基づいています。それは問題なく動作しますが、そのようなプラグインを作成した後はいつも汚いと感じます. しかし、バージョン 2 から、OSGi ベースのプラグイン フレームワークが提供されるようになりました。2.5 バージョンでベータ版を終了しました。すべてのプラグインを新しいフレームワークに移植する予定です。
  10. マルチホスト。同じ CMS 内で複数のサイトをホストできる必要があります。DotCMS はこれをネイティブに提供します。これは、私たちが頻繁に使用する複数のホスト間で共通のものを共有する良い方法でもあります。

もちろんマイナス面もあります。ここにいくつかあります:

  1. dotCMS のような Web CMS は、コンテンツをデータベースに保存し、アセットをファイルとしてディスクに保存します。これにより、異なるサーバー間でのバージョン管理と同期が面倒になります。2.5 バージョン以降、dotCMS は、ある環境 (UAT など) から別の環境 (PROD など) にコンテンツをプッシュできるようにする同期ツールを提供します。しかし、GIT や SVN などからコンテンツの 1 つのバージョンをチェックアウトできないのは非常に厄介です。特に、私たち Java 開発者は、継続的な統合環境での自動テストなどに慣れているためです。もちろん、データベースを SQL ステートメントとアセット ディレクトリとして格納することもできますが、それは遅く、あまり「いい」ものではありません。しかし、データベースに状態を保存するすべてのシステムには、この欠陥があります。
  2. DotCMS の習得には時間がかかります。これは、Wordpress のような小さな CMS ではなく、1 日で理解できるものです。これには多くの機能があり、非常に強力ですが、dotCMS の方法を理解するには 1 日ほどかかり、その後すべての API を理解するにはさらに数日かかるでしょう。実際の運用サイトを構築する前に、まずいくつかのドキュメントを読み、それをいじることをお勧めします。ローマに至る道はたくさんありますが、中には流砂で構成されているものもあります。:)
  3. DotCMS は RAM を消費します。物事を高速に保つためにすべてをキャッシュしているため、コンテンツが多い場合は、利用可能な RAM を使い果たしてしまいます。これを微調整することはできますが、見つけた十分な RAM を与える方が簡単です。
  4. WebDAV + 編集クライアントのすべての構成が dotCMS と互換性があるわけではありません。たとえば、Mac では、Cyber​​duck を WebDAV クライアントとして、Aptana をテキスト エディターとして使用するのが最適であることがわかりました。他のセットアップは、dotCMS があまり好まない奇妙なことを行います。自分に最適なセットアップを見つけるには、少しプレイする必要があります。彼らのgithubにバグを報告すると、次のリリースで修正されることがわかりました。彼らは、WebDAV は私が理解している固定された標準ではないため、正しく理解するのは難しいと私に言いましたが、それでもお尻の痛みになる可能性があります。

dotCMS について学習したい場合は、それほど悪くないドキュメント ( http://dotcms.com/docs/latest/TableOfContents ) を読み、デモ サイト ( http://dotcms.com/products/demo/)。デモ サイトでは、dotCMS が提供するすべての概念の例を見つけることができます。ああ、私たち自身の無料の dotCMS プラグインもチェックしてください。特に JavaScript と CSS のミニファイアは非常に便利です: http://geekyplugins.com/ .

これが少し役立つことを願っています。詳しく知りたい場合はお知らせください。

于 2013-05-26T15:41:11.943 に答える