門戶網(wǎng)站是用戶訪問不同來源的信息和應(yīng)用程序的焦點(diǎn)。一般來說,門戶網(wǎng)站從本地或遠(yuǎn)程數(shù)據(jù)源(例如,從數(shù)據(jù)庫(kù)、事務(wù)系統(tǒng)、聯(lián)合內(nèi)容提供者或遠(yuǎn)程 Web 站點(diǎn))獲取信息。它們加工此信息并將其聚集到復(fù)合頁中,用一種簡(jiǎn)潔、容易的使用形式為用戶提供信息。除了純粹的信息之外,很多門戶網(wǎng)站還包括一些應(yīng)用程序,如電子郵件、日程、管理器、銀行業(yè)務(wù)、帳單顯示等等。各種不同的信息和應(yīng)用程序需要不同的加工和選擇機(jī)制,但它們都依賴于門戶網(wǎng)站的基礎(chǔ)結(jié)構(gòu),并影響門戶網(wǎng)站所擁有的數(shù)據(jù)和資源,如用戶簡(jiǎn)檔信息、持久存儲(chǔ)或?qū)κ芄軆?nèi)容的訪問。因此,幾乎目前所有的門戶網(wǎng)站實(shí)現(xiàn)都提供一種組件模型,它允許將稱為 Portlet 的組件插入到門戶網(wǎng)站基礎(chǔ)結(jié)構(gòu)中。
下面給出了一個(gè)示例來說明portlet 和 Web 服務(wù)的分布式門戶網(wǎng)站解決方案(如圖1),其中的某企業(yè)擁有一個(gè)門戶網(wǎng)站(Portal)。門戶網(wǎng)站有一個(gè)搜索(Search)和新聞 (News)portlet,它運(yùn)行在本地 portlet 容器中,而銀行(Bank)和股票(Stock)portlet 是遠(yuǎn)程運(yùn)行的,由門戶網(wǎng)站通過 portlet 代理(Proxy)訪問。
顯然,從一個(gè)門戶網(wǎng)站的角度來看,如果 Web 服務(wù)是包括表示和應(yīng)用程序邏輯的可視的面向用戶的服務(wù)(如圖1所示),那就方便多了。如果存在一個(gè)標(biāo)準(zhǔn)化的 Web 服務(wù)接口,這種可視的、面向用戶的 Web 服務(wù)就可以通過門戶網(wǎng)站一端的通用 portlet 代理來調(diào)用了。使用通用 portlet 代理消除了為每個(gè) Web 服務(wù)插入到門戶網(wǎng)站中,而開發(fā)特定的 portlet 的需求。Portlet 可以被動(dòng)態(tài)地添加到環(huán)境中,用戶得到的好處是他們可以及時(shí)地獲得更多可用的服務(wù)。還可以在 portlet 中包括另外的遠(yuǎn)程 portlet,只要找到這些 portlet ,并通過創(chuàng)建一個(gè)綁定到可視的、面向用戶的服務(wù)的新的 portlet 代理實(shí)例來綁定它們就可以了。通過使用 portlet 代理,用戶就可以在門戶網(wǎng)站中看到可視的、面向用戶的遠(yuǎn)程 Web 服務(wù),還可以象選擇本地 portlet 一樣選擇它們。