2009年3月19日星期四

ArcGIS Server Java ADF 案例教程 4

ADF是什么

说了半天的ADF,突然发现到底ADF是什么还一直没提。突然想到有人在网上恶搞了“卧槽泥马”源自《战国策》,居然还有报纸以此引经据典拽了一把酸文,捧腹之余顿感正本清源的重要。我们的ADF全称是ArcGIS Java Web Application Developer Framework,一般简称Java ADF,在这里我就直接称呼ADF了。从这个名字也可以看到ADF的实质,它是为了开发Web应用而生的一套开发框架,开发人员可以在ADF的基础上相对比较容易地开发出WebGIS应用。相比ArcGIS Server其它的客户端API,用ADF开发的应用功能最强大,对浏览器要求最低。

让我们从帮助文档里的一张图开始,先感性认识一下ADF包含的内容吧。虽然我看过不少描述ADF的图表,但是我认为,这张图,是最简介明了的。
图 1 ADF的组成部分

大概来讲,ADF主要是由一些JSF组件、实现GIS相关功能的Java类库、支持AJAX的JavaScript脚本库和一些帮助文档及例子的集合。

在图 1中,首先你需要把最下面的那些“Data Sources”理解成服务。不管是ArcGIS Server或者是ArcIMS等发布的服务都可以作为ADF的数据源。在这些服务之上,ADF内部通过不同的API(“Common Data Source API”)去使用这些服务,当然,这些API上层会有相应的类库(“Web ADF consolidation classes”)进行支持。在这之上就是与开发者关系最直接的ADF的“Web Controls”(Map、TOC等基本GIS功能)和“Task Framework”(完成比如查询、分析等定制的任务),事实上,我们可以把这两部分看成一个整体——Web组件。这些Web组件包含了JSF组件以及相应的AJAX操作所需的JavaScript脚本库(“Web ADF JavaScript”);它们都会在用户请求的时候被ADF通过一定的规则渲染成对应的DHTML后输出到浏览器。图 1的左上角就是浏览器端,事实上在浏览器中已经基本看不到ADF的影子了,因为用户看到的页面不过是一些HTML和JavaScript脚本的组合,页面会和服务器上的某些ADF对象进行交互,但是这对浏览器来说基本是透明的。

没有评论: