2012-02-29 29 views
9

Tôi là người mới đến EJB. Từ tất cả việc đọc và tìm kiếm tôi đã thực hiện cho đến bây giờ, tôi hiểu những điều sau đây:Thùng chứa EJB có nằm trong tất cả các máy chủ ứng dụng hay không. Thùng chứa EJB ở chiều sâu

  • EJB là các hạt mà logic kinh doanh ứng dụng được viết và duy trì.
  • Tất cả EJB được đưa vào một thứ gọi là EJB container.
  • EJB container không là gì ngoài chương trình phía máy chủ được viết để quản lý EJB và cung cấp các chức năng cơ bản được cung cấp bởi EJB (viz, quản lý giao dịch, bảo mật, va chạm miễn phí, v.v.).

1) Nghi ngờ của tôi là, thành phần EJB có được đặt trong tất cả các máy chủ ứng dụng không?

2) Khi chúng tôi nói EJB 2.1/3.0/3.1, có nghĩa là phiên bản mới của thùng chứa EJB đã được phát hành không?

3) Thùng chứa EJB có nằm trong máy chủ web không?

Cảm ơn bạn.

+1

Câu hỏi thứ 2 của bạn chưa hoàn tất! – Santosh

Trả lời

10

Để trả lời câu hỏi của bạn

  1. Nói chung có. Máy chủ ứng dụng thường được gọi là một máy chủ có chứa EJB như Glassfish, Jboss vv Nhưng bạn cần đảm bảo rằng máy chủ ứng dụng có hỗ trợ EJB.

  2. YES

  3. NO. Các máy chủ web hoặc các thùng chứa Web (Tomcat, Jetty, vv) phục vụ một mục đích khác với container EJB. Nhưng tất cả các máy chủ ứng dụng đều có các máy chủ web (cùng với các thùng chứa EJB.).

Máy chủ lưu trữ EJB và máy chủ lưu trữ web (máy chủ) là các lớp khác nhau trong kịch bản ứng dụng Java EE. Kiểm tra liên kết this để biết thêm thông tin.

+0

Cảm ơn bạn đã làm rõ. Sự khác biệt, trong các dịch vụ được cung cấp bởi máy chủ ứng dụng và máy chủ web là gì ?? –

+0

"Thông thường" Máy chủ web giao dịch với phần giao diện người dùng (bạn thấy trên trình duyệt), nơi máy chủ ứng dụng lớn hơn và chứa máy chủ web EJB container (bạn kinh doanh logic) và các dịch vụ doanh nghiệp khác như JNDI, Datasource, giao dịch, v.v ... – Santosh

14

Bạn hiểu ý tưởng EJB chính xác.

  1. Có và không. Tùy thuộc vào những gì bạn hiểu là "Máy chủ ứng dụng" (sự mơ hồ được mô tả bên dưới trong câu trả lời 3.)

  2. Khi bạn nói EJB 2.x/3.0/3.1 hoặc hơn, bạn đang đề cập đến đặc tả EJB cụ thể bạn đang đề cập đến một bộ dịch vụ phiên bản này hỗ trợ. Nói cách khác - , điều đó có nghĩa là thùng chứa EJB phải nằm trong một phiên bản nhất định.
    Đầu tiên đặc điểm kỹ thuật được phát hành (bạn có thể xem các phiên bản nháp, bỏ phiếu cho các tính năng mới và về cơ bản tham gia vào quá trình này). Sau đó, một thực hiện tham chiếu (RI) được viết chỉ để cho thấy rằng nó "có thể thực hiện được" và bạn có thể sử dụng nó ngay lập tức. Sau đó, các nhà cung cấp khác nhau có thể cung cấp các thùng chứa EJB của riêng họ mà phải phù hợp với đặc tả EJB cụ thể.

  3. Có vài thuật ngữ khác nhau mà bạn cần phải biết. Để chắc chắn, chúng ta đang nói về cùng một điều:

    • Máy chủ web là máy chủ HTTP/HTTPS như Apache HTTP Server phục vụ yêu cầu của khách hàng. Thuật ngữ này không chỉ liên quan đến Java EE.
    • Vùng chứa Web là một thuật ngữ Java EE có thể có nghĩa là vài điều, nhưng thường nó đề cập đến thùng chứa Servlet và, giả sử thùng chứa JSP. Các vùng chứa đó đang phục vụ khách hàng web, vì vậy đó là lý do tại sao nó là web vùng chứa. Nói chung, web container có một máy chủ web bên trong nó (như trong trường hợp của Tomcat). Tuy nhiên, bạn có thể cấu hình nó để các tài nguyên tĩnh sẽ là máy chủ bởi máy chủ web thuần túy duy nhất trong khi nội dung động (Java App, Servlets, JSP, v.v.) sẽ là máy chủ của vùng chứa web của bạn.
    • Máy chủ ứng dụng là tên mơ hồ. Trong thế giới thuần túy Java EE, nó có thể chỉ có nghĩa là máy chủ đó cung cấp tất cả các dịch vụ Java EE. Những người thuần túy không thuộc Java EE xử lý Máy chủ ứng dụng giống như một máy chủ tùy ý bao gồm ứng dụng của bạn. Theo định nghĩa này, bạn có thể gọi Tomcat (một thùng chứa web và máy chủ web) một máy chủ ứng dụng .

Như bạn thấy, những từ vựng không phải là sắc nét, như một điều có thể có nghĩa là vài điều hơi khác nhau. Hơn nữa, kể từ khi Java EE 6 chúng tôi có hồ sơ. Điều này có nghĩa là bạn có thể có Máy chủ ứng dụng Java EE phù hợp với Cấu hình web hoặc Cấu hình đầy đủ. Trong các điều khoản như vậy, chỉ cần máy chủ Cấu hình web sẽ được coi là máy chủ ứng dụng .

Cũng như bản tóm tắt - bạn có thể sử dụng EJB Container trong Vùng chứa Web. Hãy xem OpenEJB hoặc về cơ bản tại dự án TomEE.

+0

Vì vậy, sự mơ hồ trong việc đặt tên cho máy chủ ứng dụng, hiện tại và máy chủ web là tập hợp con các máy chủ ứng dụng. Hiểu rồi !!! Cảm ơn bạn. –

+0

Phải. Nếu ai đó muốn, anh ta có thể viết mã ứng dụng của mình bằng các script JavaScript hoặc CGI, nhúng chúng vào máy chủ web và gọi nó là * application server *. Nó luôn luôn quan trọng để sử dụng các từ vựng được chia sẻ để chắc chắn những gì bạn đang nói về :-) –

+0

Trong một doanh nghiệp thiết lập, bạn sẽ thường có một máy chủ web 'ở phía trước của máy chủ ứng dụng, bởi vì máy chủ web sẽ được tối ưu hóa để xử lý số lượng lớn các yêu cầu http, trước khi chuyển yêu cầu đến máy chủ ứng dụng (để tạo nội dung thực tế) –

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