Changes between Initial Version and Version 1 of FDORfc42


Ignore:
Timestamp:
Oct 17, 2009, 9:28:26 AM (15 years ago)
Author:
crispinatime
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FDORfc42

    v1 v1  
     1= FDO RFC 42 - Direct ArcSDE FDO Provider =
     2
     3This page contains a request for comments document (RFC) for the FDO Open Source project. 
     4More FDO RFCs can be found on the [wiki:FDORfcs RFCs] page.
     5
     6== Status ==
     7 
     8||RFC Template Version||(1.0)||
     9||Submission Date|| 17 October 2009 ||
     10||Last Modified|| Crispin Hoult 17 October 2009||
     11||Author||Cripin Hoult, Alan Douglas, Haris Kurtagic||
     12||RFC Status||Draft - NOT READY FOR REVIEW||
     13||Implementation Status||not started||
     14||Proposed Milestone|| 3.5.0 ||
     15||Assigned PSC guide(s)|| -TBC- ||
     16||'''Voting History'''||  ||
     17||+1||||
     18||+0||||
     19||-0||||
     20||-1||||
     21 
     22== Overview ==
     23
     24The purpose of the RFC is to provide a direct provider for SDE datasources in Oracle without the requirement to utilise the ESRI ArcSDE SDK or ArcSDE server service.
     25
     26== Motivation ==
     27
     28ArcSDE is the most common "enterprise" geospatial database engine encountered by 1Spatial in solution deployment.  Of these datastores the majority are on an Oracle platform with data in the ESRI SDE binary format.  An overview of the format can be found in "Resources"details below.
     29It is recognised that there is an existing OSGeo provider for ArcSDE data (ArcGIS servers 9.1, 9.2 and 9.3 at FDO 3.4).  The existing provider supports multiple connection methodologies (client and direct-connect), data types (SDE and SDO on Oracle) and server technologies (Oracle, SQLServer).
     30However the platform technology (SDK/API) this is based on causes issues for the ongoing support and development outlined below.
     31
     32The provision and adoption of a new provider is no small task, and the creation of one that parallels existing functionality requires some explanation.  The drivers behind this RFC are as follows:
     33 * The existing OSGeo ArcSDE provider builds on the ArcSDE SDK - this is a commercial offering from ESRI and it's cost and install-base limit community involvement in the open source support and maintenance of the provider
     34 * The use of the ArcSDE SDK requires a more complex implementation/deployment of the FDO provider where the relevant supporting ESRI client DLLs need to be obtained and copied to the FDO folder - this adds version support issues and client licensing questions into implementation
     35 * The use of the ArcSDE SDK is built against specific versions of the ArcSDE server and SDK - there is a reliance on ESRI to support new server versions (e.g. ArcGIS 9.3) in the SDK and on the current owner (OSGeo) to source and rebuild appropriately and timely
     36 * The use of the ArcSDE SDK utilises calls directly to the ArcSDE server - where a partner has a restricted ArcSDE license is ("Application Specific License") there are licensing issues relating to the current provider and use of the ArcSDE server
     37 * The use of the ArcSDE SDK is limited to 32-bit builds of the provider - there is a wider requirement to have a 64-bit provider for ArcSDE data and the current approach does not support this
     38With consideration of the current providers limitations above the motivation for a non SDK-based provider are proven and this RFC details the proposed solution below.
     39
     40
     41== Proposed Solution ==
     42
     43The initial set of functionality for this provider will include
     44 * Support for simple geometries
     45 * Limited capabilities support for spatial and attribute filters (no expression evaluation)
     46 * Support for select/sqlcommand only (no insert/update/delete)
     47 * Limited platform support to Oracle database
     48
     49Specific capabilities are built on the !KingOra platform and are therefore identical.
     50As capabilities are defined at the provider level and not based on the connection parameters some consideration will have to be given to the "SDE Schema" connection being more constrained than a pure !KingOra SDO connection
     51
     52''' Connection '''
     53 - !ThreadCapability: !PerConnectionThreaded
     54 - !SpatialContextExtent: Static
     55 - !SupportsLocking: : false
     56 - !SupportsTimeout: : false
     57 - !SupportsTransactions: : false
     58 - !SupportsLongTransactions: : false
     59 - !SupportsSQL: : true
     60 - !SupportsConfiguration: : true
     61
     62''' Schema '''
     63 - Class
     64  - !FeatureClass
     65  - Class
     66 - Data
     67  - Boolean
     68  - Byte
     69  - !DateTime
     70  - Decimal
     71  - Double
     72  - Int16
     73  - Int32
     74  - Int64
     75  - Single
     76  - String
     77 - !SupportsInheritance: false
     78 - !SupportsMultipleSchemas: true
     79 - !SupportsObjectProperties: false
     80 - !SupportsAssociationProperties: false
     81 - !SupportsSchemaOverrides: true
     82 - !SupportsNetworkModel: false
     83 - !SupportsAutoIdGeneration: false
     84 - !SupportsDataStoreScopeUniqueIdGeneration: false
     85 - !SupportedAutoGeneratedTypes: false
     86 - !SupportsSchemaModification: false
     87
     88'''Command'''
     89 - !SupportedCommands
     90  - Select
     91  - SQLCommand
     92  - !DescribeSchema
     93  - !GetSpatialContexts
     94  - !CreateSpatialContext
     95 - !SupportsParameters: true
     96 - !SupportsTimeout: false
     97 - !SupportsSelectExpressions: true
     98 - !SupportsSelectFunctions: true
     99 - !SupportsSelectDistinct: true
     100 - !SupportsSelectOrdering: true
     101 - !SupportsSelectGrouping: true
     102
     103'''Filter'''
     104 - Condition
     105  - Comparison
     106  - Like
     107  - In
     108  - Null
     109  - Spatial
     110 - Spatial
     111  - Intersects
     112  - !EnvelopeIntersects
     113 - !SupportsGeodesicDistance: false
     114 - !SupportsNonLiteralGeometricOperations: false
     115
     116'''Expression'''
     117 - Function
     118  - !SpatialExtents
     119
     120'''Raster'''
     121 - !SupportsRaster: false
     122 - !SupportsStitching: false
     123 - !SupportsSubsampling: false
     124
     125'''Topology'''
     126 - !SupportsTopology: false
     127 - !SupportsTopologicalHierarchy: false
     128 - !BreaksCurveCrossingsAutomatically: false
     129 - !ActivatesTopologyByArea: false
     130 - !ConstrainsFeatureMovements: false
     131
     132'''Geometry'''
     133 - Types
     134  - Point
     135  - !LineString
     136  - Polygon
     137  - !MultiPolygon
     138 - Components
     139  - !LinearRing
     140 - Dimensionality: 2
     141
     142== Limitations ==
     143
     144The main limitations of this provider at present are the following.  It is envisioned that community support and development can extend the provider into these areas:.
     145 * No support for complex geometries or curves
     146 * Only SDE datastores on Oracle will be accessed
     147 * The provider will only be tested on SDE 9.1 and 9.2 schemas with geometry in "normal" precision (64-bit "high" precision not supported - yet)
     148 * There will be no expression support
     149 * There will be no insert/update/delete capability (read-only provider)
     150 * The spatial expressions will be restricted
     151 * Indexing/performance will be based on simple bounding-box filters
     152 * Spatial queries will be based on simple bounding-box filter
     153
     154== Implications ==
     155
     156This provider does not require any API changes to the FDO core or other providers. It will need to be added to the standard build and test procedure.
     157
     158== Test Plan ==
     159
     160The Direct SDE Provider for ArcSDE will include unit tests.
     161Unit tests will be run against a sample SDE schema dumped, Oracle exported and imported.
     162The provider will be built as a trunk (3.5) and 3.4 compatible provider and tested in AutoCAD Map 2010 and !MapGuide !OpenSource 2.1
     163Where reources are available a FDO 3.3 build will also be provided.
     164
     165== References ==
     166
     167The following list of resources will be used to support creation of the provider.
     168 * [http://edndoc.esri.com/arcsde/9.1/capi_concepts/arcsde_compressed_binary.htm]
     169 * [http://edndoc.esri.com/arcsde/9.2/concepts/geometry/geometrystorage/binary.htm]
     170 * [http://edndoc.esri.com/arcsde/9.0/general_topics/binary_geometry_format.htm]
     171 * [http://www.codeplex.com/SharpMap/Thread/View.aspx?ThreadId=9346]
     172 * [http://trac.osgeo.org/gdal/browser/trunk/gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp] (may be relationship between Personal Geodatabase geometry and SDO
     173
     174== Funding/Resources ==
     175
     176The resources for this provider are being contributed by 1Spatial with foundation (!KingOra) and expertise by SL-King.