Tôi đang cố gắng hiểu mục đích và lý do tại sao chúng tôi cần các quan điểm khách hàng khác nhau trong EJB. Ai đó có thể cố gắng giải thích?
Câu trả lời:
Chế độ xem khách hàng từ xa
Khi EJB của bạn và các máy khách của nó sẽ ở trong một môi trường phân tán - nghĩa là các EJB và máy khách sẽ nằm trên các máy ảo Java riêng biệt. Ví dụ: Các EJB được lưu trữ trên Máy chủ Ứng dụng WebSphere và các Servlet sử dụng các API EJB được lưu trữ trên máy chủ Tomcat.
Chế độ xem khách hàng địa phương
Chỉ khi đảm bảo rằng các bean của doanh nghiệp hoặc khách hàng khác sẽ chỉ giải quyết bean trong một JVM duy nhất. Ví dụ, các EJB cũng như các Servlet được triển khai trên cùng một máy chủ WebSphere.
Chế độ xem không giao diện
Gần giống như chế độ xem khách hàng cục bộ, nhưng có sự khác biệt. Lớp bean của bạn không bắt buộc phải triển khai các giao diện xem máy khách trong trường hợp này. Tất cả các phương thức công khai của lớp bean được tự động hiển thị cho người gọi. chế độ xem không giao diện luôn thu được tham chiếu EJB - giống như chế độ xem cục bộ hoặc từ xa - thông qua việc tiêm hoặc tra cứu JNDI; nhưng, kiểu Java của tham chiếu EJB là kiểu lớp bean chứ không phải kiểu giao diện cục bộ. Đây là một tiện ích được giới thiệu như một phần của Java EE6.
Sự khác biệt giữa chế độ xem máy khách cục bộ và chế độ xem không có giao diện
Trong trường hợp xem không có giao diện, máy khách và bean đích phải được đóng gói trong cùng một ứng dụng (EAR). Trong trường hợp xem cục bộ, ứng dụng khách có thể được đóng gói trong một ứng dụng riêng biệt hơn ứng dụng doanh nghiệp. Vì vậy, điều này mang lại sự linh hoạt hơn trong việc phân loại các thành phần của bạn.
Bạn có thể sử dụng chế độ xem ứng dụng khách cục bộ so với chế độ xem không có giao diện tùy thuộc vào tình huống sử dụng API của bạn. Rất có thể chế độ xem không giao diện sẽ nhận được các tính năng linh hoạt trong thông số kỹ thuật trong tương lai.
Lý do
Về mặt lịch sử hay cách khác, khách hàng muốn sử dụng dịch vụ EJB được cho là phải "tra cứu" bean trên vùng chứa (với một số ngữ cảnh ban đầu nhất định). Đó là bởi vì tất cả các lệnh gọi được thực hiện thông qua một tham chiếu EJB đặc biệt (proxy) do vùng chứa cung cấp. Điều này cho phép vùng chứa cung cấp tất cả các dịch vụ bean bổ sung như gộp, giao dịch do vùng chứa quản lý, v.v. Vì vậy, khách hàng không thể khởi tạo EJB một cách rõ ràng với new
nhà điều hành. Chế độ xem máy khách được cung cấp thông qua một số giao diện nhất định mà máy khách sẽ có quyền truy cập. Việc thực hiện proxy ở phía máy chủ được thực hiện dựa trên các giao diện này. Các chế độ xem máy khách khác nhau được xác định để phù hợp với các tình huống triển khai khác nhau như đã đề cập ở trên.
new
bạn sẽ nhận được một phiên bản mới. Đó là tất cả. Phiên bản mới đó sẽ không có bất kỳ "hỗ trợ" nào từ vùng chứa về cách gộp, thiết lập ngữ cảnh của nó, v.v. Bạn đang tự chạy.
Theo Mục 3.2.2 của Đặc điểm kỹ thuật EJB 3.1:
Quyền truy cập vào hạt doanh nghiệp thông qua chế độ xem máy khách cục bộ chỉ được yêu cầu để được hỗ trợ cho các máy khách cục bộ được đóng gói trong cùng một ứng dụng với hạt đậu doanh nghiệp cung cấp chế độ xem máy khách cục bộ. Việc triển khai tuân thủ đặc điểm kỹ thuật này có thể hỗ trợ tùy chọn quyền truy cập vào chế độ xem máy khách cục bộ của bean doanh nghiệp từ máy khách cục bộ được đóng gói trong một ứng dụng khác. Các yêu cầu cấu hình để truy cập liên ứng dụng vào chế độ xem máy khách cục bộ là dành riêng cho nhà cung cấp và nằm ngoài phạm vi của đặc tả này. Các ứng dụng dựa trên quyền truy cập liên ứng dụng vào chế độ xem máy khách cục bộ là không di động.
Chế độ xem không giao diện chỉ là một tính năng tiện lợi cho phép bean hiển thị chế độ xem máy khách cục bộ mà không cần phải khai báo một giao diện riêng biệt.