OSGi: Apache Felix กับ Apache Karaf ต่างกันอย่างไร?


132

Apache Karafเป็นโครงการย่อยของApache เฟลิกซ์ ถูกกำหนดให้เป็น "คอนเทนเนอร์ OSGi น้ำหนักเบา"

ฉันไม่เข้าใจว่าฉันควรใช้เฮฟวี่เวทเมื่อไหร่และควรใช้ไฟแช็คเมื่อไหร่ ไซต์ของพวกเขาไม่ได้อธิบายเรื่องนี้มากเกินไป

คำตอบ:


210

'การ OSGi ภาชนะที่มีน้ำหนักเบา' ฉลากตัดกันKarafมีคุณสมบัติเพิ่มเติมภาชนะ OSGi ที่อุดมไปด้วยไม่ได้กับเฟลิกซ์

หากต้องการอ้างอิง Guillaume Nodet (ผู้เขียนของ Karaf) จากที่นี่ :

Felix เป็นเพียงรันไทม์หลักของ OSGi Karaf จัดเตรียม "การแจกจ่าย" ตาม Felix โดยการเพิ่มคุณสมบัติอื่น ๆ เช่นคอนโซลกลไกการรีบูต SSH ตัวปรับใช้ไฟล์และอื่น ๆ

ในแผนภาพนี้ของสถาปัตยกรรม Karaf เฟลิกซ์ (หรือการใช้งาน OSGi อื่น ๆ - ปัจจุบันยังรองรับEquinox ) คือกล่อง OSGi ส่วนกล่องอื่น ๆ เป็นคุณสมบัติที่เพิ่มโดย Karaf:

สถาปัตยกรรม Karaf ดังนั้นเว้นแต่คุณจะมีความต้องการเฉพาะที่ Karaf ไม่ได้รับการตอบสนอง (ต้องการการเข้าถึงการใช้งานพื้นฐาน) มักจะเหมาะสมที่จะใช้สิ่งนี้เนื่องจากให้ 'นอกกรอบ' มากขึ้น


5
คุณสมบัติที่ดีอย่างหนึ่งของคอนเทนเนอร์ OSGi คือคุณสามารถเลือกเฉพาะบันเดิลที่คุณต้องการและปรับใช้ลงในคอนเทนเนอร์ของคุณ ดังนั้นคำแนะนำของฉันคือการออกแบบใบสมัครของคุณก่อนจากนั้นเลือกสิ่งที่คุณต้องการ คำแนะนำในการ "เพียงแค่ติดตั้งทั้งแพลตฟอร์มเพราะมีคุณลักษณะที่หลากหลาย" ฟังดูเหมือนกลับไปที่เซิร์ฟเวอร์แอปพลิเคชัน Java EE ขนาดใหญ่ ตอนนี้ฉันไม่ได้บอกว่า Apache Karaf อยู่ใกล้ทุกที่ที่ใหญ่เท่าพวกนั้นฉันแค่สร้างจุดที่คุณทำได้และควรปรับใช้สิ่งที่คุณต้องการจริงๆ
Marcel Offermans

1
สำหรับฉันแล้วดูเหมือนว่าคำตอบนี้ไม่สมบูรณ์เนื่องจากไม่ได้กล่าวถึงกรณีการใช้งานของการฝังเฟลิกซ์ในแอปพลิเคชัน (โดยไม่จำเป็นต้องใช้คอนเทนเนอร์เช่น Karaf) - ตัวอย่างเช่นเพื่อให้ความสามารถของปลั๊กอิน - ซึ่งเป็นการตีความของฉันเกี่ยวกับ ลิงค์ต่อไปนี้ ฉันผิดเหรอ? (ฉันไม่ใช่ผู้เชี่ยวชาญ) Link: felix.apache.org/documentation/subprojects/…
J Woodchuck

6

@Marcel Karaf ไม่ใช่เสาหินหรือใหญ่เหมือนเซิร์ฟเวอร์ Java EE เป็นการใช้งานที่บางและเรียบง่ายมาก เป็นผลิตภัณฑ์หลักที่ไม่มีฟังก์ชั่นอื่น ๆ นอกเหนือจากคอนโซลพื้นฐานการโหลดไฟล์เพื่อให้คุณสามารถอ่านไฟล์คอนฟิกูเรชันได้จริง ฯลฯ ไฟล์ zip ล่าสุดคือ 19.1 MB ใช่. เล็ก สามารถทำงานบนอุปกรณ์ขนาดเล็กและทำงานแบบฝังตัวได้อย่างง่ายดาย

สิ่งที่คุณอาจคิดคือ ServiceMix ซึ่งใช้ Karaf เป็นแกน / เคอร์เนล แต่รวมถึง CXF, ActiveMQ, Camel และไลบรารีอื่น ๆ ในการกำหนดค่าทั้งหมด ถึงแม้จะมีขนาดเล็กปานกลางและเต็ม

จริงๆแล้วสำหรับ 99% ของโครงการที่นั่นมันไม่สมเหตุสมผลที่จะเริ่มโดยตรงกับเฟลิกซ์และไม่ใช้ Karaf แทน


-1

ปัจจุบันโอเพนซอร์สโอเพนซอร์สที่ได้รับความนิยมมีอยู่สามรายการ:

  - 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

โครงการ Apache มีคอนเทนเนอร์ OSGi สำหรับใช้งานทั่วไปที่เรียกว่า Felix ที่นี่ใช้เป็น ServiceMix และ

ข้อแตกต่างที่สำคัญระหว่าง ServiceMix และ Karaf คือ ServiceMix รวมส่วนประกอบการรวมอื่น ๆ ไว้มากมาย - นายหน้าข้อความ ActiveMQ, กลไกการกำหนดเส้นทางอูฐและสิ่งอื่น ๆ

อ้างอิง: http://kevinboone.net/osgitest.html

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.