Kênh (channel)

Một phần của tài liệu luận văn công nghệ thông tin nghiên cứu và ứng dụng uportal (Trang 37 - 42)

III. Kiến trúc uPortal

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 kênh được đăng ký với một channelPublishId. Sau đó sẽ

______________________________________________________________________________________

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

______________________________________________________________________________________

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. (adsbygoogle = window.adsbygoogle || []).push({});

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

______________________________________________________________________________________

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

______________________________________________________________________________________

với các tinh chỉnh tùy biến (rộng, cao và các thuộc tính của hình ảnh)

o Sử dụng loại kênh này, người sử dụng phải cung cấp các địa

chỉ hình ảnh từ một nguồn nào đó (có thể là địa chỉ của một trang web chứa hình), liên kết, chiều cao, độ rộng, độ sáng tối của hình ảnh.

2. Inline Frame

Kênh này được sử dụng nhằm đưa toàn bộ một trang định dạng HTML lên uPortal thông qua một khung, tuy nhiên chỉ chạy được trên các phiên bản IE 5.0, Netscape 6.0 trở lên. Và chạy không ổn định trên các phiên bản Netscape. Sử dụng loại kênh này, người sử dụng phải cung cấp địa chỉ của trang web cần đưa lên một khung định sẵn trong uPortal.

3. RSS (Rich Site Summary)

o Đây là một loại kênh thông thường, tất cả nội dung được định

nghĩa dưới dạng một tài liệu XML, được gắn vào rss xác định.Sử dụng loại kênh này, người sử dụng phải cung cấp địa chỉ của tập tin rss.

4. Simple XML Transformation

o Nội dung của channel được định nghĩa dưới dạng một tập tin

XML, và định dạng phải được chuyển đổi bởi tài liệu XSL (hay còn gọi là XSLT) Sử dụng loại kênh này, người sử dụng phải cung cấp địa chỉ của tập tin XML và XSL. (adsbygoogle = window.adsbygoogle || []).push({});

5. Web Proxy

o Đây là một trong những cách để tích hợp một ứng dụng web

có sẵn vào trong uPortal thay vì phải viết một kênh sử dụng xml và xslt.

______________________________________________________________________________________

6. Custom

o Đây là loại kênh được sử dụng để xuất bản những kênh với

nội dung động, phục vụ mục đích cụ thể, đây là một kênh linh động và mạnh mẻ, được khuyến khích sử dụng trong uPortal. Tất cả các loại kênh khác đều được kế thừa từ loại kênh này.

o Người sử dụng phải biết lập trình, và các định dạng xml, xslt.

Ngoài ra trong các phiên bản uPortal sau này, uPortal còn hổ trợ thêm portlet. Porlet là một chuẩn chung có thể chạy trên các hệ thống cổng thông tin khác nhau, như lifefray, stringbeans… hay các hệ thống cổng thông tin doanh nghiệp như Oracle portal, WebSphere portal. Để tích hợp được portlet trong uPortal, những người phát triển uPortal đã tích hợp vào nhân của uPortal một hệ thống chứa (cotainer system) là ‘pluto’ (một cổng thông tin nhỏ gọn, thường làm môi trường kiểm tra). Pluto phục vụ như là một nơi chứa portlet thực thi portlet API và cung cấp cho các lập trình viên một môi trường kiểm tra các portlet mà họ phát triển. Hiện nay pluto đã có phiên bản 1.1, dễ sử dụng và dể dàng tích hợp và trong hệ thống cổng thông tin bất kỳ.

Một phần của tài liệu luận văn công nghệ thông tin nghiên cứu và ứng dụng uportal (Trang 37 - 42)