分类: Oracle
2008-04-12 18:10:19
来源:赛迪网技术社区 作者:yuanyao |
在商业活动中,信息决定一切。随着企业门户的出现,获取相关信息已经变得象登录一个网站并使用一个口令那样简单。企业门户已经不仅仅是自定义的执行仪表板,而成为一种必不可少的背景,所有最终用户(员工、市民和客户等等)可以通过它立即获得所需的信息,而不必安装特别的软件(除一个标准浏览器外)、使用特定的操作系统和/或设备或者打开多个窗口。
对于位置信息而言同样如此。在先前的一篇文章(“在企业报表中使用位置信息”)中,我指出“位置信息无处不在;可以在各种公司、所有行业,以及几乎世界上每一个机构和部门中找到位置信息。”随着该文章的发表和像 2005 年位置技术与商务智能大会这样场合中对基于位置的智能的推崇,从未如此明显地表明,找出位置数据中的模式(就像它与关系数据共存一样)即使不是必需的,也是越来越重要。现在,管理人员、分析人员和市民都需要了解与位置有关的信息,并且他们希望随时都可以获得这些信息。
现在,我们有能力满足这些需求。随着企业门户逐渐成为所有机构和各行业的标准,找到将不同信息和应用程序集成到所有门户框架中的新方法已经变得非常必要。在某种意义上,门户的确切定义应该是:“一个汇集内容、应用程序和服务的地方”(Laura Ramos,Forrester Research,“门户定义更新:发展成为协作业务平台”,2002 年 12 月 18 日),而不必重新定义或重新开发内容、应用程序和/或服务。
因此,为了能够将内容、应用程序和服务汇集到门户以实现共享,企业门户供应商们已经协助通过了两个以通过 portlet 共享这些内容为中心的新门户标准:用于远程 Portlet 的 OASIS Web 服务 (WSRP) 和 Java 规范请求 168 (JSR 168)。因为这些新标准使得将所有信息和应用程序作为 portlet 进行共享变得很容易,所以将位置加入方程式也就变得容易了 — 如在商务智能 portlet 的旁边构建位置 portlet(地图)。
在本文中,我将讨论如何使用诸如 WSRP 和 JSR 168 等开放标准来开发那些将位置信息与应用程序(如地理地图)合并在一起的 portlet。本文介绍的所有 portlet 代码都可以注册到支持 portlet 标准 WSRP 和 JSR 168 的任何供应商的门户解决方案中。
定义地图
以下示例使用 Oracle 应用服务器 MapViewer (Oracle MapViewer) 和 Oracle JDeveloper 10g 来定义和开发基于 Web 的动态地图。虽然从理论上讲,使用任何基于 Web 的地图制作技术都可以获得同样的效果,但是使用 Oracle MapViewer 会更简单,这是因为它提供 Java 和 XML API 以及一个 JavaServer Page 标记库,所以任何人(从初学的开发人员到较高级的开发人员)都将发现,将地图集成到现有的和新的开发项目中是何等简单(而且功能相当强大)。有关更多信息(包括下载和安装说明),请参见 。
在我的上一篇文章“在企业报表中使用位置信息”中,我讲述了如何使用地图定义工具和/或 Oracle SQL*Plus 为 Oracle MapViewer 定义地图。出于连贯性和简单性考虑,本文使用同一示例(包括 OE 模式中所的示例数据,这些数据最初是在 Oracle 示例:“进行基于位置的分析”建立起来)。
与其他地图呈现工具一样,Oracle MapViewer 使用样式(颜色、标记、线、面积、文本、符号以及高级样式)和主题(有时称为图层)的概念来创建动态地图。这些属性的定义以及实际地图的定义以 XML 格式和位置信息一起存储在数据库中。
要创建属性和/或地图定义,可以对数据库执行标准 SQL 插入/更新操作,如:
或者可以使用所提供的地图定义工具(见图 1),它可以为您完成大部分工作。
Oracle Internet 应用服务器附带的标准 Oracle MapViewer 下载或部署包含一组样式、主题、基本地图和示例代码。对于我们的示例而言,您只需复制一个基本地图、添加两个主题即可。因为您可以使用 SQL 和工具访问数据库中的地图定义,所以复制地图定义的最简单方法就是执行一个 SQL 语句,如下所示。(在执行语句之前,请仔细看看与 Oracle MapViewer 相关的视图 user_sdo_styles、user_sdo_themes 和 user_sdo_maps,以更好地理解它们的工作原理。)
现在您就有一个名为 WAREHOUSES_AND_CUSTOMERS 的新基本地图了,您将使用地图定义工具向它添加一些主题。首先,切换到包含 mapdef.jar 的目录,执行以下命令连接到存储着我们地图定义的 Oracle 数据库实例:
接着,创建两个主题,CUSTOMERS 和 WAREHOUSES(见图 2 和图 3)。
在创建 customers 和 warehouses 主题后,将它们添加到我们新的 WAREHOUSES_AND_CUSTOMERS 基本地图中(见图 4)。
|