Post on 22-Apr-2020
1Arne J. Berre 1SINTEF
Architectural Patterns in Open GIS Web ServicesArchitectural Patterns in Open GIS Web Services
• Problem: Interoperability of GIS – through standards• Open GIS: OGC and ISO/TC211 standards• Architectural patterns: ISO/OGC Service Architecture• OGC Web Services architecture• Pattern – Service binding template• OGC, ISO/TC211 and OMG MDA• Conclusion
Rob Atkinson, Social Change Online, Australia (rob@socialchange.net.au )
www. isotc211.orgwww. isotc211.orgwww. www. opengisopengis.org.org
Arne J. Berre, SINTEF, Norway (Arne.J.Berre@informatics.sintef.no)
2Arne J. Berre 2SINTEF
Architectural Patterns in Open GIS Web ServicesArchitectural Patterns in Open GIS Web Services
OGC (Open Geodata Consortium) and ISO/TC211 is involved in the creation of standards and recommendations for geospatial information and services.
OGC Web Services provide a vendor-neutral, interoperable framework for web-based discovery, access, integration, analysis, exploitation and visualization of multiple online geodata sources, sensor-derived information, and geoprocessing capabilities. The current UDDI and ebXML registry models provide a basis for business and service descriptions in the OWS registry model. The strong information- and content-oriented focus of GIS web services has led to a further development of architectural patterns for flexible information search and retrieval for general content-oriented web services, based on a dynamic binding template. The relationship to the OMG MDA approach and the ISO 19119 service specification standard of ISO/TC211 will be discussed.
3Arne J. Berre 3SINTEF
Problem Goal: Transparent Access to Heterogeneous Geodata and Geoprocessing Services
Non-traditional
DBMS
File FormatFile FormatFile Format
File Format
Real-TimeData Feed
File FormatTraditional
DBMS
File Format File Format
NETWORKS AND CLIENT/SERVER TECHNOLOGY
File FormatFileFormat
File Format
File Format
4Arne J. Berre 4SINTEF
ISO/TC211 & OGC “Roadmap”ISO/TC211 & OGC “Roadmap”
19921993199419951996
1997
1998
1999
2000
2001
2002CEN/TC287
(Europe)ISO/TC211established ISO 19103
ISO 19118
ISO 19109ISO 19119 IP2000WMT 2Kickoff
GFSKickoff
USL Demo
UMLAdopted
SimpleFeaturesAdopted
GridCoveragesAdopted
CatalogServicesAdopted
Web MapServer
Adopted
CoordinateTransformation
Adopted
GML Recommendation
Paper Adopted
GFSGazetteerWFS, WCSGeoLink, LOFGeoparse, GeocodeGML XML SchemaThesaurusType Dictionary
WMS-2Legend,Style Sheet &S.S.CatalogSLD, Symbol LibraryGML Extensions:IML, Coverage,
Basic Service ModelFilter
ISO/TC211 Stds
OGC Specifications
5Arne J. Berre 5SINTEF
2001/2002 Initiatives2001/2002 Initiatives
2001
2002
IP2001Decision Support4DInfo Community EnableLocation ServicesMilitary Pilot ProjectWMT-3 — GFS-2
GFSGazetteerWFS, WCSGeoLink, LOFGeoparse, GeocodeGML XML SchemaThesaurusType Dictionary
WMS-2Legend,Style Sheet &S.S.CatalogSLD, Symbol LibraryGML Extensions:IML, Coverage,
Basic Service ModelFilter
2003
2001 BusinessIETF Response LIF AgendaThe Open Group W3C CoordinationMAGIC Agenda SEDRIS AgendaE-Government OpenGIS.netDigital Earth European Programs
6Arne J. Berre 6SINTEF
!! ISO 19101 ISO 19101 -- Reference modelReference model!! ISO 19102 ISO 19102 -- OverviewOverview!! ISO 19103 ISO 19103 -- Conceptual schema languageConceptual schema language!! ISO 19104 ISO 19104 -- TerminologyTerminology!! ISO 19105 ISO 19105 -- Conformance and testingConformance and testing!! ISO 19106 ISO 19106 -- ProfilesProfiles!! ISO 19107 ISO 19107 -- Spatial schemaSpatial schema!! ISO 19108 ISO 19108 -- Temporal schemaTemporal schema!! ISO 19109 ISO 19109 -- Rules for application schemaRules for application schema!! ISO 19110 ISO 19110 -- Feature cataloguing methodologyFeature cataloguing methodology!! ISO 19111 ISO 19111 -- Spatial referencing by coordinatesSpatial referencing by coordinates!! ISO 19112 ISO 19112 -- Spatial referencing by geographic Spatial referencing by geographic
identifiersidentifiers!! ISO 19113 ISO 19113 -- Quality principlesQuality principles!! ISO 19114 ISO 19114 -- Quality evaluation proceduresQuality evaluation procedures!! ISO 19115 ISO 19115 -- MetadataMetadata!! ISO 19116 ISO 19116 -- Positioning servicesPositioning services!! ISO 19117 ISO 19117 -- PortrayalPortrayal
!! ISO 19118 ISO 19118 -- EncodingEncoding!! ISO 19119 ISO 19119 -- ServicesServices!! ISO/TR 19120 ISO/TR 19120 -- Functional standardsFunctional standards + new rev+ new rev!! ISO/TR 19121 Imagery and ISO/TR 19121 Imagery and griddedgridded datadata!! ISO/TR 19122 ISO/TR 19122 -- Qualifications and certification Qualifications and certification
of personnelof personnel!! ISO 19123 ISO 19123 -- Schema for coverage geometry and Schema for coverage geometry and
functionsfunctions!! ISO 19124 ISO 19124 -- Imagery and Imagery and griddedgridded data data
componentscomponents!! ISO 19125 ISO 19125 -- Simple feature access Simple feature access –– Part 1Part 1--33!! ISO 19126 ISO 19126 -- Profile Profile -- FACC Data DictionaryFACC Data Dictionary!! ISO 19127 ISO 19127 -- Geodetic codes and parametersGeodetic codes and parameters!! ISO 19128 ISO 19128 -- Web Map Server InterfaceWeb Map Server Interface!! ISO 19129 ISO 19129 -- Imagery,Imagery, griddedgridded and coverage dataand coverage data
frameworkframework!! ISO 19130 ISO 19130 -- Sensor and data model for imagerySensor and data model for imagery
andand griddedgridded datadata!! ISO 19131 ISO 19131 -- Data product specificationData product specification!! ISO 19132 ISO 19132 -- Location based services possibleLocation based services possible
standardsstandards!! ISO 19133 ISO 19133 -- Location based services trackingLocation based services tracking
and navigationand navigation!! ISO 19134 ISO 19134 -- MultimodalMultimodal location based serviceslocation based services
for routing and navigationfor routing and navigation!! ISO 19135 ISO 19135 -- Procedures for registration ofProcedures for registration of
geographic information itemsgeographic information items
ISO/TC211Overview
7Arne J. Berre 7SINTEF
ISO/TC211 and OpenGISISO/TC211 and OpenGIS
Imp. SpecCOM/MIDL
Imp. SpecCORBA/IIDL
Imp. SpecWeb
Services
Imp. SpecSDAI/EXPRESS
Imp. SpecODMG/ODL
Abstract Service Spec(UML w/precision)
(Common Imp.spec)
Direct C++/JavaPortability/Interop Interface
Spatialsub schema
OGC
ISO
Metadata
CoordRef. Sys
Qualitysub schema
Spatialsub schema
Featurerel.ship
2- Conformance
4) Portability/Interoperability interface possible
3. Reverse mapping for Portability and Interoperability
1. Conformance
GeneralFeatureModel
Rules forApplication
Schema
8Arne J. Berre 8SINTEF
KeyData
Service
DataService
ClientService
ApplicationService
Relationships
Catalog &RegistryService
Search
Populate
Store &Retrieve
Construct
Invoke
Create
Names
(Geospatial) Data
Contain Point to
MetadataDescribe
SearchPopulate
HoldIdentify
Container Hold
Update
WorkflowService
Data Transport
Invoke
Pattern forService Architecture
Pattern forService Architecture
9Arne J. Berre 9SINTEF
OpenGIS Web Services ArchitectureOpenGIS Web Services Architecture
10Arne J. Berre 10SINTEF
11Arne J. Berre 11SINTEF
Service Integration &
Workflow
Service Discovery
Service Description
Service
Data Format, Schema and Semantics
Data Representation
& Encoding
Communication Protocols
TCP/IP, HTTP, SSL, SMTP, FTP, IIOP, etc.
ASCII, ASN.1/DER, XML, etc.
HTML, XML/S, RDF, XMI, OGC-GML, OGC-WKT/WKB, etc.
OGC SF, Coverage, Coordinate Transform, WMS, etc. HTTP, SOAP, COM, CORBA, SQL, J2EE, etc.
WSDL,ISO-19119, etc.
UDDI, OGC-Catalog, etc.
WSFL, XLANG, ISO19119
Interoperability Layers Interoperability Standards
Connectivity
Interoperability
DCP
12Arne J. Berre 12SINTEF
Binding Patterns for OpenGIS Web Services A Special Case?
Binding Patterns for OpenGIS Web Services A Special Case?
• Much content has a geographic facet.• Most structured data is geographically organized.• Geographic data can be terabytes and time dependent
– exploitation is often an matter of choosing the right bit.
• A natural fit for demand access services.• Content centric….
• BindingTemplate: A generalised content-aware recipe for invoking services
13Arne J. Berre 13SINTEF
Content CentricityContent Centricity
• Semantics of service primarily a function of the content – not the access protocol
• Well known interfaces to exploit application-centric content
• Unlike “stock ticker” – application-centric interfaces to well known content
• OpenGIS defines standards for interoperability
14Arne J. Berre 14SINTEF
Interoperability…Interoperability…
Content
Data Structure
Protocol
ContextCustodianship
Authority
CGISOAP
GMLXML-schema
SemanticsVocabularies
15Arne J. Berre 15SINTEF
MotivationMotivation
• Need a consistent way to describe geographical content for service instances.
• Use Cases need to support persistent early binding –“e.g. show me what the traffic is like today, (using service X I discovered yesterday).”
• Need a consistent way to “chain” services.• WSDL “binding” section inadequate – “types” only
provide structural information.
16Arne J. Berre 16SINTEF
SynopsisSynopsis
• Operations invoked by parameterized messages• Valid parameter values are constrained by service
instances• Service invocation requires all mandatory “unbound”
parameters to be bound• Service chaining requires bindings to be described
throughout the chain
17Arne J. Berre 17SINTEF
Binding TemplatesBinding Templates
• A recipe for invoking services• Generalisation of a common pattern appearing in
OpenGIS Use Cases• Reference objects from registries that define semantics
of service• binding templates may reference each other, creating
the service chain to be invoked and allowing mix of early and late binding
18Arne J. Berre 18SINTEF
MechanismsMechanisms
• Syntax for persisting an invocation recipe• Derived from Registry Entry (ebRIM model)• Can be passed as a complex parameter to a service
further down the chain• (e.g. tell a Web Map Server how to query a Web Feature
Server and how to portray the results)
19Arne J. Berre 19SINTEF
Invoking a serviceInvoking a service
BindingTemplate
Service
<<unboundParam>>BBOX
type=gml:Box
<<boundParam>>request=GetMap
<<unboundParam>>Layer
type=keyedReferencevalids
Layer=valid_1BBOX=0,0,2,2
Client supplies values for unbound parameters
Layer=valid_1BBOX=0,0,2,2
request=GetMap Binding template supplies values for bound parameters
20Arne J. Berre 20SINTEF
Early vs. Late BindingEarly vs. Late Binding
Most invocations can be either early of late bound to particular messages
Early binding– E.g. get the most recent weather report
Late binding- zoom to the area of flooding
21Arne J. Berre 21SINTEF
Web Map Server ExampleWeb Map Server Example
WMSBinding
Template
WFSBinding Template
Early Late
Client
Service 1
Service 2
Fully resolved
implicit
Client
Service 1
Service 2
SLD=WFS Binding Template
22Arne J. Berre 22SINTEF
Instances of BindingTemplatesInstances of BindingTemplates
ServiceOffering
-name : ExternalIdentifier-filter-DataInstanceID : ExternalIdentifier-DataProductDescriptionID : ExternalIdentifier-OperationID : ExternalIdentifier-RepresentationResourceID : ExternalIdentifier-SchemaName : ExternalIdentifier
BindingTemplate
StyledLayerDescriptor
WMSLayer
-contains1
-inheritsPropertiesOf
*
WFSQueryTemplate
23Arne J. Berre 23SINTEF
Parameter ModelParameter Model
-name-datatype-optionality
Parameter
unboundParameter boundParameter
-End17*-End18*
value «bind»
-name : ExternalIdentifier-filter-DataInstanceID : ExternalIdentifier-DataProductDescriptionID : ExternalIdentifier-OperationID : ExternalIdentifier-RepresentationResourceID : ExternalIdentifier-SchemaName : ExternalIdentifier
BindingTemplate
1 *
24Arne J. Berre 24SINTEF
BindingTemplateBindingTemplate
+idRegistryEntry
-accessPoint : ExternalIdentifierInstance
-name-system
ExternalIdentifier
-End19
*
-End20
*
MetadataElement1
-attributes*
-name : ExternalIdentifier-filter-DataInstanceID : ExternalIdentifier-DataProductDescriptionID : ExternalIdentifier-OperationID : ExternalIdentifier-RepresentationResourceID : ExternalIdentifier-SchemaName : ExternalIdentifier
BindingTemplate
Note:
• Can be retrieved from a registry
•Has name, attributes to support persistence
•Contents (attributes TBD by further modelling)
• TBD - modelling relationships to other BindingTemplates
25Arne J. Berre 25SINTEF
BenefitsBenefits
• Common pattern across all interface specifications• Common rules for resolving bindings and invoking
services established• Ability to deploy content access services in a
meaningful way (well known types and content domain mechanisms available)
• Ability to store service invocation patterns in registries
26Arne J. Berre 26SINTEF
Why not just WSDL?Why not just WSDL?
• WSDL provides some of what we need• Granularity does not match early/late binding
behaviour• Data Types not expressive enough• Enumerations not powerful enough for real world
content (29000 species of flora in NSW Australia!)• OpenGIS interface specifications mainly provide
semantic definitions of parameters – these are not per-service!
27Arne J. Berre 27SINTEF
WSDL ++ WSDL ++
Signature{types,
messages,portType,bindings}
Binding{binding,service}
<<BindingTemplate>>
Service Offer(“Capabilities”)
metadata
AccessPoint
<<BindingTemplate>>
Content(e.g. Layers)
WSDL
28Arne J. Berre 28SINTEF
GeNorway project -XSLT-based code generation from UML to GML
for data exchange
GeNorway project -XSLT-based code generation from UML to GML
for data exchange
ApplicationSchema(UML)
ISO 19109
XMI doc ofUML Model
1 2 3 4 5simpleXMI docof UML Model
6
7
Process
Data transfer
Document
XSLT-file1 XSLT-file2UML Tool
XML Schemaaccording to
GML 2.0 Java ebXML CORBA
The conceptual UML model maybe mapped to many technologies
29Arne J. Berre 29SINTEF
\GML2.0 spec. city application schema example\GML2.0 spec. city application schema example<complexType name="RiverType">
<complexContent><extension base="gml:AbstractFeatureType">
<sequence><element ref="gml:centerLineOf"/>
</sequence></extension>
</complexContent></complexType><complexType name="RoadType">
<complexContent><extension base="gml:AbstractFeatureType">
<sequence><element name="linearGeometry" type="gml:LineStringPropertyType"/><element name="classification" type="string"/><element name="number" type="string"/>
</sequence></extension>
</complexContent> </complexType>
30Arne J. Berre 30SINTEF
simpleXMI - reducing the complexity of XMIsimpleXMI - reducing the complexity of XMI
<class name="Road" superClass="CityFeature" abstract="false"><attribute name="classification" type="CharacterString"/><attribute name="number" type="CharacterString"/><attribute name="linearGeometry" type="GM_Curve"/>
</class><class name="River" superClass="CityFeature" abstract="false">
<attribute name="centerLineOf" type="GM_Curve"/></class><class name="CityModel" abstract="false">
<attribute name="dateCreated" type="Date"/><relationship name="cityMember" otherClass="CityFeature"
cardinality="0..*" collectionType="set"aggregationType="composite"/>
</class>
31Arne J. Berre 31SINTEF
Example and ISO 19118 encodingExample and ISO 19118 encoding
<complexType name="Road"><sequence>
<element name="classification"type="CharacterString"/>
<element name="number" type="CharacterString"/><element name="linearGeometry"
type="GM_Curve"/></sequence><attributeGroup ref="IM_ObjectIdentification"/>
</complexType>
32Arne J. Berre 32SINTEF
ConclusionConclusion
• The OGC (and ISO 19119) Service architecture patterns and the service binding template could be reused by other ”information-intensive” domains
• Well defined rules and tools for creating platform-independent service and information models
• Well defined rules and tools for mappings to platform-specific models for the most important platforms: Web services/XML, CORBA, J2EE/EJB, SQL, ...
• A version of XMI (2.0?) that can produce human readable (HUTN) XML – similar to the GML and ISO 19118 schema specifications currently being made
• A tool-independent model diagram interchange format that can be used to support interoperability between multiple UML tools (thediagram interchange RFP!)
To support ISO/TC211 and OGC and other similar domain standardisationOrganisations, OMG should as soon as possible produce the following: