解释Server object
来源:互联网 发布:免费sd卡误删数据恢复 编辑:程序博客网 时间:2024/06/08 01:39
Server Objects
server对象是一个在SOC的一个进程中的一个“粗粒度”的组件。主要有这么几个:
1、esriCarto.MapServer
2、esriLocation.GeocodeServer
3、esriGeodatabase.GeodataServer
4、esriGlobeCore.GlobeServer
MapServer对象提供了访问一个map文件和在地图上进行查询和绘图的方法。GeocodeServer对象提供了访问一个address locator和进行与geocode有关操作的方法。GeodataServer提供了访问一个geodatabase和进行有关Geodatabase操作的方法。GlobeServer对象提供了访问Globe文档和展示Globe的方法。以上这些“粗粒度”的对象都使用Server端“细粒度”的ArcObjects进行操作。应用程序可以使用server object里的高级别的“粗粒度”的方法。也可以使用“细粒度”的ArcObjects对象。
不像ArcObjects组件那样,一个server object可以被GIS Server管理员预先配置。在客户端程序连接GIS Server之前,GIS Server管理可以通过Arccatolog对server object的属性进行设置。当server object被预先配置时,管理员必须指定一些配置属性,比如是否是池化。Pooling的状态决定了一个应用程序使用server object的类型。
Getting Server objects from the Server
通过向server请求得到一个server context,然后从server context中得到server object。可以把server context看成是一个进程,被server管理着,而一个server object就在里面运行。你的应用程序通过操纵server object的context来维持server object的生命。所以当我们用完server object以后要通过释放server context来释放server object。
就和前面所说的一样,开发人员可以通过server object来得到与它相关的对象,比如,通过MapServer可以得到Map和Layer对象。这些对象和ArcGIS Desktop还有ArcGIS Engine开发中的对象一样,只不过它是驻留在server端的。
一定要注意,只有当server context释放以后,其他的应用程序才能使用这个server object。如果你的代码里面没有包含这个释放语句的话,server context的释放就得等到回收器工作以后才能得到释放。
Getting a Server Object Extension
当你使用一个server object时,你可以得到它所支持的扩展的方法。IServerObjectExtensionManager接口有很多方法就是用来得到这些扩展方法的。这些扩展方法都是随着ArcGIS Server的安装而装上去的随拿随用的,也可以是开发人员自定义的。
Managing Server Object Lifetime
管理server object的生存周期也是使用server object的很重要的一个方面。就像先前所说的那样。Server object的生存是在server context里面的,可以通过CreateServerContext()函数得到server context,进而得到server object。
你对server object操控时间的长短也就意味着server object和它所联系着的对象的生存期的长短。当你使用ReleaseContext()函数来释放server context以后,你就再也不能使用server object以及从server context对象得到的其他对象了。当一个server object的context释放以后,pooled和non-pooled状态将决定在context身上所发生的事情。下面这幅图说明的是pooled情况:
1、客户端程序连接SOM并且请求一个server object
2、SOM给客户端返回一个在池中可以使用的一个server object的代理对象
3、客户端通过调用这个代理对象来和server object工作
4、当客户端完成与server object的工作以后就释放它。释放以后它又返回到池中被另一些客户端使用。
下面这是non-pooled情况:
1、客户端程序连接SOM并且请求一个server object
2、SOM创建一个新的server object的实例并且把这个server object的代理对象返回给客户端。
3、客户端通过调用这个代理对象来和server object工作
4、当客户端完成与server object的工作以后就释放它。Server object被释放以后,它的生命也就结束了。SOM将会重新创建一个新的server object来给随后的请求使用。
关于如何管理一个应用程序的状态,另外有篇文章会说到
参考资料:几乎全是从ESRI Develop Help中的Programming with server objects这节翻译过来的。
- 解释Server object
- List<? extends object> 解释
- Flash-Object的详细解释
- for(Object obj : objs) 解释
- 有关Server.Mappath解释
- Server.MapPath解释
- 有关Server.Mappath解释
- server.MapPath(path) 解释
- Flash OBJECT和EMBED标签参数解释
- Object类的解释(equals,hashcode)
- java format(String format, Object... args) 解释
- Object类wait() 与 notify() 简单解释
- Object-C strong和weak的解释
- 解释:xcode object-c 中atomic、nonatomic
- 多个Java object 概念简单解释
- fastjson解释json和object问题
- Server-Side Object Tag Syntax
- kinetic-swift---kinetic object server
- JavaScript表单验证是否为中文
- Nero 9官方正版下载(自带正版序列号)-最好的中文免费刻录软件
- JavaScript屏蔽
- 【转】如何在Cygwin下启动sshd(ssh server)
- Servlet 介绍 以及Servlet生命周期(详细)
- 解释Server object
- [C#] 如何有效的使用C#读取文件
- Give me some sunshine
- 我的博客开通了,8月1号开始写下我学习c#的经历
- DELPHI中鼠标的各种操作
- 堆和栈的区别——给初学者
- sql server2005初识---卸载、安装、连接
- 5.1 Coordinate spaces in the graphics pipeline
- 资料