27

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

質問は

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

Why these projects developed?

What they do ?

and more questions like this

以前、私は Apache Hadoop で同じ疑問を感じましたが、ネット上で見つけたすべての資料は、このプロジェクトの感触をつかむのに十分です。今回はスリング、フェリックス、ジャックラビットで奮闘中。

私はあなたにとても感謝しています。親切な対応をお待ちしています。

4

3 に答える 3

46

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

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

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

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

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

于 2013-06-10T07:15:24.387 に答える
23

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

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

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

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

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

/content/app/node.full.json 

また

/content/app/node.short.json.

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

彼らは、リクエストの解決とレンダリングがどのように機能するかを説明する非常に優れたチートシートを持っています

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

于 2013-06-10T14:11:59.170 に答える
1

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


(とは) Apache Sling を一言で言えば:

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

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

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


それで、それを再開します:

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

Sling は Day Software の内部プロジェクトとして開始されたことに注意してください。一部のバンドル/ライブラリの名前が com.day のようになっているのはそのためですが、最終的には 2 つの名前が同じものになります。

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

于 2016-03-22T15:47:41.680 に答える