2013-06-10 26 views
11

Tôi đang hỏi một câu hỏi rất cơ bản ở đây.Mục đích của việc xây dựng các dự án Apache Sling, Felix, Jackrabbit là gì

Câu hỏi là

Tôi đang sử dụng Apache Sling, Apache Jackrabbit, Apache Felix trong dự án của tôi như đã nói bởi giảng viên của tôi. Tôi đang cố gắng hiểu tại sao các phần mềm này được Apache phát triển. Tôi đã thử rất nhiều trên internet, nhưng tôi đã không tìm thấy bất kỳ blog hoặc blog wordpress, hoặc bất kỳ video youtube hữu ích mà giải thích tất cả các dự án này. Bạn có thể giải thích cho tôi về những dự án này không.

Why these projects developed? 

What they do ? 

and more questions like this 

Trước đây tôi đã tìm thấy sự nghi ngờ tương tự với Apache Hadoop, nhưng tất cả tài liệu mà tôi tìm thấy trên mạng là đủ để tôi cảm nhận dự án này. Lần này tôi đang đấu tranh với Sling, Felix, Jackrabbit.

Tôi sẽ rất biết ơn bạn. Đang chờ phản ứng của bạn.

+0

Bạn có quản lý để làm cho ba hệ thống này lại với nhau? – Shurmajee

+2

Các dự án này đều được Adobe duy trì chủ yếu tại thời điểm này để sử dụng trong sản phẩm CMS của họ Adobe Experience Manager (AEM). Jackrabbit là thực hiện tham chiếu cho JCR có một số thông qua bên ngoài Adobe (xem Modeshape). Felix là một thùng chứa OSGi cũng là một chuẩn mở. Sling là khung công tác web cho JCR được tạo ra một cách rõ ràng cho người tiền nhiệm của AEM và đã gần như không nhận con nuôi bên ngoài AEM. Nếu bạn không sử dụng AEM, tôi không biết tại sao bạn lại chọn chồng này. Có những lựa chọn tốt hơn. – jiggy

Trả lời

20

Sự kết hợp của Apache Jackrabbit, Apache Sling và Apache Felix cho phép bạn tạo ứng dụng web.

Apache Jackrabbit là triển khai tham chiếu của JCR API. JCR API là quản lý kho nội dung; để quản lý, ví dụ: nội dung web. Kho lưu trữ nội dung là sự kết hợp giữa hệ thống tệp và cơ sở dữ liệu.

API JCR được thiết kế đặc biệt để xử lý nội dung web. Tại sao lại sử dụng API JCR và tại sao không sử dụng API cơ sở dữ liệu quan hệ? URL là phân cấp, như trong hệ thống tệp. Cơ sở dữ liệu quan hệ không dễ dàng hỗ trợ truy cập phân cấp. Tại sao không sử dụng API hệ thống tệp? Bởi vì JCR hỗ trợ các giao dịch, phiên bản và nhiều tính năng khác mà các API hệ thống tệp không hỗ trợ.

Apache Sling là một khuôn khổ web dựa trên API JCR và tận dụng các tính năng được cung cấp bởi API JCR (15 Minute introduction).

Apache Felix là vùng chứa OSGi. Nó cho phép liên tục khởi động, dừng và thay thế các thành phần của một ứng dụng web (các tệp jar, theo nghĩa nào đó), trong khi máy chủ web đang chạy. Điều đó có nghĩa là nó cho phép bạn thay đổi ứng dụng mà không phải khởi động lại máy chủ.

+1

Tôi có cảm giác về JackRabbit và Felix. Nhưng tuyên bố đưa ra cho Sling là hoàn toàn bị trả lại cho tôi. Bạn có thể giải thích cho tôi một lần nữa về Sling? – devsda

+0

Xin lỗi, cá nhân tôi không biết nhiều về Sling. Tất cả những gì tôi biết là những gì bạn cũng có thể tìm thấy trên trang web. –

+0

Nhân tiện, tên chính thức là Jackrabbit (chữ thường thấp hơn). Xin lỗi để được picky :-) –

12

Sling với các thuật ngữ rất đơn giản có thể được mô tả là một API REST REST cho JCR. bạn có thể sử dụng các yêu cầu http để quản lý nội dung bên trong kho lưu trữ.

Ngoài ra, Sling cung cấp cơ chế hiển thị nội dung đó theo các cách khác nhau để sử dụng web. bạn có thể sử dụng tập lệnh (ví dụ JSP) và mã java (servlets, pojos, v.v.) trong thùng chứa Felix để xử lý yêu cầu và gửi yêu cầu.

Khi yêu cầu được thực hiện cho một nút cụ thể, Sling tra cứu một thuộc tính được gọi là sling:resourceType, đây là khóa tra cứu để hiển thị tập lệnh. Sau đó, kịch bản appropiate được thực hiện bằng cách sử dụng nút như đầu vào.

Bạn có thể viết các loại khác nhau cho trình kết xuất và sau đó sử dụng nó để hiển thị nội dung của bạn theo những cách khác nhau.

Ví dụ: bạn có thể viết hai tập lệnh full.json.jsp và short.json.jsp và sau đó sử dụng chúng để làm cho nút cùng theo hai cách khác nhau:

/content/app/node.full.json 

HOẶC

/content/app/node.short.json. 

Sling về cơ bản phù hợp với thẻ trong URL yêu cầu để chọn một kịch bản phù hợp.

Họ có một thực sự tốt đẹp cheat sheet giải thích cách yêu cầu độ phân giải và vẽ các công trình

nó là phức tạp hơn một chút so với này, vì tất cả mọi thứ được tổ chức trong các nguồn lực và các thành phần. bạn muốn kiểm tra their site để biết thêm thông tin

+0

Để có một ý tưởng nhanh về những gì bạn có thể làm với Sling, tôi thích hướng dẫn nhanh của họ: "Khám phá Sling trong 15 phút" https://sling.apache.org/documentation/getting-started/discover-sling-in-15-minutes .html –

1

Tôi cũng có những nghi ngờ tương tự. Câu trả lời tốt nhất mà tôi đã có thể tìm thấy là trong trang Sling chính thức (https://sling.apache.org/)


(là gì) Apache Sling, trong một trăm chữ:

Apache Sling là một khuôn khổ web có sử dụng một Java Kho lưu trữ nội dung, chẳng hạn như Apache Jackrabbit, để lưu trữ và quản lý nội dung.

Ứng dụng Sling sử dụng tập lệnh hoặc Java servlets, được chọn dựa trên quy ước tên đơn giản, để xử lý yêu cầu HTTP theo cách RESTful.

Khuôn khổ và khung điều khiển Apache Felix OSGi được nhúng của Apache cung cấp môi trường thời gian chạy động, trong đó mã và gói nội dung có thể được tải, dỡ và cấu hình lại khi chạy.


Vì vậy, nối lại nó:

  • Sling là một khuôn khổ web -> sử dụng con thỏ rừng -> dựa/hỗ trợ trên JCR API.
  • Bạn có thể thấy Apache Felix giống như một vùng chứa với người quản lý của nó.

Lưu ý rằng Sling bắt đầu là dự án nội bộ tại Phần mềm ban ngày. Đó là lý do tại sao một số gói/thư viện được đặt tên như com.day, nhưng cuối cùng, chúng là hai tên giống nhau.

Ngoài ra, nếu bạn muốn trở thành rõ ràng về Jackrabbit và JCR API bạn có thể truy cập trang chính thức của Jackrabbit http://jackrabbit.apache.org/jcr/jackrabbit-architecture.html

Các vấn đề liên quan