Những bất cập trên cùng hàng loạt yêu cầu cấp thiết khác nảy sinh từ thực tế phát triển của mạng Internet cũng như từ cộng đồng người sử dụng đã khai sinh một khái niệm mới, đồng thời cũ
Trang 1Cùng với việc phát triển đó là hàng triệu trang web của các tổ chức, cá nhân ra đời, thông tin ngày càng phong phú và đa dạng Tuy nhiên việc đó cũng khiến cho người dùng không thể hoặc khó có thể tìm được thông tin mong muốn Để tìm được thông tin cần thiết, người dùng phải bỏ một khoảng thời gian rất lớn, điều đó đã ít nhiều gây ra những sự phiền toái không đáng có
Mới đây công nghệ web 2.0 đã ra đời, mang đến khả năng tương tác và kết nối
mở rộng cho người sử dụng Cụ thể là sự phát triển của công nghệ AJAX đã mang lại cho người sử dụng một cái nhìn thân thiện hơn với các trang web, truy cập thông tin nhanh hơn, tuy nhiên chính bản thân công nghệ AJAX cũng mắc phải những thiếu xót nghiêm trọng, và một trong những thiếu xót nguy hiểm nhất là vấn đề bảo mật
Để khắc phục những tình trạng trên các tổ chức đã cho ra đời khái niệm Portal (được gọi là cổng thông tin hay cổng giao tiếp điện tử) Portal ra đời đã giải quyết được các khó khăn về tích hợp thông tin, portal có thể tích hợp thông tin
từ nghiều nguồn khác nhau, phục vụ cho mục đích tìm kiếm thông tin và bảo
Trang 2
Trong các loại portal trên, uPortal là một cổng thông tin, được xây dựng dựa trên mã nguồn mở, và đáp ứng được các vấn đề đặt ra của luận văn, ngoài ra uPortal còn có khả năng nâng cấp, phát triển, tích hợp thêm các chức năng cần thiết cho việc quản lý, điều hành sau này của trường nên nhóm chúng tôi đã chọn để “nghiên cứu và ứng dụng trong phát triển cổng thông tin trường Kỹ Thuật Công Nghệ”
Trang 3khuyên bổ ích, cung cấp những thông tin có giá trị, hổ trợ cho việc lập kế
hoạch, phân tích thiết kế luận văn Thầy đã giúp chúng em làm việc một cách khoa học để hoàn thành luận văn đúng tiến độ, đáp ứng được các yêu cầu đặt
ra
Nhóm chúng em xin chân thành cảm ơn thầy Bùi ÂuPhương, đã giúp đỡ nhiệt tình chúng em trong việc triển khai luận văn trên hệ thống máy chủ của khoa Công Nghệ Thông Tin
Trang 4CHƯƠNG I : NGHIÊN CỨU CÔNG NGHỆ PORTAL
I Khái niệm portal (Cổng thông tin) & kiến trúc chuẩn của portal
1 Khái niệm portal
Những năm gần đây, lượng khổng lồ website (trang thông tin điện tử) của các tổ chức, công ty và cá nhân ra đời dẫn đến hệ quả quá tải thông tin – người sử dụng phải xử lý khối lượng rất lớn thông tin không cần thiết, với hàng loạt thao tác trùng lắp trước khi tìm thấy thông tin hữu ích Theo thống kê, khối lượng thông tin trên internet đang tăng gấp đôi mỗi năm, và ngừời dùng Internet sử dụng trung bình 60% thời gian để tìm kiếm thông tin, 20% thời gian tìm hiểu thông tin có cần thiết không và chỉ 10% thời gian xử lý thông tin
Bên cạnh đó, mỗi website cung cấp những dịch vụ và ứng dụng khác nhau gây phiền toái và mệt mỏi cho người dùng khi họ phải nhớ quá nhiều tên và mật khẩu để có thể truy xuất thông tin hoặc sử dụng dịch vụ của các hệ thống khác nhau Không đáp ứng được nhu cầu tích hợp ứng dụng và tích hợp hệ thống là hạn chế lớn nhất của các website Những bất cập trên cùng hàng loạt yêu cầu cấp thiết khác nảy sinh từ thực
tế phát triển của mạng Internet cũng như từ cộng đồng người sử dụng đã khai sinh một khái niệm mới, đồng thời cũng là một xu hướng công nghệ mới: Portal (thường được gọi là cổng giao tiếp điện tử hay cổng thông tin điện tử).
Trang 5
Vậy Portal là gì ?
Là thế hệ kế tiếp của desktop, chuyển những ứng dụng web như thương mại điện tử, trường học, chính phủ… tới tất cả các loại thiết bị như trình duyệt web, thiết bị cầm tay (PDA,Mobile…) Cung cấp cho người dùng nhiều loại thông tin và ứng dụng cần thiết bất chấp thông tin đó ở đâu, và kiểu định dạng gì trong cùng một trang, giúp người sử dụng dễ dàng nhất trong công việc của họ bằng cách cung cấp các tùy biến (customization) và cá nhân hóa (personalization) Ngoài ra còn cung cấp một số ứng dụng khác như quản lý nội dung (content management), quy trình (workflow), tìm kiếm nội dung thông tin (search engine)… Những ứng dụng này có thể tích hợp cùng lúc vào Portal hay tùy theo mục đích sử dụng mà tích hợp những ứng dụng thích hợp Những ứng dụng trên được gọi là portlet Portal hay còn gọi là Vortal (Vectical Portal – Cổng thông tin cho một nghành, một lĩnh vực riêng nào đó) hay Hortal (Horizontal Portal – Cổng thông tin cho nhiều chủ đề, nhiều lĩnh vực phục vụ cho nhiều đối tượng người sử dụng khác nhau) là một điểm truy cập với giao diện web, cho phép người dùng khai thác hiệu quả một khối lượng lớn tài nguyên thông tin và dịch vụ Đó không đơn giản chỉ là một trang HTML chứa liên kết đến các tài nguyên,
mà là một nền tảng công nghệ cho phép tích hợp toàn bộ thông tin và các ứng dụng chạy trên web, đồng thời cung cấp khả năng tuỳ biến cho từng đối tượng sử dụng, cho phép khai thác thông tin hiệu quả nhất, nhanh nhất Mục tiêu cơ bản của mọi Portal là cung cấp thông tin chính xác cho người dùng (có thẩm quyền) vào thời điểm thích hợp Portal phải lấy được dữ liệu
từ các hệ thống tích hợp, truyền tải dữ liệu này vào các giao diện đã được
cá nhân hoá và cho phép người dùng tương tác với dữ liệu từ bất kỳ nơi đâu, vào bất kỳ thời điểm nào Portal thông thường phải cung cấp các dịch
Trang 6
năng tương tác tối đa giữa người dùng và các nguồn thông tin, giữa người dùng với các ứng dụng tác nghiệp và giữa các ứng dụng với nhau; tích hợp nhiều công nghệ ứng dụng; đảm bảo tính mở về công nghệ; quản trị nội dung; bảo mật; hỗ trợ các cộng đồng ảo Portal là bước phát triển kế tiếp của công nghệ web Sự khác biệt chính giữa Portal và Website là: Website được xây dựng như một đơn vị thông tin độc lập, còn Portal được thiết kế để trở thành trung tâm tích hợp thông tin, ứng dụng và dịch vụ mạng Điểm khác biệt này cũng quy định nên sự khác biệt về ứng dụng giữa Portal và Website Trên thế giới, xu hướng ứng dụng Portal đang ngày càng trở nên phổ biến trong các lĩnh vực như chính phủ điện tử (E-government), thương mại điện tử, đào tạo trực tuyến
Hình 1.0 Mô hình cơ bản của portal
Trang 7
Dưới đây là một sản phẩm Portal của trường đại học Thăng Long
Hình 1.1 Trang tin của cổng thông tin
Trong ví dụ trên, ta thấy trang hiển thị các portlet sau ‘đăng nhập’, ‘diễn đàn’, ‘thông tin cá nhân’
Hình 1.2 portlet đăng nhập
Trang 8
Chẳng hạn hình trên là một portlet ‘Đăng nhập’, chạy trên cổng thông tin trường đại học Thăng Long Khi ta nhấn vào nút , portlet ‘Đăng nhập’ sẽ thu nhỏ lại, tương tự như chức năng phóng to, thu nhỏ trên window
Về cơ bản Portal server gồm các thành phần sau :
Hình 1.3 Kiến trúc thực thi của portal
Một component nhận các request từ máy khách và tích hợp những nội dung
cá nhân của người sử dụng mong muốn (portlet servlet), một component quản lý, cung cấp ngữ cảnh cho portlet (portlet container) Giả sử người sử dụng nhấn vào liên kết nút “Đăng nhập” của portlet Đăng Nhập, trình duyệt của họ sẽ sinh ra một yêu cầu HTTP mà yêu cầu này sẽ được nhận bởi portal servlet, portal servlet sẽ triệu gọi, xử lý bên trong để quyết định tập các portlet được hiển thị cho người dùng Vì lý do cổng thông tin có nhiều portlet nên khi một portlet được gọi để phục vụ yêu cầu từ máy khách, thì portlet đó sẽ xử lý yêu cầu máy khách trước thông qua phương thức processAction(ActionRequest request,ActionResponse response), còn các portlet còn lại trong cổng thông tin sẽ được phát sinh lại thông qua phương
Trang 9
thức render(RenderRequest request, RenderResponse response), và không theo thứ tự nhất định
Hình 1.4 Quy trình xử lý yêu cầu của portal
Một minh họa khác cho việc xử lý các yêu cầu trên cổng thông tin như sau
Trang 10
2 Tại sao sử dụng cổng thông tin
Với những tính năng cung cấp cho người dùng (sẽ được đề cập cụ thể trong phần cấu trúc chuẩn của uPortal), cổng thông tin có thể đáp ứng các yêu cầu sau đây của người dùng :
Vai trò người dùng khác nhau sẽ đòi hỏi những thông tin khác nhau, chẳng hạn như các yêu cầu về khác nhau để đáp ứng mô hình nghiệp vụ…
Người dùng có cùng vai trò nhưng công việc khác nhau cũng có những đòi hỏi riêng phục vụ cho công việc của họ…Ngoài ra còn
do những nhân tố chủ quan như người dùng ‘A’ thích màu xanh cho trang thông tin của mình, người dùng ‘B’ thích màu trắng cho trang của mình, và cổng thông tin có thể đáp ứng các đòi hỏi của họ
Lấy các thông tin mà người dùng cần thiết một các trực tiếp, mà không thông qua một công cụ trình duyệt hổ trợ nào khác ngoài
hệ thống cổng thông tin Và đảm bảo cho người dùng sẽ không thiếu bất kỳ thông tin cần thiết nào
Liên kết với các trang thông tin khác dễ dàng, thuận lợi
Trang 11
II Cấu trúc chuẩn của một cổng thông tin
Cổng thông tin gồm các thành phần sau đây
Hình 1.5 Minh họa của một cổng thông tin
Trang 12
1 Tích hợp nội dung
Hình 1.6 Nội dung của các portlet trong trang portal
Trang 13
Cung cấp khả năng tích hợp nhiều mảng nội dung khác nhau vào gọn trong cùng một trang, những nội dung này có thể tương tác với nhau (về vấn đề chia sẽ thông tin) gọi là giao tiếp nội Ngoài ra chức năng tích hợp của cổng thông tin còn được thể hiện qua việc tích hợp các ứng dụng sẵn có, có rất nhiều cách để đưa một ứng dụng sẵn có vào trong môi trường cổng thông tin, một trong những cách đó là chúng ta
sẽ cung cấp một WSRP (web services for remote portal),gọi là dịch vụ web truy cập từ xa cho ứng dụng muốn tích hợp vào, và sau đó cũng xuất bản ứng dụng đó như một portlet (sẽ được đề cập ở phần sau).Một cách khác nữa là chúng ta có thể sử dụng SOAP (Simple Object Access Protocol) để viết một dịch vụ web trên các chức năng lõi của ứng dụng, sau đó là phát triển portlet cho ứng dụng đó
Hình 1.7 Sử dụng các dịch vụ web truy cập từ xa
Trang 14
Đối với những ứng dụng được viết bằng ngôn ngữ java nhưng không
có lớp dịch vụ để tích hợp với cổng thông tin, hoặc có giá trị của ứng dụng là giao diện người dùng, thì chúng ta phải phát triển lại ứng dụng này dưới dạng portlet hay một tập các portlet, các mô hình luận lý nghiệp vụ ta vẫn giữ nguyên
Đối với những ứng dụng không được viết bằng ngôn ngữ java, cổng thông tin sẽ cung cấp cho ta một portlet ủy nhiệm (proxy), và ta dùng
nó để xuất bảng ứng dụng đó, cổng thông tin sẽ sử dụng trình ủy nhiệm
để phục vụ ứng dụng web bằng cách nhận yêu cầu thông từ máy khách, sau đó sẽ chuyển yêu cầu đó thành yêu cầu web và đưa đến ứng dụng, ứng dụng này sau đó sẽ trả lại một đáp ứng, đáp ứng này thông qua trình ủy nhiệm được dịch thành đáp ứng của cổng thông tin và trả về cho máy khách vừa yêu cầu
2 Trang tùy biến (Customization)
Dựa vào vai trò khác nhau của từng người dùng trong cùng một hệ thống mà người dùng có thể tinh chỉnh trang của mình, sao cho thật sự phù hợp với yêu cầu của công việc.Chẳng hạn người dùng thuộc phòng nhân sự sẽ tạo cho mình một trang khác với người dùng thuộc phòng kinh tế Ngoài ra hệ thống sẽ chỉ cung cấp một số tài nguyên dựa trên từng vai trò cụ thể Cổng thông tin sẽ căn cứ vào vai trò cụ thể của từng người sử dụng mà cung cấp các chức năng khác nhau, như chức năng cho phép người dùng có thể xuất bản một portlet, chức năng đưa portlet vào trang thông tin của mình (subscriber a portlet), dưới sự quản lý của người quản trị cổng thông tin
Trang 15
3 Cá nhân hóa nội dung (Personalization)
Có chức năng cho phép người dùng khác nhau nhưng có cùng vai trò trong hệ thống, tinh chỉnh trang của mình phù hợp với từng đòi hỏi, sở thích riêng bao gồm xác định vị trí của một channel (portlet), hiển thị biểu đồ, màu sắc, kiểu chữ, mặc định, thời gian cập nhật, Ví dụ : một người làm trong phòng nhân sự, để tiện lợi hơn trong công việc tìm kiếm những ứng viên lập trình java, anh ta sẽ cấu hình trang của mình sao cho giao tiếp dễ dàng với một trang khác, chẳng hạn là một trang tuyển dụng có đăng thông tin của các lập trình viên java
Hình 1.8 Phát sinh giao diện cho từng người dùng
Trang 16Dễ dàng quản lý người dùng với chỉ một thao tác thêm vào hay xóa đi
Hình 1.9 Cơ chế Single-Sign-On
Trang 17
4.2 Mô hình bảo mật dựa trên quyền sử dụng
(Authorization)
Chấp nhận truy cập dựa vào vai trò của người sử dụng Người
sử dụng có quyền truy cập dựa trên vai trò đã đăng ký trước, quyền truy cập sẽ được nhóm lại theo tên của vai trò, khi đó người sử dụng sẽ được tập họp lại thành một nhóm những người
sử dụng có cùng vai trò Sử dụng mô hình này vừa giảm thiểu tối đa chi phí và sự phức tạp của một hệ thống cần được bảo mật Dưới đây là minh họa của cổng thông tin WebLogic
Hình 1.10 Mô hình bảo mật Trong minh họa trên, người sử dụng ‘Moe’ sau khi đăng ký xong, sẽ được xác thực trong hệ thống LDAP (Lightweight Directory Access Protocol) thông qua chương trình quản lý OpenLDAP hoặc RDBMS Sau khi đã chứng thực thành công người sử dụng, hệ thống
Trang 18
thông tin thông qua việc xác định người sử dụng thuộc nhóm người
sử dụng nào, và gán quyền truy cập nhóm cho người sử dụng đó
5 Công cụ cộng tác (Collaboration suite)
Cung cấp các chức năng cho phép nhân viên, người dùng, khách hàng,
và các đối tác kinh doanh làm việc, giao tiếp và phát triển, bảo trì các tài nguyên dùng chung với những người khác
6 Quốc gia hóa định dạng (localization)
Cho phép tinh chỉnh nội dung theo quốc gia, địa phương mà trang đó được hiển thị, bao gồm ngôn ngữ, kiểu chữ, tiền tệ, định dạng ngày, tháng…
7 Quốc tế hóa (internationalization)
Cung cấp các công cụ, sao cho người phát triển có thể quốc gia hóa (ngôn ngữ) mà không cần phải chỉnh sửa hay phát triển lại ứng dụng
8 Quy trình quản lý công việc (workflow)
Cung cấp cho người dùng một tập các tác vụ để giải quyết một vấn đề nào đó với giao diện thân thiện và tùy biến theo vai trò của người sử dụng Portal sẽ quản lý cấu trúc của các tác vụ, quản lý người sử dụng tương ứng, thứ tự của các tác vụ và thông tin được hiển thị trên từng tác vụ Chẳng hạn một quy trình về xuất bản tài liệu, một nhân viên tạo một tài liệu và lưu trữ vào nơi làm việc (workspace), người quản lý của nhân viên đó ngay lập tức sẽ được thông báo về tài liệu được tạo đó thông qua mail, người quản trị cần phải duyệt tài liệu đó để quyết định xem có chấp nhận xuất bản tài liệu đó hay không.Nếu
Trang 19
tài liệu được chấp nhận, nó sẽ được đưa lên cho mọi người dùng chung workspace đó thấy, để có thể chỉnh sửa, cập nhật
9 Truy cập dịch vụ web (Web Services)
Được phát triển sau, nhằm cung cấp khả năng giao tiếp với các hệ thống khác (B2B)
B2B Portal là một module ( gồm một hay nhiều Portlet ) được thiết kế, xây dựng phù hợp với từng loại hình cơ quan, tổ chức, doanh nghiệp;
nó cung cấp cách thức truy cập vào các nội dung nghiệp vụ sẵn có như CRM (Customer Relationship Management ), quản lý tài chính, quản
lý nguồn nhân lực - HR (Human Resources ), và dòng quản lý công việc
Hay với người dùng (B2C), có thể truy cập các hệ thống phân tán EJB,…
Loại Portal này được xây dựng thiết kế có ràng buộc với CRM (Customer Relationship Management ), nó cũng bao gồm các Portlet đặc thù cung cấp cho các khách hàng của một doanh nghiệp có thể truy cập trực tiếp vào một nội dung phong phú của công ty đó, chẳng
Trang 20
hạn các sản phẩm sẵn có và danh sách giá cả của các sản phẩm tương ứng Ngoài ra, loại Portal này cũng cho phép khách hàng đặt mua sản phẩm, yêu cầu được hỗ trợ từ phía nhà cung cấp sản phẩm, dịch vụ B2C Portal được thiết kế phù hợp với từng loại khách hàng và từng loại doanh nghiệp
Hình 1.5 Mô hình minh họa Đối với các cổng thông tin hỗ trợ dịch vụ truy cập từ xa, thì có thể hiển thị được portlet đang chạy trên một cổng thông tin khác cũng có hỗ trợ dịch vụ này Cổng thông tin này phải đăng ký portlet cần chia sẽ vào trong một nơi chứa (registry), kế đó cổng thông tin khác chỉ cần triệu gọi portlet đó là có thể thể hiện được trên trang thông tin của mình
10 Đa truy cập từ máy khách
Portal không những đáp ứng các trình duyệt khác nhau, mà còn phải đáp ứng được yêu cầu từ máy khách với các loại thiết bị khác nhau, và các ứng dụng đa nền
Trang 21
11 Tìm kiếm (Search Engine)
Cung cấp search engine cho người sử dụng có thể tìm kiếm nội dung của thông tin khác nhau một cách chính xác và tiện lợi, ngoài những nguồn thông tin được lưu trữ trong hệ thống
12 Quản lý tài liệu (Content Management System)
Cung cấp chức năng quản lý, soạn thảo, chỉnh sửa, hiển thị, duyệt lại các loại tài liệu
13 Quản lý thư điện tử (Email Management)
Cung cấp chức năng quản lý thư điện tử Ví dụ : ta đã biết các trang mail Portal như là yahoo mail portal, hotmail portal…
Trang 22
CHƯƠNG II : KHÁI NIỆM VÀ KIẾN TRÚC uPORTAL
I Khái niệm uPortal
uPortal là một cổng thông tin theo chuẩn mở, một framework dựa trên Java được sử dụng cho việc trình bày các nội dung được tích hợp từ nhiều nguồn khác nhau mà có thể được tùy chỉnh bởi người sử dụng, cung cấp chức năng điều khiển quyền truy cập dựa trên vai trò uPortal được xây dựng sử dụng
cơ sở dữ liệu để lưu trữ thông tin về mỗi người sử dụng, sau đó sử dụng XSL
và Java để chuyển đổi các thông tin thành một bố cục (layout) có cấu trúc
mà có thể được hiển thị phía giao diện người sử dụng
uPortal là công nghệ Web được phát triển trên nền Java, XML, J2EE, hoàn toàn miễn phí Dự án uPortal được phát triển trong chương trình FAIR của tổ chức Joint Information System Committee(JISC) Dự án uPortal cũng là sự cộng tác giữa tổ chức Academic Services Interactive Media của Đại học Hull
và tổ chức UKOLN của Đại học Bath(Mỹ) Web site của Academic Services Interactive Media: http://www.acsweb.hull.ac.uk/imedia/ Web site của UKOLN: http://www.ukoln.ac.uk
Hình 2.1 Mô hình hoạt động của uPortal
Trang 23
II Ưu và nhược điểm của uPortal
1 Ưu điểm của uPortal
uPortal là open source tức miễn phí, nó giống như Linux, chúng ta không cần trả tiền bản quyền Điều này có vẻ hơi “thừa” nhưng trọng tâm phát triển uPortal của chúng ta là cho trường đại học Kỹ Thuật Công Nghệ Nên tránh được vấn đề bản quyền chúng ta mới có thể danh chánh ngôn thuận phát triển và phổ biến uPortal Vì uPortal không phải là một phần mềm ứng dụng
“xài” ngay được, nó giống như thức ăn chỉ mới được sơ chế, chúng ta phải nấu nướng thành món ăn được, có nghĩa là chúng ta phải phát triển uPortal mang nét riêng của trường đại học Kỹ Thuật Công Nghệ, khi đó uPortal trở thành sản phẩm của trường Nếu như uPortal không là nguồn mở (miễn phí)
mà chúng ta không có bản quyền thì làm sao chúng ta có thể xác nhận là sản phẩm của trường đuợc? uPortal có thể chạy trên nhiều hệ điều hành như: Windows, Linux, Solaris, Unix…Cốt lõi của uPortal là Java(servlet), cho nên uPortal có thể chạy trên mọi hệ điều hành (không như ASP của Microsoft chỉ chạy trên Window mà Web Server còn phải là IIS trong đó có Linux-một lần nữa chúng ta né được vấn đề bản quyền vì Linux miễn phí uPortal dựa trên XML nên người dùng có thể truy cập bằng nhiều thiết bị truy cập như: máy tính để bàn, các thiết bị di động như: điện thoại di động, máy Palm, máy PocketPC…Chữ portal trong uPortal hàm nghĩa cổng trong thông tin ám chỉ uPortal như 1 “cổng thông tin” mà dữ liệu từ mọi thiết bị viễn thông đều đi qua “cổng thông tin” uPortal này và sau đó dữ liệu này sẽ đuợc xử lý như nhau, cuối cùng khi dữ liệu đã được xử lý trên sẽ được kết xuất về những thiết bị viễn thông khác nhau và lại qua “cổng thông tin” uPortal lần nữa
Trang 24
Hình 2.2 Mô hình vận hành của uPortal
uPortal hoàn toàn dựa trên chuẩn Unicode, cho nên vấn đề Tiếng Việt được giải quyết dễ dàng Một số trang Web viết bằng ASP tuy có thể giải quyết được vấn đề Tiếng Việt nhưng hay gặp lỗi, tôi đã từng gặp nhiều rắc rối về Tiếng Việt trên ASP, thậm chí PHP cũng chẳng hay hơn gì ASP uPortal rất mềm dẻo, phát triển được trên nhiều Web Server
Trang 25
Tạo ra một giao diện web chung nhưng người dùng có thể thay đổi giao diện(channel) khi đang chạy Nghe rất mâu thuẫn nhưng đây là điểm mạnh của uPortal uPortal có cơ chế xác nhận người dùng, bất cứ ai thâm nhập vào hệ thống thông tin phải đăng nhập uPortal bảo mật tốt nhất trong các công nghệ khác như ASP, PHP, JSP,… Mọi trang Web được mã hóa tên khi truy cập, hacker rất khó thâm nhập uPortal dựa trên Java, bản thân Java bảo mật nhất trong mọi ngôn ngữ lập trình, uPortal còn xây dựng thêm một tầng bảo mật bên trên Java nữa Cho nên có thể nói tính bảo mật là một ưu điểm lớn của uPortal Tôi quả thực khâm phục tính bảo mật của uPortal và đây cũng là một điểm để tôi giới thiệu uPortal cho trường vì trong các cơ quan hành chánh hay các công ty, xí nghiệp, vấn đề bảo mật đáng quan tâm nhất
Có thể tích hợp các dịch vụ voice mail, báo tin ngắn
uPortal được thiết kế trên công nghệ J2EE nên có đầy đủ tính chất ưu việt của công nghệ này Sử dụng uPortal chúng ta sẽ có thể tận dụng rất nhiều phần mềm, công nghệ miễn phí khác như:MySQL, Apache,…
Tuy nhiên mọi ngôn ngữ lập trình, mọi công nghệ đều có ưu và nhược điểm, nó chỉ tối ưu trong một hoàn cảnh, tình huống cụ thể mà thôi
2 Nhược điểm của uPortal
Vấn đề đáng chú ý là tốc độ uPortal tốc độ kém hơn ASP chỉ gần ngang với JSP/Servlet Nhược điểm này thật buồn cười là xuất phát từ điểm mạnh của chính nó Như chúng ta đã đề cập ở trên : uPortal có ưu điểm là tính bảo mật cao và người dùng có thể thay đổi giao diện khi đang chạy nhưng điều này kéo theo cả một cơ chế xử lý(process) và kết xuất(render) phức
Trang 26
tạp, quá trình này tốn thời gian Vả lại uPortal xây dựng trên Java nên uPortal cũng giống như mọi phần mềm hay công nghệ Java đều bị hạn chế tốc độ do Java đa hệ nên cần máy ảo Java(Java Virtual Machine) khi chạy, đây thuộc về bản chất Java nên vấn đề tốc độ này uPortal không có “lỗi” nhiều Tuy nhiên vấn đề tốc độ chúng ta có thể khắc phục bằng cách cài đặt uPortal trên máy chủ mạnh, thật ra uPortal là công nghệ trên máy chủ, chúng ta chỉ cần tốn chi phí cho máy chủ mạnh còn các máy khách(client) của người dùng không ảnh hưởng đến tốc độ uPortal Trong một khoa chúng ta chỉ cần chừng 1 máy chủ mạnh để cài uPortal Tuy nhiên cần phải nhìn nhận là chúng ta không thể giải quyết vấn đề tốc độ 1 cách triệt để, đây là cái giá chúng ta phải trả cho những ưu điểm trên uPortal khó dưới góc độ lập trình Muốn lập trình trên nền uPortal cần phải rõ về Java, XML, J2EE, Ant, MySQL và ít nhiều kiến thức về nguồn mở và Linux( các shell) Lập trình trên nền uPortal có nhiều bước hơi phiền do nó được thiết kế trao đổi thông tin bằng XML nhằm mục đích cho nhiều thiết bị truy cập như: Điện thoại di động, máy Palm,… Còn một điểm đáng lưu ý nữa, uPortal chỉ thích hợp cho Hệ Thống Thông Tin quản lý thương mại, hành chánh, và khoa học, cụ thể là thích hợp cho các xí nghiệp, cơ quan nhà nứớc, trường Đại học vì rằng cơ chế xử lý lẫn giao diện của uPortal có những chuẩn mực nhất quán, không phù hợp cho những Website mang tính quảng cáo, nghệ thuật Nói tóm lại ứng dụng uPortal chỉ phù hợp cho Hệ Thống Thông Tin quản lý, khoa học thôi Các Web site quảng cáo, nghệ thuật thì không thể đưa ra những khuôn mẫu được, yêu cầu của chúng là tốc độ, “xinh đẹp” chứ không phải là sức mạnh, khả năng
Trang 27Bố cục được thể hiện trên Hình 2.1 bao gồm ba thẻ, thẻ thứ nhất bao gồm hai cột, cột thứ nhất chứa ba kênh, cột thứ hai chứa năm kênh
Trang 28
Thẻ thứ hai chứa một cột và hai kênh Thẻ thứ ba chứa ba kênh
Theo thuật ngữ của uPortal thì cách sắp xếp trên được coi như một cây chứa các nút có quan hệ lẫn nhau Theo cấu trúc cây thì mỗi một mục trong giao diện người sử dụng được coi là một nút, trong đó người sử dụng được gọi là nút root Những thẻ trực tiếp phía sau và được kết nối đến nút root được xem là nút con của root Tương tự như vậy, các cột và các kênh sẽ là con của thẻ mà chúng trực tiếp kết nối đến Những nút nằm ở cùng một cấp hay có cùng một cha thì được gọi là nút kề (cùng cấp)
Hình 2.4 Tổ chức dạng cây của các thẻ Hình 1.9 thể hiện 10 nút, theo thứ tự bao gồm:
Nút 1 là nút root, là nút cha của nút 2, 3 và 4
Nút 2 là nút thư mục, là con của nút 1 và là cha của nút 5 và
Trang 29và 9
Về mặt tổng thể, uPortal gồm ba loại nút trừu tượng đó là nút gốc, nút thư mục và nút kênh (portlet)
Hình 2.5 Mô hình chuyển đổi của uPortal
Giao diện người sử dụng
Kênh
Kênh Kênh
Kênh
Trang 30Hình 1.11 Bảng thông tin người sử dụng
Tiếp đến dữ liệu cá nhân trong cơ sở dữ liệu sẽ được chuyển đổi thành tập tin XML
Hình 2.6 Định dạng XML được xuất từ cơ sở dữ liệu
Trang 31
Tập tin XML này chỉ là tập tin phát sinh dữ liệu, nó không chứa thông tin về khung sườn hay thiết kế về bố cục sẽ được hiển thị cho người dùng Tập tin XML này sau đó được đưa vào XSL stylesheet
mà nó sẽ cho ra một cấu trúc, thông tin được đưa ra này cũng là một tập tin XML mà tập tin này sẽ tổ chức lại những nút trừu tượng thành các nút thành những thành phần của cấu trúc khung sườn như các kênh, cột và thẻ Định dạng tập tin XML sau khi qua biến đổi sẽ như sau :
Hình 2.7 Định dạng XML được chuyển đổi
Mô hình chuyển đổi từ các nút trừu tượng sang các thành phần bố cục
Trang 32
Hình 2.8 Mô hình chuyển đổi Sau đó nó sẽ khởi tạo các chu trình của những kênh cần được hiển thị trên bố cục
Tập tin XML chứa cấu trúc các bố cục, sau đó sẽ được thêm các theme và skin vào, cùng lúc đó thì nội dung của các kênh cũng được đáp ứng, tất cả những cái đó sẽ được đặt vào cùng nhau để thể hiên khung nhìn cuối cùng cho người sử dụng Theme sẽ định nghĩa các thiết bị như trình duyệt web, thiết bị cầm tay (PDA), điện thoại di động, hay các loại thiết bị khác sẽ được sử dụng để xem trang được hiển thị lên bởi uPortal, trong đó skin định nghĩa màu sắc, kiểu chữ,
và hình ảnh trên trang hiển thị Để thêm theme vào bố cục, tập tin XML này phải được một XML Stylesheet thứ hai chuyển đổi, stylesheet này sẽ biến đổi cấu trúc thành định dạng xuất cuối cùng, chẳng hạn như XHTML cho trình duyệt, hoặc là WML cho điện thoại di động
Trang 33
Hình 2.9 Quá trình chuyển đổi được thực hiện như sau
Hình 2.10 Mô hình chuyển đổi từ tài liệu xml ra các định dạng khác
Trang 343.1 Cấu trúc stylesheet
Cấu trúc stylesheet định nghĩa một sự biến đổi thông tin XSLT của tài liệu bố cục người dùng sang cấu trúc hiển thị tương ứng Cấu trúc stylesheet phải chấp nhận hai thẻ định dạng gốc<layout> và <layout_fragment> Định dạng trong tài liệu kết quả là do người dùng quyết định, tuy nhiên cần phải theo nguyên tắc sau :
Thực thể <channel/> trong tài liệu kết quả phải chứa các thuộc tính và các thực thể con mà nó được chứa trong tài
Trang 35
liệu bố cục người dùng Nói khác đi, XSLT stylesheet có thể thêm các thuộc tính và thậm chí là các thực thể con vào trong thực thể <channel/> khi sao chép chúng từ tài liệu bố cục
người dùng, tuy nhiên cả thuộc tính và thực thể con không được xóa đi, hay viết lại
Thực thể <channel/> chỉ xuất hiện ở tài liệu kết quả nếu
và chỉ nếu nội dung của nó được chọn để hiển thị trên trang thông tin người dùng Nói cách khác một trong những mục đích của chuyển đổi thông tin cấu trúc là chọn lựa tập các kênh mà nội dung của nó được hiển thị, điều này sẽ làm tăng khả năng thực thi của hệ thống, vì
nó không phải quan tâm tới các kênh không cần phải hiện thị.Để xây dựng được sự hiển thị mềm dẻo và phong phú từ tài liệu bố cục trừu tượng người sử dụng, stylesheet thường cần thêm thông tin mở rộng Thông tin này thường ở dạng đơn giản như các tham số, với những cặp tên và giá trị được đưa vào trong XSLT stylesheet Tham số được định nghĩa trong XSLT stylesheet theo chuẩn ràng buộc <xsl:param/>, tham số này phải được
mô tả trong tập tin định dạng stylesheet (SDF) và tập tin này phải được đăng ký với hệ thống uPortal Ví dụ cấu trúc XSLT stylesheet mặc định thẻ-cột (tab-column.xsl)
sẽ đinh dạng tham số “Thẻ kích hoạt” mà thẻ này cho biết người dùng đang xem thẻ đó
Trong một vài trường hợp thông tin cần tích hợp với các thực thể và các biến tham số không đủ Cấu trúc stylesheet có thể
Trang 36
sử dụng Ví dụ tập tin tab-column.sdf khai báo một thuộc tính
“chiều rộng” gắn vào thực thể <folder> của bố cục người dùng và sẽ thông dịch thuộc tính đó thành độ rộng của các cột, cho tất cả những thư mục được chuyển thành các cột Hai tham số sau luôn luôn được đưa vào trong tập tin cấu trúc stylesheet
userLayoutRoot : là một mã của bố cục người sử dụng xác định bố cục dạng cây sẽ được hiển thị Cung cấp khả năng tập trung trên thành phần riêng lẻ của bố cục người dùng
Ví dụ khi ta muốn chọn mở lớn một kênh nào đó, thì mặc đinh thẻ-cột sẽ cung cấp cho ta khả năng này
BaseActionURL : một URL mà tham số yêu cầu HTTP có thể được gắn vào Nó được tạo ra để stylesheet có thể xây dựng kết quả và trả tham số yêu cầu lại cho portal
mà nó có thể giao tiếp được Theme stylesheet có thể định nghĩa thuộc tính cho tham số và kênh của nó Tuy nhiên nó không thể đinh nghĩa được thuộc tính cho thư mục, vì sự tồn tại của thư mục sẽ không được
đảm bảo sau khi chuyển đổi thông tin cấu trúc
Trang 37
4 Kênh (channel)
Các kênh là đơn vị thông tin của uPortal, uPortal tạo ra các kênh nhằm mục đích thực hiện các mục đính chứ không bắt buộc mọi thứ phải làm như thế nào
Chu trình của một kênh được quản lý bới giai đoạn sau
Khởi tạo :
1 Trong giai đoạn này tất cả các lớp của kênh và các tập tin cấu hình liên quan cần thiết sẽ được tạo ra Một tài liệu xuất bản kênh (channel publishing document-CPD ) cũng được tạo, tài liệu này sẽ cung cấp các thông tin mô tả về
mục đích của kênh, xác định lớp java của kênh, mô tả những tham số cấu hình, phát thảo quy trình để xuất bản kênh Những bước mô tả trên thường được giải quyết bởi tác giả kênh Sau bước này kênh có thể được phân phối để cài đặt vào uPortal
Đăng ký :
2 Khi người quản trị về cài đặt của uPortal yêu cầu một kênh mới, kênh đó sẽ được đăng ký với hệ thống, trong suốt quá trình đăng ký này, uPortal sẽ kiểm tra xem kênh này có tồn tại không, và kênh sẽ được gán bới channelTypeId
Xuất bản :
3 Để một kênh đã được đăng ký có giá trị với người dùng thì nó phải thông qua một quá trình xuất bản Trong suốt quá trình này cấu hình của kênh sẽ được quyết định bằng cách đăng ký giá trị với tham số của kênh Và cấu hình
Trang 38
Subscription :
4 Người sử dụng uPortal có thể đi xuyên xuốt quá trình đăng ký để đưa một kênh vào trang sử dụng của mình Kênh này sẽ được gán một channelSubcribeId duy nhất trong phạm vi người sử dụng đó
Kênh là những đối tượng java thực thi giao diện org.jasig.portal.IChannel, và là những thực thể lưu vết trạng thái Các giao diện (interface) của kênh
IChannel : Đây là giao diện chính của kênh trong uPortal, các phương thức sau đây sẽ được gọi tuần tự
1 setStaticData() sẽ được gọi chỉ một lần ngay sau khi có đối tượng kênh
2 Mỗi vòng thể hiện sẽ bao gồm việc gọi tới phương thức setRuntimeData(), cuối cùng là gọi phương thức renderXML()
3 Phương thức receiveEvent() có thể được gọi trong suốt vòng thể hiện, luôn luôn được gọi trước phương thức renderXML()
4 Phương thức getRuntimeProperties() sẽ được gọi trong suốt chu trình hiển thị, trước phương thức renderXML() và sau phương thức setRuntimeData()
IPrivileged : Một vài kênh muốn truy cập trực tiếp vào cấu trúc của khung sườn uPortal, giao tiếp rõ ràng với các đối yêu cầu và đáp ứng HTTP, và tiến trình ưu tiên Các kênh này phải thực thi giao diện org.jasig.portal.IPrivileged, và được coi như là những kênh được tin cậy Những kênh này được đưa vào các đối tượng PortalControlStructure tại mỗi chu trình hiển thị, các đối tượng này sẽ cung cấp cho chúng với những truy cập trực
Trang 39
tiếp vào nhân của uPortal uPortal bảo đảm rằng nếu tham số yêu cầu được chỉ đến kênh đặc biệt, phương thức setRuntimeData() của kênh đó sẽ được gọi trước tất cả các phương thức của kênh khác trong phiên hiện tại bắt đầu chu trình hiển thị của chúng uPortal giả định rằng các kênh đặc biệt sẽ không tự xóa nó trong bố cục người dùng
ICacheable Kênh có thể thực thi giao diện này nếu muốn lưu vêt nội dung của nó vào trong khung sườn uPortal, trong hầu hết các trường hợp thì lưu vết cho phép làm tăng tính hiệu năng của chương trình, giao diện này yêu cầu kênh phải phát sinh ra những khóa duy nhất theo các trạng thái của kênh
IMutilthreadedChannel Một vài trường hợp có nhiều hơn một kênh là rất quan trọng, các kênh có thể chọn để có một thực thể của lớp của nó mà phát sinh ra nội dung cho toàn bộ các biến cố của kênh đó trong bố cục người dùng, điều này có thể làm được nhờ thực thi giao diện org.jasig.portal.IMutilthreadedChannel thay vì thực thi org.jasig.portal.IChannel
Inter-channel communication uPortal cung cấp cho các kênh trong cùng một bố cục khả năng tương tác lẫn nhau, ngữ cảnh JNDI được lấy về từ đối tượng ChannelStaticData, chứa một “/channel_ids/” của kênh nằm trong bố cục người dùng Một khi channelSubscriberId được biết sự giao tiếp giữa các kênh sẽ được thiết lập thôngqua hai cách đó là tham số URL hay định vị một channel-bound ngữ cảnh con trong “/channel-obj” là một
Trang 40
tên giống theo channelSubsribeId của kênh chứa ngữ cảnh con đó
Channel Services Những thực thể cung cấp các chức năng thông thường cho kênh trong uPortal, có thể được đăng ký và giữ trong
“/services” của JNDI Mà trong đó sẽ có giá trị trong ngữ cảnh mà được đưa ra cho các kênh trong đối tượng ChannelStaticData Dịch vụ có thể được sử dụng để cung cấp cấu trúc, các cách khác nhau để các kênh có thể giao tiếp với nhau
Workers Khung sườn uPortal cố gắng hạn chế khả năng của các thành phần đơn lẻ (chẳng hạn như kênh) trong việc điều khiển những thông tin xuất của servlet Trong một vài trường hợp, người ta mong muốn rằng một vài đơn vị giành được việc kiểm soát toàn bộ đáp ứng HTTP trong khi đó vẫn để lại một phần cho uPortal Ví dụ một kênh có thể được yêu cầu để phục vụ việc đáp ứng tập tin hay phim ảnh (bianry stream) Chức năng đó có thể thực hiện được nhờ vào việc sử dụng workers, với việc thực thi phương thức ChannelRuntimeData.getWorkerActionURL(), workers được cấu hình trong tập tin worker.properties
Phân loại channel trong uPortal
Trong các phiên bản uPortal trước đây, uPortal chỉ hổ trợ các loại channel sau :
1 Image
o Đây là một loại kênh đơn giản nhất, sử dụng trong các mục đích đưa hình ảnh từ một nguồn nào đó lên hệ thống uPortal