Changes between Initial Version and Version 1 of FDORfc4


Ignore:
Timestamp:
04/19/07 10:00:24 (18 years ago)
Author:
gregboone
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FDORfc4

    v1 v1  
     1
     2
     3= FDO RFC 4 - Provider Support for ArcSDE 9.2 =
     4
     5This page contains a change request (RFC) for the FDO Open Source project. 
     6More FDO RFCs can be found on the [wiki:FDORfcs RFCs] page.
     7
     8== Status ==
     9 
     10||RFC Template Version||(1.0)||
     11||Submission Date||Apr 19, 2007||
     12||Last Modified||[[Timestamp]]||
     13||Author||Greg Boone||
     14||RFC Status||Draft||
     15||Implementation Status||pending||
     16||Proposed Milestone||3.2.2.0||
     17||Assigned PSC guide(s)||Greg Boone||
     18||'''Voting History'''||TBD||
     19||+1||||
     20||+0||||
     21||-0||||
     22||-1||||
     23 
     24== Overview ==
     25
     26Various FDO !OpenSource community users and clients have requested that the FDO ArcSDE Provider support access to both the ArcSDE 9.1 and 9.2 clients. In its current !OpenSource build configuration, the ArcSDE provider is not able to accomplish this requirement. At this time only the ArcSDE 9.1 client support is provided. Therefore the question arises: how can we most effectively provide support for both ArcSDE client platforms without placing additional administrative burdens on our users?
     27
     28== Motivation ==
     29
     30It is our assertion that it would be impractical to create two separate ArcSDE providers, one for 9.1 and another for 9.2. We ascertain that such a system would be difficult to maintain by the developers and users of the FDO open source community. We also ascertain that having two providers, either named identically or separately, would be difficult for our clients to install, switch between and generally support in conjunction with their users.
     31
     32It is the position of this RFC that a solution be implemented that would enable support for both ArcSDE clients without requiring a change to the primary entry point of the ArcSDE provider and it’s associated registration content in the FDO providers.xml file. It is position of this RFC that two new pseudo “provider” libraries, ArcSDEProvider91.dll, ArcSDEProvider92.dll, and a loader dll, ArcSDEProvider.dll, be generated that would replace the current provider dll setup. The loader dll will take the same name as the current FDO Provider: ArcSDEProvider.dll. The ArcSDE loader dll will load and use the ArcSDEProvider92.dll pseudo-provider dll if the client installed ArcSDE 9.2, otherwise it will load and use ArcSDEProvider91.dll.
     33
     34If a client installs both ArcSDE versions, ArcSDEProvider92.dll will be loaded and used. The ArcSDE 9.1 client will not be used.
     35
     36== Implementation Details ==
     37
     38To implement the above recommendations, a design has been proposed that would result in the modification of the FDO ArcSDE build process so that it creates two separate provider libraries. Each library in turn will link against separate client SDK versions of ArcSDE 9.1 and 9.2.
     39
     40In conjunction with the above changes, the ArcSDE build process will create a loader dll which will export only one function: extern "C" FDOSDE_API FdoIConnection* !CreateConnection(). !CreateConnection is the public global method that is required to allow a provider to be found and loaded by the FDO !ClientServices API.
     41
     42Finally, the updated design proposes that a helper class be defined in the loader dll which will load one of the providers based on the installed ArcSDE client.
     43
     44The ArcSDE 9.1 pseudo-provider dll will link against the ArcSDE client libraries in %FDOTHIRDPARTY%\ESRI\ArcSDEClient91\Windows. If the libraries are not found in that location it will try and find the libraries in %SDEHOME%. If not found in either location, the build will fail.
     45
     46The ArcSDE 9.2 pseudo-provider dll will link against the ArcSDE client libraries in %FDOTHIRDPARTY%\ESRI\ArcSDEClient92\Windows. If the libraries are not found in that location it will try and find the libraries in %SDEHOME%. If not found in either location, the build will fail.
     47
     48The ArcSDE unit test project will only search for include and lib files in %SDEHOME%.
     49
     50In case user has only one version of the ArcSDE client installed, the location must be specified using %SDEHOME%
     51
     52