内容


IBM WebSphere 开发者技术期刊

使用 WebSphere Portal 创建 IP-TV 门户

配置家庭多媒体控制面板门户

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: IBM WebSphere 开发者技术期刊

敬请期待该系列的后续内容。

此内容是该系列的一部分:IBM WebSphere 开发者技术期刊

敬请期待该系列的后续内容。

摘自 IBM WebSphere 开发者技术期刊

引言

数字电视服务(Digital TV services,DTV)领域正发生着快速的变化。全球都在积极发展数字有线电视、数字地面电视和卫星电视服务,而宽带网正逐渐成为现有和新的 DTV 服务的四个重要平台。IBM 提供了支持对服务进行个性化和整合的技术,可使电视成为家中的娱乐、信息和通信中心。

从 IT 角度来看,IP-TV 解决方案基于三个组件组,如图 1 中所示。

  1. 数据转发器,包含内容提供者和用于在 IP 网络上传输和接收数字资产所需的设备(如卫星接收器、编码器等)。

    这个平台可提供可用的实时内容,如果可能,还可以管理来自电子节目指南(Electronic Programming Guide,EPG)广播器(数据转发器与中间件间的主要链接)的动态信息。

  2. 中间件由向最终用户交付数字资产的基础设施组成;如 IP 网络基础设施、门户服务器、存储设备、视频点播(VOD)服务器等。
  3. 客户端的组件使用数字资产,并将其呈现给最终用户。这些设备各种各样,包括 IP 及模拟电话、PDA、机顶盒(Set-Top Box,STB)、PC、DSL 或家庭网关(Residential Gateway)调制解调器、无线接入点(Wireless Access Point)路由器、TV 等。

    数据的聚合(Internet 访问)、语音服务和视频服务称为“Triple Play”。随着新的手持无线 IP 设备(例如,移动电话、PDA 和车载设备)的出现,事实上应该是“Multi Play”而不仅是“Triple Play”。

IBM 可实现中间件增值。通过使用 IBM 硬件(如刀片服务器 xSeries® 服务器)和软件(如 WebSphere 系列),中间件基础设施可以大幅度提高其灵活性、性能和可伸缩性。本文将重点讨论 WebSphere Portal 在这方面的应用中可扮演的角色。

图 1. IP-TV 体系结构
图 1. IP-TV 体系结构
图 1. IP-TV 体系结构

WebSphere Portal 如何应用到其中?

WebSphere Portal 提供了很多功能,使其成为一个独特的平台,能支持用于访问大量产品和技术的整合接口。它可为业务合作伙伴、开发人员和客户提供应用程序编程接口(Application Programming Interface,API)和扩展点,以便能对其环境进行扩展和自定义。

Portlet 是可提供对企业应用程序、基于 Web 的内容、主机和数据系统、内容管理系统、流程驱动的工作流应用程序及其他资源的访问的可重用组件。Portlet 是门户框架中运行的最小逻辑单元,用于实现服务(如邮件客户机、新闻定制或即时通信)。

如图 2 中所示,WebSphere Portal 体系结构包含了各种针对按需业务体系结构的功能。有关 WebSphere Portal 的更多信息,请参阅 WebSphere Portal Server 专栏。

在下一部分,您将了解各种 WebSphere Portal 功能如何具体地帮助支持家庭 IP-TV 多媒体控制面板门户。

图 2. WebSphere Portal 体系结构
图 2. WebSphere Portal 体系结构
图 2. WebSphere Portal 体系结构

将各种功能应用到 IP-TV 门户

可以应用这些 WebSphere Portal 功能来满足 IP-TV 环境的各种需求:

多种设备支持

WebSphere Portal 可通过采用以下三种标记语言生成门户页来支持各种设备:

  • HTML,适用于台式计算机和一些个人数字助理(Personal Digital Assistant,PDA)
  • 无线标记语言(Wireless Mark-up Language,WML),用于无线接入协议(Wireless Access Protocol,WAP)设备(通常为移动电话)
  • 压缩 HTML(Compact HTML,cHTML)

还可以添加新标记,以支持更多的语言和设备(如机顶盒,门户将此类设备视为派生自 HTML 的浏览器)。

用于呈现服务的唯一 GUI

WebSphere Portal 框架提供了清楚的服务分离,然后可在客户机浏览器中聚合和呈现结果。可以通过使用不同的技术来以唯一的方式呈现服务。根据服务实现不同,呈现可能会涉及以下方面:

  • 用于整个门户的主题和皮肤
  • Web 剪辑(修改现有网站)
  • 用于适应现有服务输出呈现的代码转换规则

对于 IP-TV 门户,这个灵活性支持将大量服务聚合到门户中,如图 3 中所示。

多种设备支持和唯一 GUI 呈现是 IP-TV 环境中非常重要的功能。通过使用 WebSphere Portal,可以为合并到门户中的任何应用程序提供相同的外观,从而不依赖于原始实现或呈现。例如,门户开发人员可以使用 Web 剪辑技术来将现有 Web 应用程序封装到 Portlet 中,从而隐藏原始 GUI,保持门户的一致性。

图 3. 视频中的示例 GUI
图 3. 视频中的示例 GUI
图 3. 视频中的示例 GUI

利用高安全性机制管理应用程序间的单点登录(Single-Sign On,SSO)

WebSphere Portal 通过使用 WebSphere Application Server 和身份验证代理来提供单点登录支持,允许用户登录一次即可获得门户在单点登录领域内聚合的所有企业应用程序的访问权限。

在 IP-TV 环境中,您会希望尽可能减少用户交互的次数,因为输入设备可能为遥控器,要让用户能够通过遥控器之类的设备方便地进行 TV 管理。就易用性而言,能够在不针对每个服务的情况下访问邮件帐户、检查新语音邮件并同时收看晚间新闻非常重要。由于所有主要的 STB 提供商都在其机顶盒中嵌入了支持 Cookies 和 HTTP 会话的 Web 浏览器,因此其实现与普通 PC 浏览器 SSO 实现并没有太大的区别。.

个性化

为了支持您的门户业务目标,WebSphere Portal 框架包含了个性化引擎,允许为特定用户锁定内容。个性化组件提供了多个工具,允许主题专家选择适合每个网站访问者的独特需求和兴趣的内容。这些基于 Web 的工具可帮助公司快速而方便地利用业务线管理员创建的内容。

个性化的过程涉及到以下三个组件:

  • 用配置文件存储库提供关于网站上的用户的信息,包含存储在 LDAP 存储库中的用户属性。
  • 元数据内容模型。定义关于内容的属性,如产品说明、文章主题和其他信息。
  • 匹配技术。包含用于将用户匹配到正确内容的引擎。这些引擎包括筛选、规则和建议引擎,或所有这三种引擎的组合。

对于 IP-TV 门户,个性化是必须有的功能。需要对用户和新服务间的用户交互数量进行计划,并要根据配置文件和使用习惯提供用户可能会感兴趣的电视节目。

从业务角度来看,您会希望尽可能减少“消耗时间”,以便电视用户使用此类服务时能获得高满意度。例如,通过参考我的用户配置文件信息(通过记录我以前的平台使用情况创建的)和我的个人设置,当有新的科幻电影可以出租时,只要我访问视频点播电影目录,门户就应该能就此给我提出建议。或者,由于我住在尼斯(安提布附近),而且我经常在门户上收听爵士音乐,当安提布爵士音乐节的新视频节目提供出租时,应该就此通知我。

自定义

WebSphere Portal 的超级管理员可以将外观管理委派给下级管理员,以便下级管理员进一步细化页面布局和内容,以满足各自的需求。细化过程还可以逐级下放,直到最终达到用户为止。如果允许,最终用户可以通过选择和放置 Portlet 及更改 Portlet 设置来自定义自己的页面。为了计算用户最终看到的页面,WebSphere Portal 会将每个细化操作所定义的页面片段合并到一起。

为了让用户接受使用中央 IP-TV 门户,自定义门户外观和内容是一项必须有的功能。我要访问的门户应该是“我的”门户,而不是“一个”门户而已。就像 PC 用户能够管理其桌面(颜色、背景、布局等等)一样,IP-TV 门户用户希望也能够管理其界面。例如,用户可能希望进行以下操作:

  • 更改门户的外观(例如,颜色、皮肤和登录图像)
  • 更改服务显示的顺序
  • 管理收藏频道列表

用户必须为其家庭 IP-TV 多媒体控制面板的管理员。WebSphere Portal 提供了支持此类丰富用户体验的功能。

虚拟门户

从 WebSphere Portal V5.1 开始,可以创建依赖于单个公共基础设施(应用服务器、用户存储库和硬件)的多个门户。通常,客户并不需要新门户唯一的安装。在很多情况下,新门户可以是类似的现有门户的新实例。同样,很多新门户处在公司的内部网中,因此多个门户实例可以重用公共用户存储库和公共应用程序。客户需要能够在不需要新硬件投资的前提下扩展其基础门户(特别在现有用户利用率低的情况下更是如此)。

这个独特的功能允许 Internet 服务提供商(Internet Service Provider,ISP)为其有线用户和 xDSL 用户使用不同的 Internet 地址提供 IP-TV 门户。ISP 可以使用相同的基础设施(硬件和软件)、公共服务、公共 Portlet 以及特定的 Portlet 和服务来实现这些虚拟门户。

各类服务聚合

WebSphere Portal 服务器具有基于开放标准的体系结构,允许在门户内对各种现有应用程序进行集成和联合。IBM 一直在进行门户与其他应用程序间 API 的标准化工作,经常在很多标准组织中占据了技术领先地位。特别值得注意的是,Java Community Process(JCP)和 Organization for the Advancement of Structured Information Standards(OASIS)正在密切协作,以对将门户链接到异构应用程序所需的 Java 和 XML 技术进行标准化,如 JSR 170、JSR 168 和 OASIS Web Services for Remote Portals(WSRP)。

门户的聚合功能是“常规”Web 应用程序与门户的主要区别。

以图 4 中所示的情况为例。当页面由来自多个服务器的部件组成时,客户端 Web 浏览器将至少发出和页帧一样多的独立 HTTP 请求(在本示例中为三个)。如果服务器 C 已关闭,Web 浏览器将无法正确地呈现所有页面,因为将缺少某些信息,而错误消息将影响总体页面呈现。

图 4. 常规页面检索机制
图 4. 常规页面检索机制
图 4. 常规页面检索机制

如图 5 中所示,使用了门户技术后,就带宽管理方面而言,工作流更简单,也更加优越。

  1. 客户端 Web 浏览器只需向门户发送单个请求。
  2. 门户将从各个提供者收集所有信息(服务器 A、B、C)。
  3. 信息可以由门户进行缓存。

如果其中一个服务器出现故障,但所有数据都可用,门户将在单个请求/响应对中向客户机返回整个内容。

如果服务器已关闭,而关联的数据不在门户缓存中,则会针对整个请求向客户机返回一致的消息,这对最终用户更方便和清楚。

图 5. 门户页检索机制
图 5. 门户页检索机制
图 5. 门户页检索机制

对于 IP-TV 门户,用户并不是 PC 用户,图形用户界面(Graphical User Interface,GUI)和页面呈现应该尽可能清楚、简单;因此,对于 TV 环境,各种服务的聚合和结果缓存功能是非常重要的。

缓存

由于 Portlet 与 Servlet 非常相像,因此他们的重入及性能注意事项也很类似。单个 Portlet 供所有请求共享。客户机请求内涉及到的 Portlet 可以并行执行(以优化响应时间)或顺序执行,具体取决于其线程安全状态。当所有 Portlet 完成处理后,门户服务器将对所有标记片段进行组装。

为了优化响应时间,可以允许缓存 Portlet 输出。可在 Portlet 部署描述符中配置 Portlet 缓存策略。

在 IP-TV 中,由于可能同时会有数百万用户,因此需要对所有最常用的页面、服务和 Portlet 输出进行缓存,以优化电视用户的响应时间。花一秒钟等待对操作的响应是电视用户所能接受的最大延迟。

例如,电子节目指南用于描述电视节目表,通常每个用户每天将多次请求此服务。因此必须缓存此服务。

WebSphere Portal 提供了集成的 Web 内容索引功能、归类已索引的内容的方法以及一个可选的工作流审批流程(用于管理已建立索引的内容的发布工作)。WebSphere Portal 提供了两组搜索 Portlet。可以在门户页面上部署一个文档搜索与浏览 Portlet,以便用户在已建立索引的搜索集合中进行搜索。这允许用户访问各种高级功能,如按照以可选方式应用的分类法来进行浏览和搜索;还可以使用字段约束来执行高级搜索,例如按照文档类型(音频、视频和文档)、作者、日期范围等进行搜索。

最后一点也非常重要,IP-TV 门户要求有一个强大的搜索引擎。用户应该能够在门户聚合和联合的所有服务上执行搜索,如电子节目指南(EPG)、视频点播(VOD)和音乐点播(MuOD)目录、网络个人视频记录(Personal Video Recording,nPVR)资产元数据等。同样,这样做的目的也是为了尽可能减少“消耗时间”,这在 IP-TV 领域将是一个非常重要的优势。

搜索引擎以及个性化和建议引擎是高效的 IP-TV 门户的基础设施中的主要组件。

针对 IP-TV 自定义 WebSphere Portal

现在来看看示例 IP-TV 门户是如何创建的。

图 6 显示了在 IP-TV 环境自定义过程中涉及到的各种 WebSphere Portal 组件。

在关系图的右侧是中间件应用程序以及到后端服务的连接器,此类后端服务包括视频点播(VOD)服务器、电子节目指南(EPG)提供程序等。Portlet 充当应用程序的代理,在门户的 Portlet 容器内运行,负责将这些服务呈现给电视用户。这个容器还提供各种常见功能,如搜索功能、数据保存、管理接口、SSO 和协作功能。

Portlet 由门户使用各种主题和皮肤进行聚合。门户框架的代码转换组件处理每个 Portlet 的 GUI 在每个访问门户的设备上的适应能力。因此,用户可以从任何受支持的设备上访问多媒体门户,包括 PC、PDA、机顶盒和移动电话,如图 7 中所示。

图 6. 用于进行自定义的 WebSphere Portal 组件
图 6. 用于进行自定义的 WebSphere Portal 组件
图 6. 用于进行自定义的 WebSphere Portal 组件

图 7 显示了使用 Websphere Portal 创建的示例 IP-TV 门户。

图 7. 示例 IP-TV 主页
图 7. 示例 IP-TV 主页
图 7. 示例 IP-TV 主页

自定义主题和皮肤

在自定义门户站点前,了解一下一起形成门户的 JSP 的基础结构将很有帮助。

门户页布局

以下的总结性内容摘自 WebSphere Portal 信息中心的 Layout of the portal page 主题。此处对这些内容进行重复的目是为了让您了解自定义任务的一些背景知识。

典型的门户页包含与屏幕、主题和皮肤对应的 JSP(请参阅图 8),通常是由门户的 Web 设计人员创建的。这些 JSP 驻留在以下目录下对应的 screens、themes、skins 目录中:

 was_root/installedApps/hostname/wps.ear/wps.war

在此路径中,可以找到与标记、区域设置和客户机类型对应的子目录,这些目录都用于支持门户聚合(有关更为详细的描述,请参阅 WebSphere Portal 信息中心的 Aggregation 主题)。

主题

主题确定门户的外观和布局,包括颜色、字体和 Portlet 内容区域(主屏幕)外的图像。主题通常为门户页提供初始导航。

屏幕

门户屏幕是通常显示 Portlet(主屏幕)的区域,但也可以显示其他内容,如登录表单或错误消息。屏幕从主题中的导航图标选择。

皮肤

皮肤标识组件周围的边框呈现,此类组件包括行容器、列容器或 Portlet 等。皮肤还提供比主题提供的导航层次更深的导航。皮肤可以使用主题名称来选择匹配主题颜色的图形。皮肤独立于主题进行安装;不过,管理员可以为主题设置缺省皮肤。

构建门户页的开始位置是 <was_root/installedApps/hostname/wps.ear/wps.war> 树下 themes 目录中的 Default.jsp。屏幕和皮肤将由引擎标记库中对应的 <wps:screenRender/><wps:compositionRender/> 标记进行调用。

图 8. 门户页的布局
图 8. 门户页的布局

为示例 IP-TV 门户开发的主题具有以下结构:

IBM TV Portal
- home
- TV
- VOD
- gaming
- phone
- mail
- internet

示例 IP-TV 门户 IBM TV Portal 的第一页提供了到七个子页的链接,这些页面与门户聚合的七个服务对应。

设计人员可以通过使用皮肤、主题和屏幕组织不同类型的导航呈现布局。为了简单起见,本文中的示例使用的是非分层布局,将皮肤放在 <was_root>/installedApps/hostname/wps.ear/wps.war 树中的 IPTV_skin 文件夹下;具体来说,皮肤位于 UnlayeredContainer-H.jsp 中。此 JSP 定义门户页导航的核心内容。将在构建页面时调用此 JSP,用于管理主菜单的样式和行为。图 9 显示了上面描述的 IP-TV 菜单的示例实现。

图 9. 示例:IBM IP-TV 门户菜单
图 9. 示例:IBM IP-TV 门户菜单
图 9. 示例:IBM IP-TV 门户菜单

此页面使用 <wps:navigationloop> 标记来定义通过所有属于 IBM TV Portal 主页的页面的导航,并检索所有必要的信息来动态创建主菜单。

构造菜单和导航

由于机顶盒浏览器中只提供了少量的字体,为避免用户界面(User Interface,UI)问题,要尽可能使用图像替代文本。通过这样做,可以为不同的机顶盒(Amino、Kreatel)设备提供类似的外观,而不受机顶盒浏览器支持的限制。

对于每个页面,与两个可能的选择状态(选择和未选择)对应的两个图像位于 theme 文件夹中。图 10 显示了 TV 页面的两个图像:

IBM IP-TV Portal 菜单选择图像
菜单项选择菜单图像
Homehome. gif, homeSelect.gif
TVtv.gif, tvSelect.gif
VODvod.gif, vodSelect.gif
Gaminggaming.gif, gamingSelect.gif
Phonephone.gif, phoneSelect.gif
Mailmail.gif, mailSelect.gif
Internetinternet.gif, internetSelect.gif
图 10. TV 页面的选择状态图像
图 10. TV 页面的选择状态图像
图 10. TV 页面的选择状态图像

调用 UnlayeredContainer-H.jsp 时,将调用 <wps:navigationloop> 标记来浏览“IBM TV Portal”页结构内的各个节点。

String nodeId = nodeTitle;
String image = nodeId + ".gif";
String imageSelect = nodeId + "Select.gif";

在此过程中,将收集所有的页面元素(图像、属性),门户将检索 nodeTitle。所有与节点关联的图像将放置到包含 n 个元素的表中,其中 n 是属于 IBM TV Portal 页的页面数量。

图 11. 示例菜单实现
图 11. 示例菜单实现

导航优化

要优化最终用户的导航,请尽可能减少机顶盒与门户间的请求和响应交换的数量。因此,示例 IP-TV 门户将所有页导航元素和信息都存储在使用 JavaScript 代码的页中。

在实现级别,每个菜单按钮均具有以下信息:

  • 标识符
  • 非选择状态的图像(tv.gif)
  • 选择状态图标(tvSelect.gif)
  • 链接的 URL

JavaScript 对象 mainMenu 为每个节点存储此信息:

<script language='javascript'>

mainMenu.imageButton[mainMenu.navigationLOOP] =
'<wps:urlFindInTheme file="<%=image%>"/>';

mainMenu.imageButtonSelected[mainMenu.navigationLOOP] =
'<wps:urlFindInTheme file="<%=imageSelect%>"/>';
			
mainMenu.idButton[mainMenu.navigationLOOP] = '<%= nodeId %>';

mainMenu.urlButton[mainMenu.navigationLOOP] = '<%= selectURL %>';
					
</script>

对于每个 <wps:navigationloop> 迭代,门户将使用检索到的信息对 mainMenu JavaScript 对象进行填充:

<wps:urlFindInTheme file="<%=image%>"/>
<wps:urlFindInTheme file="<%=imageSelect%>"/>
<%= nodeId %>
<%= selectURL %>

最后一个元素 selectURL 是门户生成的 URL,用于从菜单访问节点页。

mainMenu JavaScript 对象允许用户从各个菜单元素进行导航和选择服务,而无需向门户请求任何内容。

观看示例 IP-TV 门户视频

既然已经了解了如何自定义 IP-TV 门户,接下来请观看在本文创建的示例门户中捕获的视频

结束语

在本文中,我们了解了为何以及如何在 IPTV 环境中使用 WebSphere Portal 创建“家庭多媒体控制面板”门户,以便在电视机上进行通信和娱乐。将来,IP 门户将会聚合越来越多的服务。最近的一项调查中给出了 50 个提供类似 IP-TV 门户界面的不同软件供应商,其中大部分都是使用 J2EE 和 PHP 作为非门户型 Web 应用程序构建的。为了占有市场,电视运营商提出越来越多的服务,因此,此类独立软件供应商(Independent Software Vendor,ISV)需要将其体系结构迁移到实际的 Web 门户基础设施上,以确保为其电视用户提供统一且方便的用户体验。WebSphere Portal 提供了构建极具竞争力的 IP-TV 门户所需的所有功能。


下载资源


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=151775
ArticleTitle=IBM WebSphere 开发者技术期刊: 使用 WebSphere Portal 创建 IP-TV 门户
publish-date=08032006