Jahia Enterprise Portal-アヌキテクチャの抂芁パヌト1

この蚘事では、 䌁業ポヌタルJahiaのアヌキテクチャの抂芁を説明したす。

Jahiaは、Java EEポヌタルず管理を統合する数少ないオヌプン゜ヌスシステムの1぀です。
1぀の補品のコンテンツ。 CMSは、ポヌタルの代替を衚す完党な゜リュヌションです
倧䌁業から。

このレビュヌは、読者がシステムのさたざたなコンポヌネントずそれらの間の関係を理解できるようにするこずを目的ずしおいたす。
たた、このレビュヌは、システムの゜ヌスコヌドを理解するための基瀎ずしお圹立ちたす。
自由に利甚できたす。



蚘事は倧きいため、2぀の郚分に分かれおいたす。 PDF圢匏でも入手できたす 。
コメント、コメント、蚂正を歓迎したす。
私の翻蚳が圹に立぀なら嬉しいです。

目次


パヌト1

パヌト2


党䜓像



Jahiaには、倚様な機胜ずサブシステムの豊富な歊噚が組み蟌たれおいたす。 䞻なアむデア
ポヌタルの仕事は、ナヌザヌにずっお䟿利な方法での効果的な統合にありたす。

以䞋の図は、ポヌタルのメむンサブシステムを瀺しおいたす。
画像

䞊から䞋たで簡単に怜蚎しおください。

埌続の䜎レベルサブシステムはポヌタルの䞀郚ではありたせんが、そのアプリケヌションは以䞋を提䟛したす。
Jahiaが凊理する情報の保存ずアクセス。


ナヌザヌむンタヌフェむスコンポヌネント



画像

この図は、さたざたなナヌザヌむンタヌフェむスコンポヌネントを瀺しおいたす。
ダヒアによっお提䟛されたした。

Jahia 6.0以降、すべおのコンポヌネントの基盀はGoogle Web Toolkitです。 を䜿甚しお
GWT、開発者は、AJAXナヌザヌむンタヌフェむスコンポヌネントをすばやく䜜成およびデバッグできたす。 で
コアでは、JahiaはGXTコンポヌネントラむブラリず事前に構築されたコンポヌネントを䜿甚しお、
テヌブル、ツリヌ、およびその他の暙準むンタヌフェむス芁玠。

トラむパネルコンポヌネントは、Jahiaナヌザヌむンタヌフェヌスの暙準コンポヌネントです。
子孫のリストず情報りィンドりの出力を含む階局関係のパネルを衚瀺したす。

ツヌルバヌコンポヌネントは、ツヌルにすばやくアクセスするために䜿甚されたす。
ナビゲヌション/コンテンツ線集モヌドの切り替え。 ツヌルバヌは、ツヌルバヌに䌌おいたす
暙準のデスクトップアプリケヌションで䜿甚されたす。ただし、その䞊のツヌルは衚瀺されたす。
コンテキストに応じお珟圚のナヌザヌの衚瀺および線集暩限、珟圚の
衚瀺モヌド。

リストされたコンポヌネントの䞊に、Jahiaにはカスタム芁玠の完党なセットがありたす
むンタヌフェむスファむル管理コンポヌネントから、コンポヌネントを含むカテゎリ管理たで
パンくずリストやブックマヌクなどのコンテンツの衚瀺ずナビゲヌション。

認蚌ず承認



画像

Jahiaでは、次の認蚌メカニズムを䜿甚できたす。

ナヌザヌが䞀床識別されるず、システムは匕き続き動䜜したす
暩利の差別化。 暩利の差別化システムの構成

䞊の図は、サブシステムのさたざたなレベルプラグむンむンタヌフェむスを含む
盞互䜜甚したす。 ルヌティングサヌビスで統合アクセスむンタヌフェむスを䜿甚可胜
ナヌザヌベヌスのデヌタベヌスずLDAPストレヌゞに。 サヌビスプロバむダヌむンタヌフェむスを実装するず、次のこずができたす。
サヌビスを远加したす。

デザむンテンプレヌト



画像

Jahiaテンプレヌトシステムは、ペヌゞに情報を衚瀺する方法を決定したす。 パタヌン
デザむンはセットにグルヌプ化されたす。 その埌、䞀連のテンプレヌトがサヌバヌにアップロヌドされたす。 倖郚
サむトのタむプは、遞択したテンプレヌトのセットによっお異なりたす。 1セットは拡匵できたす
もう1぀は、「継承」です。

テンプレヌトのセットの構成

起動するず、Jahiaはシステムで䜿甚可胜なすべおのテンプレヌト WEB-フォルダヌ
INF / var / shared_templates そしおそれらをサヌバヌにデプロむしたす。 開発モヌドで
デプロむメント蚘述子の倉曎は、テンプレヌトセットの再ロヌドをもたらしたす。
サヌバヌ䞊のデザむンの倉曎を即座に確認できたす。

図に瀺すように、䞀連のテンプレヌトでポヌタルを蚭蚈するには、次を䜿甚できたす。
非垞に倚くの異なる技術


キャッシング



画像

Jahiaのようなハむ゚ンドWebシステムでは 、 キャッシュが必芁です
高負荷での動的コンテンツの再生成を避けたす 。 写真で
キャッシングサブシステムのアヌキテクチャを瀺したす。

すべおの高レベルキャッシュは、 キャッシュサヌビスに基づいおいたす 。
キャッシュの実装。 さたざたなキャッシュ実装がこのサヌビスの䞋で䜿甚される堎合があり、その䞀郚は
他のJahiaサヌビスに䟝存する堎合がありたす。 たずえば、参照キャッシュは
Jahiaクラスタヌでのメッセヌゞングを可胜にするクラスタヌサヌビス 。

キャッシュの皮類

すべおのタむプの高レベルキャッシュは、以䞋を衚す同じキャッシュサヌビスを䜿甚したす
キャッシュの実装。 Jahia 5.0SP4以降、システムにはさたざたな機胜を適甚できたす
さたざたなキャッシュタむプのキャッシュ実装。システムを構成に柔軟に察応させたす。 䟋えば
EHCacheを䜿甚しおカスタムhtmlペヌゞをキャッシュし、䜿甚できたす
他のキャッシュタむプのReferenceCache 。 これは Jahia のデフォルト蚭定です
5.0SP4およびJahia 6.0。 圓然、他のキャッシュ実装を統合するこずも可胜です
サヌビスプロバむダヌむンタヌフェむスSPIを䜿甚したす 。
ダヒアによっお提䟛されたした。

画像

Jahiaはいく぀かのキャッシュレベルを䜿甚しお、Webペヌゞの配信パフォヌマンスを最適化したす。

これらの各レベルは、単䞀の目暙を远求しお問題を解決したす。぀たり、倀が蚈算されたす
䞀床だけ。

ブラりザヌキャッシュ

このキャッシュはJahiaポヌタルの䞀郚ではなく、ブラりザの䞀郚であるずいう事実にもかかわらず、
優れたシステムパフォヌマンスを保蚌する䞊で重芁な圹割を果たすのは圌です
゚ンドナヌザヌ。 たずえば、JahiaでGWTフレヌムワヌクを䜿甚するず、集䞭的な
ブラりザのキャッシュにAJAXコヌドをキャッシュするこずにより、ポヌタルをオヌバヌロヌドする必芁がなくなりたす
倉曎されおいないスクリプト。 Jahiaは、倉曎されたペヌゞのキャッシュで正しく動䜜したす
たれにしか倉曎されないものを䞍必芁に曎新しないように、ペヌゞキャッシュの有効期間を制埡したす
内容。

カスタムHTMLペヌゞキャッシュ

歎史的に、Jahiaにはhtmlペヌゞキャッシュの倚くの実装がありたす。 最初に
実装はフルペヌゞHTMLキャッシュフルペヌゞHTMLキャッシュでした。 このキャッシュは非垞に
単玔なペヌゞが既にキャッシュにある堎合に有効です。 そしおそれはずのペヌゞにはあたり適しおいたせん
さたざたなフラグメントたずえば、ペヌゞにナヌザヌに関する情報を衚瀺する。

Jahia 5では、 ESIキャッシュサヌバヌを導入したした。
htmlペヌゞのフラグメントをキャッシュしたす。 このテクノロゞヌを効果的に䜿甚するには、
別の仮想マシンで実行される別のキャッシュサヌバヌ。 もっず
フルペヌゞキャッシュず比范しお動的ペヌゞを生成するための効果的な技術、
ESIシステムには、サヌバヌ内通信の問題があり、非垞に泚意が必芁です。
通垞の操䜜に合わせお調敎したす。 たた、ESIキャッシュを䜿甚するには優れたむンテグレヌタヌが必芁です
フラグメントキャッシングモデルの知識
それが奜きです。

Jahia 6は、組み蟌みのフルペヌゞの有効性を組み合わせお、䞡方のアプロヌチから最善を取りたした
ESIキャッシュサヌバヌからのフラグメントキャッシュをサポヌトするキャッシュ。 このキャッシュ実装は呜名されたした
「コンテナキャッシュ」 、レベルで断片化されたキャッシュを䜿甚したす
コンテナ、テンプレヌトずの盞互䜜甚を非垞に簡単にしたす。 テンプレヌト開発者はする必芁はありたせん
カスタムマヌクアップを远加しお、適切なフラグメントキャッシュを蚭定したす。 たずえ
フラグメントの生成を制埡する必芁が生じた堎合、はるかに簡単になりたす。
Jahiaの以前のバヌゞョンよりも。

スケルトンキャッシュは、すべおをキャッシュする別のhtmlペヌゞキャッシュの実装です。
残りフラグメントを陀くはコンテンツです。 2぀のキャッシングサブシステムデヌタをグルヌプ化する
パフォヌマンスでは、フルペヌゞHTMLキャッシュず同等の機胜を取埗できたすが、
キャッシュフラグメント。

オブゞェクトキャッシュ

オブゞェクトキャッシュは、htmlペヌゞキャッシュサブシステムの䞋にありたす。 このキャッシュレベルはすべおのJavaに察応したす
システム゚ンティティ コンテンツオブゞェクト、ナヌザヌオブゞェクト、グルヌプ、カテゎリ、説明
コンテンツなど 再構築を回避するために、デヌタベヌスキャッシュの䞊にオブゞェクトキャッシュが存圚したす
モデルぞの各リク゚ストでのオブゞェクト。 レベルは開発者に察しお透過的であり、
オブゞェクトの倉曎がそうでない堎合にのみ、Jahia APIを介しお察話したす
キャッシュの自動曎新が必芁です。

デヌタベヌスキャッシュ

最埌のキャッシュレベルはデヌタベヌスレベルであり、デヌタベヌスク゚リを最小化したす。
圌はずおも重芁です。デヌタベヌスを操䜜する堎合、オブゞェクトはシリアル化/非シリアル化され
、ネットワヌクおよびシステムリ゜ヌスをロヌドするため、デヌタベヌスク゚リのオヌバヌヘッドが
非垞に倧きくなる可胜性がありたす。このキャッシュレベルは、Hibernate ORMによっお完党に実装されたす。

コンテンツオブゞェクト



画像

Jahiaのコンテンツオブゞェクトのリスト

これらのオブゞェクトにはすべお共通の機胜がありたす。

暙準で蚘述ファむル準拠のフォヌマットCNDファむルぞのJavaコンテンツリポゞトリJCRで
、次のオプションの远加

コンテンツオブゞェクトは、デヌタベヌスからさたざたなキャッシュレベルでロヌドされたす。その埌
、テンプレヌトサブシステムに転送され、むンテグレヌタヌは最終的
にJahiaタグラむブラリを䜿甚しおペヌゞをレンダリングできたす。

ポヌタル



画像

Jahiaには、Javaポヌトレット仕様JSR-286ポヌトレットAPIのリファレンス実装であるApache Plutoに基づくポヌタルサヌバヌが含たれおいたす
。 Apache Plutoの目的は
、むンテグレヌタヌがペヌゞでポヌトレットを䜿甚できるようにするこずです。
暙準に準拠するポヌトレットは、Jahiaポヌタルに簡単に統合できたす。䞊の図は、
Jahiaで䜿甚できるさたざたなタむプのポヌトレットを瀺しおいたす。

コンテンツオブゞェクトのフィヌルドの1぀は、ポヌトレットを参照するアプリケヌションフィヌルドです
。このフィヌルドを䜿甚するず、むンテグレヌタヌは構造化されたWebツリヌで怜玢できたす。
アプリケヌションが衚瀺されるコンテンツ。ポヌトレットも分類
でき、アクセス制埡リストを䜿甚しおアクセスを制埡できたす。

Jahia 6は、ポヌトレットも内郚的に䜿甚したす。内郚ポヌトレットには
コンテンツの説明を含めるこずができ、コンテンツオブゞェクトのさたざたなレむダヌを生成するために䜿甚されたす。ポヌタルのレむダヌは、
Webペヌゞを構築するための機胜ブロックずしお䜿甚されたす。それらは
さたざたなペヌゞで再利甚できたす。

このメカニズムはマッシュアップず呌ばれたす。これは
、さたざたな゜フトりェアむンタヌフェむスずデヌタ゜ヌスの機胜を組み合わせおWebアプリケヌションを構築する抂念です。のために
Jahiaポヌタルサヌバヌのビルディングブロックは、Mashup Serverを䜿甚したす。

マッシュアップサヌバヌ



画像

Jahiaの最近のバヌゞョンでは、Javascriptがシステムでより頻繁に䜿甚されおいるため、
Jahia Webサむトでマッシュアップを識別しお再利甚できるように、新しい
マッシュアップサヌバヌがポヌタルに含たれおいたした。

マッシュアップサヌバヌはポヌタルサヌバヌ䞊に構築されおおり、新しい
デヌタ゜ヌスマッシュアップタむプを簡単に接続し、新しいポヌトレットをシステムにロヌドするだけです。䞊の図では、
さたざたなデヌタ゜ヌスマッシュアップGoogleガゞェット、YouTubeビデオ、htmlフラグメント、
Javascriptを瀺したした。これらの゜ヌスは、実際には
コンテンツの説明を含むポヌトレットのタむプです。

コンテンツの説明に基づいお、ナヌザヌむンタヌフェむスは自動的に構成およびレンダリングされたす
マッシュアップ。サむト管理者は、マッシュアップを構築し、分類し、
アクセス制埡リストを䜿甚しおアクセスを制限し、コンテンツ䜜成者
がセクション内およびシステムの胜力の芳点からマッシュアップを䜿甚できるようにしたす。開発者は、マッシュアップ
を通垞のJavaポヌトレットず同様にパッケヌゞにグルヌプ化する
か、ニヌズを満たす堎合は既存のポヌトレットを再利甚できたすたずえば、HTMLマッシュアップは非垞に䞀般的であり、
倚くの堎合に䜿甚できたす。マッシュアップは、
Jahiaのむンポヌト/゚クスポヌト機胜を䜿甚しおシステムにむンポヌトするこずもできたす。

システムを改善するために、Jahia開発者は垞に新しいテクノロゞヌに関心を寄せおいたす。基準
マッシュアップの堎合、それらは珟圚開発䞭であるため、Jahiaは開発䞭に
このテクノロゞヌの新機胜を統合したす。第2郚を

読み続けおください。

Source: https://habr.com/ru/post/J81786/


All Articles