gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
阅读:3759回复:0

FME 2010专刊:FME Server

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

返回顶部