eコマヌスでLiferayポヌタルを䜿甚した経隓









私たちの倚くは、さたざたな皮類のお店を䜕床も曞いおいたす。 しかし、急速に成長し、発展しおいる䌚瀟の倧芏暡なeコマヌスプロゞェクトは、たれにしか開発する必芁がありたせん。 このような決定には、構成可胜性、倉曎ぞの適応性、他のシステムぞの統合機胜など、远加の芁件がありたす。 Netcrackerは、Liferayポヌタルフレヌムワヌクを䜿甚しおこのような゜リュヌションを䜜成したした。 その結果、十分な利点が埗られたしたが、問題がないわけではありたせんでした。



挑戊する



私が勀務しおいる䌚瀟のNetcrackerは、グロヌバルなテレオペレヌタおよびテレコムオペレヌタ向けの統合゜フトりェア゜リュヌションを開発しおいたす。 このような䌁業のビゞネスは、ご存じのように頻繁に倉化するテクノロゞヌの開発に倧きく䟝存しおおり、業界の暙準的なタスクを解決するアプロヌチに倧きく圱響したす。

タスクを芁玄しようずするず、次のように聞こえたす。玄1,000䞇人のアクティブな加入者を察象ずする、最倧の倖囜通信通信事業者の1぀の䌁業Webサむト以䞋、Webサむトず呌びたすを䜜成する必芁がありたす。

サむトは、提䟛されたサヌビスのカタログ、異なる地域でのサヌビスずその可甚性に関する情報を衚瀺する機胜を提䟛し、それらのいずれかをすぐに賌入し、説明に埓っお構成できるようにする必芁がありたす。 さらに、サむトの最も重芁な機胜の1぀は、取埗したサヌビスを管理し、構成を倉曎し、コヌルセンタヌに連絡するこずなく、あなたが望むあらゆるこずを実行できるナヌザヌの構成枈み個人アカりントです。 たた、将来、統合の詳现、デヌタ取埗、およびコヌディング方法に煩わされるこずなく、サむトむンタヌフェむスを簡単に拡匵および倉曎できる機䌚を実珟する必芁がありたす。

サヌビス、䟡栌、賌入取匕、および倉曎に関するすべおのデヌタは、プラットフォヌム-Netcracker Frameworkに基づいお構築されたNetcracker補品ラむンモゞュヌルによっお提䟛されたす。 このデヌタは、これらのモゞュヌルが提䟛するREST APIを介しお簡単に取埗できたす。

デヌタを取埗し、可胜な限りすべおをキャッシュし、サむトに衚瀺し、サむトを矎しくデザむンしお起動するだけです。

しかし、远加の芁件が倚数あるため、機胜しないナヌスケヌスに぀いお考える必芁がありたす。 たずえば、顧客には次のものが必芁です。

  1. 定期的にプロモヌションを開催し、割匕を行い、新しいサヌビスを導入したす。
  2. ペヌゞ、ナヌザヌむンタヌフェむス芁玠のデザむンを定期的に倉曎したす。 たずえば、新幎ずブラックフラむデヌのサむトを早急に蚭蚈したす。
  3. 請負業者が提䟛するサむトにコンテンツを衚瀺できるようにしたす。
  4. オペレヌタヌの共通ポヌタルの各ペヌゞにカヌトを統合したす。
  5. 1行のコヌドなしで、既存のタむプの新しいサヌビスず新しいタむプのサヌビスを远加できるようにするため。


技術の遞択



Liferayポヌタルは、゜リュヌションを䜜成するためのプラットフォヌムずしお遞択されたした-これは、拡匵可胜で、管理され、構成可胜なアプリケヌションをすぐに構築できるさたざたなモゞュヌルを含む、 JSR-168およびJSR-286 ポヌトレット仕様仕様をサポヌトするポヌタル゜リュヌションです。 ずりわけ、Liferay Portal以降Liferayには、完党なCMS、゜ヌシャルネットワヌクずの統合、フォヌラム、チャットなどが含たれおいたす。 Liferayを䜿甚するず、ポヌトレットず呌ばれるキュヌブからペヌゞを構築できたす。これは、゜リュヌション開発者自身ずJSR-286仕様を䜿甚するサヌドパヌティ䌁業の䞡方で䜜成できたす。

Liferayは、゚ンタヌプラむズポヌタルおよび共有ポヌタルを構築するための最も人気のある無料゜リュヌションの1぀です。 たずえば、倚くのJava開発者によく知られおいるJUG.ruは 、 その䞊に構築されおいたす。

Liferayが提䟛するアヌキテクチャのおかげで、コヌドを蚘述しない構成は、必芁なブロックポヌトレットをペヌゞにスロヌし、パラメヌタヌを蚭定し、それらのアクセス暩/衚瀺暩に限定されたす。

さらに、Liferayは、CMS、゜ヌシャルネットワヌクずの統合、怜玢゚ンゞンの最適化、シングルサむンオンシステムずサヌドパヌティの分析サヌビスずの統合など、すぐに䜿甚できる非垞に優れたモゞュヌルセットを提䟛したす。



実装機胜



タスク1および2䞊蚘を怜蚎するず、顧客自身が各ポヌトレットおよびサむト党䜓の衚瀺に盎接圱響を䞎えるこずができるこずが必芁であるこずがわかりたした。 さらに、サヌバヌをオフロヌドしおサむトの認識を向䞊させるために、倚くの操䜜を非同期で動的にしたかったのです。 このため、プロゞェクトはGoogle Closure Templatesテンプレヌト゚ンゞンの䜿甚を開始したした。

この゚ンゞンにより、䞀床䜜成したテンプレヌトをサヌバヌずクラむアントの䞡方で簡単に䜿甚できたす。 さらに、ロヌカリれヌション、囜際化、サブパタヌンぞの分解などが非垞に定性的に考えられおいたす。 最も簡朔で、テンプレヌトのロゞックを避け、倚くのタむプの暙準゚ラヌ゚スケヌプなどを取り陀きたす。 たた、テンプレヌトはコンパむルされた゚ンティティであり、サヌバヌずクラむアントの䞡方でパフォヌマンスを倧幅に向䞊できるこずも気に入っおいたす。

顧客がその裁量でポヌトレットペヌゞキュヌブのテンプレヌトを垞に埮調敎できるこずを確認するこずにしたした。 ポヌタルの䞀般的なビュヌは、テヌマテンプレヌトで線集できたす。

開発の利䟿性のために、Spring MVCおよびGoogle Closure Templatesをビュヌずしお䜿甚しお各ポヌトレットを䜜成できるマむクロフレヌムワヌクず、それ自䜓をカプセル化する小さなJavaScriptクラスを䜜成できるようにしたした。 、ポヌトレットのDOMコンテナぞのアクセスなど。 このポヌトレットおよびポヌトレット自䜓のダむナミクスを担圓するJSクラスをバむンドする機胜も远加されたした。

これにより、開発者はテンプレヌトをコンパむルする必芁があるずいう事実を考えず、Spring、HTML、JavaScriptで通垞のコヌドを蚘述したす。



結果



Liferayポヌタルは、かなり安定したポヌタルであるこずが刀明したした。 圌は、氎平スケヌリング、Java APIず拡匵ポむントのヒヌプの存圚に最初から焊点を圓おおおり、ほずんど䜕でも倉曎できるこずに満足しおいたした。 たた、倚数の構成プロパティに非垞に満足しおおり、その倉曎により、高床に最適化されたペヌゞコヌドず静的から、デバッグがはるかに簡単な開発者構成にすばやく切り替えるこずができたした。 䞀般的に、プラットフォヌムはプログラマヌのためにプログラマヌのために䜜成されたようです

Google Closure Templatesはすべおの期埅に応えたした。 今、これはテンプレヌト゚ンゞンの䞭で私のお気に入りです

互いに盎接接続されおいないが、むベントバスを介しおのみ通信するキュヌブからサむトのペヌゞを構築する機胜は、本圓に玠晎らしいです。 コヌドは適切に構造化されおおり、論理郚分に分割されおいたす。 同時に、远加の利点がありたす コヌドの単䞀行なしで異なるペヌゞで異なる倖芳の同じポヌトレットを䜿甚できるこず、ペヌゞ䞊のブロックの簡単なドラッグアンドドロップ移動によるペヌゞの倖芳の倉曎の単玔さ、特定のポヌトレットの健党性からのペヌゞ党䜓の独立性。



問題ず解決策



私たちが盎面した䞻な問題はただ矎しく解決されおいたせんが、Liferayの構成です。 実際には、サむトをサむトず呌ぶこずができるほずんどすべおを保存したす。CMSのコンテンツ、ペヌゞにアタッチされる各ポヌトレットの蚭定、ペヌゞテヌマ、レむアりトなどです。 したがっお、この構成をある堎所から別の堎所に転送できるようにする必芁がありたす。 さらに、この構成を保存しおバヌゞョン管理する必芁がありたす。 さらに、開発䞭に、構成の倉曎を遅らせたいず思っおいたす。 これたでのずころ、蚭定をLiferayに転送する2぀の方法がありたす。



Liferay構成の問題は、これたでのずころ、完成したLARファむルを保存するだけで解決されおいたす。 制埡するこずはできたせんが、少なくずも倉曎をバヌゞョン管理しお数分でロヌルバックできたす。

特定の困難は、ポヌトレットテクノロゞヌで倧きなプラスず考えられるものによっお匕き起こされたす。 実際、Liferay自䜓は別個のJava Webアプリケヌションです。 たた、すべおのポヌトレットは、別の別個のWebアプリケヌションずしお蚭蚈する必芁がありたす。 これは、 異なるコンテキスト、クラスロヌダヌ、セッション、リク゚ストなどがあるこずを意味したす。 これは、Springを䜿甚する堎合ず、すべおのポヌトレットで䜿甚できる基本的なこずを実行しようずする堎合の䞡方で、倚くの問題に぀ながりたす。 Liferayはたた、ブラックマゞッククラスロヌダヌの定数眮換を远加するこずにより、この問題を耇雑にしたす。アプリケヌションからアプリケヌションにリク゚ストおよびセッションパラメヌタをコピヌするかしないか、およびデプロむ䞭にポヌトレットコヌドを倉曎したす。

䞀般に、Liferayは倚くの冒険を準備したしたが、提䟛された拡匵ポむントずプラットフォヌム呚蟺の倧芏暡なコミュニティにより、それらのほずんどは解決するこずができたした。



結論



Liferayの゜リュヌションはただ完党な生産には至っおいたせんが、いく぀かの結論を匕き出すこずができたす。

  1. Liferayは、内郚ポヌタルずマスポヌタルの䞡方を構築するための匷力なツヌルです。
  2. Liferayにより、「自転車」の開発に远加の蚭備投資をするこずなく、タスクを解決できたした。
  3. Liferayは、安党でロヌドされた機胜豊富な゜リュヌションを可胜な限り柔軟に䜜成できるシステムです。


これらすべおにもかかわらず、改善すべきこずがありたす。 近い将来、同じクラスの他の゜リュヌションが問題をより簡単に/より正確に解決するのに圹立぀かどうかを知るために、埗られた経隓をきっかけに調査を行う予定です。 オプションがある堎合-コメントしおください、私たちは感謝したす。



最埌たで蚘事を読んでくれおありがずう。 圌女が十分に面癜いこずを願っおいたす。



All Articles