MapGuide应用最佳实践--采用托管(Managed)资源还是非托管(Unmanaged)资源

简介:


我们在介绍MapGuide Studio加载数据时讲过有两种数据加载方式,Load Procedure和 Data Connection, 这两种方式有什么区别呢?这和托管资源或者非托管资源有什么关系么?这篇文章中我们就来阐述这个概念。

 

托管资源(Managed)是指已经被上传到MapGuide服务器的资源库中的文件资源。也就是说这些资源一般都是文件型的数据,比如SDF文件,SHP文件等等。他们可以通过在MapGuide Studio中使用Load Procedure的方式上传到MapGuide Server的资源库中。

比如,我们通过Load Procedure上传一个shp文件,如图

image

看一下在MapGuide Server中资源的存储情况如下, 在C:\Program Files\Autodesk\MapGuideEnterprise2010\Server\Repositories\Library\DataFiles目录下能找到你上传的资源文件,不过SHP格式已经转换成了SDF格式。

image

这种驻留在MapGuide 服务器的资源库中的资料即为托管(Managed)资源. 对应托管资源,你可以通过创建Package(*。mgp)的方式把资源打包,并传递给别人或者到其他MapGuide服务器上。关于打包问题,可以参考以前的文章--MapGuide数据包管理。

 

那什么是非托管资源呢?非托管资源驻留在普通文件系统中,MapGuide通过文件名引用这些资源。我们可以在MapGuide Studio中通过Data Connection的方式连接到非托管资源。连接到非托管资源,首先要在Site Administrator中创建一个Alias name,指向真正存放SHP文件的目录。这里可以支持网络共享目录。

image

然后在MapGuide Studio中通过Data Connection,选择适当的Provider即可连接到非托管资源。如图

image

注意到对应shp的Provider,我们可以选择连接到一个文件或者连接到一个目录。

对应非托管资源在打包时,这些资源不会打入到数据包中,你还需要把必要的数据文件也一般发生给别人,方便他能建立好这个alias name才行。

 

下面讨论一下托管资源和非托管资源的选择方法。基本上采用托管资源和非托管资源,在性能上影响不大。如果你的数据很少更新,那么可以选择托管资源,在给客户部署时,直接把mpg文件发过去加载就可以了。

如果你的数据需要经常更新,并且使用的还可能是除SDF之外的其他格式,比如SHP。这时候可以采用非托管资源方式。如果需要对资源数据进行更新,只要把文件覆盖即可,MapGuide会自动检测到资源的更新,而不用重新上传。在实际项目应用中,这中方式无疑有很大的优势。在运用Unmanaged资源方式时,为提高性能也有以下两点需要注意:

1. 在使用SHP Provider时,用使用目录方式,而最好是一个一个的链接到具体文件上。因为如果使用目录方式,当目录中的文件很多时,会造成性能的低下。

2. 尽量不要使用网络共享目录,尤其是网络情况不好的场合。MapGuide Alias Name虽然支持网络共享目录,当如果网络状况不好,还是会引起性能问题。

 

再引申一点,好多项目需要在Map 3D中对数据进行编辑,同时又要把数据通过MapGuide发布出来。怎么才能方便的保持数据的更新呢?非托管资源就是一种选择。我们可以在Map 3D中和MapGuide中同事通过FDO Provider连接到同一份资源文件,这样在Map3D中对数据进行的更改就能及时反映到MapGuide中了,是不是很酷?

image

 

好了,今天我们讲了托管资源和非托管资源的概念和他们的应用场景,希望你能在今后的项目实践中应用这一特性,达到更好的应用效果。先到这儿,您有任何问题可以下面评论,或者到MGDN论坛讨论。

峻祁连(Daniel Du)

作者: 峻祁连
邮箱:junqilian@163.com 
出处: http://junqilian.cnblogs.com 
转载请保留此信息。



本文转自峻祁连. Moving to Cloud/Mobile博客园博客,原文链接:http://www.cnblogs.com/junqilian/archive/2009/12/17/1626629.html ,如需转载请自行联系原作者
相关文章
|
25天前
|
消息中间件 Kubernetes Kafka
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
18 0
|
JSON Kubernetes 前端开发
openshift 创建一个Serverless应用程序
openshift 创建一个Serverless应用程序
openshift 创建一个Serverless应用程序
|
开发者
弹性 Web 托管修改运行模式 | 学习笔记
快速学习弹性 Web 托管修改运行模式
66 0
|
Kubernetes Cloud Native 容器
【云原生 | 从零开始学Kubernetes】八、命名空间资源配额以及标签
namespace 是命名空间,里面有很多资源,那么我们可以对命名空间资源做个限制,防止该命名空间部署的资源超过限制。
153 0
|
存储 JSON Kubernetes
Kubernetes资源清单篇:如何创建资源?
本文讲解的是Kubernetes中的最为重要的一节—— 资源清单 ,我们想要在Kubernetes中部署Pod、Service等资源对象,都需要通过资源清单的方式来部署,无论是通过命令 kubectl ,还是可视化控制台,都是离不开资源清单的定义,本文重点讲述资源清单如何定义、如何创建及使用。
196 0
Kubernetes资源清单篇:如何创建资源?
|
Kubernetes 网络协议 前端开发
使用 C# 开发 Kubernetes 组件,获取集群资源信息
使用 C# 开发 Kubernetes 组件,获取集群资源信息
248 0
使用 C# 开发 Kubernetes 组件,获取集群资源信息
|
Kubernetes Cloud Native 算法
CNCF 沙箱项目 OCM Placement 多集群调度指南
在这篇文章中,将介绍 Placement 如何选择到所需的集群,Placement 可以提供的调度功能,以及一些场景下的最佳实践,使用者可以参考示例来编写符合自己要求的 Placement。其他一些高级调度功能,如支持污点 (taints) 和容忍 (tolerations),以及拓扑选择 (spread),正在 OCM 社区讨论中。
|
监控 安全 数据可视化
理解 Serverless:构建全服务应用程序的技巧和资源
  本文要点   Serverless 不仅仅是功能即服务(FaaS)。不要担心供应商锁定;接受供应商通过事件集成来提供的功能。开源工具有助于简化复杂应用程序的构建。使用基础设施即代码(Infrastructure as Code,IaC)的解决方案(如 CloudFormation)来定义 Serverless 应用程序并简化 DevOps。强大的监控解决方案可以通过精确的成本管理和评估工具提供函数和集成性能的可视化。   尽管在过去几年中, Serverless 技术已经得到了迅速普及,但是对于 Serverless 解决方案仍然存在许多误解和担忧。供应商锁定、工具、成本管理、冷启动、
167 0
|
弹性计算 Kubernetes 网络协议
非容器应用与K8s工作负载的服务网格化实践-2 基于ASM的Workload Entry实践
Istio从1.6版本开始在流量管理中引入了新的资源类型Workload Entry,用以将虚拟机(VM)或者裸金属(bare metal)进行抽象,使其在网格化后作为与Kubernetes中的POD同等重要的负载,具备流量管理、安全管理、可视化等能力。通过WorkloadEntry可以简化虚拟机/裸金属的网格化配置过程。
2318 0
非容器应用与K8s工作负载的服务网格化实践-2 基于ASM的Workload Entry实践