1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án tìm hiểu về portlet và ứng dụng trong cổng giao tiếp điện tử

60 587 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 60
Dung lượng 11,99 MB

Nội dung

Trang 1

MUC LUC oo — ::ÔỒ

Loi cam on

Lời nói đầu we

Chương I: Giới thiệu công giao tiếp điện tử

II 20.11 5 2 Lich str phat trién o c.ccecceccccccssessesssessessessessesssssssssessessessesssssesseseeeseees 5

3 Phân loại POrfaÌ + E322 2111 11221113 21111112 11119 111g vn, 6 4 Thuộc tính cơ bản của PorfalÏ - <5 +22 ***£++2£#vEeseeeeezseesees 7

5 Chức năng của POTfaÌL s9 nnHnHnnnHh nngncưy 8

6 Kiến trúc của Portal -¿-222+++22+++2222222721122211227112 2211 222 cee 9 7 Các mô hình phát triỂn 2-2 2 2 ©E£SE££E£2EE2EE2EEeEEeEEerkerrree 12

Chương II: Tìm hiểu về Portlef .2- 2-5 s2 sssssse+ssssesss=ssessesse 21 1 Định ngÌĩa - c - +1 1 vn nh TH nh TH ng nh HH, 21

2 Định dạng chung của một Portlet .- 55555 <£++s+++ee+ssxs+ 21

3 Giới thiệu về chuẩn JSR 168 -ccccccrrrtrrrrrrirrrrrrrrree 23

3.1 Những nền tảng chung của Portlet 2 2 s+cxccszzsz 23

E2) 62.0” .- 24 3.3 Portlets và ServÌets .cSQSnSnSSnSnnee 24

3.4 Những tương tác trong POrtal -.c- -c + ssssekseeeseersres 25 3.4.1 Portlet Interface và lớp GenericPortlet 26 3.4.2 Vòng đời của Portl€t - - ¿55c + +e*++£+xvxzvsseeses 27

3.4.3 Các trạng thái thực thi Portlet - - «+ +-«+-«+ 27

3.4.4 Quản lý yêu cầu Portlet 2-scs+zxczxczscez 28 3.5 Các yếu tố khác của Java Portlet API, 2s secsz+se2 34 3.5.1 PortletConfig " 3.5.2 PortlefURL -¿ St ssskreierrsrerrrsee 3.5.3 Các chế độ của Portlet 3.5.4 Các cửa số trạng thái cccccccccccee 3.5.5 Ngữ cảnh của Portle(_ c5 «+ c+cc<+ccsxx 3.5.6 Ngữ cảnh của Portal 3.5.7 Các tham chiếu Portlet

3.5.8 Phiên làm viỆC- . - 55555 + + c2 ++esss+c+ 1

Trang 2

3.5.9 JSPs va Serv̀t - vn, 40

3.5.10 Cấu tạo ứng dụng Portlet 2s sccsersercee 44

4 Phát triển ứng dụng và Workflow cho Portal . :- 44

4.1 Kiến trúc Portlet Chương III: Mô hình kiến trúc tối ưu để xây dựng ứng dụng Portal 48

1 Giới thiệu qua về các mô hình phát triển Web thông dụng hiện nay 48 1.1 Mô hình tổng quan trong phát triển Web -. - 48

1.2 Mơ hình JSÌP - «c1 SH ngư 49 1.3 Mơ hình MVC 1 30 1.3.1 Dinh nghia wo eee eeeeeeeeeeeeeeeeeeeeeseeeneeeeeeneeeaeeaes 51 1.3.2 Mô hình JSP Model 2 architecture 51

2 Đặc điểm của các ứng dụng chạy trên nền Portal (Portlet) 52

2.1 Mô hình hoạt động của Portet - s5 «55+ s+xc+es+ss2 2.2 Các yêu cầu đặt ra đối với ứng dụng Portlet 2.2.1 Tính độc lập với các Portal Engine 53

2.2.2 Hé thống phải hoạt động được với các hệ quan tri co sở đữ liệu khác nhau -2<c 2222222221221 sx2 33 3 Mô hình truy xuất cơ sở đữ liệu 2222121111111 11 2x 33 3.1 Mô hình truy xuất cơ sở dữ liệu theo kiểu truyền thống 53

3.2 Mô hình truy xuất dữ liệu sử dụng Hibernate Framework 34

3.2.1 Sơ lược về Hibernate Framework - %4

3.2.2 Đề xuất mô hình truy xuất cơ sở dữ liệu 53

Trang 3

Lời cảm ơn

Trong suốt quá trình học tại trường Đại học Dân lập Hải Phòng, em đã

được các thầy cô hướng dẫn và truyền đạt những kiến thức chun mơn cần

thiết Ngồi ra, em còn được làm việc nghiêm túc, tích cực trên tinh thần độc lập sáng tạo Đây là những kinh nghiệm quý báu trước khi bắt tay vào làm việc trong

tương lai

Thời gian làm luận văn vừa qua là cơ hội để em có thể áp dụng những kiến

thức mà trong suốt 4 năm qua em đã được học tập, cùng với sự hướng dẫn tận

tình của thầy Trần Minh và thầy Nguyễn Hoài Thu cùng các thầy các cô trong trường, em đã hoàn thành tốt đề tài tốt nghiệp của mình

Một lần nữa, em xin chân thành cảm ơn các thầy các cô Kính chúc thầy

cô cùng gia đình mạnh khỏe, hạnh phúc, chúc thầy cô tiếp tục đạt được những

thành công mới trong sự nghiệp giảng dạy và nghiên cứu khoa học

Em xin chân thành cảm ơn !

Sinh viên

Nguyễn Thị Mai

Trang 4

Loi noi dau

Chúng ta đã biết, website đã và đang đóng góp rất lớn vào việc phổ cập

thông tin, như giới thiệu tin tức, các cơ sở dữ liệu, và một số chương trình ứng

dụng trên mạng, đã làm thay đổi cả thế giới từ khi xuất hiện vào đầu những năm

90 của thế kỷ trước Ngày nay, mọi giao tiếp thông qua website đã trở thành phổ biến Tuy nhiên chúng ta có thể mạnh đạn goi mot s6 I6n cdc website la “website

truyền thống” bởi những mặt tồn tại do công nghệ cũ đề lại như: sự quá tai thông

tin; thông tin không được phân lọa1; khó khăn trong việc duy trì bảo quản; khó

tích hợp thông tin, dịch vụ; không có khả năng cung cấp một nền tảng để có thể phát triển và mở rộng

Công nghệ Portal (Cổng điện tử) phát triển sau thời kỳ này khoảng 7-8

năm như một tất yếu xuất phát từ nhu cầu thực tế Portal là một bước tiến hóa

của website truyền thống Nó ra đời để giải quyết những vấn đề mà website truyền thống gặp phải

Là “siêu website”, gọi đầy đủ là Portal Website, gọi tắt là Portal, đối với

người dùng vẫn chỉ là trang web qua browser

Là đích quy tụ hầu hết các thông tin và địch vụ cho người sử dụng cần

Thông tin và dịch vụ được phân loại nhằm thuận tiện cho tìm kiếm và vùi lắp các

thông tin

Bảo toàn dau tư lâu dài Có nền tảng công nghệ đảm bảo

Môi trường chủ động dùng cho việc tích hợp ứng dụng

Sự ra đời và phát triển của Portal đã dẫn tới sự phát triển tất yếu của các

chuẩn được sử dụng hoạt động trên nền Portal, đó là các chuẩn Ichannel, Portlet,

và giới thiệu về chuẩn Portlet JSR 168 của Java Community

Trang 5

Chương I: Giới thiệu công giao tiêp điện tử

1 Định nghĩa

Công giao tiếp điện tứ - Portal: Là một khái niệm thường được nhắc đến nhiều trong những năm gần đây của thị trường tin học Bởi vì phạm vi áp dụng cua Portal là rất rộng, bao gồm các hệ thống bên trong (internal), bên ngoài

(external), dang sau bức tường lửa va nằm rải rác khắp nơi trên Internet, do vậy khó có được định nghĩa hoàn chỉnh và chính xác về Portal Một cách chung nhất,

có thể tạm định nghĩa portal như sau:

Portal là một phân mém ung dung cung cap một giao điện mang tính cả

nhân hóa cho người sử dụng Thông qua giao diện này, người dùng có thể khám phá, tìm kiếm, giao tiếp với các ứng dụng, với các thông tin, và với những người

khác

Sự ra đời và phát triển của portal đã dẫn tới sự phát triển tất yếu của các chuẩn được sử dụng để xây dựng các ứng dụng hoạt động trên nền Portal, đó là chuẩn Ichannel, Portlet,

2 Lịch sử phát triển

Website đã và đang đóng góp rất lớn vào việc phổ cập thông tin, như giới

thiệu tin tức, các cơ sở dữ liệu, và một số chương trình ứng dụng trên mạng, đã

làm thay đổi cả thế giới từ khi xuất hiện vào đầu những năm 90 của thế kỷ trước

Ngày nay mọi giao dịch thông qua web đã trở nên phố biến

Công nghệ Portal (Cổng điện tử) phát triển sau thời kỳ này khoảng 7-8

năm như là một tất yếu xuất phát từ nhu cầu thực tế Portal là một bước tiến hóa

của web truyền thống Nó ra đời để giải quyết những vấn đề mà website truyền thống gặp phải

- Portal (céng giao tiếp điện tử) là một bước tiến hóa của website truyền

thống

- Là “siêu website”, gọi đầy đủ là Portal Website, gọi tắt là Portal, đối

với người dùng vẫn chỉ là sử dụng trang web thông qua trình duyệt (tức

là web browser), nhưng dang sau nó là sự thay đổi thuật ngữ và quan

niệm mới về triết lý phục vụ thay cho cách hiểu “tuyên truyền“ thông qua website như trước đây

Trang 6

Là điểm đích quy tụ hầu hết các thông tin và dịch vụ cho người sử

dụng cần, là điểm đích đến thực sự Thông tin và dịch vụ được phân loại nhằm thuận tiện cho tìm kiếm và hạn chế vùi lap cac thong tin

Bảo toàn đầu tư lâu dai Có nền tảng công nghệ đảm bảo, do công

Internet đã phát triển rất cao so với thời kỳ xuất hiện Word Wide Web

vào đầu những năm 90 của thế kỷ trước Những công nghệ tạo nên thời

đại portal đều hỗ trợ tính mở và kế thừa rất mạnh, sao cho việc mở

rộng quy mô phục vụ bằng các phần mềm ứng dụng mới được “lắp rắp” vào Portal đang có mà không phải hủy bỏ hoặc sửa chữa lớn như những website trước đây

Môi trường chủ động dùng cho việc tích hợp ứng dụng

Xu hướng “tiến hóa” chung của website theo hướng tiến đến Portal được trình bày trong hình vẽ: Platform cộng tác điều hành Tích hợp nội dung và dịch vụ Nạp, thu thập các ứng dụng Thu thập nội dung 1998 - 1999 2000 - 2001 2002 - 2003 2003 +

Phát triển của Portal

Hình 1.1: Lịch sử phát triển của Portal 3 Phân loại Portal

Sau đây là một vài kiểu điển hình của Portal

- Vertical porfal Thuật ngữ này được sử dụng để chỉ những Portal mà

nội dung thông tin cùng các dịch vụ của nó được thiết kế để phục vụ cho một lĩnh vực xác định, cho một chuyên ngành xác định, do vậy

khách hàng của nó là điện hẹp Theo đánh giá, hiện nay trên thế giới, Vertical portal là loại hình Portal có tốc độ phát triển nhanh nhất

Horizontal portal Thuat ngit nay duoc sir dung dé chi nhimng Portal ma nội dung thông tin cùng các dịch vụ của nó bao trùm nhiều chủ đẻ,

6

Trang 7

nhiều lĩnh vực, do vậy nó mang tính diện rộng, phục vụ cho nhiều loại khách hàng khác nhau Các Portal nỗi tiếng như Yahoo, NetCenter, Altavista,

Information portal Xay dung hé thong cung cấp thông tin trên cơ sở

thu gom số liệu từ nhiều nguồn khác nhau Các nguồn dữ liệu này nằm rải rác trên mạng toàn cầu Internet, từ các CSDL của các mạng nội bộ Intranet, và thậm chí cả từ các Portal khác

Community portal Xây dựng “một vị trí ảo” trên Internet cho các cá nhân, các doanh nghiệp “tụ tập” để giúp đỡ lẫn nhau và đề hợp tác với

nhau trong cùng một mục đích xác dinh Community portal mang lại cơ hội cộng tác cho các cá nhân, tổ chức doanh nghiệp mà ranh giới địa lý

không có ý nghĩa ở đây

Corporate portal (or Enterprise portal) Corporate portal thường được dùng bởi các nhân viên trong một cơ quan hay tổ chức sử dụng để chia sẻ thông tin với nhau, cộng tác với nhau để cùng giải quyết một công việc, qua đó nâng cao năng suất lao động và hiệu quả giải quyết công

việc của mình

Commercial portal Cung cap “chợ điện tử” (e-mail) trong thị trường thương mại điện tử

Goverment porial Cung cấp các “công hành chính công điện tử” để chính quyền (Trung ương và địa phương) thực hiện các chức năng của mình đối với dân chúng thông qua việc cung cấp thông tin và các dịch vụ hành chính công

4 Thuộc tính cơ bản của Portal

Cá nhân hóa giao diện người sử dụng (Personalization)

Tổ chức phân loại thông tin (Categoize)

Hỗ trợ khả năng tìm kiếm nhanh thông tin (Search)

Thông tin được tích hợp từ nhiều nguồn khác nhau (Intergration)

Hỗ trợ mô hình làm việc cộng tác (Collaboration)

Trang 8

- Khả năng cả nhân hóa (Customization hay Personalization) :

Cho phép thiết đặt các thông tin khác nhau cho các loại đối tượng sử dụng

khác nhau theo yêu cầu Tính năng này dựa trên hoạt động thu thập thông tin về người dùng và cộng đồng người dùng, từ đó cung cấp các thông tin chính xác tại

thời điểm được yêu cầu

- Tích hợp và liên két nhiéu loai théng tin (Content aggregation):

Cho phép xây dựng nội dung thông tin từ nhiều nguồn khác nhau cho nhiều đối tượng sử dụng Sự khác biệt giữa các nội dung thông tin sẽ được xác định qua các ngữ cảnh của người dùng

- Xuat ban théng tin (Content syndication):

Thu thập thông tin từ nhiều nguồn khác nhau, cung cấp cho người dùng

thông qua các phương pháp hoặc giao thức (protocol) một cách thích hợp Một hệ thống thông tin chuyên nghiệp phải có khả năng xuất bản thông tin với các định dạng quy chuẩn

- Hỗ trợ nhiều môi trường hiển thị thông tin (Multidevice support):

Cho phép hiển thị cùng một nội dung thông tin trên nhiều loại thiết bị khác

nhau như: màn hình máy tính (PC), thiết bị đi động (Mobile phone, PDA ) sử

dụng dé in hay cho bản fax một cách tự động bằng cách xác định thiết bi hién

thị thông qua các thuộc tính khác nhau

- Khả năng đăng nhập một lần (Single Sign On):

Cho phép dịch vụ xuất bản thông tin hoặc các địch vụ khác của portal lấy thông tin về người dùng khi hoạt động mà không phải yêu cầu người dùng đăng nhập lại mỗi khi yêu cầu Đây là một tính năng rất quan trọng vì các ứng dụng và dịch vụ trong portal sẽ phát triển một cách nhanh chóng khi xuất hiện nhu cầu,

mà các ứng dụng và dịch vụ này tất yếu sẽ có nhu cầu về xác thực hoặc truy xuất

thông tin người dùng

- Quan tri portal (Portal administration):

Xác định cách thức hiển thị thông tin cho người dùng cuối Tính năng này không chỉ đơn giản là thiết lập các giao điện người dùng với các chỉ tiết đồ họa (look-and-feel), với tính năng này người quản trị phải định nghĩa được các thành

phần thông tin, các kênh tương tác với người sử dụng cuối, định nghĩa nhóm

người đùng cùng với các quyền truy cập và sử dụng thông tin khác nhau - Quản trị người dùng (Portal user management):

Trang 9

Cung cấp các khả năng quản trị người dùng cuối, tùy thuộc vào đối tượng

sử dụng của portal Tại đây, người sử dụng có thê tự đăng ký trở thành thành viên tại một công thông tin công cộng (như Yahoo, MSN .)hoặc được người

quản trị tạo lập và gán quyền sử dụng tương ứng đối với các công thông tin

doanh nghiêp Mặt khác, tùy thuộc vào từng kiểu Portal mà sỐ lượng thành viên

có thể từ vài nghìn tới hàng triệu Hiện tại phương pháp phân quyền sử dụng dựa trên vai trò (Role-based security) được sử dụng như một tiêu chuẩn trong các hoạt động xác định quyền truy cập và cung cấp thông tin cho các đối tượng khác nhau trong các Portal cũng như các ứng dụng web

6 Kiến trúc của Portal ¬ ( Web browsers PDA browser WAP browser Client C - ( Ầ Presentation Services

Portal Personalization sea Collaboration AI No

Server Categorize Workflow

Interqration Public & Portlets/ Sercurity & g Subscribe Channels SSO Portal Infrastructure `— T U U : r Enterprise Resources

Portal Structured & Intergated Database Unstructured Data Database

Hình 1.2: Mô hình kiến trúc Portal

Được xây dựng dựa trên mô hình Web ba tầng (Web Application 3-tier):

tầng trình dién (Client), tầng ứng dụng (Portal Server) và tầng cơ sở dữ liệu (Enterprise Resources)

Trang 10

6.1 Tang trinh dién (Client):

Người đùng có nhiều lựa chọn về nền trình diễn (Internet, Mobile, PDA,

).Hệ thống sẽ tự động gọi các tệp cấu hình sẵn cho tầng nền thông qua lớp

Presentation Services Tang trình diễn chịu trách nhiệm về cung cấp giao diện cho nhiều loại người dùng khác nhau, có nhiệm vụ lấy các yêu cầu, dữ liệu từ

người dùng, có thể định đạng nó theo những qui tắc đơn giản (dùng các ngôn ngữ Script) và gọi các thành phần thích hợp từ tầng Business Logic để xử lý các

yêu cầu Kết quả sau xử lý được trả lại cho người dùng 6.2 Tầng ứng dụng (Portal Server):

Là môi trường hoạt động và là nơi chứa các ứng dụng của Cổng giao tiếp

điện tử Là đầu mối tiếp nhận và xử lý yêu cầu của người đùng đầu cuối, phân

tích, tiền xử lý yêu cầu và chuyển yêu cầu đã xử lý cho phần ứng dụng tương ứng xử lý Tầng này bao gồm 3 thành phần chính: dịch vụ phục vụ trình diễn, phần ứng dụng, kiến trúc hạ tầng

- _ Dịch vụ phục vụ trình diễn (Persentation Services): Đảm nhận nhiệm

vụ đón các yêu cầu từ tằng trình diễn (yêu cầu phía client) và trả về kết quả cho

phía client Đồng thời có nhiệm vụ thực thi các thành phần điều khiển trình diễn

của ứng dụng chủ cũng như thực thi các modules giao tiếp với các Server khác (Email, LDAP server)

- Phan ung dung (Bussiness Logic): Thực hiện các quy trình xử lý

nghiệp vụ và điều khiển Phần này bao gồm tập các API để thực hiện các luồng công việc, tập các API dùng để tạo ra các dữ liệu và sau đó thông qua

Presentation Services xuat ra XHTML, HTML, WML, tuy theo nén trinh dién ma phia client yéu cau Phan nay bao gom các khối chức năng chính sau:

+ Khối bảo mật (Sercurity & SSO — Single Sign-On): Khối này bao gồm các chức năng cơ bản liên quan đến việc đăng ký, quản lý tài khoản (tạo

mới, sửa đổi, xóa, .) của người sử dụng hoặc nhóm người sử dụng, phân

quyền cho người dùng hoặc nhóm người dùng truy cập tới tài nguyên và

dịch vụ của hệ thống Với quan điểm thông tin và dịch vụ chỉ được truy

nhập bởi người dùng hợp lệ, Portal cần thiết duy trì hệ thống kiểm tra và

xác thực người dùng truy cập Thêm nữa để tránh cho người dùng phải

nhớ quá nhiều tên và mật khâu khi truy nhập tài nguyên của mình, Portal

cũng được cài đặt khả năng xác thực một cửa theo đó người sử dụng (đã 10

Trang 11

được đăng ký và có tài khoản) chỉ cần đăng nhập một lần, nhưng có thể

truy cập tới thông tin và dịch vụ (theo quyền truy cập) có trên Portal

+_ Cá nhân hóa nguoi ding (Personalization): Mot trong những đặc tính của Portal là khả năng cá nhân hóa Một người dùng sau khi đăng nhập

vào hệ thống thì có thé tự thay đổi giao diện trình bày như bố cục và giao diện trình bày, thành phần thông tin hiền thị,

+ Khối tổ chức, quản lý và tìm kiếm nội dung thông tin (Search & Cafegorize): Đề giảm thiêu tình trạng quá tải thông tin của người sử dụng, thông tin cần được quản lý bởi Portal phải được phân loại và sắp xếp theo các chủ đề (topics, subtopics, .) sao cho người dùng có thể nhanh chóng

tìm thấy thông tin mà mình cần Trong mục quản lý nội dung còn có các

chức năng xuất bản thông tin bao gồm các bước tạo, phê đuyệt và xuất bản thông tin, nhưng do vai trò quan trọng của khối này nên đã tách riêng + Khối xuất bản thông tin (Publish & Subscribe): Khối này cung cấp các chức năng cơ bản thê hiện qui trình xuất bản thông tin với sự tham gia của

các bộ phận khác nhau như: tạo lập, biên tập nội dung bằng một hệ soạn

thảo văn bản, và phê duyệt xuất bản

+ Khối tích hop ung dung (Intergration): Cung cap các giao thức chuẩn,

mà thông qua đó các ứng dụng được tích hợp vào Portal, hoặc tạo lập các mối liên kết (links) với các trang thông tin điện tử/website khác

+ Khối mô hình làm việc cộng tác (Collaboration): Khối này cung cấp và thực hiện quản lý các phần mềm công cụ nhằm tăng cường khả năng trao đổi thông tin 2 chiều giữa các thành viên của Portal, giữa thành viên và người quản trị Poral trong quá trình xử lý công việc

+ Khối mô hình xử lí công việc theo qui trình định trước (Applications &

Workflow): Khéi nay cho phép xay dung nén cdc quy trình xử lý công việc

theo các bước định trước, và áp dung các quy trình này vào xử lý các công việc một cách tự động

+ Khối ứng dựng xáy dựng (Portlets/Channels): Là khối bao gồm các

ứng dựng xây dựng theo các chuẩn Portlets và Channels là những chuẩn ứng dụng Portal hỗ trợ đề thực hiện những chức năng cụ thé, riéng biét - Kién tric ha tang (Portal Infrastructure): Là những kiến trúc bên đưới

11

Trang 12

giúp cho Portal giao tiếp với tầng Cơ sở đữ liệu, các ứng dụng bên ngoài Portal

và với người dùng khác

6.3 Tầng cơ sở dữ liệu (Enterprise Reources):

Bao gồm các hệ thống CSDL lưu trữ đữ liệu chính của Portal, CSDL

chuyên nghành và CSDL tích hợp sẵn sàng phục vụ cho các hoạt động truy cập,

xử lý, kiết xuất và trình diễn thông tin ở các tang trên

- CSDL Portal (Portal Database): gồm hệ thống CSDL chính của Portal

phục vụ lưu trữ các thông tin dữ liệu về cấu hình, các tham số của hệ thống, dữ liệu người dùng, dữ liệu bản tin, các thông tin, dữ liệu phục vụ điều hành, Các CSDL này được liên thông với nhau và tạo thành một hệ thống phục vụ điều

hành, quản lý Portal

- CSDL ứng dụng (Structured & Unstructured Database): là hệ thống các CSDL phục vụ quản lý một lĩnh vực hoặc đối tượng đặc thù của từng Đơn vi

sử dụng hệ thống Portal Đây cũng chính là hệ thống CSDL chung phục vụ một

ngành dọc liên quan đến Đơn vị đó Khi có yêu cầu, hệ thống sẵn sàng cho việc

kết xuất và tổng hợp thông tin để cung cap cho Portal

- CSDL tích hợp (Intergrated Database): Đây là hệ CSDL của Portal và

các hệ thống khác cần liên thông dữ liệu với nhau Hệ CSDL hoạt động theo

nhiều cơ chế (như LDAP, Active Directory, .), cho phép tích hợp thông tin hệ

thống của các hệ CSDL nền khác nhau

7 Các mô hình phát triển

7.1 Portal theo chuẩn Ichannel

IChannel là một chuẩn phát triển kênh ứng dụng dựa trên mô hình kiến trúc MVC, và áp dụng công nghệ XML/XSLT trong trình diễn và chuyển đổi dir

liệu IChannel được dùng trong framework uPortal để phát triển các kênh ứng dụng, chúng ta sẽ đi sâu nghiên cứu vé framework uPortal trong những phần

dưới đây:

a uPortal

- Giới thiệu

uPortal là một dự án được bắt đầu và phát triển bởi JA-SIG Mục đích chính của uPortal là đưa ra một bộ khung (famework) cho phép tích hợp các thông tin, ứng dụng vào trong một giao diện web nhằm tạo ra một cổng truy

12

Trang 13

nhập duy nhất đáp ứng yêu cầu sử dụng của một cộng đồng người dùng muốn

chia sẻ, trao đôi các thông tin trực tuyến trên Internet

Công nghệ nền tảng mà uPortal tuân theo là các chuẩn được đặc tả trong

kiến trúc hệ thống mở J2EE, bao gồm Applet, Servlet, JSP, EJB, JTA, JMS,

uPortal thao tác với các object của một web-page theo đặc tả DOM (Document Object Model), và sử dụng Java, XML, XSLT

Công nghệ XML/XSLT được sử dụng cho phần trình diễn đối với người sử dụng Công nghệ này cho phép trình diễn cùng một nội dung thông tin trên

nhiều thiết bị khác nhau như máy vi tính cá nhân PC, các thiết bị di động cầm tay như Mobile, PDA, và v.v

Kiến trúc trong đặc tả J2EE làm uPortal trở thành một hệ thống mở và

mềm dẻo, có khả năng tích hợp với các hệ thống hạ tầng và các ứng dụng dịch vụ hay các nguồn đữ liệu khác nhau Theo như kiến trúc đó, uPortal cung cấp

một tập các giao diện để tích hợp với các hệ thống và ứng dụng bên ngồi

Cơng nghệ Java là một công nghệ cho phép xây dựng các phần mềm “viết một lần, chạy mọi nơi” tức là các ứng dụng được viết bằng Java chạy được trên

nhiều nền hệ thống khác nhau Windows, Linux, Unix, Do đó uPortal cũng là

một hệ thống mà chạy được trên nhiều môi trường hệ điều hành khác nhau Nó

cũng có thể chạy với nhiều web server và kết nói đến nhiều hệ cơ sở dữ liệu khác nhau như Oracle, SQL Server, My SQL, DB2, nhờ vào một lớp (một thành

phần) chuyên đảm nhận kết nối cơ sở dữ liệu để đảm bảo các lớp phía trên của

uPortal hoạt động độc lập không phụ thuộc vào loại cơ sở dữ liệu - Lich sw cua uPortal

Phiên bản đầu tiên của uPortal — uPortal 1.0 với tên goi Monterey 1.0 được đưa ra vào năm 2000 Sau đó đến phiên bản uPortal 1.5 với tên gọi Destin

với việc bổ sung hệ thống kiểm soát quyền truy cập Ở các phiên bản uPortal I.x,

việc biểu diễn nội dung nhờ vào các thành phần JSP Các thành phần này nhận

trực tiếp đữ liệu và sinh ra các trang HTML

Nhưng đến các phiên bản uPortal 2.x đưa ra một kiến trúc mới dựa trên chuân XMI/XSLT Đồng thời các mẫu thiết kế (design pattern) được áp dụng

nhiều hơn đề tổ chức các thành phần phần mềm của uPortal mang tính mềm đẻo

và tính mở cao Từ phiên bản uPortal 2.1.3 được đưa ra ngày 23 tháng 6 năm 2003 đã tăng cường thêm nhiều tính tăng như quản lý nhóm, kênh từ xa (remote

13

Trang 14

channel), Và đến phiên bản 2.3.5 ra ngày 14 tháng 9 năm 2004 đã hỗ trợ chuẩn portlet JSR-168 Các phiên bản và thời điểm phát hành có thể tóm tắt bằng bảng dưới đây Phiên bản Thời điểm phát hành uPortal 1.0 07 - 2000 uPortal 1.5 02 - 2001 uPortal 1.6 06 - 2001 uPortal 2.0 07- 2001 uPortal 2.0.3 06-12-2003 uPortal 2.1.3 23-06-2003 uPortal 2.1.5 14-01-2004 uPortal 2.2.1 05-04-2004 uPortal 2.3.5 24-09-2004 uPortal 2.4.3.1 28-10-2005 uPortal 2.5.2 02-03-2006 - Mô hình

Portal Container quản lý các yêu cầu từ phía client và quản lý việc chạy

của các kênh IChannel trong Portal Khi Portal Container nhận được yêu cầu từ

client nó sẽ phân tích, xử lý và đưa yêu cầu tới kênh ứng dụng được yêu cầu để

thực thi, và trả về kết quả cho Portal Container Khi nhận được kết quả từ kênh

img dung Portal Container sẽ kết hợp với các nội dung khác của trang đề trả về HTML cho client

14

Trang 15

Web browsers PDA browser WAP browser Presentation Ñ I Layer 2 @Ò a Internet Ga ¬ Web Server * Portal Container * Channel 1 Channel 2 Channel 3 Business Logic Layer Data Access Object layer - y ` RDBMS Layer Database Server Database _)

Hình 1 3:Mô hình của Portal

- Công nghệ xử lý dựa trên mô hình kiến trúc MVC

uPortal là web-based application, được kiến trúc dựa trên mô hình MVC Khi triển khai Portal được đóng gói lại theo dạng web archive(.war) và được đặt trong một thư mục trên web server Mối liên hệ giữa web server và các vai trò

của mô hình MVC trong uPortal được mô tả trong hình vẽ sau:

15

Trang 16

"1

Nguoi dun Web Server Controller Modul lay du lieu - Http Modul xu Ii du lieu - Modul hien thi -| Nguoi dung Request Object Model q [View n

1 1 T ] 1 1

4: Yeu cau - Http request | | | | 2: Chuyen yeu cau | | | |

3:L lieu nhạp vao tu nguoi dung jntemet | | | ! ! | 4: Thuc hien cee hue nang he thong | | 1 1 ! 1 1 1 ! 1 5: Tao du lieu - XML data ! 1 1 1 Ị 6: Chon ky hien thi - stylesheet Ị — Ị ! < 1 ! 1 1 1 | ! 1 ! ! | 7: Goilmodul hien thi qua Weli Server | | | 1 1 I | ! L 1 ! ! 1 1 1 I 1 | | m 1 ! | 1 I 1 1 | | | | | 1 ! ! | | | 8: Gui yeu cau hien thi den modul hien thi | | | Ị I I | “Ul 1 1 1 I | u | 1 ! ! | | | | | 9: Lay du lieu | 1 I 1 1 | | | 1 L | | | | i i I 10: Tao trang web tra loi | I I t 1 1 I I | I I 11: Tra loi - Http reponsé Ị Ị Ũ I I I I I 1 I I I I I 1 I I I I I 1 I ———————

Hình 1.4: Mối liên hệ giữa web server và các vai trò của mô hình MỨC

+ Controller có nhiệm vụ nhận các request từ người dùng do web server chuyển tới, nhận model là kết quả từ các business logic, sau đó gọi View để tạo

response trả lời request

+ View trong uPortal là các stylesheet Controller gọi view để hiển thị đữ liệu XML trong Model Dữ liệu XML của model được tạo ra từ domain logic

layer

+uPortal sử dụng các bộ thư viện mã nguồn mở như xalan.jar, xerces.jar

(Apache Group — www.apache.org) va JAXP (Sun — www.sun.com) dé chuyén

đổi các dữ liệu từ domain-logic thành XML va tir XML thanh HTML

- $ử dụng công nghệ XML/XSLT trong trình diễn, chuyển đổi dữ liệu

uPortal áp dụng công nghệ XML/XSLT trong trình diễn và chuyền đổi dữ liệu, hình dưới đây mô phỏng cho cơ chế trình diễn này

16

Trang 17

XML Hình 1.5: Sơ đồ mô phỏng cơ chế trình diễn thông tin của uPortal

+Tao trinh dién

Bộ khung phan mềm uPortal là một bộ khung để phân phối các thông

tin/dịch vụ tích hợp được thu thập từ các loại nguồn thông tin được phân loại

Chức năng chính của bộ khung là cung cấp một bộ máy hiệu quả và mềm đẻo cho việc tạo một trình diễn Cho trước một tập nguồn tài nguyên thông tin (các kênh), và một chỉ dẫn cách sắp xếp và bộ khung trình diễn (stylesheets), bộ khung uPortal sẽ phối hợp để tạo thành một tài liệu tổ hợp cuối cùng

Điểm bắt đầu cho bất cứ một sự tạo trình diễn luôn là một tổ chức trừu

tượng của các kênh: tài liệu bố cục người dùng (user layout document) Tiến trình tạo trình diễn tô hợp chuyên đổi user layout document theo ba giai đoạn

chính để đạt được tài liệu cuối cùng dưới dạng một ngôn ngữ đánh dấu XML

(markup language):

Giai đoạn đầu là chuyên một hệ thống trừu tượng bố cục của người dùng (user layout) sang dạng một trình diễn có cấu trúc - gọi là chuyển đổi cấu trúc

(structure transformation), và lôgic của nó được định nghĩa bởi structure stylesheet (sử dung XSL) Ví dụ, the structure stylesheet cho biéu dién “tab va cột” mặc định sẽ chuyên cấu trúc user layout trừu tượng thành một cấu trúc của

17

Trang 18

& VA cột” Sau chuyên đổi cấu trúc, hệ thống khởi tạo vòng đời

trình điễn của các kênh mà sẽ được hợp thành vào trong trình diễn cuối cùng các yêu tô “tab” và

Giai đoạn thứ hai của tiễn trình sẽ chuyên kết quả của giai đoạn chuyển

đổi cấu trúc sang giao thành một ngôn ngữ đánh dấu (như HTML) Chuyên đổi

này gọi là chuyển đổi nền (theme transformation) và lôgic của nó được định nghĩa bởi theme stylesheet

Nội dung được cung cấp bởi mỗi kênh riêng biệt sẽ được sát nhập vào trong kết quả của chuyên đổi cấu trúc

Giai đoạn cuối cùng là xuất bản kết quả của chuyên đổi nền với nội dung của kênh vào trong một luồng các ký tự theo các luật của ngôn ngữ đánh dấu và phương tiện biểu diễn

An alll

tenderer > channels 3

e+ @e-e-@ content presentation

Hinh 1.6: Cac giai doan tao trinh dién

+ Chuyển đối

uPortal là framework, trong đó các thực thê tạo nên framework được thiết kế và implement như một kênh độc lập trong kiến trúc hệ thống Cụ thể, các

chức năng của uPortal được kiến trúc như một kênh trong hệ thống Người đùng

hệ thống sử dụng kênh phụ thuộc vào vai trò và quyền Một kênh được implement theo m6 hinh MVC, controller thực hiện business logic của kênh, kết

quả của business logic được mô hình trong model, và controller gọi view để hiển

thị kết quả trong model Business logic của kênh được mơ hình hố trong Model

dưới dạng dữ liệu XML, view được mô tả trong các stylesheet bằng XSL

Trang web trong kiến trúc portal được thiết kế dựa trên việc bố trí các

kênh trên một kiểu layout Có hai engine chính được thực hiện khi tạo một trang

web trong kiến trúc portal:

18

Trang 19

* Channel Renderer Engine: Liên quan đến từng kênh cụ thể trong hệ

thống Engine này sử dụng mô hình Two step view dé chuyén déi đữ liệu kênh

từ đomain logic sang XML, tiếp đó từ thực hiện chuyên đổi từ XML sang đữ liệu

HTML Dưới đây là mô hình thể hiện cơ chế chuyên đổi này

Channel Data (From Domain logic) 1 First stage:| using XML parser 1 Channel Data (XML) Second stage! using XSLT processor I —— Channel Data (HTML) Hình 17: Mô hình chuyển đổi theo cơ ché Channel Renderer Engine

* Layout Renderer Engine: Liên quan đến từng layout của kênh cụ thể trong hệ thống Engine này cũng sử dụng mô hình Two step view để chuyên đổi dữ liệu layout từ domain logic sang XML, tiếp đó từ thực hiện chuyển đổi từ XML sang dữ liệu HTML

19

Trang 20

Layout data (from Domain Logic)

1

First stage: using XML parser input: business logic data 1 Layout data (oriented - XML) 1

Second stage:|using XSLT processor

Trang 21

Chương II: Tìm hiệu vê Portlet

1 Định nghĩa

Là một thành phần web có khả năng gắn nói (plugable) được quản lý bởi một portlet container, cái cung cấp một cách linh động nội đung như là một phần của sự kết hợp giao diện người dùng Portlet là một thành phần nhỏ của ứng

dụng web, chạy bên trong trang portal cùng với một sỐ lượng bất kỳ các thực thể

nào đó khác, nó có thé xt ly cdc request va tạo ra các nội dung động

Một server portal quản lý các yêu cầu của client Giống như một ứng dụng

web phía máy chủ có một web container để quản lý việc “chạy” các thành phần

web (như serverlet bộ lọc filters ), một portal có một portlet container để quản lý việc chạy các portlets

Portlet là một thành phần web riêng biệt, có một hay một vài chức năng cụ thể nào đó, giúp portal hoàn thành chức năng, nhiệm vụ của mình Mọi yêu cầu

của người sử dụng đối với portlet đều phải thông qua giao điện của portal

Các máy khách truy cập web tương tác với portlet thông qua mô hình yêu

cầu/trả lời(request/reponse) Với một chu kỳ yêu cầu xác định, timg portlet sinh

ra nội dung riêng biệt được gọi là đoạn nội dung (fragment).Các đoạn nội dung được trình bày bằng một ngôn ngữ đánh dấu (markup) như HTML hoặc

XHTML sẽ được kết hợp với nhau thành một tài liệu trả lời hoàn chỉnh

Một portlet được hiển thị trên một trang portal như là một cửa số đơn

Portlet cung cấp nội dung chứa trong cửa số nhưng nó không phải là bản thân

cửa số đó

Các portlet có thể được xây dựng thành nhiều mức và ngữ cảnh của portal cho phép người dùng giao tiếp với portlet để hoàn thành mục đích của mình

2 Định dạng chung của một Portlet

Trong hệ thống tích hợp có rất nhiều portlet khác nhau, mỗi portlet mang một

nội dung khác nhau Tuy nhiên, định dạng của các portlet là giống nhau Có thể chia portlet làm 2 loại : portlet rộng và portlet hẹp Portlet rộng có độ rộng là 536

pixel, con portlet hep có độ rộng là 214 pixel Chiều dài của các portlet này tùy thuộc vào chức năng mà nó thực hiện Dưới đây là minh hoạ cho một portlet:

21

Trang 22

Kéo thã Thu nhỏ tối thiểu | Tiêu đề Sửa hiển thị ng SE

Thanh công cụ +] €Ề Diễn đàn Ao _

Tiêu đề phụ Thêm chuyên mục - Xem chuyên mục - Tìm kiếm

Chủ Ngay dua bai cudi

Categories đề cùng Phần nội dung Nơi tập trung các ý kiến thảo luận về cải Ý 3/17/04 9:03 AM

cách hành chính Đầu tư Edit

Thảo luận về chính sách đầu tư, thu hút _ 1 3/17/04 9:01 AM dau tu

Hình 2.1: Ví dụ về một Portlet

- Tiéu dé: Tiêu đề của portlet

- _ Thanh công cụ: chứa tiêu đề và các nút thao tác của portlet -_ Tiêu đề phụ: Phần nội dung: hiễn thị nội dung cua portlet

-_ Phóng to tôi đa (P): khi nhân vào nút này thì cửa số portlet sẽ có độ

rộng hết màn hình và các portlet khác sẽ được an đi

-_ Thu nhỏ tối thiếu (=]): khi nhẫn nút này thì cửa số portlet sẽ thu nhỏ

lại, chỉ còn hiển thị thanh công cụ

- Stra biển thị (3%): tùy từng portlet sẽ có chức năng này Đó là các portlet mà người sử dụng có thể thay đổi một số yếu tố định dạng như

thay đổi ngôn ngữ hiễn thị cho portlet đó, thay đổi số tin tức hiển thi

trong portlet

-_ Tất (Z]): đóng portlet lại

-_ Khôi phục (S) Khi bạn nhắn vào nút hoặc thì các nút này sẽ được thay

thế bằng nút Nút này được đùng để khôi phục lại kích cỡ ban đầu của

portlet

- Kéo tha (2): nếu bạn muốn di chuyển portlet đến một vị trí khác thì bạn nhắn vào nút này, đồng thời kéo chuột đến vị trí mới và thả ra

- _ Trợ giúp(®): Bạn có thê click vào đây để nhận được trợ giúp

22

Trang 23

3 Giới thiệu về chuẩn JSR 168

JSR 168 - viết đầy du la Java Specification Request 168 Day la chuan

duge phé chuan thang 10 nam 2003, phat trién boi Java Community Process

nhằm hoàn tất các thao tác giữa các bộ phận của Portal và Portlet, chuẩn này

giúp đơn giản hóa việc phát triển các ứng đụng portlet và cho phép các nhà phát triển tạo các thành phần ứng dụng có khả năng “cắm và chạy” trên bất kỳ nền tảng hệ thống J2EE Portal nào

3.1 Những nền tảng chung của Portlet

Một server portal quản lý các yêu cầu của client Giống như một ứng dụng Web phía máy chủ có một web container để quản lý việc "chạy" các thành phần

web (như servlets, Jjsps, bộ lọc filters, v.v ), một portal có một portlet container

để quản lý việc chạy các Portlets Chú ý rằng hầu hết các ứng dụng web phía may chi, chang han nhu Tomcat, co thêm các tính năng bổ sung bên cạnh web container (console quản lý, CSDL người dùng, v.v), còn bao gồm vài ứng dụng web dic biét (chang han tmg dung web administration)

Portal được cho là một mẫu tương tự, cung cấp ở mức cao hơn các chức

năng bao quanh portlet container chúng gắn chặt với đặc tả, cho phép ứng dụng

portlet trở nên khả chuyền, giống như ứng đụng web

Portlet API là một mở rộng của dac ta servlet, điều đó có nghĩa là một

portlet container cũng vậy, theo định nghĩa một web container Hình 2.2 chỉ ra stack Portal, nó xác nhận làm thế nào các phần khác nhau được xây đựng phía trên nhau để cung cấp một portal server

2

Trang 24

Web Client Portal Server Portlet Container 'Web Container Database Dayapase Database Hình 2.2: Stack Portal 3.2 Định nghĩa

- Portlet một thành phần web có khả năng gắn nối (plugable) được quản

lý bởi một portlet container, cái cung cấp một cách linh động nội dung như là một phần của sự kết hợp giao điện người dùng

- Fragment Két quả việc thực thi một portlet, một đoạn các ngôn ngữ

đánh dấu (HTML, XML ) nó gắn với một vài qui tắc

- Portlet Container Môi trường thực thi của một portlet Nó quản lý vòng đời của portlet và quản lý các yêu cầu từ portal bằng cách triệu gọi các portlets

bên trong container

3.3 Portlets va Servlets

Portlet API la một mở rong cua servlet API Thế nên, có cả sự tương đồng

và sự khác biệt giữa các thành phần Điều này là quan trọng đề hiểu những nét

độc đáo (đặc thù) này để hiểu tại sao lại có một portlet đặc Điểm tương đồng

- Portlet va Servlet déu 1a thanh phan web J2EE

Trang 25

- Portlet sinh ra framents trong khi servlets sinh ra một tài liệu hoàn chỉnh

- Khong gidng servlet, portlet khong nhay tới trực tiếp một URL

- Portlet cd một lược đồ request phức tạp hơn với 2 loại yêu cầu là:

action (hành động) render (đáp ứng)

- Portlet gan chặt đến một tập chuẩn hóa các trạng thái, modes chúng

định nghĩa các thao tác ngữ cảnh và những qui tắc đáp ứng (render) Điểm vượt trội

-_ Portlet có một cơ chế phức tạp hơn để truy cập và cố gắng cấu hình thông tin

- Portlet phai truy cap dén hién trạng (profile) thông tin người dùng,

ngoại trừ người dùng cơ sở và giữ chức năng cung cấp thông tin đặc tả servlet

- Portlet co thé thực hiện việc viết lại portlet, vì thế dé tạo một liên kết

thì nó độc lập với việc cài đặt ứng dung portal server (nó có rất nhiều phương thức đề theo dõi thông tin phiên làm việc .)

- Portlet có 2 đích sessions khác nhau trong đó lưu trữ các đối tượng:

ứng dụng chung va portlet riéng tu Diém yếu hơn

- Portlet không thể thay đổi HTTP header hay thiết lập mã hóa các trả lời

(response)

- Portlet không thể truy xuất URL mà client dùng để khởi tạo các request trên portal

- Các ứng dụng portlet là mở rộng của ứng dụng WEB Vì thế cả 2 ứng

dụng được triển khai (deploy) trong file WAR (Web Archive file) và cả 2 bao

gồm một file mô tả triển khai ứng dụng web (web.xml) Tuy nhiên một ứng dụng

portlet còn bao gồm một file mô tả triển khai ứng dụng portlet (portlet.xml)

- Vì một ứng dụng portlet là một mở rộng của ứng dụng web, nên logic mà nói nó có thể bao gồm những thành phần ứng dụng web khác Portlet có thể sử dụng JSPs và servlets để cài đặt những tính năng của nó

3.4 Những tương tác trong Portal

Ta sẽ chỉ ra rằng làm thế nào một tương tác portal điển hình xuất hiện

Trang 26

Hình 2.3 ở dưới chỉ ra một chuỗi các sự kiện xuất hiện bên trong portal để

quản lý một hồi dap (render) dién hinh cua client Bén trong portal là Portlet API

— phục tùng mệnh lệnh của portlet container chúng quản lý trạng thái thực thi của portlet Portal Page Se ZS t † iy iy 1} 4 1) Portal Server ¡, iy 1y Fragments i == Portal Container =ỞH—=——¬14-` Mỹ - Mi V - - ey oe Portlets

Hinh 2.3: Su kién trong Portal

Container danh giá những portlet đó thành các framents, hoặc là tạo yêu

cầu (request) của portlet hoặc là lấy một fragment trong cache Sau đó, container nắm fragment dén portal server dé kết hợp chúng vào trong trang portal

3.4.1 Portlet Interface va lớp GenericPortlet

Giao diện portlet định nghĩa (cách thức) thái độ mà tat ca cdc portlet phải

thực hiện Một cách cụ thê, chúng ta nên kế thừa (extend) lớp GenericPortlet để 26

Trang 27

xây dựng portlet, bởi nó cung cấp kiến trúc chứa tất cả những phương thức cài

đặt portlet điển hình, không chỉ đơn giản những cái mình cần 3.4.2 Vòng đời Portlet

Rat giống như servlet, vòng đời một portlet được quản lý bởi container,

và có phương thức init (khởi tạo) nó được dùng để quản lý những yêu cầu khởi tạo (tạo tài nguyên, cấu hình, vw ) Portlet chỉ được tải về khi cần đến, trừ khi

bạn cấu hình container để tải chúng ngay khi khởi động Phương thức init lấy

một đối tượng object di cai đặt (implement) lép giao tiếp interface PortletConfig, cái quản lý các tham số khởi tạo và bó tài nguyên của Portlet: ResourceBundle Đối tượng này có thể được sử dụng để lấy tham chiếu đến

Object da cai dat (implement) lép giao tiép PortletContext interface

Nha phat triển portlet khơng hồn toàn mắt thi giờ lo lắng về sự phức tạp của biệt lệ khởi tạo (exception) portlet container, bởi thông thường chúng được lay ra, và nhà phát triển tác động trở lại lên chúng (gỡ rối những tình huống có thể dẫn đến biệt lệ exception và sửa chúng cho chúng nếu có thẻ) Tuy nhiên, đáng chú ý là một unavailableException có thể xác định thời gian mà portlet sẽ không thích hợp Cả 2 đều có ích (giữ cho portlet container luôn cố gắng liên tục

tải portlet) và làm không vừa lòng nhà phát triển (tại sao portlet container không

tải lại portlet của tôi ?)

Phương thức destroy cung cấp một cơ may để xoá hết các tài nguyên được thiết lập ở phương thức init (khởi tạo) Điều này tương tự với portlet destroy trong servlet, và được gọi mỗi khi container tống khứ portlet Khi một exception duoc dua ra trong phuong thtrc init cua portlet, thi phương thức destroy được đảm bảo là không được gọi

Tuy nhiên, nếu tài nguyên được tạo trong phương thức imt(() trước khi

exception được đưa ra, nhà phát triển không thể mong đợi phương thức destroy

dọn dẹp chúng, và phải quản lý chúng trong khối try - catch exception

3.4.3 Cac trang thai thuc thi portlet (Portlet Runtime States)

Khi một portlet đang chạy, nó có một đối tượng Preferences kết hợp cho phép tuỳ biến portlet Những giá trị khởi tạo của Preferences được xác định trong mô tả triển khai (deployment descriptor), nhưng portlet có một sự truy cập đầy đủ một cách hệ thống đến tham chiếu của nó Khi một portlet được đặt vào một

trang, một Preferences sẽ tham chiếu đến nó Sự kết đôi của portlet và đối tượng

Preferences trên một trang được biết đến như là của số portlet 27

Trang 28

Một trang có thể bao gồm rất nhiều những của số portlet như nhau bên

trong hiển thị của nó Trước khi bạn bắt đầu thắc mắc tai sao tất cả các đối tượng tham chiếu Preferences Object nay 1a can thiét, hay hinh dung rang điều đó cung

cấp khả năng để thao tác cho tính năng chủ yếu của portal - customization (kha

năng tuỳ biến)

Trong khi đối tượng tham chiếu khởi tao portlet (Preferences Object) dugc

tạo đề xác định cấu hình va trang thai thuc thi cua portlet, viéc ngat trang thai dé

quản lý tuỳ biến giao diện của portlet là điều cần thiết Chẳng hạn, nói bạn có một portlet thư mục làm công (employee đirectory portlet) Hiển nhiên là, nó cần

một vài tham chiếu mới có thể chạy được Tuy nhiên, khi employee directory

portlet được nhúng vào trong trang chu cua "Hanoi Portal", nên không chỉ có

một giao điện tuỳ biến, nhưng cũng có tham chiếu liên quan đến thực tế trên

trang, chang han chi hiển thi các nhân viên của Hanoi Portal 3.4.4 Quản lý yêu cầu portlet (Portlet Request Handling)

Có 2 loại yêu cau (request) c6 thé đưa ra đối với mot portlet: action request va render request (yêu cầu hành động và yêu cầu hồi đáp) Không ngẫu nhiên mà những yêu cầu (request) này đi cùng với các loại URL tương ứng: action URLs

và render URLs Một action URL nhắm tới phương thức processAcfion của

portlet trong khi render URL hướng tới phương thức render của nó 3.4.4.1 “Chỉ có thể là một”

Nếu yêu cầu của client là action request, thì nó chỉ hướng đến một portlet, cai sé phải thực thi trước tiên Không có các action request khác có thể

được thực thi trên portlet còn lại, chỉ có render request Hình 2.4 minh hoạ làm

thé nào một portal container có thé quản lý một action request

Chúng ta đã biết, portlet container sé thực thi phương thức processAction()

trên portlet đích, chờ đợi cho đến khi nó kết thúc trước khi nó thực thi hồi đáp

(render) của những portlets còn lại trên trang Việc gọi phương thức hồi đáp render trên các portlets còn lại có thể hoàn tất theo thứ tự, và có thể hoàn tất song

song

Phương thức processAction() chịu trách nhiệm việc thay đổi trạng thái trên một portlet cho trước, trong khi phương thức render chịu trách nhiệm sản

sinh nội dung trình bày tương ứng (thích hợp) của portlet

Vì thế, hoàn toàn hợp lý khi một user có thê thay đổi chỉ một portlet tại

một thời điểm (bạn chỉ có thể click trên một hộp), và rằng tất cả các portlets phải 28

Trang 29

gọi hồi đáp (render) dé sản sinh lại nội dung của chúng trên kết quả của action

Tuy nhiên, đó không phải để nói rằng tất cả các portlet không thể thay đổi tại

thời qian đã cho

Hãy xem xét ví dụ chung sau: một portal cho Simpsons Một trong những

portlet cho phép bạn chọn các đặc tính của Simpson ở những trang mà bạn muốn

xem Những portlet khác chứa đựng những thông tin đặc tính, hình thức vừa rồi,

những câu trích dẫn lớn nhất Khi bạn chọn một đặc tính mới, bạn sẽ thay đổi

trạng thái mà những đặc tính đã chọn hay portlet thông qua phương thức processAction() Trong phương thức này, qua nó, bạn sẽ soạn thảo thuộc tính

chia sẽ cho trước nó xác định đặc tính của trang mà bạn tác động, chúng sẽ là nguyên nhân tất cả các portlets tự hồi đáp cho những đặc tính trên khi bạn triệu

gọi phương thức render của chúng

Ghi nhớ một biệt lệ (exception) để khi một phương thức hồi dap (render) của portlet được gọi, và khi nội dung của portlet bị giữ Portlet API cho phép những containers chọn lựa để sử dụng bản copy nội dung được lưu giữ, thay vì gọi phương thức render Portlet container không là nơi cung cấp một cách dễ dàng cache, nhưng là nguồn đầu cơ cung cấp dễ dàng nơi lưu trữ kết thúc, mà

được cấu hình trong mô tả triển khai ứng dụng portlet (deployment descriptor)

Người triển khai cung cấp một yếu tố kết thúc-lưu trữ trong đó user xác định số giây lưu trữ (hoặc -1 nếu không kết thúc)

Nơi lưu trữ là 1 client = 1 portlet, và không thẻ chia sẽ thông qua những yêu cầu của client Tất nhiên là một nhà phát triển có thê implement portlet của họ do cache quản lý trong phương thức render, lưu trữ dữ liệu thường được yêu

cầu trong PortletContext

29

Trang 30

Portal Page ~ ——" ae cỉ " Ss Hình 2.4: Minh hoạ làm thế nào một portal container có thể quản lý một action request ActionRequest:

Như đã đề cập ở trên trong phần thảo luận vé quan ly yéu cau portlet, những yêu cầu hành động (action request) nắm giữ việc thay đổi trạng thái của một portlet dựa trên tham số yêu cầu hành động (action request) Nó được hoàn

tất bằng cách sử dụng phương thức processAction(), nó lấy tham số là 2 đối

tượng ActionRequest và ActionResponse Đối tượng ActionRequest tương tự như đối tượng ServletRequest cho biết

Trang 31

- Các đối tượng tham chiếu portlet

- Ngữ cảnh portal

Đề thay đổi chế độ portlet hay trạng thái cửa số, bạn gọi phương thức tương ứng trong đối tượng ActionResponse Sự thay đổi trở nên hiển nhiên khi

phương thức render được gọi tiếp sau khi kết thúc quá trình xử lý trong phương

thức processAction() Bạn cũng có thể truyền các tham số render bằng cách sử dụng đối tượng ActionResponse RenderRequest: RenderRequests san sinh mot fragment tir trang thai hién tai cua portlet No cung cap: - Các tham chiếu hồi đáp (render request) - Chế d6 portlet - Phiên làm việc của portlet - Trạng thái cửa số

- Các đối tượng tham chiếu portlet

Cũng có phương thức RenderResponse() đi kèm, nó cung cấp phương tiện

cần thiết đề hồi đáp nội dung Bạn có thé goi getOutputStream() hay getWriter() như từng làm trong servlet, hay bạn có thê gửi di (dispatch) su san sinh néi dung

cho một servlet hay JSP

Các đối tượng request và response đều không là luồng an toàn Điều đó có nghĩa là một nhà phát triển nên tránh chia sẽ các tham chiếu cho chúng với

những luồng thực thi khác Hầu hết các nhà phát triển sẽ không chú ý đến van dé

này, nhưng hãy nhớ ghi chú nhỏ lý thú này lần sau khi bạn quyết định cố gắng

làm điều gì đó không hợp lý

3.4.4.2 Lớp GenericPortlet

Lớp GenericPortlet là một lớp trừu tượng được cài đặt (implement)của

giao dién portlet (interface) Dé 1a con duong chung nhat ma hau hét users sé str

dung dé viét portlets - bằng cách kế thừa lớp này Lớp GenericPortlet kế thừa phương thức render bằng cách cài đặt tiêu đề của portlet, và sau đó gọi phương

thức doDispatch() của nó, và đến lượt nó, xác định chế độ của portlet, va gọi phương thức thích hợp: doEditQ để EDIT, doView(Q để VIEW Ta sẽ thảo luận về chế độ portlet sau Đoạn mã sau mô tả một lớp kế thừa GenericPortlet :

31

Trang 32

package org.opensourceportals.samples; import java.io IOException; import javax.portlet.ActionRequest; import javax.portlet ActionResponse; import javax.portlet.GenericPortlet; import javax.portlet.PortletException; import javax.portlet.PortletMode; import javax.portlet.PortletRequestDispatcher; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; /[** * ExamplePortlet la vi du co ban về một lớp kế thừa GenericPortlet */ public class ExamplePortlet extends GenericPortlet { /*

* phương thức này sẽ ghi đè phương thức doEdit của GenericPortlet *Được gọi để cung cấp một đánh đấu được hồi đáp khi chế độ portlet là

PortletMode.EDIT

* Lúc này, ta sẽ gửi phương thức đến một JSP trong thư mục gốc của portlet goi la “edit.jsp”

*/

protected void doEdit(RenderRequest request,RenderResponse response) throws PortletException, IOException {

PortletRequestDispatcher prd

=getPortletContext().getRequestDispatcher(“/edit.jsp”); prd.include(request, response);

}

Ta sẽ mô tả ExamplePortlet, có kế thừa lớp GenericPortlet Ở đây ta có thể

ghi chồng phương thức doEdit, nó quản lý việc hồi đáp khi portlet ở chế độ

EDIT

/#

* phương thức này sẽ ghi đè phương thức doEdit của GenericPortlet

*Được gọi để cấp một đánh dấu được hồi đáp khi chế độ portlet là

Trang 33

* Lúc này, ta sẽ gửi phương thức đến một JSP trong thư mục gốc của portlet

goi la “view.jsp”

*/

protected void doView(RenderRequest request,RenderResponse response)

throws PortletException, IOException { PortletRequestDispatcher prd =getPortletContext().getRequestDispatcher(“/view.jsp”); prd.include(request, response); } PortletMode HELP * Lúc này, ta sẽ gửi phương thức đến một JSP trong thư mục gốc của portlet gọi là “help.Jsp” */

protected void doHelp(RenderRequest request,RenderResponse response) throws PortletException, IOException { PortletRequestDispatcher prd = getPortletContext().getRequestDispatcher(“/help.jsp”); prd.include(request, response); } /*

* Phương thức này sẽ ghi đè phương thức doEdit của GenericPortlet *Được gọi để cung cấpmột đánh dấu được hồi đáp khi chế độ portlet là

PortletMode.VIEW

* Lúc này, ta sẽ gửi phương thức đến một JSP trong thư mục gốc của portlet goi la “view.jsp”

*/

protected void doView(RenderRequest request,RenderResponse response) throws PortletException, IOException {

PortletRequestDispatcher prd =

getPortletContext().getRequestDispatcher(‘/view.jsp”);

prd.include(request, response); }

Tương tự, ta cung cấp các cách ứng xử được yêu cầu để hồi dap portlet khi nó ở

chế đội HELP và VIEW

33

Trang 34

/* phương thức này được ghi chồng để xác định tiêu đề một cách tự động Nó có thể * có ích nếu bạn đang có tham sỐ trong tiêu đề của bạn giống như : “News on *16/11/2005” */

protected String getTitle(RenderRequest request) { return “Example Portlet”;

}

/* Đây là phương thức cốt yếu của portlet, các thao tác của trạng thái portlet * được hoàn tất thông qua phương thức này Đề đơn giản, chúng ta sẽ truyền

* đối số chỉ định chế độ portlet mà portlet có thể được thiết lập

*/

public void processAction(ActionRequest request,ActionResponse response)

throws PortletException, IOException {

PortletMode mode =new PortletMode(request.getParameter(“mode’’));

response.setPortletMode(mode);

}

}

Cuối cùng, ta chỉ định ghi chồng phương thức getTitle(), cho phép hoàn

toàn hợp lý trong việc hồi đáp tiêu đề (như hiển thị ngày hiện tại) thay vì hiển thi

tiêu đề tĩnh được mô tả trong mô tả triển khai (đeployment đescriptor) Ta cũng có thể quản lý phương thức processAction(Q), nó chịu trách nhiệm trong cách trả lời đối tượng ActionRequest

Đoạn mã nêu trên chỉ ra sự cài đặt cơ sở của portlet bằng cách viết một lớp kế thừa lớp GenericPortlet Portlet này không gửi đi đến các trang JSPs khác dựa

trên chế độ của nó (và thiết lập tên của nó một cách hệ thống)

3.5 Các yếu tố khác của Java Portlet API

Đoạn mã sẽ cho biết các thành phần ở mức thấp bên trong đặc tả, việc

cung cấp một portlet hình ảnh của nhà phát triển bên trong của đặc tả, làm sáng tỏ những khái niệm quan trọng và những nguy cơ tiềm ẩn

3.5.1 PortletConfig

Khi một portlet được khởi tạo, nó cần truy cập đến những tham số khởi tạo

và thông tin các hình khác Đối tượng PortletConfig cung cấp những thứ đó

34

Trang 35

Thêm vào những thông số khởi tạo, đối tượng PortletConfig còn có thể trình bày

một ResourceBundle (bó tài nguyên) cho portlet

Đối tượng PortletConfig cung cấp những thứ đó Thêm vào những thông

số khởi tạo, đối tượng PortletConfig còn có thể trình bày một ResourceBundle

(bó tài nguyên) cho portlet

Một ResourceBundle cho phép việc định vị ứng dụng portlet đễ dàng hơn Bạn có thể xác định ResourceBundle trong dòng của mô tả triển khai ứng dụng portlet (deployment descriptor) như sau: <portlet-info> <title>Homer’s D’oh a Day Portlet</title> <short-title>doh</short-title> <keywords>Simpsons, Homer Simpson, Entertainment</keywords> </portlet-info> </portlet> Như một sự lựa chọn, bạn có thể chỉ định một tham chiếu đến một ResourceBundle theo cách : <portlet> <portlet-info> <resource-bundle>com.somedomainname.HomerPortlet</resource-bundle> </portlet-info> </portlet> Bất cứ cách nào bạn sử dụng (cái đầu tiên thường tốt hơn cho các ứng

dụng với yêu cầu định vị tối thiểu), các hiệu ứng mạng nhện cho người phát triển cũng như vậy Những tính chất này thường được tạo bên trong một

ResourceBundle và được làm hiệu lực thông qua đối tượng PortletConfig 3.5.2 PortletURL

35

Trang 36

Khi xây dựng nội dung của portlet, điều cần thiết là xây dựng các URLs

cung cấp khả năng gọi portal Đây là cái cơ bản tạo nên tương tác trong portal Nhằm mục đích cho phép việc tạo lập PortletURL đúng thực tế, có 2 sự cài đặt:

ActionURL và RenderURL Cả 2 đều được tạo từ giao diện RequestResponse

interface bang cách su dung cac phuong thuc createActionURL() va createResponseURL() tuong tng

ActionURL: cung cấp khả năng đưa ra những yêu cầu hành động (action request) trên portal, để làm những việc như thay đổi chế độ portlet, thay đổi

trạng thái cửa số, xác thực một form, v.v

RenderURL: cung cấp khả năng bỏ qua phương thức processAction() của

portlet và đơn thuần triệu goi phương thức hồi đáp (render), việc truyền thông sỐ

hồi đáp dé điều khiển việc biểu diễn

RenderURL: cung cấp khả năng bỏ qua phương thức processAction() của portlet và đơn thuần triệu gọi phương thức hồi đáp (render), việc truyền thông số

hồi đáp dé điều khiển việc biểu diễn

Bạn có thể tìm thấy rất nhiều phương thức trong lớp giao tiếp PortletURL interface dang chu y :

- setSecure(): cung cap kha nang dé chi dinh URL ở đâu nên dùng HTTP ở

đâu thì không Nếu nó không được sử dụng, nó tiếp tục với bất cứ thứ gì yêu cầu

hiện tại chỉ định Vì thế, bạn không phải chỉ định lặp lại nó

- setWindowState() : cho phép bạn thay đổi trạng thái cửa số của portlet - addParameter(): thêm các thông số vào URL

- fString(: cung cấp một chuổi biểu diễn của URL Chú ý rằng nó không

đảm bảo một URL hợp lệ, như là portal có thể sử dụng token đề viết lại URL

- setPortletMode() : cho phép ban thiét lap chế độ của portlet

3.5.3 Các chế độ của portlet

Một chế độ portlet biểu diễn một trạng thái chức năng của một portlet Đây

được đùng bởi portlet để xác định làm thế nào để quản lý các yêu cầu hồi đáp Điều đó, phụ thuộc vào chế độ, portlet sẽ hồi đáp những đánh đấu khác nhau

Cac portlets có thể thay đổi chế độ của chúng như là một phần của quá trình xử lý yêu cầu hành động (action request) Thêm vào đó, một portlet có thể được

cấu hình với những chế độ thích hợp khác nhau và hạn chế xa hơn tính sẵn sảng

36

Trang 37

dựa trên chức năng Bảng sau mô tả các chế độ portlet chuẩn được định nghĩa trong portlet API

Cac ché d6 cua portlet

- VIEW San sinh danh dau hinh dung trang thai va tính chat ctia portlet

Nhà phát triển cài đặt doView() của lớp GenericPortlet để cung cấp chức năng này

- EDIT Sản xuất đánh dấu để có thể thay đổi tính chất của portlet Nhà

phát triển cài đặt đoEdit() của lớp GenericPortlet để cung cấp chức năng này

- HELP Cung cấp các cấp chức năng này đề hướng dẫn cho portlet Nhà

phát triển cài đặt đoHelp() của lớp GenericPortlet để cung cấp chức năng này Một portal cũng có thể cung cấp các chế độ portlet tuỳ thích Nhớ rằng điều đó phụ thuộc portal, không phụ thuộc portlet Vì thế, néu mét portlet cai đặt

chế độ portlet bố sung, thì chúng sẽ không chuyển được giữa các container

portlet khác nhau portlet cần phải ghi đè phương thức doDispatchQ để gọi

phương thức hồi đáp thích hợp

Chang han, néu ban dinh nghĩa một chế độ portlet có tên "SPECIAL"

phương thức doDispatch() sẽ gọi phương thức hồi đáp của nó, thông thường là

doSpecial() Tất nhiên là, vì bạn đang cài đặt phương thức, bạn có thê gọi bất cứ

phương thức gì bạn muốn

3.5.4 Các cửa số trạng thái

Các cửa số trạng thái chỉ định portlet bao nhiêu không gian được sử dụng

cho nó Điều này cho phép portlet chỉnh sửa những hồi đáp của nó đề thích hợp

với trạng thái của cửa số Bảng sau bao gồm những trạng thái cửa số được xác

định bằng Portlet API

Trạng thái

- NORMAL portlet sé chia màn hình với các portlet khác Điều đó có nghĩa là portlet sẽ giới hạn các đánh dấu của nó (markup)

- MINIM1ZED portlet sẽ cung cấp ít đầu ra hoặc không

- MAXIMIZED portlet không chia sẻ màn hình với các portlet khác, vì thế

portlet không bị giới hạn trong đánh dấu của nó (markup)

Cũng giống như chế độ portlet, một portal có thê định nghĩa các cửa sé trạng thái tuỳ ý, nó cũng phải được cấu hình trong mô tả triển khai portlet (portlet deployment descriptor)

37

Trang 38

3.5.5 Ngữ cảnh cúa Portlet

PortletContext là một đối tượng wrapper cho ứng dụng portlet của bạn Có

một đối tượng PortletContext cho mỗi ứng dụng portlet PortletContext cung cấp Truy xuất biến khởi tạo

Lay và thiết lập các thuộc tính ngữ cảnh

— Ghi lai sự kiện

— Lấy tài nguyên ứng dụng (như hình ảnh, file XML .)

Lấy được một yêu cầu gửi đi để có sức mạnh đòn bây của servlet và JSPs trong

portlet

3.5.6 Ngữ cảnh của Portal

Một portlet có thê lấy một tham chiếu đến portal mà nó đang chạy trong đó

thông qua đối tượng PortalContext Việc gọi phương thức getPortalContext() của

đối tượng PortletRequest sẽ trả về PortalContext

PortalContext cung cấp :

- Tén cua portal - thong qua phương thức getPortalInfo()

- Các đặc tính của portal - qua phương thức getProperty() va getPropertyNames() - Những chế độ portlet được hỗ trợ - qua getSupportedPortletModes()

- Những cửa số trạng thái được hỗ trợ - qua getSupportedWindowStates() 3.5.7 Các tham chiếu Portlet (Portlet Preferences)

Nhằm thao tác tuỳ biến hoá và cá nhân hoá portlet của bạn, bạn cần thay

đổi chút ít các tham số của portlet bằng nhiều cách Những cái này gọi là portlet

preferences (tham chiếu của portlet) Ví dụ cái portlet cổ điển là cai portlet thời

tiết, và theo sau ví dụ đó, bạn có thể có một tham chiếu có tên "cities", với các

giá trị biểu diễn zip code của những thành phố mà bạn cần biết thời tiết Ghi chú

rằng các tham chiếu chỉ dành cho việc cấu hình portlet, vi thế việc bao trì danh

sách tất cả các thành phố thích hợp trong một tham chiếu sẽ là không thích hợp cho dùng các preferences Việc suy nghĩ về chúng theo ý nghĩa của lập trình

hướng đối tượng, chúng sẽ là các thuộc tính của bản thân các portlets

Preferences được thao tác thông qua một đối tượng Object có cài đặt (implement) lớp giao tiếp PortletPreferences interface Tất cả các giá trị tham chiếu được lưu trữ trong mảng String, vì thế bạn sẽ không thể lưu trữ toàn Object như bạn làm với thuộc tính yêu cầu hay phiên làm việc, cũng không có những

38

Trang 39

thuận lợi trong khai báo kiểu, như bạn làm với các lối vào môi trường Vì thế,

nếu bạn đang lưu trữ các số dưới các tham chiếu, bạn sẽ cần tự chuyển đổi Đặc biệt, lớp giao dién PortletPreferences interface cung cap:

- getNames(): sé tra về một bảng liệt kê Enumeration các tên các preferences thích hợp

- getValue(): truyền cho nó tên của tham chiếu bạn quan tâm, đi kèm với

một giá trị mặc định (trong trường hợp nó không tìm thấy), và nó trả về phần tử

đầu tiên của mảng các giá trị tham chiếu

- getValues(): truyén cho nó tên tham chiếu bạn muốn và một mảng String các giá trị mặc định và nó trả về một mảng String của các giá trỊ của nó

- setValue(): truyén cho nó tên tham chiếu và giá trị của tham chiếu đó, và

nó thiết lập (cài đặt) nó là một phần tử đơn mảng String chứa đựng các giá trị phương thức này đưa ra một biệt lệ nếu tham chiếu không bị thay đổi UnmodifiableException

- setValues(): truyền cho nó tên tham chiếu và một mảng String biểu điễn giá trị của tên đó, và nó thiết lập các giá trị tham chiếu Phương thức này đưa ra

một biệt lệ nêu tham chiếu không bị thay đổi UnmodifiableException

- isReadOnly(): truyén cho nó tên tham chiếu và nó trả về một gia tri

Boolean xác định tham chiếu có thê thay đổi được hay không

- reset(): truyén cho nó tên tham chiếu và nó trả về một giá trị mặc định,

nếu khơng, nó sẽ xố tham chiếu

- sfore(): lưu trữ các tham chiếu Bởi đó chỉ có thể hoàn thành bên trong processAction(), nó sẽ đưa ra một biệt lệ IIlegalStateException nếu nó hoàn tất trong một lời triệu gọi hồi đáp, phương thức cũng sẽ đưa ra biệt lệ

ValidatorException néu không hợp lệ

- getMap(): trả về map của các tham chiếu Map bao gồm các khoá String

và một mảng String[ ] chứa các giá trị Map này cũng không thể thay đồi

3.5.8 Phiên làm việc

Bởi vì portal được xây dựng trên cơ chế request - response (và chủ yếu

dựa trên giao thức HTTP), phải có một vài cơ chế thích hợp đề bảo trì trạng thái

qua các triệu goi Chang han, khong thé thay việc xác thực người dùng

(authenticate users) với mọi yêu cầu Có rất nhiều kĩ thuật để quản lý phiên làm việc sessions, với cookies và mã hoá URL là 2 cách thông dụng nhất của ứng

39

Trang 40

dụng Web (cookies được dùng dưới các hood bởi nhiều servlet container dé

implement HTTPSession interface)

Session là điểm then chốt đối với nhà phát triển portlet, nhưng có nhiều cai dé cai dat ching (implement), vi thé portlet API cung cấp giao tiếp

PortletSession interface Khi mét client tao m6t request, server gửi đi một định

danh session trong response Nếu client muốn kết nối vào session (phiên làm việc), client cung cấp định đanh session đó cho các request tiếp sau của họ

PortletSession có thể được sử dụng để năm giữ các thuộc tính

PortletSession hoạt động giống như HTTPSession trong mặt này, việc cung cấp

khả năng lưu trữ cặp đơi khố - giá trị (key-value ), với đối tượng bất kỳ Có một

điểm khác nhau chủ yếu

PortletSession có 2 phần khác nhau :

- APPLICATION_SCOPE thi tương tự như phạm vi HTTPSession Một đối tượng được đặt trong phạm vi này là thích hợp cho tất cả các portlets bên trong phiên lam viéc (session)

- PORTLET SCOPE chi dén khi mét déi tuong 1a thich hop chi mét

portlet do PORTLET SCOPE 1a thong nhat trong cách đặt không gian tên cho

một thuộc tính cho trước Ví dụ, một thuộc tính nó tên là city.name sẽ được lưu

trữ trong javax.portlet.p.47?city.name ("47" là số định đạng được gán bên trong) Tên thuộc tính này ngăn cản namespace (không gian tên) xung đột với các portlets khác lưu trong biến session của chúng với các tên tương tự

- Mặc dù việc có một hệ thống đặc biệt để đặt tên những thuộc tính của nó, PORTLET_ SCOPE lại không bảo vệ các thuộc tính của nó với các thành

phần web khác Thêm vào đó, ứng dụng namespace (khơng gian tên) là hồn

tồn thực hiện dưới hood Bạn chỉ việc gọi các phương thức getAttribute() và

setAttribute() để chỉ định PORTLET_SCOPE và sự chuyển đổi không gian tên

namespace được thực hiện bởi đối tượng PortletSession Đề làm cho nó thuận lợi

hơn, các thành phần web khác có thể nhận tính năng này thông qua phương thức

PortletSessionUtil.decode Attribute() bằng cách truyền tên thuộc tính đơn giản, ví

dụ như "city.name"

3.5.9 JSPs và Servlet

Bởi các ứng dụng portlets hoàn toàn mở rộng của các ứng dụng web, ở đây phải có một cơ chế để include JSP và servlet trong portlet Dựa vào việc

nghiên cứu đầu tiên về lớp GenericPortlet, nhiều nhà phát triển Web nghĩ, " Ôi, 40

Ngày đăng: 06/10/2014, 14:33

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w