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.
Vâng, phần "yêu cầu tất cả các quyền" là vấn đề ... – Thilo
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? –
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