2009-04-09 21 views
14

Tôi thực sự thích khái niệm về các gói mô đun được thực hiện bởi OSGi.Mini-OSGi có thể chạy trong một hộp cát (như AppEngine hoặc WebStart)?

Tôi cũng thích các dịch vụ "triển khai được quản lý" như Google AppEngine (đối với ứng dụng web) hoặc Java WebStart (dành cho phần mềm ứng dụng khách).

Hai ý tưởng này dường như bổ sung cho nhau một cách khá khái niệm. Tuy nhiên, tiêu chuẩn OSGi bao gồm một vài tính năng khiến cho việc triển khai như Felix hoặc Equinox không thể chạy trên các máy ảo được sandboxed, chẳng hạn như AppEngine hoặc Webstart. Trong những môi trường này, không thể truy cập trực tiếp vào một hệ thống tệp, ví dụ, ngăn cản bộ nhớ cache bó OSGi được sử dụng để lưu trữ các thư viện gốc và trạng thái bó liên tục.

Hiện tại, tôi không quan tâm nhiều đến việc sử dụng thư viện gốc hoặc có trạng thái gói liên tục. Có một số khung thực hiện khái niệm gói và dịch vụ cốt lõi của OSGi (lý tưởng theo cách tương thích để các gói OSGi có thể được triển khai vào nó), nhưng có thể hoạt động mà không có bộ đệm gói (và các cơ sở khác không có sẵn trong hộp cát) ?

Tôi đang tìm kiếm một cái gì đó giống như phiên bản giới hạn của Felix hoạt động trên AppEngine hoặc WebStart.

Tất nhiên, nếu động cơ WebStart và AppEngine Google chỉ cung cấp dịch vụ khuôn khổ OSGi out-of-the-box đó sẽ là tuyệt vời, quá ...

Cập nhật: Một khía cạnh khác rất hạn chế của AppEngine là bạn không thể bắt đầu chủ đề mới. Điều này ngăn cản (trong số những thứ khác) quản lý vòng đời gói không đồng bộ. Rõ ràng không phải là một vấn đề với WebStart.

Trả lời

0

Nếu vấn đề duy nhất của bạn xuất phát từ bộ đệm gói và bạn không cần nó, bạn có thể loại bỏ nó bằng cách đặt thuộc tính này thành null trong Equinox hoặc Felix? Tôi chắc chắn rằng bộ nhớ cache này không bắt buộc phải có Equinox để chạy (không biết cho Felix)

1

Tôi khá chắc chắn rằng nó có thể được thực hiện, và This eclipse help page có thể giúp bạn bắt đầu. Nếu tôi hiểu chính xác, các gói của bạn phải được ký và tệp jnlp của bạn cần phải yêu cầu tất cả các quyền.

+0

Vâng, phần "yêu cầu tất cả các quyền" là vấn đề ... – Thilo

+0

Bạn có thể làm mờ việc đó không? Ý tôi là: nếu mã của bạn có nhu cầu hợp pháp, tại sao không yêu cầu người dùng cấp quyền để fullfil những nhu cầu này? Bất cứ điều gì hạn chế bạn trong lĩnh vực này? –

+0

Mã ứng dụng không cần truy cập hệ thống tệp. Nhưng OSGi cần nó trong nội bộ. Đó có phải là nhu cầu hợp pháp không? Co le không. – Thilo

1

Bạn nên nói chuyện với Chris Aniszczyk. Ông đã làm cho nó hoạt động với Equinox và Knopflerfish. Xem ảnh chụp màn hình ở đây: http://twitpic.com/300lk Anh ấy đang lên kế hoạch viết blog về nó, nhưng tôi đoán anh ấy khá bận rộn vào lúc này. Dưới đây là các liên kết đến blog của mình: http://mea-bloga.blogspot.com/

+0

Thú vị. Tôi hy vọng anh ấy viết blog về nó.Tôi đã bắt đầu thử nghiệm nhỏ của riêng tôi ở đây: http://drop.io/appengine/ http://miniosgi.appspot.com/ – Thilo

+0

Bây giờ anh ấy đã viết blog về nó: http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/ – Thilo

+0

Đó là vấn đề khi mọi người có quá nhiều blog. Thật khó để bắt kịp với tất cả chúng (đặc biệt là nếu bạn không biết tất cả chúng ;-)) Cảm ơn con trỏ. Có vẻ như họ chưa gặp vấn đề về luồng, nhưng nhấn vào cái bạn đang phải đối mặt với bộ nhớ ... –

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