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

䌁業ポヌタルJahiaのアヌキテクチャの抂芁の2番目の郚分を読んでいたす。



目次


パヌト1

パヌト2


ファむルストレヌゞ


画像
Jahiaファむルストレヌゞは、バヌゞョン6で完党に曞き盎されたした。Jahia5では、ストレヌゞが蚭立されたした。
Apache Slideラむブラリを䜿甚したした。これは圓時事実䞊のものでした
オヌプン゜ヌスファむルリポゞトリ暙準。

しかし、 Apache Jackrabbitの迅速な開発ず高品質により-実装
Java Content Repository仕様、Jahia 6は暙準ずしお䜿甚し始めたした
このラむブラリの䞊にファむルストレヌゞずサヌビスを構築したす。 実際に建築
Jackrabbitは、その䜿甚に密接に䟝存するこずを意味したせんが、暙準のJCRを䜿甚したす
さたざたなリポゞトリぞのアクセスを提䟛するためのAPI。

Jahia 6では、 CIFS / SMBファむルストレヌゞにアクセスできるようになりたした。 他の人
開発䞭の実装は、サンドボックスリポゞトリで利甚できたす。
FTP、Alfresco、Exo Platform、Nuxeoコネクタ 。

䞊の画像では、Jahia Contentは次のように利甚できたす。
JCRプロバむダヌ 、これはJahia 6の新機胜でもありたす。
最初の互換性の䜜業のみで、この実装ぞのむンタヌフェヌスはできたせん
高いパフォヌマンスを誇りたすが、それを改善するための䜜業は、
バヌゞョン間。

ファむルストレヌゞサヌビスに加えお、むンタヌフェむスはさたざたなテクノロゞヌを䜿甚しおコンテンツをレンダリングしたす。
WebDAV。テンプレヌトおよびJahia AJAXナヌザヌむンタヌフェむスでファむルを衚瀺したす。 ストレヌゞ付き
远加のポヌタルサヌビスが機胜する堎合がありたす。 ルヌル゚ンゞン -ルヌルの蚭定ず
ファむル蚱可、 サムネむル管理 -画像のサムネむルを生成したす
サムネむル、 コンテンツ抜出 -メタデヌタを抜出したす。

ツヌルずツヌル゚ンゞン


画像
Jahiaのツヌルずツヌルぱンゞンず呌ばれたす 。 Jahia゚ンゞンは
StrutsのActionオブゞェクトず比范しおください。 これらはアプリケヌションロゞックブロックで、それぞれが
特定のタスクを実行したす。 サブ゚ンゞンサブ゚ンゞン -さらに小さなブロック、
ナヌザヌむンタヌフェむスプリミティブずの盞互䜜甚の制埡䟋制埡
フィヌルド線集。

最も重芁な゚ンゞンはコア゚ンゞンです 。
コンテンツペヌゞでは、ポヌタルがペヌゞを衚瀺するたびに呌び出されたす。 お名前
他の゚ンゞンはそれ自身を代匁したす。たずえば、 ログむンおよびログアりト゚ンゞンは
ログむン、ログアりト、入力されたデヌタの凊理のナヌザヌむンタヌフェむスのレンダリング
これらのアクション䞭にナヌザヌによっお。

コンテンツ線集凊理゚ンゞンは怜蚌フレヌムワヌクず統合されおいたす
怜蚌フレヌムワヌク、むンテグレヌタヌが入力の怜蚌ルヌルを蚭定できるようにしたす
デヌタナヌザヌ。

゚ンゞンは、ナヌザヌAJAXむンタヌフェむスずも統合されおいたす。 AJAXの目的は、
繰り返し䜿甚できるコンポヌネント䞊に構築された最新のナヌザヌむンタヌフェむス
再利甚。 むンテグレヌタヌは既存のラむブラリを䜿甚できたす
アプリケヌション構築時のコンポヌネント。 この方向での䜜業は、Jahia 6で開始したした
GWTコンポヌネント。

Jahia サブ゚ンゞンは、コンテナ線集むンタヌフェむスを衚瀺するために䜿甚されたす。
コンテナには、さたざたなタむプのフィヌルドが含たれる堎合がありたす。 任意のタむプのフィヌルドを線集するずき
コンテナ゚ディション゚ンゞンは、
このタむプのフィヌルド。 たずえば、 ファむルを衚すFileタむプのフィヌルドは、UI-
ナヌザヌがディレクトリを閲芧しおファむルを遞択できるようにするむンタヌフェヌス
タむプが小さいテキストの堎合は、単にテキスト入力フィヌルドが衚瀺されたす。

Jahiaは、URLの「/ engineName」パラメヌタヌを䜿甚しお゚ンゞンリク゚ストを凊理したす。 パラメヌタが
倀なし-芁求はカヌネル゚ンゞンを受け入れたす 。 に䜿甚される文字列倀
呜名゚ンゞンぱンゞン自䜓によっお宣蚀され、 JahiaEngineクラスではgetNameメ゜ッド
は、「/ engineName」パラメヌタの解決メカニズムのキヌを決定したす。

怜玢およびむンデックス䜜成サブシステム


画像
Jahiaの怜玢およびむンデックスサブシステムは、抂芁のみを目的ずしおこのドキュメントに蚘茉されおいたす。
非垞に広範なサブシステム。 䞊蚘の図では、この䞻なコンポヌネントを瀺しおいたす
サブシステム。

Jahia 6の革新は、 OpenSearch暙準の統合です。 ダヒアは次のような圹割を果たすこずができたす
消費者 、およびOpenSearchク゚リゞェネレヌタずしお。 これは、ナヌザヌが
たずえば、 ブラりザの怜玢バヌに Jahiaを統合し、盎接実行できたす
ブラりザバヌから怜玢ク゚リ。 䞀方、Jahiaはサヌビスを䜿甚できたす
さたざたなOpenSearchプロバむダヌず1぀のペヌゞに集玄された怜玢結果を提䟛する
Jahia、Google、MSNなど

埓来のりェブ怜玢゜リュヌションに぀いおは、Jahiaは次のタグラむブラリを提䟛しおいたす。
単玔な党文怜玢圢匏でコンテンツを怜玢するか、高床な
怜玢ク゚リ。 ダヒアのUahコンポヌネントでの高床な怜玢ク゚リの圢成を促進するため
䟿利なク゚リパラメヌタヌセレクタヌが組み蟌たれおいたす。 これらのコンポヌネントは、
AJAXフレヌムワヌクであり、むンタヌフェヌスにデヌタを入力するずきに䜿甚されるものに䌌おいたす
ログむンしたす。

コンテンツオブゞェクトをク゚リする別の方法は、次のレベルでク゚リを盎接埋め蟌むこずです。
テンプレヌト 、および画面䞊のナヌザヌには、すでに準備されたリク゚ストの結果が衚瀺されたす。 それは
「コンテナク゚リ」ず呌ばれ、たずえば、
最埌を衚瀺するずきに、「ニュヌス」タむプから最埌の5぀のコンテンツオブゞェクトをロヌドするには
5぀のニュヌス。

ナヌザヌク゚リを生成するこれらの技術はすべお、サヌバヌシステムに基づいおいたす。
コンテンツの怜玢ずむンデックス䜜成を盎接実行したす。 ポヌタル怜玢゚ンゞンは
党文怜玢を実行する機胜、コンテンツごずに絞り蟌みク゚リを䜿甚した怜玢
ダヒア、およびファむルのコンテンツ。

怜玢およびむンデックスサブシステムの䞭栞は、オヌプン゜ヌスのCompassおよびApacheフレヌムワヌクです。
ルセン ファむルシステム機胜を䜿甚しおむンデックスを保存したすが、機胜もありたす。
デヌタベヌスたたは分散ファむルシステムに情報を保存するため。

珟圚、ファむルシステムを䜿甚したサブシステムの暙準実装が最も倚い
効率的ですぐに䜿甚できる本番察応ため、Jahiaには
この実装。

運営


画像
管理むンタヌフェむスは、すべおのさたざたなJahiaサブシステムの管理ツヌルです。
サむト管理者ずサヌバヌ管理者のための1぀の堎所から。 むンタヌフェヌス
管理により、管理者はすべおのタむプのタスクを実行できたす。

管理むンタヌフェむスは、ディスパッチャサヌブレットずクラスのコレクションに基づいおいたす 。
さたざたなサヌバヌ蚭定のUIを制埡したす。 管理者むンタヌフェヌスの利䟿性のためにも
AJAXのナヌザヌむンタヌフェむスコンポヌネントをサポヌトしたす。

春の統合


画像
Jahia開発者はSpringが倧奜きです。 システムの5番目のバヌゞョンから、Jahiaは
党䜓的で高速か぀柔軟なポヌタル゜リュヌションの構築を促進するSpring Framework 。

Jahiaサブシステムを倚数のサヌビスに接続するには、むンテグレヌタヌは単に次のこずを行う必芁がありたす。
よく知られおいる䟝存性泚入および䟝存性泚入メカニズムを䜿甚したす。
Springによっお提䟛されたす。

䞊蚘の図は、Springを䜿甚しおすべおを初期化できる蚭定を説明しおいたす
ダヒアのさたざたなサブシステム。 倖郚ポヌタルラむブラリApache Pluto、Hibernate、Apache Lucene-
たた、Springでも動䜜したす。これにより、现長いポヌタルアヌキテクチャを実装できたす。

JahiaずSpringの統合の経隓は成功し、Springにはシステムの䟝存関係はほずんどありたせんでした
必芁に応じお将来的に自由に別のものに移行できるようになりたした
枠組み

むベントリスナヌずルヌル


画像
ポヌタルナヌザヌによっお実行されるアクションにより、 むベントが発生する可胜性がありたす
特定のタスクを実行するために䜿甚されたす。 Jahiaは、むンテグレヌタヌが登録するこずを蚱可したす
むベントのリスナヌ。 䞊蚘のチャヌトは、さたざたなむベントがどのように送信されるかを瀺しおいたす
サブシステムずそれらの開発者による䜿甚方法。

ポヌタルが䜕らかのアクションを実行するず、むベントが発生したす。 チヌムかもしれない
ナヌザヌ 、 スケゞュヌルされたアクション 、 バックグラりンドプロセス 。 アクションの原因
むベントオブゞェクトを䜜成するためのむベントゞェネレヌタ 。 このオブゞェクトはさらに
リスナヌの登録リスナヌレゞストリに転送されたす。リスナヌは登録枈みのリスナヌです
必芁なクラスを呌び出したす。 䞀郚のむベントリスナヌは、
他のテクノロゞヌを䜿甚する他のリスナヌ。 むベントリスナヌを䜿甚するこずが可胜です
GroovyGroovyむベントリスナヌ 。むンテグレヌタヌがGroovy蚀語を䜿甚できるようにしたす。
リスナヌの実装。 同じこずを行うJSPむベントリスナヌ
JSPペヌゞ。

別の特定のリスナヌはJCR監芖マネヌゞャヌです 。
Jahiaむベント゚ンゞンを暙準のJCR芳枬モデルにリンクしたす。
この実装の䞋にJBoss Rulesオブザヌバヌがありたす 。
むンテグレヌタヌがむベントを凊理するためのルヌルを䜿甚できるようにしたす。

Jahiaでのリク゚スト凊理


画像
䞊蚘は、ブラりザからの凊理システムのJahiaリク゚ストの図です。 回路が䜿甚できたす
特定の凊理に関係するポヌタルサブシステムを決定する開発者
リク゚スト。

ブラりザリク゚ストは、 JahiaサヌブレットたたはWebDAVサヌブレットのいずれかに送信できたす。
芁求されたバむナリファむルの堎合。

2番目のケヌス WebDAVサヌブレット では、リク゚ストはファむルストレヌゞサヌビスにリダむレクトされたす。
芁求されたリ゜ヌスぞのアクセス暩に぀いお怜蚌が行われ、結果が返されたす
ブラりザに戻りたす。

最初のケヌスでは、 Jahiaサヌブレットが呌び出されたす。 Jahiaは即座にコンテキストオブゞェクトを䜜成したす
コンテキストオブゞェクト 「ParamBean」ず呌ばれたす 。 これにはすべおが含たれたす
リク゚ストされたペヌゞ、珟圚のナヌザヌ、蚀語などを含むリク゚スト情報
衚瀺など。 内郚的に、ParamBeanはパむプラむンメカニズムを䜿甚したす
メカニズムナヌザヌを蚱可したす。 他を統合するカスタマむズ可胜なメカニズム
ナヌザヌ蚱可技術に぀いおは、このメカニズムの詳现に぀いおは「コンベダ」セクションで説明しおいたす。

ParamBeanの䜜成埌、Jahiaは制埡をOperationManagerに転送したす。
コンベアも䜿甚したす。 アクションパむプラむンに぀いおは、このドキュメントの埌半で説明したす
関連セクション。 パむプラむン運甚は、次の目的でJahiaサヌビスず盞互運甚したす。
目的のアクションを実行したす。結果は、どの゚ンゞンが呌び出されたかによっお異なりたす
コンベアベルト。
カヌネル゚ンゞンを䜿甚する堎合、アクションパむプラむンは必芁なすべおのコンテンツオブゞェクトを䜜成し、
テンプレヌト開発者に、JSPペヌゞに投皿するコンテンツを提䟛したす。 だから
コンテンツオブゞェクトの圢成埌、ポヌタルは、ナヌザヌのリク゚ストをJSPテンプレヌトに負担したす。
ペヌゞのレンダリング。

結論ずしお、最終結果はブラりザに送り返されたす。

圓然、これは非垞に単玔化されたポヌタルの䟋ですが、理解の基瀎ずしお圹立ちたす。
Jahiaのク゚リ凊理スキヌマ。 単玔化するために、ポヌタルキャッシュの察話は省略されおいたす
プロセスの説明ですが、むンテグレヌタヌは開発時にそれらを考慮する必芁があるこずは明らかです
ポヌタル゜リュヌション。

コンベダヌ


画像
前のセクションで述べたように、Jahiaはパむプラむンを䜿甚しお提䟛したす
カスタム凊理チェヌン。 コンベダヌは、レベルバルブ、
バルブ、次々ず呌ばれたす。 テンプレヌト固有ずは
パむプラむンの蚭蚈パタヌン-これは党員の責任です
レベルは次を呌び出すこずです。 ぀たり、レむダヌは実行を枡すこずを遞択できたす
次かどうか。

認蚌パむプラむンは 、ナヌザヌを決定するためにParamBeanによっお呌び出され、
珟圚のコンテキストに基づいおいたす。 すべおを䜿甚しおナヌザヌを定矩できたす
メ゜ッドこれは、既に決定されおいる堎合、保存されたセッションの情報の怜玢です。 たたはず
CASなどの統合されたシングルサむンオンシステムを䜿甚するか、コンテナ認蚌を䜿甚する
JEE。 䞊の図では、䞋のパむプラむンが認蚌パむプラむンであり、さたざたなレベルを瀺しおいたす
ナヌザヌ定矩。 各レベルの詳现には觊れたせんが、それは泚目に倀したす
この蚱可メカニズムは、Spring xmlファむルを䜿甚しおカスタマむズできたす。
むンテグレヌタヌは独自のレベルを適甚したす。

アクションパむプラむン 写真の䞊郚は、Jahiaで提䟛するために䜿甚されたす
プラグ可胜なリク゚スト凊理チェヌン。 コンベアレベルが停止する堎合がありたす
キャッシュを操䜜する際に特に重芁な、任意の時点でのリク゚ストの凊理。 コンテンツができる堎合
キャッシュから読み取られ、この時点で芁求凊理が䞭断され、これによりサヌバヌが解攟されたす
䞍芁な操䜜を実行し、芁求を凊理するプロセスを非垞に効果的にしたす。 レベル
図のキャッシュからの読み取りを担圓するパむプラむンは、 「スケルトンアセンブラヌ」スケルトン
アグリゲヌタヌ 。 URL履歎パむプラむンレベルは、すべおのURLを蚘録するために䜿甚され、
ナビゲヌションチェヌンパンくずリストを構築するためにナヌザヌによっお芁求されたす。

むンテグレヌタヌは、拡匵のためにアクションパむプラむンをカスタマむズするこずを興味深いず感じるかもしれたせん
ナヌザヌリク゚ストの凊理に関連する機胜。 それに泚意する必芁がありたす
パむプラむンにレベルを配眮する順序は非垞に重芁であり、この順序を倉曎せずに倉曎するこずはお勧めしたせん
Jahiaポヌタルの原則を深く理解しおいる。

むンポヌトず゚クスポヌト


画像
Jahiaポヌタルのむンポヌトおよび゚クスポヌトサブシステムは、コンテンツをさたざたな堎所に移行するための匷力なメカニズムです。
Jahia Webサむト間、たたは異なるシステムむンストヌル間での方法。

コンテンツを゚クスポヌトするために、システムはJSR-170たたはJCRxmlデヌタストレヌゞ圢匏を䜿甚したす。
その他の特定のファむルバむナリデヌタを゚クスポヌトするためのファむル階局など。 これらすべお
ファむルはzipアヌカむブに圧瞮され、むンポヌトサブシステムで䜿甚できたす。

暙準化されたむンポヌトおよび゚クスポヌトメカニズムにより、完党なむンストヌルを゚クスポヌトできたす。
ダヒア、䞀連のサむト、単䞀の座っおいる、たたはサむトの䞀郚。 サむト間でコンテンツを移動し、
ダヒアサむトのセクション。 非ダヒアシステムに゚クスポヌトおよびむンポヌトしたす。

Jahiaはむンポヌトおよび゚クスポヌトテクノロゞヌを䜿甚しお、リモヌトパブリッシングを可胜にしたす
内容 。 この堎合、通垞、コンテンツのむンポヌト゚クスポヌトはスケゞュヌラヌによっお呌び出されたす
タスク。 むンポヌトおよび゚クスポヌトテクノロゞヌは、コンテンツがい぀倉曎されたかを認識できたす。
ケヌスは、新しいオブゞェクトを䜜成するのではなく、コンテンツオブゞェクトを曎新するだけです。

コピヌ/ペヌストする態床

これは明らかではありたせんが、コピヌ/貌り付け機胜でもむンポヌトおよび゚クスポヌトシステムを䜿甚したす。 䞎えられた
事実は、コンテンツが互換性のある間でしかコピヌおよび貌り付けできない理由を明確にしたす
コンテンツの説明 ゜ヌス間でコンテンツを倉換する方法をJahiaが知る必芁があるため
コンテンツレシヌバヌ。

リンクされたコピヌは、次の堎合にむンポヌトおよび゚クスポヌトシステムを䜿甚したす。
コンテンツを受信者受信者に送信したす。

クラスタリング


画像
Jahiaシステムをクラスタヌにデプロむするこずは、䞭倮の負荷を軜枛する効果的な方法です
負荷の高いサむトの䜜業をサポヌトするプロセッサずメモリ。

クラスタヌぞのJahiaの兞型的なむンストヌルを䞊の図に瀺したす。 Jahiaノヌドは盎接亀換したす
互いにダむレクトメッセヌゞング、共有リ゜ヌスぞのアクセス暩ファむルシステムずデヌタベヌス
デヌタ。

ファむルシステムは、 怜玢むンデックスずバむナリの栌玍に䜿甚されたす
デヌタ サヌバヌがファむルシステムにバむナリデヌタを栌玍するように構成されおいる堎合、
デフォルトはデヌタベヌス内のストレヌゞです 。

デヌタベヌスには他のすべおが保存されたす。 したがっお、高性胜のむンストヌルが非垞に重芁です。
システム党䜓の優れたスケヌラビリティを確保するデヌタベヌス。

Jahiaは、クラスタヌ内のタむプごずにノヌドを区別しお、より専門的な
凊理したす。 さたざたなタむプのノヌドに぀いお簡単に怜蚎したす。

ノヌドの衚瀺

Jahiaブラりゞングノヌドは、特殊なJahiaノヌドであり、
コンテンツ発行サむトずしお機胜したす。 たた、以䞋のポヌトレットず察話したす。
ペヌゞのレンダリング。 このタむプのノヌドを䜿甚するず、発行システムの負荷を分離できたす
認可システムおよびバックグラりンド芁求凊理システムの負荷からのコンテンツ。

認蚌ノヌド

承認ノヌドJahiaの「オヌサリング」ノヌドは、で䜿甚されるクラスタヌノヌドです。
ポヌタルコンテンツの衚瀺ず線集。 これは最も䞀般的に䜿甚されるタむプです。
Jahiaクラスタヌ内のノヌド。したがっお、そのようなノヌドの耇数のむンスタンスが必芁になるため、
負荷を分散したす。

凊理のノヌド

Jahiaでは、長時間実行されるタスクこれらはドキュメント怜蚌アクションですワヌクフロヌ怜蚌
操䜜、コピヌ/貌り付け操䜜、むンポヌトおよびコンテンツむンデックス䜜成はバックグラりンドずしお実行されたす
プロセス 。 したがっお、これらの長い操䜜を実行するずき、他のノヌドはただ
コンテンツの衚瀺ず線集のリク゚ストを凊理したす。

むンデックスサヌバヌ

コンテンツずファむルのむンデックス䜜成は、非垞に費甚のかかる操䜜になる可胜性がありたす。
CPUおよびサヌバヌRAMの負荷。 たずえば、玢匕付けの堎合
pdfファむル、サヌバヌは抜出するためにファむルに含たれおいるスクリプトを実行する必芁がありたす
テキストコンテンツ。 これには、次のようなポストスクリプトのような蚀語呜什の実行が必芁です。
コンテンツを抜出するためのメモリ管理ず呜什凊理。 玢匕付け
倧きなファむルには、完了するたで解攟できないメモリも必芁です。
ファむルを開く。

むンデックス䜜成は通垞、リアルタむムの実行を必芁ずしない操䜜ず呌ばれたす。
時間なので、バックグラりンドで実行されたす。 Jahiaサヌバヌの負荷を枛らすために、
珟圚のナヌザヌ芁求の凊理を実行するには、むンストヌルするこずを匷くお勧めしたす
別のコンテンツむンデックスサヌバヌ。

システムに耇数のむンデックスサヌバヌノヌドをむンストヌルしお、提䟛するこずもできたす。
この操䜜のスムヌズな実行。

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


All Articles