2012-01-30 45 views
5

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!

Trả lời

2

Ứng dụng bao bì không có tác động cố hữu đối với bảo mật. Số số các dịch vụ được hiển thị, máy chủ cá nhân, điểm cuối yêu cầu, v.v. cũng như cách thức dịch vụ truy cập tài nguyên cần được bảo vệ là những gì liên quan đến bảo mật chứ không phải cách đóng gói.

Điều đó nói rằng, vấn đề chính bạn đang xem xét ở đây là nguyên khối và mô-đun. Khi bạn hiểu rằng rằng là vấn đề cốt lõi, tất cả các tài liệu hiện có về sự cân bằng có liên quan đều có liên quan.

Cụ thể, bạn sẽ được tìm kiếm tại địa chỉ:

  1. scaleability - Nhiều mảnh nhỏ rất linh hoạt hơn đối với quy mô, kể từ khi bạn có thể mở rộng mỗi mảnh trên riêng của nó
  2. phức tạp - wireing dịch vụ cùng nhỏ cho phép bạn giữ cho các dịch vụ cá nhân ít phức tạp hơn, vì họ phải lo lắng về ít điều hơn
+0

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

+0

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

+0

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

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