phiên bản ngắn:Tôi nên sử dụng tiêu chí nào để đánh giá một máy chủ ứng dụng "Perl" (thay thế mod_perl)?
gì tiêu chí tôi nên sử dụng để đánh giá các ứng cử viên có thể cho một Perl "máy chủ ứng dụng" (mod_perl thay thế)?
Chúng tôi đang tìm kiếm một số loại khuôn khổ mà sẽ cho phép thực hiện các chương trình Perl khác nhau lặp đi lặp lại (như một dịch vụ) mà không có chi phí:
tái launcing dịch perl một lần cho mỗi thực
tải/biên dịch các module Perl một lần mỗi thực
(cả hai đều là những lợi ích mà chạy mod_ perl cung cấp)
Ghi chú:
Chúng tôi chăm sóc không nhiều về bất kỳ lợi ích bổ sung dành bởi mod_perl quá nhiều, như tích hợp Apache sâu.
Đây sẽ là máy chủ ứng dụng thuần túy, có nghĩa là không cần bất kỳ chức năng cụ thể nào trên web (không phải là vấn đề nếu máy chủ ứng dụng cung cấp, không cần thiết).
Tất nhiên chúng tôi sẽ xem xét các tiêu chí rõ ràng (tốc độ thô, ổn định sản xuất, phát triển tích cực, khả năng chạy trên hệ điều hành mà chúng tôi quan tâm). Điều tôi quan tâm là những thứ nhỏ nhặt và tinh tế mà chúng ta có thể mong muốn từ một khung công tác/máy chủ như vậy.
Bối cảnh:
Tại $ làm việc, quyền hạn mà được quyết định rằng họ muốn thay thế một tình huống hiện tại (webapps đơn giản được phát triển ở Embperl và triển khai thông qua Apache/mod_perl).
Quyết định được đưa ra để sử dụng hệ thống MVC (tự trồng) sẽ có giao diện người dùng Java Spring cho Chế độ xem; và Bộ điều khiển sẽ phân tích các yêu cầu dịch vụ back-end cho các dịch vụ cho từng ứng dụng thực hiện các nhiệm vụ Mô hình (không bị treo lên các chi tiết về điều này - nó không liên quan lắm đến câu hỏi chính).
Một trong các tùy chọn cho dịch vụ back-end là Perl, để chúng tôi có thể tận dụng tất cả IP Perl hiện có của chúng tôi (thư viện, mã phụ trợ webapp), và không phải chuyển 100% của nó sang Java.
Để tóm tắt:
| View | Model/app | Model loaded/executed by: |
================================================================================
OLD | Empberl | Model.pm | mod_perl has Model.pm loaded, called from view.epl |
NEW | Java | Model.pm | perl generic_model.pl -model Model (does "require") |
================================================================================
Bây giờ, những người bạn của những người đã làm phát triển Web Perl trong một thời gian, ngay lập tức sẽ nhận thấy vấn đề rõ ràng nhất với thiết kế mới:
| Perl interpreter starts | Perl modules are loaded and compiled |
=======================================================================
OLD | Once per mod_perl thread | Once per mod_perl thread
NEW | Once per EVERY! request | Once per EVERY! request |
=======================================================================
Nói cách khác , trong mô hình mới, chúng tôi không còn có bất kỳ lợi ích hiệu suất nào được cung cấp bởi mod_perl như một thùng chứa ứng dụng phía máy chủ liên tục !!!
Do đó, chúng tôi đang xem xét các vùng chứa ứng dụng có thể có cùng chức năng.
(như một lưu ý phụ, vâng, chúng tôi đã nghĩ đến việc chỉ cần chạy một cá thể của Apache với mod_perl như một vùng chứa ứng dụng, như một khả năng khả thi. Tuy nhiên, vì chức năng web là không cần thiết, tôi muốn xem bất kỳ tùy chọn nào khác có thể phù hợp với hóa đơn).
Giao thức nào sẽ được sử dụng để làm cho java và các phần perl nói chuyện với nhau? – innaM
Nhưng bạn không thể giữ "tính song song" của một khởi động bằng cách tiếp tục chạy các dịch vụ trong một môi trường '' 'apache mod_perl''' (hoặc PSGI) và nói chuyện với tất cả chúng từ điều khoản Java Swing mới của bạn? Đó có phải là quá chậm? Ít nhất thì trình thông dịch '' 'perl''' đang chạy và chờ và sẵn sàng. –
Xin lỗi, tôi có nghĩa là nhận xét trước của tôi là một câu hỏi/phản hồi khác liên quan đến ghi chú phụ của bạn. Bạn đã thử nghiệm phương pháp tiếp cận vùng chứa ứng dụng '' 'mod_perl''' này chưa? Có vẻ như www.apache.org đã chạy hoặc chạy '' 'Qpsmtpd''' để giúp xử lý việc gửi danh sách gửi thư của họ theo cách này (** nghĩa là ** được nhúng dưới dạng dịch vụ SMTP trong một cá thể' '' mod_perl''' của apache). Vì vậy, '' 'apache''' và' '' mod_perl''' ... "chúng không chỉ dành cho web" :-) –