2012-05-02 71 views
5

Chúng tôi đang làm việc trên cơ sở hạ tầng dựa trên OSGi để xử lý luồng dữ liệu dựa trên luồng. Các nhiệm vụ xử lý cụ thể được thực hiện bởi các thành phần OSGi riêng lẻ. Bây giờ chúng ta cần khả năng phân phối các thành phần đó trên các máy khác nhau, có nghĩa là, chúng ta cần một loại cơ chế truyền thông nào đó giữa các thành phần/thùng chứa OSGi.OSGi trong cơ sở hạ tầng phân tán

Trong nghiên cứu của mình, tôi đã tìm thấy các giải pháp tiềm năng khác nhau: R-OSGi, Apache CXF cho OSGi phân tán, Khung truyền thông Eclipse.

ECF có vẻ đặc biệt thú vị vì nó hỗ trợ các định dạng truyền tải khác nhau và cung cấp hỗ trợ cho các nội dung như khám phá dịch vụ.

câu hỏi trung tâm của tôi:

  • Có những hướng dẫn chi tiết/đi-throughs cho việc thiết lập một cơ sở hạ tầng ECF trong Felix? (từ nghiên cứu của tôi, tôi thấy rằng sự hỗ trợ của Felix đã được thêm gần đây)
  • Có giải pháp nào ngoài ba giải pháp nêu trên mà tôi có thể đã bỏ sót không?
  • Có lý do lấy Apache CXF thay vì ECF không?

Trả lời

2

Câu hỏi đầu tiên - cho dù có hướng dẫn chi tiết để thiết lập ECF với Felix - Tôi không biết câu trả lời, mặc dù người dùng có thể sử dụng công cụ tìm kiếm để tìm ra các kết hợp của các cụm từ đó .

Vấn đề là ECF sử dụng cơ sở hạ tầng Equinox, và đôi khi vô tình dựa vào các gói không công khai thông qua phụ thuộc transitive (đặc biệt là API thời gian chạy sử dụng Equinox để gỡ lỗi ngoài công chúng). Điều này, đến lượt nó, có nghĩa là ECF dựa trên một loạt các thành phần khác có sẵn và đó là tập hợp này thường không được định nghĩa rõ ràng trên thời gian chạy của Felix.

Bạn đã bỏ lỡ Vải dịch vụ của Paremus, một giải pháp đám mây OSGi thương mại. Tôi không chắc liệu bạn có tập trung vào nguồn mở hay không; nhưng nếu bạn bao gồm giấy phép thương mại thì họ có kiến ​​trúc rất mạnh mẽ cho các dịch vụ từ xa.

Cuối cùng, Apache CXF trên câu hỏi ECF - nếu bạn đang sử dụng Felix, tôi cho rằng đi với Apache CXF có lẽ dễ hơn là đi với ECF. Điều này chủ yếu là do tập phụ thuộc và làm cho nó hoạt động, kết hợp với thực tế là ECF có thể không được kiểm tra trên Felix và do đó có thể giả định các khía cạnh cụ thể của thời gian chạy Equinox (bao gồm, ví dụ, phái đoàn bộ nạp lớp cha của bộ thực thi để nhận những thứ trên classpath khởi động). Đây không thực sự là lỗi của ECF, mà là một tạo tác của hệ sinh thái Eclipse hoạt động như thế nào.

Nếu bạn muốn liên lạc với thời gian chạy không phải là OSGi, có lợi thế trong Apache CXF ở chỗ họ có thể tạo WDSL để tương tác với các ngôn ngữ khác. Tôi tin rằng bạn có thể làm điều tương tự trong ECF với công việc nhiều hơn một chút. Giải pháp CXF có thể tiết lộ chi tiết hơn so với một ECF tương ứng (WSDL luôn là) nhưng nếu bạn không sử dụng lượng lớn yêu cầu thì điều này không có khả năng tạo ra sự khác biệt đáng kể.

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