290 likes | 470 Views
GIScience 2000. Agent-based Mechanisms for Distributing Geographic Information Services on the Internet. By Ming-Hsiang Tsou 1 and Barbara P. Buttenfield 2 1 Geography Department, San Diego State University 2 Geography Department, University of Colorado.
E N D
GIScience 2000 Agent-based Mechanisms for Distributing Geographic Information Services on the Internet By Ming-Hsiang Tsou 1 and Barbara P. Buttenfield 2 1 Geography Department, San Diego State University 2 Geography Department, University of Colorado E-mail: mtsou@mail.sdsu.edu, babs@colorado.edu
Why Distribute GIServices? Globalize Information Access/Exchange Decentralize Database Management/Update Distribute Computing Processes The Network is the Computer
Problems in Distributing GIServices Temporary, technology-centered solutions: The lack of an intelligent architecture which can operate in new/unknown environments Focus on Data, not on GIS Processes: We need to distribute both GIS Processes and data objects across the networks.
Dynamic Construction (on the Internet) GIS user Solution: Dynamic Architecture for GIServices • User Scenario: • GIS Task • GIS node profile • Network performance GIS node Geodata object GIS component (program)
GIS user (Mike) Dynamic Construction (on the Internet) Build GIServices “on-the-fly” B User Scenario: Map Display [Colorado Roads] A GIS node C Geodata object GIS component
Agent-based Communication GIS Components (Programs) Geodata Objects Metadata Metadata • Agents • Info. finders/filters • Interpreters • Decision makers User-defined rules Knowledge bases Agent collaboration
Information Finder / Filter Choice - 1 Choice - 1 Choice - 1 Choice - 2 Choice - 2 Choice - 2 Choice - 3 Choice - 3 Choice - 3 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Choice - 550 Choice - 360 Choice - 230 Reasonable choice - A Information Finder ------------------------ Information Filter Reasonable choice - B Reasonable choice - C Site-A KEYWORDS Users (User-defined rules) Examples: Search “Colorado roads” Search Methods: 1. Message Broadcasting 2. Agent Roaming 3. Create a “Metadata Repository” to improve the search efficiency Site-B Site-C
Information Interpreter [Buffering] in UNIX [Address matching] in Window 2000 Metadata Metadata Metadata becomes the source of knowledge bases Information Interpreter Metadata Metadata Metadata Landsat images ARC Coverages Shapefiles Operation: Buffer (ARC command, UNIX platform) Input data: roads (shapefiles) Output data: road-buf (coverage) Variable: 200 feet (map unit:meter convert to meters) convert to coverage
Decision Maker Agent (decision maker) Actions Events Agent (Information Finder) Agent (Information Interpreter) Agent Collaboration • Event:If the local disk is full, find another network disk. • Agent Collaboration: • Info. Finder --> search logical volumes • Interpreter --> convert data format to destined environment • Action:Save [New disk-drive]: [Data-object]
Agent Mobility a) Stationary Agent Machine-B Machine-A Remote Procedure Call Stationary Agent-05 Stationary Agent-01 Machine-D b) Mobile Agent Machine-C Mobile Agent-06 Copy (HTTP) Mobile Agent-03 Mobile Agent-03
Advantages of a Mobile Agent • Reduce network load • Upload the agents to remote GIS databases • Overcoming network latency • Real-time response, agents on the remote site • Protocol encapsulation • Agent carries “codes” and “messages” • Execute asynchronously and automatically • More stable in fragile network connections • Dynamically adoption • Agent senses the execution environment and • reacts autonomously to change
Problems of Mobile Agents • Security (Mobile Agents as “Virus”) • Implementation (Cross platforms/technologies) • Size and Diversity (Small programs, more functions) • Protocol Development (Agent communication) • Levels of Control (Behavior, location)
Security Model for Agents • Security Treats: • Disclosure of information (interception) • Denial of service (DOS) • Corruption of information • Attack Targets: • Agents • Agent Containers • Countermeasures: • Sandboxing (software-based fault isolation, Java) • Digital Signature (signed code to confirm the authenticity of • an object, its origin, and its integrity) • Travel Histories (maintain an authenticatable record of the • prior platforms visited by an agent. • Others...
Colorado Roads (Vector) Colorado DEM (Raster) Metadata Metadata Geodata Agents Component Agents Machine Agents Agent Functionality GIS components Geodata Objects Map Display Component Metadata Spatial Analysis Component Metadata Server machine Client machine
Hierarchy of GeoAgents Machine Agent Stationary GeoAgent GeoAgent Component Agent Mobile GeoAgent Geodata Agent UML notations Generalization UML: Unified Modeling Language
M M M M M M Implementation: GIService Node GIServices Workstation (a GIS node) : metadata Hardware Profiles: CPU, OS, CRT, printer, scanner GeoData Object Container GIS Component Container M Agent Container Component Agent GeoData Agent Machine Agent
Agent Container Platform • Java (Sun Microsystems): • Java Virtual Machine (VM), Java applets / servlets. • CORBA (OMG): • Common Object Request Broker Architecture, UNIX-based, IIOP (Internet Inter-ORB Protocol), • DCOM / COM+ (Microsoft): • Windows 2000/NT, ActiveX container, COM-based model • XML (W3C):(Extensible Markup Language) • lightweight agent systems, scripting language, • open-ended, metadata- enhanced.
Agent Communication Language (ACL) / Protocol (ACP) • KQML (Knowledge Query and Manipulation Language) (Finin and Weber, 1993) • ACL (Agent Communication Language) specificationFIPA (Foundation for Intelligent Physical Agents) 1997 • IIOP (Internet Inter-ORB Protocol),and CORBA’s • Mobile Agent Facility Specification 1.0 • OMG, (1999) • XML-based scripting language • (Lange, Hill, & Oshima, 2000)
Scenario: Spatial Analysis A GIS spatial analyst, Dick, wants to locate a new Wal-Mart store in Boulder. He needs to obtain related map information and perform a GIS overlay analysis for this task. Procedure-A Overlay analysis Buffer analysis Ron: GIS software vendor Shape fitting analysis Dick : GIS analyst Data conversion Matt: GIS programmer
The Roaming of Agent (Carry a [Procedure-A]) The Planning Department The Tax Assessor Department Land value and parcels Flood zone Land use Agent Agent Procedure-A: Procedure-A: CODOT The Policy Department Roads Crime Risk Index Agent Agent Procedure-A: Procedure-A: Dick’s GIS node • Procedure-A: (from Dick’s requests] • Buffer 200m from [Road] to create [Buffer zone] • Overlay [Land use] [Flood zone], [Buffer zone], and [Land parcels], [Crime Risk Index]. Agent Procedure-A:
First Stage 1. Agents search the location of [Roads], [Buffer operation], etc. 2. Find out the location of data and component. ([Roads] URL: www.CODOT.gov) ([Buffer]: URL: www.CODOT.gov) CODOT 3. Agent travels to the agent container in CODOT. 4. Executes the first line of procedure-A. 5. Generates a new data called [Buffer zone] and puts the new data in the CODOT data container. Buffer Buffer zone Roads Agent container Agent Procedure-A Dick’s GIS node • Procedure-A: (from Dick’s request) • Buffer 200m from [Road] to create [Buffer zone] • Overlay [Land use] [Flood zone], [Buffer zone], and [Land parcels], [Crime Risk Index]. Agent Component container Data container
Second Stage The Planning Department Overlay CODOT Land use Over-1 Buffer zone Flood zone Overlay Buffer Agent container Agent Buffer zone Roads Procedure-A Agent container Agent Procedure-A • Procedure-A: (from Dick’s request) • Buffer 200m from [Road] to create [Buffer zone] • Overlay [Land use] [Flood zone], [Buffer zone], and [Land parcels], [Crime Risk Index]. Dick’s GIS node Agent Component container Data container
Third Stage The Tax Assessor Department The Planning Department Overlay Overlay Land use Over-1 Over-2 Buffer zone Over-1 Land parcels Flood zone Agent container Agent container Agent Agent Procedure-A Procedure-A • Procedure-A: (from Dick’s request) • Buffer 200m from [Road] to create [Buffer zone] • Overlay [Land use] [Flood zone], [Buffer zone], and [Land parcels], [Crime Risk Index].
Final Stage The Police Department The Tax Assessor Department Overlay Overlay Over-2 Final Over-2 Crime risk index Over-1 Land parcels Agent container Agent container Agent Procedure-A Agent Procedure-A Dick’s GIS node Agent container Procedure-A (complete) Agent Component container Data container Final
Deploy the Architecture GIS node: Dick.colorado.edu GIS node: Boulder-Planning.gov Overlay analysis component Flood area Land use Buffering component Parcel rec. Roads Machine agent Geodata agent Component agent GIS node: Boulder-Police.gov Land use Roads Crime Rate records Shape fitting analysis Crime rate Auto. Data Conversion GIS node: Matt-GIS. com Shape fitting analysis : Data object 3D shading and ray tracing : GIS components Statistic analysis
Collaboration among GIS nodes A GIS Task Intranet GIS Node GIS Node Local Network GIS Node: Ming GIS Node GIS Node GIS Node: Mike GIS Node: Eva GIS Node: Tina GIS Node I n t e r n e t GIS Node: SDSU GIS Node: UCSB GIS Node: FGDC GIS Node: SUNY
SUMMARY Traditional Solution • Limited GIS computing power • Convert data sets manually / individually • Vendor-based GIS software • Difficult to search / exchange geospatial information Agent-based Solution • Efficient use of computing resources • Automated data gathering / conversions • Customizable GIS modulars and functions • Sharing GIS data / models / knowledge
FUTURE WORK Implementation Java, XML, XHTML, KQML, ACL Hierarchic GeoAgents Individual, Groups, Global Society Intelligent GeoAgents ? Knowledge engines, fuzzy logic, neural networks
Coding Example: Machine agents search for requested data object • Mike’s Input: • GIS component: [Display] .Required Component • Required data: [Colorado Roads] .Required Data • (Machine agent-A) • init { • If .RequiredData found in [Data container] Then • set .OperationData = .RequiredData • ElseIf Search(.RequiredData) = Null Then • print “Data can not be found.”; exit • Else set .OperationData = Search(.RequiredData).CopyToDataContainer • End If • If .RequiredComponent found in [Component container] Then • set .OperationComponent = .RequiredComponent • Elseif Search(.RequiredComponent) = Null Then • print “GIS component can not be found.”; exit • Else set .OperationComponent = Search(.RequiredComponent).CopyToComponentContainer • End If • SendToComponentAgent(.OperationData, .OperationComponent) • }