全 文 :第 wu卷 增刊 t
u s s y年 | 月
林 业 科 学
≥≤∞× ≥∂ ∞ ≥≤∞
∂²¯1wu o≥³qt
≥ ³¨qou s s y
基于 • ¥¨服务技术实现林业空间信息发布服务
刘峻明 朱德海 张晓东
k中国农业大学信息与电气工程学院 北京 tsss{vl
摘 要 } 从设计和实现角度出发 o提出基于 • ¥¨服务技术的林业空间信息发布系统的软件框架 o讨论实现林业空
间信息发布服务的关键技术 o重点对客户状态管理 !• ¥¨服务方法复杂度 !• ¥¨服务的异步访问等问题进行讨论 ∀
列出林业空间信息发布 • ¥¨服务的主要功能 o包括元数据检索 !空间信息查询 !地图显示 !空间数据下载 !空间数据
管理等 ∀基于本文思想的林业空间信息发布 • ¥¨服务组件原型已经在 q∞×平台下得以实现 o效果良好 ∀
关键词 } • ¥¨服务 ~林业空间信息 ~信息发布
中图分类号 }×°vsu1t 文献标识码 } 文章编号 }tsst p zw{{kussyl增 t p sswt p sw
收稿日期 }ussx p sy p uw ∀
基金项目 }国家 {yv课题/数字林业平台技术研究与应用0kussvus|sysl ∀
Ιµ πλεµεντατιον οφ Φορεστρψ ΣπατιαλΙνφορµατιον Ισσυανχε Σερϖιχε
Βασεδ ον Ωεβ Σερϖιχε Τεχηνιθυεσ
¬∏∏±°¬±ª «∏⁄¨ «¤¬ «¤±ª÷¬¤²§²±ª
kΧολλεγε οφ Ινφορµατιον ανδ Ελεχτριχαλ Ενγινεερινγ o Χηινα Αγριχυλτυραλ Υνιϖερσιτψ Βειϕινγ tsss{vl
Αβστραχτ } ƒ²µ¨¶·µ¼¶³¤·¬¤¯ ¬±©²µ°¤·¬²±¬¶¶∏¤±¦¨ kƒ≥l¬¶·«¨ ¬°³²µ·¤±·¦²°³²±¨ ±·²©§¬ª¬·¤¯ ©²µ¨¶·µ¼³µ²¨¦·q±·«¬¶³¤³¨µo·«¨
¶²©·º¤µ¨ ©µ¤°¨ º²µ®²©·«¨ ƒ≥¶¼¶·¨° ¥¤¶¨§²± º¨ ¥¶¨µ√¬¦¨ ·¨¦«±¬´∏¨¶º¤¶¬±·µ²§∏¦¨§¤±§·«¨ ®¨ ¼ ³²¬±·¶²©§¨√¨ ²¯³¬±ª·«¨ ƒ≥
• ¥¨¶¨µ√¬¦¨ º¨ µ¨ §¬¶¦∏¶¶¨§o¬±¦¯∏§¬±ª¦¯¬¨±·¶·¤·¨ °¤±¤ª¨ °¨ ±·o·«¨ ¦²°³¯ ¬¨¬·¼ ²© • ¥¨¶¨µ√¬¦¨ °¨ ·«²§¤±§·«¨ ¤¶¼±¦«µ²±²∏¶
¬¨¨¦∏·¬²±²© • ¥¨ ¶¨µ√¬¦¨ q ׫¨ ©∏±¦·¬²±¶²© • ¥¨ ¶¨µ√¬¦¨ ƒ≥ º¨ µ¨ ¤¯¶² §¬¶¦∏¶¶¨§¤±§ §¬√¬§¨§¬±·² ¶∏¥2¶¨µ√¬¦¨¶} °¨ ·¤§¤·¤
¶¨¤µ¤«¬±ªo¶³¤·¬¤¯ ¬±©²µ°¤·¬²±¬±´ ∏¬µ¬±ªo °¤³§¬¶³¯¤¼¬±ªo¶³¤·¬¤¯ §¤·¤ °¤±¤ª¨ °¨ ±·¤±§¶³¤·¬¤¯ §¤·¤ §²º±¯²¤§¬±ª ·¨¦q • ¥¨
¶¨µ√¬¦¨ ³µ²·²·¼³¨ ©²µƒ≥ º¤¶§¨√¨ ²¯³¨ §∏±§¨µq∞× ³¯¤·©²µ°o¤±§·«¨ ³¨µ©²µ°¤±¦¨ ·¨¶·¶«²º¨ §¤ª²²§ ©¨©¬¦¬¨±¦¼q
Κεψ ωορδσ} • ¥¨¶¨µ√¬¦¨ ~©²µ¨¶·µ¼¶³¤·¬¤¯ ¬±©²µ°¤·¬²±~¬±©²µ°¤·¬²±¬¶¶∏¤±¦¨
数字林业基础平台技术研究的主要目标是利用分布式计算技术开发网络化的组件和服务 o实现系统的
通用性 !结构的开放性 !功能的可扩展性和数据的共享 ~并以此为基础 o开发具有丰富接口的数字林业基础平
台通用软件系统开发平台 ~通过这个平台集成诸如基于 • ¥¨≥的森林资源信息系统 !退耕还林管理系统和
速生丰产林管理系统等宏观数字林业技术应用系统开发环境 o整合 v≥和 • ¥¨服务技术 o实现森林资源信息
快速传递和充分利用k王静等 oussv ~李希胜 oussvl ∀空间信息发布系统就是为整个数字林业基础平台及其
各个子系统提供空间信息发布服务和数据共享 o从而体现整个数字林业基础平台的通用性 !开放性和可扩展
性 ∀在林业信息化建设过程中 o许多学者对使用 ≤
!⁄≤ 等分布式计算技术来实现远程访问地理空间
数据进行了深入研究k冯仲科等 ousss ~吴保国等 ousstl ∀在 • ¥¨服务概念提出以前 o≤
!⁄≤ 是构建
分布式计算系统的主要技术 o也是构建 • ¥¨≥的主要技术 ∀方裕等kusstl提出新一代的 ≥软件应该具备
支持数字地球k区域 !城市l的能力 o≤
!⁄≤ 由于在互操作性 !可扩展性等方面受到自身因素制约而难
当此任 ∀在 usss年 o• ¥¨服务概念被提出 o它提供了基于标准的 ÷ 消息机制访问部署在网络上服务的能
力 o并具有跨操作系统平台 !跨语言平台等特点 o因此 o它也成为构建网格计算环境的基石 ∀有学者也在研究
将 • ¥¨服务技术运用到分布式计算以及数字林业研究课题中 o提出分布式环境下基 • ¥¨服务数据节点集
群 !互操作方案并构建上层应用组件及数字林业基础建设中应用 • ¥¨服务技术的构想k江泳等 oussw ~范军
等 ousswl ∀本文提出基于 • ¥¨服务技术构建林业空间信息发布系统的软件框架 o着重阐述基于 • ¥¨服务技
术来构建林业空间信息发布系统的关键技术 ∀
t 林业空间信息发布系统软件框架
林业空间信息发布系统运行在基于 ×≤°Π°协议的 ±·¨µ±¨·Π±·µ¤±¨·上 o包括办公局域网 !政府专网和公众
图 t 林业空间信息发布系统软件框架图
ƒ¬ªqt ƒµ¤° §¨¬¤ªµ¤° ²©©²µ¨¶·µ¼¬±©²µ°¤·¬²±¬¶¶∏¤±¦¨ ¶¼¶·¨° ¶²©·º¤µ¨
网等 ∀ • ¥¨服务为该系统提供数据业务
和地图业务的核心服务 ∀图 t 是基于
• ¥¨服务技术的林业空间信息发布系统
的简单框架图 ∀
由图 t可以看出 o整个系统可分为 v
层 }数据库层 !中间件层和客户端 ∀数据
库中存贮所有需要进行发布的数据信息 o
包括矢量数据 !影像数据 !林业专题数据
等 o以及描述这些数据的元数据信息 ∀为
了实现高效安全的多用户并发访问机制 o
这些数据通常存贮在大型数据库管理系
统中 o如 µ¤¦¯¨ ∀中间件层作为林业空间
信息发布系统前端与数据库之间的桥梁 o
向前端应用系统提供统一的空间数据访
问和管理的接口 o对前端和数据库之间的
数据 Π进行优化均衡 o提供通用的空间
数据管理和查询的基础工具 ∀它封装 ≥功能部件 !数据库访问部件等 o可以分布到多个服务器中 o使用
• ¥¨服务技术通过 ××° !≥°等协议在网络中实现通讯 ∀客户端则包括林业空间信息发布系统的数据管
理客户端和享受数据发布服务的所有用户 o如政府 !企事业机构 !公众等 o用户通过 ±·¨µ±¨·浏览器访问系统 o
如 ∞ !¨·¶¦¤³¨ ∀
u 实现林业空间信息发布 • ¥¨服务的关键技术
2 .1 客户会话状态管理
××°协议是 • ¥¨系统的基础通讯协议 o是/无状态0的 o也就是说服务器不会保存客户的状态信息 o客
户每次访问对于服务器端来说都是/新0的 ∀在 ××°协议基础上定义的 ≥°协议是 • ¥¨服务的主要信息
传输协议 o它完全继承了 ××°的/无状态0特性 ∀ /无状态0特性的重要优势是 }由于服务器端不保存客户的
状态信息 o使得它在处理客户访问请求时伸缩性较强 o比如同一客户的多次请求可以由不同服务器完成而无
须考虑状态的一致性问题 ~但在另一方面 o/无状态0特性也使得客户端在实现一些面向连接的功能时会遇到
困难 o比如用户访问某些具有安全要求的空间数据时 o需要登录 o通过认证 o而后才能访问数据 ∀如果服务器
端不保存客户状态 o就很难确定客户是否已经获得认证 ∀在林业空间信息发布系统中 o有许多数据是涉密数
据 o因此有必要对数据进行分类 o给不同类型的数据设定不同的安全级别和可访问对象 ∀另外 o从功能操作
的技术实现角度 o记录客户状态将为地图操作功能的实现带来方便 o比如按比例的地图缩放功能 o它是基于
当前地图的显示比例尺进行的 o这就要求服务器端能够保存当前地图的显示比例尺 ∀考虑到空间信息发布
系统中地图操作的重要性和频繁程度 o采用面向连接的设计思想 o实现客户状态保存和管理 ∀实现客户状态
保存的基本方法是使用 ≤²²®¬¨¶o它在服务器端生成并被传送到客户端 o在后续的客户端对服务器访问时
≤²²®¬¨会被嵌入 ×信息流送回服务器端 o以实现服务器端对客户端的认证 o从而实现用户会话状态的维
持 ∀现在主流的 • ¥¨开发技术 ≥°k王秋萍等 oussvl !≥° !°°等都支持 ≤²²®¬¨¶∀
q∞×框架为使用 ≤²²®¬¨¶来保存和管理客户状态提供了技术支撑 o把 • ¥¨≥¨ µ√¬¦¨ 类作为 q∞×框架体系
中所有用户定义的 • ¥¨服务类的基类 ∀ • ¥¨≥¨ µ√¬¦¨ 类包含了 ≥° q∞× 应用程序公共对象 ≥¨ ¶¶¬²± 和
³³¯¬¦¤·¬²±对象成员 ∀ ³³¯¬¦¤·¬²±对象提供一个存储数据的机制 o存储 • ¥¨应用程序中的所有代码都可以访
问的公共数据 o而 ≥¨ ¶¶¬²±对象允许针对每个客户端会话存储数据 ∀从 • ¥¨≥¨ µ√¬¦¨ 类派生出 ¤³≥¨ µ√¬¦¨ 类 o把
它作为林业空间信息发布系统的 • ¥¨服务类 o它继承 • ¥¨≥¨ µ√¬¦¨ 的特性 o可以访问 ≥¨ ¶¶¬²±和 ³³¯¬¦¤·¬²±对象
来实现状态管理 ∀根据 q∞× 的技术规范 o• ¥¨服务的公共访问方法使用 • ¥¨ ·¨«²§属性来修饰 o当
• ¥¨ ·¨«²§属性的 ∞±¤¥¯ ≥¨¨ ¶¶¬²±属性设置为·µ∏¨ 时 o存储在 ≥¨ ¶¶¬²±对象中的数据将会被保存 o在后续的访问
中可以使用 ≥¨ ¶¶¬²±对象中保存的数据 o从而达到保存状态 ∀例如 }
uw 林 业 科 学 wu卷
≈ • ¥¨ ·¨«²§k∞±¤¥¯ ≥¨¨ ¶¶¬²±·µ∏¨l
³∏¥¯¬¦¥²²¯ ²¤§¤³k¶·µ¬±ª °¤³¤°¨ l
¾
≤ ¤³ °¤³ ±¨ º ≤¤³~
°¤³q²¤§¤³k°¤³¤°¨ l ~
≥¨ ¶¶¬²±k/ °¤³0l °¤³~ΠΠ将地图保存到 ≥¨ ¶¶¬²±中
µ¨·∏µ±·µ∏¨ ~
À
≈ • ¥¨ ·¨«²§k∞±¤¥¯ ≥¨¨ ¶¶¬²±·µ∏¨l
³∏¥¯¬¦√²¬§²²°±kl
¾
≤ ¤³ °¤³ ≥¨ ¶¶¬²±k/ °¤³0l ~ΠΠ从 ≥¨ ¶¶¬²±获取保存的地图
°¤³q²²°±kl ~
À
2 .2 Ωεβ服务方法的复杂性
• ¥¨服务的调用过程与常规的 ¬¯¥!§¯¯ 和 ²¦¬等模块的调用过程不同 o常规模块调用时直接在本地内存
中定位并执行代码 o不需要经过网络 o而 • ¥¨服务的调用则需要通过网络来实现 ∀ • ¥¨服务的调用代价是
很大的 o中间要经过很多环节 o首先要将调用指令和参数封装成 ≥°消息 o然后要穿越防火墙 !路由器 !• ¥¨
服务器等 o最后才能到达 • ¥¨服务的宿主服务器 o宿主服务器将 ≥°消息解译 o然后执行 • ¥¨服务 o执行完
成后要按同样的路径将结果返回客户端 ∀因此 o在服务器上处理请求的过程其实只是众多环节中的一个 o网
络传输过程也会对 • ¥¨服务调用性能产生重要影响 ∀所以在设计时应当尽量减少网络传输次数和网络传
输量 o这对于空间信息发布系统总体性能来说是至关重要的 ∀
假设 ¤³≥¨ µ√¬¦¨ 提供一个 • ¥¨方法为 ≥¨ ·¤¼¨ µ∂¬¶¬¥¯ k¨¯ ¤¼¨ µ¬±§¨¬o√¬¶¬¥¯¬·¼l o用于设置一层的可见状态 ∀如
果要将一幅地图的 t ∗ x层设为可见状态 o那么可按如下方式来调用 }
©²µk¬±·¬ t ~¬ x ~¬n n l
¤³≥¨ µ√¬¦¨ q≥¨ ·¤¼¨ µ∂¬¶¬¥¯ k¨¬o·µ∏¨l ~
这段代码需要调用 ≥ ·¨¤¼¨ µ∂¬¶¬¥¯¨方法 x次 o也就是在网络上要进行 x个来回 ∀如果 ¤³≥¨ µ√¬¦¨ 提供
≥¨ ·¤¼¨ µ¶∂¬¶¬¥¯¨方法用于一次性设置多个图层的可见性 o它将封装在 t个字符串中的图层可见状态信息作为
参数 o那么可按如下方式调用 }
¶·µ¬±ª¶ / ¤¯¼¨ µt ti¯ ¤¼¨ µu ti¯ ¤¼¨ µv ti¯ ¤¼¨ µw ti¯ ¤¼¨ µx t0
¶¨µ√¬¦¨ q≥¨ ·¤¼¨ µ¶∂¬¶¬¥¯ k¨¶l ~
这段代码仅需进行 t个来回的调用过程即可 o从而极大地提高了效率 ∀
因此 o太简单的方法会导致客户端频繁访问服务器 ∀但并不是 • ¥¨服务方法的复杂程度越高越好 o复
杂度高 o程序执行时间延长 o返回的数据量也有可能增多 o客户端的等待时间也可能延长 o设计时必须在执行
效率 !数据传输量等指标上找到平衡 ∀
2 .3 同步方式还是异步方式执行
±·¨µ±¨·是松散连接的分布式系统 o且 • ¥¨服务的调用需要经过很多环节 o相对于本地调用来说 o• ¥¨服
务调用过程中任何一个环节都是很脆弱的 o很可能会出现问题 o比如网络线路中断或阻塞 !路由失败等 ∀对
于那些耗时较长的 • ¥¨服务方法来说 o即使是网络顺畅 o调用过程很顺利 o也会阻塞客户端线程 ∀为了提高
执行性能 o可考虑将 • ¥¨服务的方法以异步方式来实现 ∀异步执行 • ¥¨服务方法允许线程在返回线程池时
执行其他代码 o这样 o在线程数量有限的线程池中就可以多执行一个线程 o从而提高了系统的总体性能和可
伸缩性 ∀在执行如下操作的 • ¥¨服务方法时应该考虑采用异步方式实现 }tl与其他 • ¥¨服务进行通信的
方法 ~ul访问远程数据库的方法 ~vl执行网络 Π的方法 ~wl读取和写入大文件的方法 ∀
这些方法将大部分的时间花费在硬件执行上 o从而导致调用它们的线程发生堵塞 ∀如果异步方式执行
• ¥¨服务方法 o该线程即可被释放并转而执行其他代码 ∀对于林业空间信息发布系统来说 o许多操作会涉及
vw 增刊 t 刘峻明等 }基于 • ¥¨服务技术实现林业空间信息发布服务
大量的不同的数据 o因此一般不会在内存中缓存很多的数据 ∀比如遥感影像在入库后 o为了方便快速显示 o
会建立影像金字塔 o不同的金字塔塔层存放的是不同比例尺下基于原始数据重采样后的数据 o在对遥感影像
数据进行缩放显示操作时 o根据比例尺的变化每次提取的数据可能是完全不同的 o每次操作都会导致对磁盘
的直接访问 o这时 o可以考虑采用异步方法执行 ∀为了与服务器端进行通信 o需要在客户端生成 • ¥¨服务的
代理k陈旌等 oussxl ∀代理程序可以自行开发 o也可以直接使用 q∞×提供的工具生成 ∀在自动生成的程序
中 o不论 • ¥¨服务方法是否以异步方式执行 o客户端都能与它进行异步通信 ∀客户端生成的代理类中会同
时公开同步和异步调用的接口 ∀代理类包含
¨ ª¬±和 ∞±§方法 o用于与每个 • ¥¨服务方法进行异步通信 ∀
异步接口提供一个以
¨ ª¬±方法来调用 • ¥¨服务 o∞±§方法获取调用状态和结果 o也可以采用回调函数以事
件通知的方式来实现异步调用 ∀
v 林业空间信息发布 • ¥¨服务的主要功能
空间信息发布 • ¥¨服务实际上是一个具有二次开发能力的组件 o是林业信息发布系统的中间件 o它为
前端应用层提供服务 ∀可将它的功能划分成以下几个子服务 }tl元数据检索服务 空间信息发布服务提供给
用户访问空间数据库的能力 o为了方便用户检索数据 o需要建立元数据库 o将空间信息的元数据存入元数据
库中 o与空间信息统一向客户发布 ~ul空间信息查询服务 主要实现用户对空间数据进行查询操作的功能 o
可查询的数据包括空间数据本身和空间数据所携带的属性数据 o可以定义多种查询方式 o包括基于关键字段
的查询 !自定义表达式查询 !缓冲区查询等 ~vl地图显示服务 地图显示服务提供地图的放大 !缩小 !漫游 !区
域定位 !图层管理 !图层显示比例尺设置 !图层显示状态设置等地图显示功能 ~wl空间数据下载服务 下载服
务提供将数据库服务器中的空间数据下载到客户端的能力 o这部分功能需要有下载权限才能进行 o通常空间
数据量会很大 o下载服务会占用大量的带宽 ~xl空间数据管理服务 空间数据管理服务只针对具有足够权限
的数据管理人员 o主要实现对数据库中的空间数据进行远程管理 o包括编辑和更新元数据 !同步元数据和数
据信息 !建立空间索引 !建立影像金字塔 !定义专题地图等 ∀受到网络带宽的限制 o管理服务不包括数据的导
入 !更新等耗时且需要进行大量数据传输的操作功能 ∀
w 结论与讨论
本文从设计和实现角度出发 o介绍了基于 • ¥¨服务技术的林业空间信息发布系统的软件框架 o并讨论
了实现林业空间信息发布服务的关键技术 o重点对客户状态管理 !• ¥¨服务方法复杂度 !• ¥¨服务的异步访
问等问题进行了讨论 ∀安全也是 • ¥¨服务设计中很重要的内容 o有许多方法可以用来控制对 • ¥¨服务的访
问 o在 • ¥¨站点上采用的安全措施大多都可以应用到 • ¥¨服务上 ∀q∞×框架中 o默认方式下的 • ¥¨服务是
支持匿名访问的 o任何客户应用程序不需要提供身份验证信息就可以调用 • ¥¨服务 o但它也提供了密码验
证 !≤证书等安全措施来支持对 • ¥¨服务的安全控制 ∀笔者已在 q∞×平台下使用 ≤ f语言设计并开发出
林业空间信息发布 • ¥¨服务组件 o可以实现空间信息查询 !地图显示 !空间数据管理等功能 ∀
参 考 文 献
陈 旌 o周小暄 qussx q基于 ≥° q∞×的 • ¥¨服务代理服务器的设计与实现 q计算机系统应用 ok{l }yv p yy
方 裕 o周成虎 qusst q第四代 ≥软件研究 q中国图像图形学报 oyk|l }{tz p {uv
江 泳 o方 裕 qussw q基于 • ¥¨ ≥¨ µ√¬¦¨ 的空间数据共享平台 q地理与地理信息科学 ouskxl }t p x
范 军 o邵崇斌 o赵文英 qussw q数字林业基础建设中应用 • ¥¨服务技术的构想 q西北林学院学报 ot|kvl }tzt p tzw
冯仲科 o张晓勤 qusss q发展我国的数字林业体系 q北京林业大学学报 ouukxl }tsu p tsv
李希胜 qussv q/数字林业0建设的现状与思考 q森林工程 ot|ktl }tz p t{
王 静 o张百顺 qussv q/数字林业0建设的现状和思考 q长春大学学报 otvkul }ux p u{
王秋萍 o穆红军 o牛 斗 qussv q基于 ≥°的 • ∞
会话技术的应用研究 q北华大学学报 }自然科学版 owkwl }vys p vyv
吴保国 o林 政 qusst q基于 ≤ 的
Π≥模式系统对林业信息化建设的启示 q林业资源管理 okul }xt p xx
k责任编辑 于静娴 张君颖 石红青l
ww 林 业 科 学 wu卷