Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA2.3 Kiến trúc hệ thống
lượt xem 14
download
Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 2.3 Kiến trúc hệ thống của portal 2.3.1 Kiến trúc hệ thống của các portal phổ biến Hình 12: Kiến trúc hệ thống của các portal phổ biến Trong các portal phổ biến, người ta sử dụng trình duyệt web và giao thức HTTP để kết nối đến các ứng dụng web trên portal. Mỗi portal có duy nhất một portlet/servlet container. Các ứng dụng web của portal giao tiếp với portlet/servlet container bởi các APIs và các SPIs. Portlet/servlet container chứa toàn bộ các portlet. Các portlet này cung cấp...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA2.3 Kiến trúc hệ thống
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 2.3 Kiến trúc hệ thống của portal 2.3.1 Kiến trúc hệ thống của các portal phổ biến Hình 12: Kiến trúc hệ thống của các portal phổ biến Trong các portal phổ biến, người ta sử dụng trình duyệt web và giao thức HTTP để kết nối đến các ứng dụng web trên portal. Mỗi portal có duy nhất một portlet/servlet container. Các ứng dụng web của portal giao tiếp với portlet/servlet container bởi các APIs và các SPIs. Portlet/servlet container chứa toàn bộ các portlet. Các portlet này cung cấp các APIs để portlet/servlet container có thể sử dụng các chức năng của nó Bùi Vĩnh Phú 34 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 2.3.2 Kiến trúc hệ thống của portal TMA Hình 13: Kiến trúc hệ thống của portal TMA Trong kiến trúc này, khi ta nhập vào dữ liệu dạng HTML, WML hay XML (“Web services” trong hình vẽ), các dữ liệu này đi qua 3 tầng: trình diễn, xử lý và dữ liệu của mô hình MVC. Trong 3 tầng này, người ta có thể sử dụng các công nghệ như: struts, servlet, spring, EJB, Hibernate, JMS… Bùi Vĩnh Phú 35 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Ngoài dữ liệu dạng HTML, WML hay XML, chúng ta còn có thể sử dụng các đối tượng dưới dạng J2EE, J2SE hay J2ME. 3. Công nghệ được sử dụng để phát triển hệ thống intranet Trong quá trình xây dựng hệ thống intranet, các công nghệ và kỹ thuật sau đã được sử dụng: • Multi-platform: Linux, Solaris, Windows • Platform : .NET, J2EE • XML, SOAP, HTTP, RMI-IIOP, WSRP... • Hệ quản trị cơ sở dữ liệu: Hypersonic, MySQL, PostgreSQL, SQL Server. • Web application server: JBoss, TomCat, Sun ONE, webLogic, Jonas. 4. Các chuẩn dùng để phát triển hệ thống Trong quá trình phát triển hệ thống intranet của Công ty, Công ty đã quyết định các thành phần được xây dựng cần tuân theo các chuẩn trên thế giới nếu có thể được. Sự phát triển các thành phần dựa trên các chuẩn này có các lợi ích như sau: • Sử dụng một chuẩn để phát triển sẽ cần ít thời gian và chi phí hơn. • Trên thế giới đều biết đến chuẩn được sử dụng để phát triển, do đó sẽ có nhiều sự hỗ trợ hơn trong quá trình xây dựng các thành phần. • Có nhiều mã nguồn mở được xây dựng dựa trên các tiêu chuẩn, do đó có thể tận dụng các thành phần này cho portal. • Các thành phần được xây dựng dựa trên các chuẩn sẽ tích hợp dễ dàng hơn vào hệ thống hiện tại. Bùi Vĩnh Phú 36 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA • Để mở rộng hệ thống hiện tại trong tương lai, cần phải xây dựng các thành phần theo chuẩn. Sau đây là các chuẩn được yêu cầu sử dụng trong quá trình phát triển hệ thống thông tin của công ty: • Chuẩn JSR 168 dùng để xây dựng các portlet. • Chuẩn JSR 170 để xây dựng hệ CMS. 5. Nhu cầu của công ty TMA khi xây dựng một hệ CMS Hệ CMS được xây dựng để sử dụng trong công ty TMA phải bao gồm các chức năng của một hệ CMS thông thường. các chức năng này được mô tả như sau: • Quản lý nội dung. Tạo, xoá và sửa đổi nội dung. Cập nhật nội dung. • Quản lý vai trò Tạo, xoá, sửa đổi vai trò. Cập nhật thông tin của vai trò. Cho phép vai trò đăng nhập vào hệ thống. Ngăn cấm vai trò đăng nhập vào hệ thống. • Phân quyền cho các vai trò. Mỗi vai trò có thể có nhiều quyền khác nhau và các quyền này được gán cho vai trò bởi người quản lý web site. Các quyền này có thể là đọc, ghi, đọc và ghi… • Quản lý người sử dụng. Bùi Vĩnh Phú 37 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Tạo, xoá bỏ, sửa đổi thông tin người sử dụng. Cập nhật thông tin người sử dụng. Cho phép người sử dụng đăng nhập vào hệ thống. Ngăn cấm người sử dụng đăng nhập vào hệ thống. • Gán các vai trò cho người sử dụng. Do trong một tổ chức tồn tại rất nhiều phòng ban và vị trí công việc khác nhau, do đó cần phải phân chia vai trò cho từng người sử dụng khác nhau trên hệ thống tuỳ thuộc vào từng phòng ban và vị trí công việc của họ. Một người sử dụng có thể có nhiều vai trò khác nhau trong hệ thống và các vai trò này được gán bởi người quản lý web site. • Sử dụng các template cho các trang web: các trang web cần phải đồng bộ với nhau về cách thức hiển thị, do đó cần phải sử dụng các template giống nhau cho toàn bộ web site. • Phân loại nội dung: điều này là cần thiết để tránh tình trạng dữ liệu bị sắp xếp không theo trật tự và để có thể tìm kiếm dễ dàng thông tin cần thiết. • Tìm kiếm thông tin: do nội dung trang web và các thông tin liên quan ngày càng nhiều, do đó cần phải có cơ chế tìm kiếm thông tin để hỗ trợ các nhân viên trong các trường hợp cần thiết. • Thay đổi các thông số cấu hình: hệ thống này cho phép thay đổi các thông tin cấu hình để tối ưu hoá hoạt động của hệ thống. Ngoài các nhu cầu cầu của một hệ CMS thông thường, công ty TMA còn có 2 nhu cầu như sau: Bùi Vĩnh Phú 38 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 5.1 Nhu cầu chia sẻ thông tin giữa các dự án và các vị trí công việc Trong công ty TMA có rất nhiều dự án và trong mỗi dự án lại tồn tại nhiều vị trí công việc khác nhau, bao gồm có 3 vị trí như sau: • Quản lý dự án. • Quản lý nhóm. • Thành viên bình thường. Mỗi dự án sở hữu các thông tin riêng về dự án đó và các công việc họ đang thực hiện. Một phần các thông tin này có thể cho phép mọi người trong công ty đều có thể xem được. Phần còn lại chỉ cho phép các thành viên trong nhóm có thể truy cập vào thôi. Mỗi dự án có một người phụ trách cập nhật thông tin về dự án đó. Người này thông thường là trưởng dự án hoặc trưởng nhóm. Người này có quyền thực hiện một số thao tác như: tạo, xoá bỏ, sửa đổi…các thông tin của nhóm trên intranet. các thành viên khác của nhóm chỉ có quyền xem trên các thông tin của nhóm. Hình vẽ sau sẽ minh hoạ cho điều vừa trình bày Bùi Vĩnh Phú 39 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Hình 14: Chia sẻ thông tin giữa các dự án và vị trí công việc trong công ty TMA Bùi Vĩnh Phú 40 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 5.2 Xây dựng hệ CMS dưới dạng một portlet có thể được sử dụng bởi các ứng dụng và các thành phần khác Như đã trinh bày như trên, chúng ta biết rằng hệ CMS xây dựng là một thành phần phi chức năng dùng để cung cấp chức năng cho các ứng dụng, các dịch vụ, các thành phần chức năng khác. Do đó, cần phải xây dựng hệ CMS dưới dạng một portlet để có thể sử dụng bởi các ứng dụng và các thành phần khác trên intranet. 5.3 Các kỹ thuật sử dụng trong quá trình phát triển Do hệ CMS này được xây dựng để tích hợp vào hệ thống thông tin có sẵn của công ty TMA dưới dạng một portlet. Do đó, có một số quy định trong quá trình phát triển hệ CMS này như sau: • Hệ CMS này phải được xây dựng dưới dạng một portlet: điều này cần thiết để tích hợp vào portal hiện tại của Công ty. • Hệ CMS này phải tuân theo chuẩn JSR 168: do chuẩn JSR 168 là chuẩn dùng để tích hợp một portlet vào portal. • Hệ CMS phải được lập trình bằng Java: portal hiện tại của công ty được lập trình bằng Java và các portlet trên portal tuân theo chuẩn JSR 168. • Hệ CMS phải được xây dựng dựa trên các giải pháp mã nguồn mở và miễn phí. • Sử dụng chuẩn JSR 170 để xây dựng hệ thống này nếu có thể được: do chuẩn JSR 170 là chuẩn dùng để hỗ trợ việc xây dựng các hệ CMS, việc xây dựng hệ thống này nên tuân theo chuẩn JSR 170 để có thể mở rộng hệ thống này trong tương lai nếu có nhu cầu. • Hệ thống này phải có khả năng hoạt động trên nền Linux: portal hiện tại của công ty hoạt động trên Linux. Bùi Vĩnh Phú 41 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA • Hệ thống này phải có khả năng họat động trên application server JBoss: do portal hiện tại của công ty hoạt động trên JBoss. Bùi Vĩnh Phú 42 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Chương 5 Chuẩn JSR 168 Bùi Vĩnh Phú 43 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 1. Giới thiệu về chuẩn JSR 168 Chuẩn JSR 168 dùng để định nghĩa portlet và cách thức giao tiếp giữa portlet và portal. Phiên bản hiện tại của chuẩn này là 1.0 được đưa ra bởi Sun Microsystems vào ngày 29/08/2003. (http://jcp.org/en/jsr/detail?id=168) Portlet API Portlet Portlet API API AP I AP I JSR-168 Portlet Portlet Hình 15: Mô hình chuẩn JSR 168 Hình trên mô tả sự giao tiếp giữa portal và các portlet. Sự giao tiếp này được thực hiện thông qua các API được cung cấp bởi chuẩn JSR 168. Bùi Vĩnh Phú 44 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 2. Một số khái niệm chính 2.1 Portal Portal là một ứng dụng Web dùng để tích hợp các nội dung từ các nguồn khác nhau vào cùng một trang Web. Các nội dung có thể được cấu hình tùy thuộc vào từng người sử dụng khác nhau mà Portal cho phép. Một Portal có thể chứa nhiều Portlet 2.2 Portlet Portlet là một thành phần (component) dựa trên nền Web sử dụng các công nghệ của Java. Portlet được quản lý bởi một Portlet Container. Portlet dùng để xử lý các yêu cầu và tạo ra các thành phần dữ liệu động để phản hồi yêu cầu. Portlet có thể tích hợp vào Portal và Portal sẽ cung cấp một tầng trình diễn cho các thành phần của Portlet. Nội dung được tạo ra bởi Portlet được gọi là Fragment. Một Fragment là một mảnh dữ liệu được tạo bởi các ngôn ngữ như: HTML, XHTML, WML… theo một định dạng được quy định. Các Fragment này có thể được kết hợp với các Fragment của các Portlet khác để hình thành trang Web của Portal. Người sử dụng tương tác với Portlet thông qua cơ chế yêu cầu/phản hồi được cung cấp bởi Portlet. Nội dung phản hồi yêu cầu được Portlet tạo ra và nội dung này cũng tùy thuộc vào cấu hình ứng với từng người sử dụng. Bùi Vĩnh Phú 45 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 2.3 Portlet Container Porlet Container cung cấp một môi trường lúc Runtime chứa đựng và quản lý chu kỳ sống của một Portlet. Portlet Container nhận yêu cầu từ Portal và chuyển yêu cầu này đến Portlet tương ứng để Portlet xử lý yêu cầu và tạo nội dung phản hồi. 3. So sánh Portlet và Servlet 3.1 Điểm giống nhau giữa Portlet và Servlet • Cùng là thành phần Web sử dụng công nghệ của Java. • Được chứa đựng và quản lý bởi một Container. • Tạo ra nội dung dữ liệu động để phản hồi lại yêu cầu. • Cùng tương tác với người sử dụng thông qua cơ chế yêu cầu/phản hồi. 3.2 Điểm khác nhau giữa Portlet và Servlet • Portlet chỉ tạo ra các Fragment chứ không tạo ra toàn bộ tài liệu. Portal sẽ tập hợp các Fragment do Portlet tạo ra thành nội dung của trang Web trên Portal.. • Không cần phải kết hợp một Portlet với một địa chỉ URL như Servlet • Người sử dụng tương tác với Portlet thông qua Portal. • Portlet có thể được sử dụng nhiều nơi trên cùng một trang Web của Portal. Bùi Vĩnh Phú 46 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 3.3 Đặc trưng của Portlet mà không có ở servlet • Portlet cho phép truy cập và lưu trữ cầu hình và tối ưu hoá dữ liệu. • Portlet cho phép truy cập vào các thông tin về người sử dụng. • Portlet hỗ trợ chức năng viết lại URL ( URL Rewriting Function ) cho phép tạo ra liên kết trong nội dung của nó. • Portlet có thể lưu trữ dữ liệu tạo thời trong phiên làm việc của Portlet ở 2 phạm vi: Phạm vi ứng dụng và Phạm vi cá nhân. 4. Giao diện portlet Giao diện Portlet khai báo các API cơ bản nhất của một Portlet. Mọi Portlet được xây dựng đều phải hiện thực hoá trực tiếp hoặc gián tiếp giao diện Portlet. Lớp GenericPortlet hiện thực hoá giao diện Portlet và định nghĩa các chức năng cơ bản nhất mà một Portlet cần có. Do đó, khi xây dựng Portlet, lập trình viên nên mở rộng trực tiếp hoặc gián tiếp lớp GenericPorlet này. Một Portlet được quản lý thông qua chu trình sống của nó, bắt đầu từ lúc Portlet được tải lên, tạo thể hiện của nó và khởi tạo, hoạt động để phản hồi yêu cầu của người sử dụng đến lúc nó được loại bỏ. Các phương thức được gọi đến trong chu trình sống của Portlet là: • Gọi phương thức init trong quá trình khởi tạo của Portlet • Nếu yêu cầu do máy khách gởi tới là yêu cầu hành động (Action Request) thì phương thức processAction được gọi. Nếu yêu cầu do máy khách gởi tới là yêu cầu biểu hiện (Render Request) thì phương thức processAction được gọi. Bùi Vĩnh Phú 47 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA • Khi Portlet Container xác định một Portlet không còn sử dụng nữa thì gọi đến phương thức destroy của Portlet đó. Khi phương thức destroy được gọi thì Portlet sẽ giải phóng tài nguyên hệ thống mà nó đang sử dụng và lưu lại trạng thái hiện thời của nó. 5. Portlet URL Một Portlet có thể tạo ra URL tham chiếu đến chính Portlet đó. Khi đó các URL này được gọi là Portlet URL. Để tạo ra một Portlet URL thì Porlet cần phải sử dụng đối tượng PorletURL. Nếu phương thức createActionURL được gọi thì sẽ tạo ra một URL hành động và nếu phương thức createRenderURL được gọi thì tạo ra một URL trình diễn. 6. Portlet Mode Kiểu Portlet xác định chức năng mà Portlet hiện đang thực hiện. Thông thường, Portlet thực hiện các tác vụ và tạo ra nội dung tùy thuộc vào chức năng hiện thời. Kiểu Portlet cho biết những tác vụ nào một Portlet cần thực hiện và những nội dung nào Portlet cần phải tạo ra. Có 3 kiểu Portlet được quy định là: • VIEW Chức năng chính của Portlet khi sử dụng kiểu VIEW là tạo ra nội dung cho biết trạng thái của Portlet Lập trình viên sẽ hiện thực hóa kiểu VIEW bằng cách định nghĩa lại phương thức doView của lớp GenericPortlet. Bùi Vĩnh Phú 48 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Mọi Portlet đều phải hỗ trợ kiểu VIEW • EDIT Trong kiểu EDIT, một Portlet sẽ cung cấp nội dung và cấu hình các thành phần của nó để người sử dụng có thể tối ưu hóa họat động của Portlet Lập trình viên sẽ hiện thực hóa kiểu EDIT bằng cách định nghĩa lại phương thức doEdit của lớp GenericPortlet. Mọi Portlet không nhất thiết phải hỗ trợ kiểu VIEW • HELP Trong kiểu HELP, Portlet cung cấp những thông tin giúp đỡ người sử dụng về Portlet. Những thông tin này có thể là những thông tin chung về toàn bộ Portlet hoặc là các giúp đỡ cảm ngữ cảnh (Context- sensitive help) Các hằng số tượng trưng cho 3 kiểu Portlet được khai báo trong lớp PortletMode 7. Window State Trạng thái cửa sổ cho biết khoảng không gian trên trang Web Portal dành cho nội dung của Portlet. Có 3 trạng thái cửa sổ được định nghĩa : • NORMAL: cho biết Porlet có thể chia sẻ trang Portal với các Portlet khác. Ngoài ra, trạng thái này còn cho biết giới hạn hiển thị của thiết bị do đó Portlet sẽ điều chỉnh kích thước phù hợp với vùng hiển thị. Bùi Vĩnh Phú 49 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA • MAXIMIZED: cho biết chỉ có một Portlet hiển thị trên trang Portal hoặc Portlet được ưu tiên hiển thị nội dung nhiều hơn các Portlet còn lại. • MINIMIZED: Cho biết nội dung của Portlet chỉ được hiển thị ít nhất có thể được hoặc không được hiển thị. Các trạng thái cửa sổ được định trong lớp WindowState. 8. Portlet Request Một yêu cầu gởi đến Portlet chứa các thông tin về yêu cầu từ phía máy khách, các tham số của yêu cầu, nội dung dữ liệu yêu cầu, kiểu Portlet, trạng thái cửa sổ… Yêu cầu được đại diện bởi một đối tượng và đối tượng này được truyền vào như là đối số của phương thức processAction hay render. Mỗi đối tượng yêu cầu chỉ có thể họat động trong phạm vi của một phương thức processAction hay render Các chức năng cần thiết của đối tượng PortletRequest được khai báo trong giao diện PortletRequest. 9. Portlet Response Một phản hồi của Portlet bao gồm những thông tin được tạo ra bởi Portlet gởi trả về cho Portlet Container dựa trên yêu cầu được gởi đến như: sự thay đổi kiểu Portlet, tiêu đề, nội dung… Portlet Container sẽ sử dụng những thông tin này để tạo ra phản hồi đến người sử dụng, thông thường là một trang Web Portal. Bùi Vĩnh Phú 50 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Mỗi đối tượng phản hồi chỉ có thể họat động trong phạm vi của một phương thức processAction hay render Các chức năng cần thiết của đối tượng Portlet Response được khai báo trong giao diện PortletResponse. 10. Portlet Preferences Portlet thông thường được cấu hình cho phù hợp với từng người sử dụng. Các thông tin về cấu hình của Portlet được gọi là Portlet Preference. Và Portlet Container sẽ chịu trách nhiệm lưu giữ những thông tin cấu hình này. Portlet có thể truy cập vào các thông tin cấu hình của nó thông qua giao diện PortletPreferences. Và Portlet chỉ có thể thay đổi các thông tin về cấu hình của nó bên trong phương thức processAction. Định nghĩa Portlet xác định các thuộc tính preference mà một Portlet sử dụng. Định nghĩa này bao gồm các giá trị khởi tạo và xác định xem thuộc tính này có phải là thuộc tính chỉ đọc hay không. 11. Caching Việc lưu các nội dung cần sử dụng vào vùng nhớ tạm thời được thực hiện nhằm mục đích rút ngắn thời gian xử lý của Portlet, đồng thời cũng rút ngắn thời gian xử lý của Server. Đặc tả Portlet xác định cơ chế hết hạn việc lưu trữ nội dung lưu tạm thời này. Cơ chế này họat động tùy thuộc và từng Portlet và từng người sử dụng Portlet. Nội Bùi Vĩnh Phú 51 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA dung được lưu trữ tạm thời không được chia sẻ giữa các người sử dụng khác nhau đang sử dụng đồng thời cùng một Portlet. Một Portlet muốn tăng thời gian xử lý bằng cách sử dụng cơ chế lưu trữ tạm thời nội dung cần phải định nghĩa thời gian hết hạn nội dung lưu tạm thời (tính bằng đơn vị giây) trong đặc tả triển khai của nó. Ví dụ sau đây cho biết một Portlet muốn nội dung của nó được lưu trữ tạm thời với thời gian hết hạn là 300 giây. ... ... 300 ... ... Một Portlet nếu đã định nghĩa thời gian hết hạn lưu trữ dữ liệu tạm thời của nó trong đặc tả triển khai của nó vẫn có thể được lập trình viên thay đổi Thời gian hết hạn của việc lưu trữ tạm thời này có thể được thay đổi bằng cách thay đổi thuộc tính của đối tượng RenderResponse. Nếu thời gian hết hạn này được gán bằng 0 thì việc lưu trữ dữ liệu tạm thời bị bỏ qua đối với Portlet. Nếu giá trị này được gán bằng -1 thì các nội dung được lưu tạm thời của Portlet sẽ không bao giờ bị hết hạn. Bùi Vĩnh Phú 52 Đặng Đình Vương
- Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Nếu một Portlet không định nghĩa thời gian hết hạn của dữ liệu lưu trữ tạm thời trong đặc tả triển khai của nó thì việc thay đổi giá trị thời gian này trong đối tượng RenderResponse sẽ không có tác dụng do sẽ bị Portlet Container bỏ qua. Nếu nội dung của Portlet được lưu trữ tạm thời và chưa hết hạn, đồng thời không có một yêu cầu nào đến Portlet từ phía người sử dụng thì Portlet Container sẽ sử dụng nội dung được lưu trữ tạm thời khi cần thiết. Nếu nội dung của Portlet được lưu trữ tạm thời và có yêu cầu đến Portlet từ phía người sử dụng thì Portlet Container sẽ không sử dụng nội dung tạm thời được lưu trữ mà sẽ gọi đến phương thức xử lý yêu cầu của Portlet 12. Ứng dụng Portlet 12.1 Các thành phần của ứng dụng Portlet Ứng dụng Portlet là một ứng dụng Web nên ngoài việc bao gồm Portlet và đặc tả triển khai Portlet, nó còn có thể chứa các thành phần khác như: Servlet, trang JSP, các lớp… Do đó, bên cạnh các thông tin về ứng dụng Portlet, nó còn chứa đựng thông tin về các thành phần được đưa vào ứng dụng Portlet. 12.2 Cấu trúc cây thư mục Một ứng dụng Portlet cũng có cấu trúc cây thư mục được tổ chức giống như một ứng dụng Web. Tuy nhiên có một số khác biệt như sau: • Có thêm tập tin /WEB-INF/portlet.xml là tập tin đặc tả triển khai của Portlet. Bùi Vĩnh Phú 53 Đặng Đình Vương
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn