OSGi: Sự khác biệt giữa Apache Felix và Apache Karaf là gì?


131

Apache Karaf là một dự án phụ của Apache Felix . Nó được định nghĩa là "một thùng chứa OSGi nhẹ".

Tôi không hiểu khi nào nên sử dụng hạng nặng và khi nào nên sử dụng trọng lượng nhẹ. Trang web của họ không giải thích điều này quá nhiều.

Câu trả lời:


209

Nhãn 'thùng chứa OSGi nhẹ' tương phản Karaf với các thùng chứa OSGi phong phú hơn, không phải với Felix .

Để trích dẫn Guillaume Nodet (tác giả của Karaf) từ đây :

Felix chỉ là thời gian chạy lõi OSGi. Karaf cung cấp "phân phối" dựa trên Felix bằng cách thêm các tính năng khác như bảng điều khiển, cơ chế từ xa SSH, trình triển khai tệp và hơn thế nữa.

Trong sơ đồ này của kiến ​​trúc Karaf, Felix (hoặc triển khai OSGi khác - hiện tại Equinox cũng được hỗ trợ) là hộp OSGi, các hộp khác là các tính năng được Karaf thêm vào:

Kiến trúc Karaf Do đó, trừ khi bạn có những nhu cầu cụ thể không được Karaf đáp ứng (yêu cầu quyền truy cập vào triển khai cơ bản), thường sẽ hợp lý khi sử dụng điều này vì nó cung cấp nhiều hơn 'ngoài hộp'.


5
Một tính năng hay của bất kỳ bộ chứa OSGi nào là bạn có thể chọn chỉ các gói bạn cần và triển khai chúng vào bộ chứa của bạn. Vì vậy, lời khuyên của tôi sẽ là đầu tiên kiến ​​trúc sư ứng dụng của bạn, và sau đó chọn những gì bạn cần. Lời khuyên cho "chỉ cần cài đặt toàn bộ nền tảng vì nó giàu tính năng" nghe có vẻ giống như quay trở lại các máy chủ ứng dụng Java EE khổng lồ. Bây giờ tôi không nói rằng Apache Karaf ở bất cứ đâu gần như lớn như vậy, tôi chỉ đưa ra một điểm mà bạn có thể và chỉ nên triển khai những gì bạn thực sự cần.
Marcel Offermans

1
Dường như với tôi câu trả lời này chưa đầy đủ ở chỗ nó không đề cập đến trường hợp sử dụng nhúng Felix trong một ứng dụng (không cần sử dụng bộ chứa như Karaf) - ví dụ để cung cấp khả năng plugin - đó là cách giải thích của tôi về liên kết theo dõi. Liệu tôi có sai? (Tôi không phải là chuyên gia.) Liên kết: felix.apache.org/documentation/subprojects/ mẹo
J Woodchuck

6

@Marcel Karaf không nguyên khối hay to lớn như máy chủ Java EE. Đó là một thực hiện rất mỏng và tối giản. Nó là một sản phẩm cốt lõi không có nhiều chức năng ngoài giao diện điều khiển cơ bản, tải tệp để bạn thực sự có thể đọc các tệp cấu hình, v.v ... Tệp zip mới nhất của nó là 19,1 MB. Vâng. Nhỏ. Nó có thể dễ dàng chạy trên các thiết bị nhỏ và hoạt động trong nhúng.

Những gì bạn có thể nghĩ đến là một cái gì đó giống như ServiceMix sử dụng Karaf làm lõi / kernel. Nhưng nó bao gồm CXF, ActiveMQ, Camel và các thư viện khác trong cấu hình đầy đủ của nó. Thậm chí sau đó chúng có kích thước tối thiểu, trung bình và đầy đủ.

Thực sự, đối với 99% các dự án ngoài kia, sẽ không có ý nghĩa gì khi bắt đầu trực tiếp với Felix và không sử dụng Karaf thay thế.


-1

Hiện tại, có ba thùng chứa OSGi mã nguồn mở phổ biến:

  - Equinox. It is the modular Java runtime at the heart of the Eclipse IDE,
  - Knopflerfish, Is an open source implementation of the OSGi R3 and OSGi R4 specifications. 
  - Apache Felix. Is the open source OSGi container from the Apache Software Foundation.

http://www.javaworld.com/article/2077837/java-se/java-se-hello-osgi-part-1-bundles-for-beginners.html

Dự án Apache duy trì một thùng chứa OSGi đa năng có tên là Felix. Ở đây được sử dụng như ServiceMix và

Sự khác biệt chính giữa ServiceMix và Karaf là ServiceMix gói một loạt các thành phần tích hợp khác - nhà môi giới tin nhắn ActiveMQ, công cụ định tuyến Camel và một số thứ khác

Theo: http://kevinboone.net/osgitest.html

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.