阅读:4017回复:0
FME 2010专刊:FME Server译者:一枝独秀 仔细想想,其实运行FME工作空间的方法有很多,我们可以通过Workbench、FME Universal Translator、命令行、批处理文件来运行FME工作空间,当然,还可以通过FME Objects(特别是使用2010版中新增的IFMEWorkspaceRunner方法)或FME Server来运行它。 在某种程度上,有些人会奇怪地认为FME Server仅仅是运行工作空间的另一种工具。但是,它到底是个什么工具呢?是Web服务、任务队列、故障备份、容错性、安全,还是其他的?当然这些说法不能说是错误,但都偏离了本质。实际上FME Server是企业级的空间数据ETL解决方案。如果仅仅认为它是为了把分布的空间数据开放给更广泛的用户,那么我认为您并没有真正的了解FME Server。 认为FME Server是运行FME工作空间的良好工具,就如同认为大海是船舶航行的理想场地一样,这绝对是正确的,但这并不是其能力的全部。所以,本篇文章都是关于FME 2010版的补充材料,让我们从2010版开始FME的发现之旅吧! Workbench的改进 为了展现FME Desktop和FME Server良好整合的重要性,我会把Workbench更新的所有环节都列举出来,不管这些环节是对FME Server用户有好处,还是对FME Server本身的改进。更新如下: ? 发布参数的别名(选择别名) ? 一个新的“重新发布到Server”功能 ? 任意格式和动态功能 ? WebMapTiler转换器(前身是VirtualEarthTiler) ? FileCopy写模块
FileCopy写模块是非常吸引人的,该写模块不会将要素写入新的数据集中,而是定义一个已经存在的文件或数据集,原来的文件或数据集或被删除或被复制到新路径下。在Desktop中应用时,你可以用它来移动源数据,也就是说从“ToBeProcessed”文件夹移到“HasBeenProcessed”文件夹。 Server能以数据流的形式对外输出,然而,FileCopy写模块能够通过web分发所有类型的非空间数据,如WORD文档,或者影视文件。 当在工作空间中添加一个FileCopy写模块时,要确保指定正确的MIME类型,如下图所示: ![]() 在下面的例子中,我简单创建了一个包含文件名称的要素,该名称指向一个叫做filecopy_source_dataset的属性里,如下所示:
![]() 然后我把该工作空间发布到Sever上,点击运行(run)按钮,如下图所示:
![]() 视频之类的文件也可以用这样的方式分发,下图就是一个复制mp4视频文件并流转到浏览器中的例子:
![]() 当然,可以使用其他的方式来代替Server中的“运行”按钮,只要访问发布的这个URL地址即可,比如可以在自定义web页面或表格中、在E-mail中、或在PDF文件中添加一个超链接等等。
FME Server 的安全性 FME Server 2010最大的也是最重要的改进是在安全性方面,目前包含的一些关键构件包括: ? 全新的认证和授权框架 ? 使用web界面管理用户、角色和相关资源 ? 所有服务都支持SSL(加密的HTTPS通信) ? 使用JAAS插件框架对自定义模块进行认证扩展
对于一般用户或工作空间的创建者(不仅是系统管理员)来说,与安全相关的功能并不常用,但是为不同用户、不同角色定义不同的安全级别是非常有必要的,而且这些工作都可以在一个图形化的界面中进行操作。 以下是FME Server管理页面中的安全标签项,这里展示了用户列表以及每个用户所属的角色。如下图左所示:
![]() ![]() 这里定义了不同的角色,如上图右所示。
顺便提一下,这些角色完全可以自定义;可以把它们叫做‘Planning’和‘Engineering’,就如同叫‘fmeuser’和‘fmeauthor’一样。 资源标签项中配置了每个角色的可用资源,资源标签项如下图所示:
![]() 注意:‘fmeuser’角色能访问大多数的服务和构件,但是这些应用都没有从FME
Server的用户界面中分离出来,这对终端用户来说是很典型的,不过这些完全可以定制。
更新的服务
对于外行人来说,服务是一个在客户端与服务器之间通信的工具。也许可以类比成烹饪食谱,说明如何处理各个部分和描述各种形态。
![]() FME Server包含一组默认的服务,大多数用户都可以使用这些服务,包括数据下载、数据上传、数据流、WMS/WFS分发和KML网络链接服务。除此之外,你还可以创建自己的服务。 服务是FME Server推崇的一系列重要功能的关键,实际上,我们对FME2010做了很多有用的更新。包括: ? 所有的web服务现在都支持HTML、XML和JSON的响应 ? 一个使上传文件更加容易的新上传服务 ? 能够在Workbench中设置服务参数 ? 在数据下载和任务提交服务中使用邮件认证 ? 任务提交服务中邮件通知功能(数据下载服务中已经具备)
对服务参数(如KML网络链接中的刷新间隔时间)的设置是非常重要的,因为这可以使工作空间的创建者配置这些参数(使用发布向导),而无需不了解细节的终端用户在使用的时候对其进行设置。 Web服务的响应是一个新参数,将在下面介绍。
API
首先我想重复一下Michael Weisman最新邮件中关于数据的一大段话。 “在FME Server的支持团队中,我们发现以FME Server作为平台并在此基础上进行应用程序开发是非常普遍的,而不仅仅是直接去使用已有的功能。在FME Server 2010的新功能中,其中有一项可能不太被关注,那就是对FME Server web服务API的改进。” 所以,换句话说,作者能够创建工作空间,并且可以通过一个特定的API(程序接口)在FME Server上运行它们。当你编写自己的程序来解析FME Server的响应时,能够得到转换状态、结果、任务ID等等,这也许有点复杂,就像Michael所说的那样:“……以前你可能在手工分析一个HTML的响应,显然这不是一件好差事。现在你可以在HTTP请求中添加一个简单的参数”opt_responseformat=json”,这样就能够简单方便地获得一个JSON格式的响应,其中包含了自定义应用程序的全部需要信息。” 事实上,你能这样应用该参数——“?opt_responseformat=xxxx”,其中xxxx可以是HTML、XML或JSON中的一个,这表明可以得到不同的响应表达格式。一般性改进 除了这些重大部分的改进,还有其他一些细节部分的改进,其中主要的如下: ? 为FME引擎和服务提供一个可配置的备用FME Server核心部分 ? 取消正在执行的任务(以前我们只能取消队列里排队的任务) ? Informatica和Datastage在FME Server中新的整合 ? 支持64位SSIS ? OGC的WFS和WFM现在支持KML ? 支持AIX操作系统,就如支持Unix、Linux和windows一样 ? 支持Oracle WebLogic作为服务器
我们知道,安装备用服务器程序对FME Server消费者来说是很重要的。备用就意味着当其中一个停止工作后,应用程序能够自动跳转到另一个服务器或网络中,而不影响正常使用。FME Server 2010新的备用机制如下: ? 服务备用:当首选服务器宕机后,服务会自动跳转到备用服务器 ? 主机备用:当首先服务器宕机后,自动跳转到两个中的另一个主机服务器,该主机服务器是为了实现监控、排队功能
当然,FME 2009已经拥有了引擎的容错功能,所以出错的引擎将会自动重启,并且任何丢失的任务都会自动重新提交。 随着适当的分布式环境(服务器和引擎分离)和数据库产品拥有自己的备份系统,我们在FME Server安装过程中实现了停机时间最小化。 关于如何安装备用FME Server,请参看FME Server管理员指南。
我希望这篇文章能够对FME Server用户和潜在用户有所帮助。 |
|
|