[Question] Xin được giải thích về thuật ngữ container services trong Java EE 6 |
21/11/2010 01:53:48 (+0700) | #1 | 225264 |
explorer88
Member
|
0 |
|
|
Joined: 06/11/2010 22:32:47
Messages: 75
Offline
|
|
Chào các bạn.
Mình đang đọc tài liệu Java EE 6 Tutorial: http://download.oracle.com/javaee/6/tutorial/doc/index.html
Mình gặp phải thuật ngữ container service tại http://download.oracle.com/javaee/6/tutorial/doc/bnabo.html.
Ở đó, họ bảo container là một giao diện giữa các components và các tính năng hữu ích mà nền tảng hỗ trợ cho các components đó. Mình không hiểu lắm cách giải thích này. Mình nhìn hình vẽ bên dưới (Nằm trong tài liệu mà mình trỏ liên kết đến) thì nhận thấy container như tên gọi của nó thì giống như cái hộp chứa các component ở bên trong nhưng không rõ lắm chức năng giao tiếp của nó được thực hiện như thế nào. Container là một file nén chứa các component hay là một thành phần mà ta cần phải code để có được nó ? Hẳn là khái niệm còn trừu tượng đối với mình.
Mình cần các bạn giải thích cho mình năm điểm xung quanh định nghĩa về container service của sun:
Containers are the interface between a component and the low-level platform-specific functionality that supports the component.
- Container giao tiếp với các component mà nó chứa như thế nào ?
- Container giao tiếp với các container khác như thế nào ?
- Bạn có thể mô tả cho mình thấy giao diện của container được không ?
- Tính năng hữu ích mà nền tảng bên dưới hỗ trợ cho component đó là gì ?
- Nền tảng ở đây ngoài ám chỉ API + JVM thì có bao gồm cả hệ điều hành không ?
Mình đặt câu hỏi này chỉ là vì muốn có cái nhìn cụ thể hơn để sau này nếu đi vào triển khai thì khỏi bỡ ngỡ. |
|
|
|
|
[Question] Xin được giải thích về thuật ngữ container services trong Java EE 6 |
22/11/2010 02:43:06 (+0700) | #2 | 225311 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
explorer88 wrote:
Chào các bạn.
Mình đang đọc tài liệu Java EE 6 Tutorial: http://download.oracle.com/javaee/6/tutorial/doc/index.html
Mình gặp phải thuật ngữ container service tại http://download.oracle.com/javaee/6/tutorial/doc/bnabo.html.
Ở đó, họ bảo container là một giao diện giữa các components và các tính năng hữu ích mà nền tảng hỗ trợ cho các components đó. Mình không hiểu lắm cách giải thích này. Mình nhìn hình vẽ bên dưới (Nằm trong tài liệu mà mình trỏ liên kết đến) thì nhận thấy container như tên gọi của nó thì giống như cái hộp chứa các component ở bên trong nhưng không rõ lắm chức năng giao tiếp của nó được thực hiện như thế nào. Container là một file nén chứa các component hay là một thành phần mà ta cần phải code để có được nó ? Hẳn là khái niệm còn trừu tượng đối với mình.
Mình cần các bạn giải thích cho mình năm điểm xung quanh định nghĩa về container service của sun:
Containers are the interface between a component and the low-level platform-specific functionality that supports the component.
- Container giao tiếp với các component mà nó chứa như thế nào ?
- Container giao tiếp với các container khác như thế nào ?
- Bạn có thể mô tả cho mình thấy giao diện của container được không ?
- Tính năng hữu ích mà nền tảng bên dưới hỗ trợ cho component đó là gì ?
- Nền tảng ở đây ngoài ám chỉ API + JVM thì có bao gồm cả hệ điều hành không ?
Mình đặt câu hỏi này chỉ là vì muốn có cái nhìn cụ thể hơn để sau này nếu đi vào triển khai thì khỏi bỡ ngỡ.
Hãy hình dung "container" như một cái hộp có nhiều lỗ cắm để cho phép đưa thông tin đi vô và đi ra. Hình dung nó như một cái amplifier (bộ khuếch đại âm thanh). Trong cái hộp này có nhiều bộ phận (component) để xử lý âm thanh và khi âm thanh được xử lý xong, chúng được đi ra ở các lỗ cắm khác nhau cho những định dạng và thiết bị thích hợp khác nhau. Các lỗ cắm ở đây được xem là các "interfaces" (tớ không thấy từ "giao diện" là từ thích hợp để dịch chữ "interface").
"Container" ở bình diện Java phức tạp hơn cái amplifier nhiều nhưng có chung một nguyên tắc. "Container" có chứa nhiều components giúp cho người dùng nó "cắm vào" và sử dụng tính năng của các components cũng như lấy được thông tin do các components ấy đã xử lý xong.
Container giao tiếp với các component mà nó chứa như thế nào?
Câu hỏi này quá rộng và quá tổng quát. Mỗi component trong container có một ấn định và chức năng riêng và tuỳ chức năng, tuỳ ấn định mà container có thể "gọi" và dùng từng component. Ví dụ, container có thể có 1 hoặc nhiều datasource (component) và để gọi (hoặc dùng) datasource nào đó, nó có thể dùng JNDI để tìm "tên" của datasource ấy mà "giao tiếp". Nếu đi xuống thấp hơn nữa, trên Java có thể sử dụng Class.forName để tìm class object có tên cụ thể nào đó và làm cái gì với nó là tuỳ nhu cầu và khả năng của class ấy.
Container giao tiếp với các container khác như thế nào ?
Câu này cũng quá rộng và quá tổng quát. Container này có thể giao tiếp với container khác tuỳ chức năng và dịch vụ của chúng. Container này có thể gởi data đến container khác để container kia xử lý (xuyên qua RMI chẳng hạn). Mỗi cần container có thể cung cấp 1 hoặc nhiều dịch vụ và tuỳ chức năng của từng dịch vụ mà có một cơ chế riêng biệt cho phép các container có thể tương tác nhau.
Bạn có thể mô tả cho mình thấy giao diện của container được không ?
Không. Tự đọc các tài liệu cụ thể của từng container mà tìm hiểu. Chẳng có ai có thể "mô tả" cho bồ thấy được các "giao diện" hết.
Tính năng hữu ích mà nền tảng bên dưới hỗ trợ cho component đó là gì ?
Không hiểu câu này. "Nền tảng bên dưới" ở đây là cái gì?
Nền tảng ở đây ngoài ám chỉ API + JVM thì có bao gồm cả hệ điều hành không ?
"Nền tảng" của cái gì "ám chỉ" API + JVM? Mỗi JVM là một sandbox và cần có JRE (Java Runtime Environment) để hoạt động. Bởi vậy, mỗi hệ điều hành đều có 1 JRE cụ thể cho nên nếu xét đến khía cạnh "bao gồm cả hệ điều hành" thì câu trả lời là: không. JRE chỉ ứng dụng cụ thể cho từng hệ điều hành để khai thác khả năng của từng hệ điều hành cho ứng dụng có thể chạy được (ví dụ, tcp sockets, memory usage, schedulers...). JRE không bao gồm cả hệ điều hành và container chạy trên JRE nên càng không bao gồm cả hệ điều hành. |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
|