web-dev-qa-db-ja.com

Apache Sling、Felix、Jackrabbitプロジェクトの構築の背後にある目的は何ですか

ここで非常に基本的な質問をしています。

質問は

インストラクターが言ったように、プロジェクトではApache Sling、Apache Jackrabbit、ApacheFelixを使用しています。これらのソフトウェアがApacheによって開発されている理由を理解しようとしています。インターネットでたくさん試しましたが、ブログやwordpressブログ、またはこれらすべてのプロジェクトを説明する便利なYouTubeビデオは見つかりませんでした。これらのプロジェクトについて説明してください。

Why these projects developed?

What they do ?

and more questions like this

以前、Apache Hadoopで同じ疑問を見つけましたが、ネットで見つけたすべての資料で、このプロジェクトの感触をつかむことができます。今回はSling、Felix、Jackrabbitと格闘しています。

私はあなたにとても感謝します。あなたの親切な応答を待っています。

20
devsda

Apache Jackrabbit、Apache Sling、およびApache Felixの組み合わせにより、Webアプリケーションを構築できます。

Apache JackrabbitJCR API のリファレンス実装です。 JCR API はコンテンツリポジトリを管理するためのものです。たとえば、Webコンテンツを管理します。コンテンツリポジトリは、ファイルシステムとデータベースを組み合わせたものです。

JCR APIは、Webコンテンツを処理するために特別に作成されています。なぜJCRAPIを使用し、リレーショナルデータベースAPIを使用しないのですか? URLは、ファイルシステムの場合と同様に階層的です。リレーショナルデータベースは、階層アクセスを簡単にサポートしていません。ファイルシステムAPIを使用してみませんか? JCRはトランザクション、バージョニング、およびファイルシステムAPIがサポートしていない他の多くの機能をサポートしているためです。

Apache Sling は、JCR APIに基づくWebフレームワークであり、JCR APIが提供する機能を利用しています( 15分間の紹介 )。

Apache Felix はOSGiコンテナーです。これにより、Webサーバーの実行中に、Webアプリケーションのコンポーネント(ある意味ではjarファイル)をシームレスに開始、停止、および置き換えることができます。つまり、サーバーを再起動せずにアプリケーションを変更できます。

30
Thomas Mueller

非常に簡単な用語でのSlingは、JCRのREST APIとして説明できます。 。 httpリクエストを使用して、リポジトリ内のコンテンツを管理できます。

さらに、Slingは、Webで使用するためにさまざまな方法でそのコンテンツをレンダリングするメカニズムを提供します。 Felixコンテナ内のスクリプト(JSPなど)とJavaコード(servlets、pojosなど)を使用して、リクエストを処理し、リクエストを配信できます。

特定のノードに対してリクエストが行われると、Slingはsling:resourceTypeというプロパティを検索します。これは、スクリプトをレンダリングするためのルックアップキーです。次に、ノードを入力として使用して適切なスクリプトが実行されます。

レンダラーにさまざまな種類を記述し、それを使用してさまざまな方法でコンテンツを表示できます。

たとえば、2つのスクリプトfull.json.jspとshort.json.jspを記述し、それらを使用して2つの異なる方法で同じノードをレンダリングできます。

/content/app/node.full.json 

OR

/content/app/node.short.json.

Slingは基本的に、リクエストURLのトークンと照合して、適切なスクリプトを選択します。

彼らは本当に素晴らしいです チートシート リクエストの解決とレンダリングがどのように機能するかを説明しています

すべてがリソースとコンポーネントで編成されているため、これよりも少し複雑です。あなたがチェックしたい 彼らのサイト 詳細については

17
santiagozky

私も同じ疑問を持っていました。私が見つけた最高の回答は、公式のSlingページ( https://sling.Apache.org/ )にあります。


(何ですか)Apache Sling、100語で:

Apache Slingは、Java Apache Jackrabbitなどのコンテンツリポジトリを使用して、コンテンツを保存および管理するWebフレームワークです。

Slingアプリケーションは、スクリプトまたはJavaサーブレットを使用し、単純な命名規則に基づいて選択され、RESTfulな方法でHTTPリクエストを処理します。

組み込みのApacheFelix OSGiフレームワークとコンソールは、動的なランタイム環境を提供します。この環境では、コードとコンテンツのバンドルを実行時にロード、アンロード、および再構成できます。


だから、それを再開します:

  • Slingは、JCRAPIに基づいて/サポートされているWebフレームワーク-> jackrabbitを使用->です。
  • Apache Felixは、マネージャーを備えたコンテナーのように見えます。

SlingはDaySoftwareの内部プロジェクトとして開始されたことに注意してください。これが、一部のバンドル/ライブラリがcom.dayのように名前が付けられている理由ですが、最終的には同じ名前の2つです。

また、JackrabbitとJCR APIについて明確にしたい場合は、Jackrabbitの公式ページにアクセスしてください http://jackrabbit.Apache.org/jcr/jackrabbit-architecture.html

1
Deisbel R Diaz