Giả sử tôi đang viết một chương trình phụ trợ Java cho một số công cụ GUI (Swing) front-end. Phần cuối này sẽ bao gồm nhiều loại EJB khác nhau cho logic trung gian/kinh doanh, cũng như một số dịch vụ web lọc các yêu cầu chuyển tiếp tới các yêu cầu EJBs đó theo số &.Ưu điểm/nhược điểm đối với các chiến lược bao gói Java khác nhau
Theo như bao bì & triển khai đi, chúng tôi có một số chiến lược có thể khác nhau:
- 1 khối EAR/1 appserver - gói tất cả các EJB vào lọ, và các dịch vụ web vào một WAR, và gói tất cả những điều này bên trong 1 EAR nguyên khối; sau đó EAR được triển khai tới một máy chủ ứng dụng (ví dụ, GlassFish)
- Nhiều máy chủ EAR nhỏ/1 máy chủ ứng dụng - gói mỗi thành phần (mỗi EJB và mỗi dịch vụ web) vào JAR/WAR của riêng nó và sau đó mỗi JAR/WAR vào EAR của chính nó; do đó có tỷ lệ 1: 1 giữa thành phần và EAR; mỗi EAR sau đó được triển khai vào cùng một ứng dụng máy chủ
- Nhiều EAR nhỏ/Nhiều trình ứng dụng - giống như trên, ngoại trừ từng EAR nhỏ được triển khai tới máy chủ ứng dụng của chính nó; do đó có một 1: tương quan 1 giữa thành phần và ứng dụng máy chủ
- Không tai/Nhiều appservers - tương tự như trên ngoại trừ loại bỏ các "trung" tai và chỉ triển khai từng đóng gói JAR/WAR để appserver riêng của mình
Ưu/nhược điểm của mỗi chiến lược trong số 4 chiến lược này là gì? Có an toàn hơn không? Biểu diễn? Có lợi hơn cho clustering/replication? Một số chiến lược này chỉ đơn giản là ngớ ngẩn?!?
Cảm ơn trước!
Cảm ơn cdeszaq - vì vậy bạn đang nói rằng các thực hành hiện đại đang có xu hướng phát triển dựa trên mô-đun nhỏ hơn, "thành phần"? Nếu vậy, nó là công bằng để nói rằng bạn sẽ là một người đề xuất của nhiều EAR/nhiều máy chủ ứng dụng? Cảm ơn một lần nữa! – IAmYourFaja
Phát triển dựa trên thành phần chắc chắn là yêu thích hiện tại. Nhiều EAR đi cùng với điều đó. Số lượng máy chủ ứng dụng mà các mô-đun này tách ra là vấn đề về quy mô chứ không phải vấn đề về đóng gói. Bắt đầu bằng cách đặt tất cả các ứng dụng trên một máy chủ và chia nhỏ chúng ra khi tải yêu cầu. Không tối ưu hóa cơ sở hạ tầng cho đến khi bạn cần. – cdeszaq
Hai câu cuối cùng gắn kết mọi thứ lại với nhau.Câu trả lời tuyệt vời và lời khuyên tuyệt vời. Cảm ơn bạn! – IAmYourFaja