免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 3786|回复: 4
收起左侧

[资料] ArcGIS Engine的license部署策略

[复制链接]

46

主题

7

铜板

2

好友

工程师

地信网是中国最好的地质地信类网

Rank: 7Rank: 7Rank: 7

积分
423
发表于 2010-3-4 00:17 | 显示全部楼层 |阅读模式
ArcGIS Engine的license部署策略
每一个用ArcObjects开发的独立的应用程序都需要用一个合适的license来初始化自己,使得它能够在各个分发的机子上成功的运行。license的配置必须在应用程序开始的时候完成。
一、 License 初始化
license的初始化必须在应用程序开始的时候执行,也就是说在所有的ArcObjects开始使用之前。除了下面两种情况,应用程序都需要配置一个License:
如果应用程序不是一个独立的可执行文件,换句话说,如果应用程序是一个dll程序。
如果应用程序是一个ArcMap或者是第三方产品的扩展模块。
有两种license文件可以用来考虑初始化一个应用程序:产品licenses和扩展licenses。这些licenses可以是Engine Single Use,Desktop Single Use或者是Desktop Concurrent licenses。
Engine Single License是提供到达ArcGIS Engine或者是带Geodatabase编辑功能的ArcGIS Engine。
Desktop Concurrent licenses提供到达桌面的concurrent ArcView,ArcEditor和ArcInfo。
Desktop Single Use licenses和Desktop Concurrent licenses使用相同的技术,提供到达Single Use ArcView,ArcEditor和ArcInfo。它可以和Desktop Concurrent licenses相同的对待。
二、对于不使用 ArcGIS Extension 应用程序的考虑
一旦一个应用程序用一个license初始化以后,它不能被重新初始化;一个应用程序在它的生命周期内只能用一种license初始化。当用一个license初始化应用程序时,下面几个情况需要考虑:
应用程序能被运行的产品license的类型。例如,一个企业级的带geodatabase编辑功能的应用程序在ArcGIS Engine license或者ArcView license就不能运行。它只能够在用ArcGIS Engine with Geodatabase Editing license,ArcEditor或者ArcInfo license情况下才能运行。
对于应用程序可用的产品license的类型。例如,一个应用程序在ArcGIS Engine license下可以被运行,当然,在ArcView,ArcEditor和ArcInfo license情况下也可以运行。但是,你可能不想被这样的应用程序下消耗掉一个ArcInfo的license。
三、对于使用ArcGIS Extension应用程序的考虑
当一个应用程序用一个的产品license初始化,对license服务器的连接就会产生。后序的对于扩张模块的检入检出都是针对于这个相同的license服务器。
如果一个应用程序是用Desktop Concurrent License初始化的话,应用程序后来就只能到达Desktop Concurrent license服务器和它的扩展licenses。
如果一个应用程序是用Desktop Single Use license初始化的话,应用程序后来就只能到达Single Use license服务器和它的扩展licenses
如果一个应用程序是用Engine Single Use license初始化的话,应用程序后来就只能到达Engine Single Use扩展的licenses。
在初始化之前执行对license服务器(desktop Concurrent或者Single Use)和Engine Single Use的查询是可能的,这样可以知道你需要的licenses是否可用。如果使用Engine Single Use license就能满足你所需要的所有的licenses,那么推荐你使用它而优先于Desktop Concurrent和Desktop Single Use licenses。这样就意味着你不会占用可desktop concurrent licenses的个数。
下面的extension是Engine Single Use licenses可用的:
3D Analyst
Spatial Analyst
Street Map
对于使用ArcGIS Controls开发应用程序,表格1描述了每一个控件运行时的license需要。
表格1

四、Engine Single Use的designer扩展
Engine Single Use Designer扩展在使用ArcObjects开发应用程序的时候是必要的,这个扩展模块和其他扩展模块的使用是不一样的:
这个扩展模块仅仅在设计和开发应用程序的时候需要,它从来不会在运行的时候需要。
这个扩展模块不需要检出,它会自动的为你检出。
对于使用ArcGIS Controls开发应用程序,表格2描述了每一个控件在开发时的license需求。
表格2

五、用license初始化应用程序
用license初始化一个应用程序必须按照下面的步骤:
检查产品license是否可用
检查扩展license是否可用(如果需要)
用产品license初始化应用程序
如果需要,执行扩展的检出和检入
关闭应用程序
AoInitialize类和IAoInitialize接口是提供给开发人员进行license进行初始化的。
六、检查产品license的可用性
产品license的选择决定了应用程序可以实现的功能。一旦产品license被初始化,在它的生命周期内是不能更改的。
如果你需要的产品license不可用,你可以选择用更高的产品license来初始化。
如果没有可用的license,应用程序应该通知使用人员,允许使用人员去解决这个问题或者退出应用程序。
七、检查扩展 license 的可用性
如果应用程序用到了扩展模块的功能,你就需要在应用程序的初始化之前检查扩展模块license的可用性。检查扩展模块的license必须和应用程序最终初始化的产品license的协调进行,因为它们是对应的。
如果应用程序需要的扩展license是不可用的,应用程序应该通知用户,并退出应用程序。
如果扩展模块的功能对于应用程序的运行不是必须的,当扩展模块license是不可用时,应用程序应该使依赖于扩展模块的功能不能使用。
八、初始化应用程序
当我们检查需要的产品license和扩展license都是可用时,应用程序应该用产品的license来初始化。一旦初始化以后,在生命周期内将不能重新被初始化。
九、检出,检入扩展模块
当应用程序需要扩展模块的功能的时候,扩展模块可以被检出。一旦应用程序完成功能以后可以检入。或者扩展模块可用在应用程序初始化的时候直接检出,在应用程序关闭时检入。扩展模块的检入和检出的方法依赖于应用程序初始化的产品license的类型。
如果应用程序用Engine Single Use licenses初始化,被应用程序使用的任何扩展模块也将是Engine Single Use的,因此任何扩展模块都可以在应用程序初始化后直接检出,在应用程序关闭时检入。
如果应用程序是用license服务器初始化的,而且扩展模块对于应用程序的正确运行是必须的话,那么扩展模块可以在应用程序初始化后直接检出,在应用程序关闭时检入。
如果应用程序是用license服务器初始化的,扩展模块的功能对于应用程序是可选的话,那么扩展模块可以在应用程序初始化后直接检出,也可以在扩展模块的功能需要的时候检出。当然当扩展模块检入的时候,相关扩展模块的功能将不能用。
十、关闭
在应用程序关闭之前,AOInitialize对象必须被关闭。这样能保证被使用的ESRI libraries被卸下。
十一、 License 初始化失败
如果一个产品和扩展模块检出时失败,license的状态会表明失败的原因。License检出失败有下面几个原因:
产品没有得到许可
license不可用,因为它正在被使用(仅仅指得是Desktop Concurrent Licenses)
不可预制的失败由于系统管理的原因
license已经被初始化。一个应用程序在它的生命周期之内不能更改license的初始化

3

主题

77

铜板

0

好友

助理工程师

Rank: 5Rank: 5

积分
215
发表于 2010-3-23 14:51 | 显示全部楼层
[s:118]  [s:118]  [s:118]  [s:118]  [s:118]  [s:118]

0

主题

0

铜板

0

好友

技术员

Rank: 3Rank: 3

积分
43
发表于 2010-4-20 19:41 | 显示全部楼层
[s:195][s:195][s:195][s:195][s:195][s:195][s:195]

0

主题

2230

铜板

15

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2033
发表于 2021-6-18 08:07 | 显示全部楼层
楼主辛苦!
回复

使用道具 举报

1

主题

3781

铜板

4

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
788
发表于 2021-6-19 12:05 | 显示全部楼层
6666666666
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表