默认头像
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
阅读:4017回复:0

FME 2010专刊:FME Server

楼主#
更多 发布于:2011-08-24 23:31

译者:一枝独秀  

仔细想想,其实运行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类型,如下图所示:

FME 2010专刊:FME Server(一) - peri=
在下面的例子中,我简单创建了一个包含文件名称的要素,该名称指向一个叫做filecopy_source_dataset的属性里,如下所示:

FME 2010专刊:FME Server(一) - peri=
然后我把该工作空间发布到Sever上,点击运行(run)按钮,如下图所示:
FME 2010专刊:FME Server(一) - peri=
视频之类的文件也可以用这样的方式分发,下图就是一个复制mp4视频文件并流转到浏览器中的例子:
FME 2010专刊:FME Server(一) - peri=
 

当然,可以使用其他的方式来代替Server中的“运行”按钮,只要访问发布的这个URL地址即可,比如可以在自定义web页面或表格中、在E-mail中、或在PDF文件中添加一个超链接等等。

 

FME Server 的安全性

FME Server 2010最大的也是最重要的改进是在安全性方面,目前包含的一些关键构件包括:

?  全新的认证和授权框架

?  使用web界面管理用户、角色和相关资源

?  所有服务都支持SSL(加密的HTTPS通信)

?  使用JAAS插件框架对自定义模块进行认证扩展

对于一般用户或工作空间的创建者(不仅是系统管理员)来说,与安全相关的功能并不常用,但是为不同用户、不同角色定义不同的安全级别是非常有必要的,而且这些工作都可以在一个图形化的界面中进行操作。

以下是FME Server管理页面中的安全标签项,这里展示了用户列表以及每个用户所属的角色。如下图左所示:

FME 2010专刊:FME Server(一) - peri=               FME 2010专刊:FME Server(一) - peri=
这里定义了不同的角色,如上图右所示。
顺便提一下,这些角色完全可以自定义;可以把它们叫做‘Planning’和‘Engineering’,就如同叫‘fmeuser’和‘fmeauthor’一样。
资源标签项中配置了每个角色的可用资源,资源标签项如下图所示:
FME 2010专刊:FME Server(一) - peri=
注意:‘fmeuser’角色能访问大多数的服务和构件,但是这些应用都没有从FME Server的用户界面中分离出来,这对终端用户来说是很典型的,不过这些完全可以定制。
更新的服务
对于外行人来说,服务是一个在客户端与服务器之间通信的工具。也许可以类比成烹饪食谱,说明如何处理各个部分和描述各种形态。
FME 2010专刊:FME Server(一) - peri=
 

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用户和潜在用户有所帮助。

喜欢0 评分0
GIS麦田守望者,期待与您交流。
默认头像

返回顶部