2010-09-09 5 views
11

Vâng Chúng tôi có tình huống để quyết định ngay bây giờ. Tôi nghĩ rằng stackoverflow là nơi tốt nhất để thảo luận.EJB Vs WebService? Điểm thực hiện của xem

Nền:

Chúng tôi có 2 JVMs Enterprise Máy chủ ứng dụng và một ứng dụng được triển khai trên mỗi máy chủ. chúng ta cần phải kích hoạt tính năng yêu cầu chức năng nghiệp vụ từ máy này sang máy khác. Giả sử một là client và một là server.

Bây giờ, từ chế độ xem điểm hiệu suất, cách tiếp cận đó là tốt hơn để thiết kế ứng dụng máy chủ.

bằng cách giữ cho những điều sau đây trong tâm trí:

Tôi có 2 lựa chọn:

  1. ứng dụng EJB tinh khiết có nghĩa EJB khách hàng và thành phần máy chủ EJB

  2. WebService cách tiếp cận đồng bằng Java (không webservice trên EJB, coz nó chỉ đơn giản là lộn xộn)

Chỉ số Hiệu suất của tôi: Tốc độ: phương pháp thiết kế nào sẽ xử lý yêu cầu nhanh hơn. Ứng dụng doanh nghiệp của tôi sẽ được triển khai trên máy 32 bit chắc chắn!

Cũng lưu ý rằng có 2 JVM, một là 32 bit và 64 bit (tránh tình trạng này là không thể tránh khỏi ngay bây giờ)

Vui lòng cung cấp thông tin phản hồi của bạn

Trân

Chetan

+0

Đã thêm thẻ java vào câu hỏi của bạn. –

+0

Bạn có vấn đề gì với các Dịch vụ Web được hỗ trợ EJB? –

+0

@BlaiseDoughan xin lỗi vì ngoại tuyến, nhưng thực tiễn tốt là làm cho các dịch vụ web được hỗ trợ EJB? – MyTitle

Trả lời

8

Nếu bởi "Dịch vụ Web", bạn có nghĩa là các dịch vụ web SOAP, các EJB sẽ nhanh hơn bất kể bạn làm như thế nào.

Ưu điểm:

  • Java serialization là nhanh hơn mà dịch vụ XML Web
  • serializing và phân tích cú pháp XML sử dụng bộ nhớ hơn serialization thẳng, EJB tiết kiệm bộ nhớ
  • EJB được thể hiện trong giao diện Java thẳng và các đối tượng có giá trị . Đối với dịch vụ Web, bạn có thể phải thêm một lớp bản đồ như XmlBeans hoặc JAXB.
  • Hầu hết các giao thức EJB phép bạn dễ dàng tái sử dụng các kết nối TCP/IP giữa các cuộc gọi

Nhược điểm:

  • Làm một định nghĩa thông điệp XML đầu tiên thiết kế phù hợp sẽ tách các client và server
  • Đó là dễ dàng hơn để thay đổi các định dạng tin nhắn cho rằng lớp bổ sung của indirection
  • Việc triển khai EJB trước đây rất lớn và chậm, lớn hơn các ngăn xếp Dịch vụ Web (nhưng các triển khai EJB mới hơn như Apac ông OpenEJB nhỏ, nhẹ và có thể nhúng)

Nhưng nếu bạn không cần xử lý giao dịch phân tán, chỉ cần sử dụng RMI.Nó có những ưu điểm nhưng không có nhược điểm nào của EJB. Nó đã được xung quanh cho các lứa tuổi, nhưng nó vẫn hoạt động chỉ dandy.

+0

cảm ơn rất nhiều chi tiết .. Tôi đang tìm cách liên lạc nhanh hơn giữa 2 JVM. EJB là người tôi cảm thấy. đặc biệt là trong ứng dụng của tôi, tôi không muốn mất hiệu suất của tôi vì phân tích cú pháp XML ở hai đầu. – Chetan

1

Nó không phải là một hoặc khác. Bạn có thể có tất cả logic nghiệp vụ trong EJB và cũng cung cấp mặt tiền dịch vụ web để truy cập EJB. Cũng nên nhớ rằng có nhiều loại kiến ​​trúc dịch vụ web khác nhau. SOAP là điều mà hầu hết mọi người nghĩ đến khi họ nghe "dịch vụ web", nhưng bạn cũng có thể muốn xem xét JAX-RS.

Gửi dữ liệu dưới dạng XML qua HTTP là không hiệu quả khủng khiếp. Mặt khác, nó cung cấp cho bạn nhiều hơn tính linh hoạt hơn ở phía khách hàng. Các dịch vụ Web có thể được sử dụng từ bất kỳ nền tảng hoặc ngôn ngữ lập trình nào.

+0

cảm ơn mike. Nếu tôi sử dụng SOAP trên EJB, việc xử lý XML sẽ cản trở hiệu suất của tôi rất nhiều. coz tải trọng xml của tôi sẽ có khoảng 60 đến 100KB chủ yếu. – Chetan

+0

Mike gợi ý JAX-RS gửi XML không phải là thông báo SOAP. Ví dụ: http://bdoughan.blogspot.com/2010/08/creating-restful-web-service-part-45.html –