Changes between Version 8 and Version 9 of FDORfcTemplate


Ignore:
Timestamp:
Mar 22, 2011, 9:21:16 PM (13 years ago)
Author:
sunch
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FDORfcTemplate

    v8 v9  
    77
    88----
    9 = FDO RFC 56 - Support Proxy Server Settings for WMS/WFS =
     9= FDO RFC # - Title Goes Here =
    1010
    1111This page contains a request for comments document (RFC) for the FDO Open Source project. 
     
    1414== Status ==
    1515 
    16 ||RFC Template Version||1.1||
    17 ||Submission Date||March 23, 2011||
    18 ||Last Modified||Cheney Sun||
    19 ||Author||Cheney Sun||
    20 ||RFC Status||frozen for vote||
    21 ||Implementation Status||under development||
    22 ||Proposed Milestone||3.7.0.0 ||
    23 ||Assigned PSC guide(s)||Orest Halustchak, Greg Boone||
    24 ||'''Voting History'''||||
    25 ||+1||||
     16||RFC Template Version||(1.1)||
     17||Submission Date||(Date / Time submitted)||
     18||Last Modified||(your name here) (modification date here)||
     19||Author||(your name here)||
     20||RFC Status||(draft, proposed, frozen for vote, adopted, retracted, or rejected)||
     21||Implementation Status||(pending, under development, completed)||
     22||Proposed Milestone||(e.g. 1.1, 1.3, 2.1)||
     23||Assigned PSC guide(s)||(when determined)||
     24||'''Voting History'''||(vote date)||
     25||+1||Greg||
    2626||+0||||
    2727||-0||||
    28 ||-1||||
     28||-1||Jason (troublemaker)||
     29||no vote|| ||
    2930 
    3031== Overview ==
    3132
    32 The RFC is to enhance the WMS/WFS provider to have the capabilities to set proxy parameters.
     33This section brefly describes the problem set, and the proposed solution in general terms.  It should be deliberately short, a couple of sentences or so.
    3334
    3435== Motivation ==
    3536
    36 As one feedback from FDO API and WMS/WFS provider users, a number of requests have arisen regarding access to Web Services, such as WMS and WFS, through a proxy server. A proxy server acts as an intermediary between an internal network (Intranet) and the Internet, transiting the remote data package to the internal client.
    37 Currently, WMS/WFS FDO providers have a workaround to support proxy setting, which is provided by the libcurl library. It reads the proxy settings defined in the system variables. This is not good for the provider users, especially for the API users. The better way is to expose one entry in the provider to let user set the proxy information before opening a connection. This can be done by enhancing and expanding the connection parameter list that each provider supports. And then pass these values into OWS component. The OWS component will define proxy setting via libcurl API if the proxy values aren’t null.
    38 Libcurl library has already proxy setting capability, so what we need to do is expose it via FDO API, and enhance the delegate classes for both WMS/WFS.
     37This is the most important part of the RFC.  It describes the problem domain in detail.  Focusing on this will allow reviewers to fully understand why the proposed change is being made, and potentially suggest different/better ways of accomplishing the desired results.  The more time we spend on understanding the problem, the better our solution will be.
    3938
    4039== Proposed Solution ==
    4140
    42 The following tables outline the additional connection properties that will be introduced in order to allow proxy server access.
    43 ||'''Property'''        ||'''Value'''||
    44 ||Name||        ProxyServerName||
    45 || LocalizedName        ||ProxyServerName (English)||
    46 || DefaultValue ||||
    47 || IsRequired   || No||
    48 || IsProtected  || No||
    49 || IsEnumerable || No||
    50 || IsFileName   || No||
    51 || IsFilePath   || No||
    52 || IsDatastoreName||    No||
    53 The ProxyServerName property specifies the name of a user specified proxy server that will be used to make the connection to the external web service. This could be a host name or an IP address.
    54 ||'''Property'''        ||'''Value'''||
    55 ||Name||        ProxyServerPort||
    56 ||LocalizedName ||ProxyServerPort(English)||
    57 ||DefaultValue  ||||
    58 ||IsRequired    || No||
    59 ||IsProtected   || No||
    60 ||IsEnumerable  || No||
    61 ||IsFileName    || No||
    62 ||IsFilePath    || No||
    63 ||IsDatastoreName||     No||
    64 The ProxyServerPort property specifies the port of the user-specified proxy server that will be used to connect to the Internet. If set, it must be used in conjunction with the ProxyServerName parameter.
    65 ||'''Property'''        ||'''Value'''||
    66 ||Name||        ProxyServerUsername||
    67 ||LocalizedName ||ProxyServerUsername(English)||
    68 ||DefaultValue  ||||
    69 ||IsRequired    || No||
    70 ||IsProtected   || No||
    71 ||IsEnumerable  || No||
    72 ||IsFileName    || No||
    73 ||IsFilePath    || No||
    74 ||IsDatastoreName||     No||
    75 The ProxyServerUsername property specifies the username to be used when connecting to a user-specified proxy server. If set, it must be used in conjunction with the ProxyServerName and ProxyServerPassword parameters.
    76 ||'''Property'''        ||'''Value'''||
    77 ||Name||        ProxyServerPassword||
    78 ||LocalizedName ||ProxyServerPassword(English)||
    79 ||DefaultValue  ||||
    80 ||IsRequired    || No||
    81 ||IsProtected   || No||
    82 ||IsEnumerable  || No||
    83 ||IsFileName    || No||
    84 ||IsFilePath    || No||
    85 ||IsDatastoreName||     No||
    86 The ProxyServerPassword property specifies the password to be used when connecting to a user-specified proxy server. If set, it must be used in conjunction with the ProxyServerName and ProxyServerPassword parameters.
    87 When user wants to use some proxy server for one provider, the proxy information should be set in the connection information before opening the remote WMS/WFS connection.
    88 Accordingly, the relevant delegates in WMS and WFS should also be updated to enhance their constructors to accept the proxy settings.
    89 
    90 For FdoWmsDelegate class:
    91 
    92 {{{
    93 class FdoWmsDelegate : public FdoOwsDelegate
    94 {
    95 ......
    96 /// \brief
    97 /// Construct the FdoWmsDelegate instance with additional proxy information
    98 FDOOWS_API FdoWmsDelegate (
    99                                 FdoString* defaultUrl,
    100                                 FdoString* userName,     
    101                                 FdoString* passwd,
    102                                 FdoString* proxyUrl = NULL,
    103                                 FdoString* proxyPort = NULL,
    104                                 FdoString* proxyUsername = NULL
    105                            )
    106 };
    107 }}}
    108 For FdoWfsDelegate class:
    109 
    110 {{{
    111 class FdoWfsDelegate : public FdoOwsDelegate
    112 {
    113 ......
    114 /// \brief
    115 /// Construct the FdoWfsDelegate instance with additional proxy information
    116 FDOOWS_API FdoWfsDelegate (
    117                                 FdoString* defaultUrl,
    118                                 FdoString* userName,     
    119                                 FdoString* passwd,
    120                                 FdoString* proxyUrl = NULL,
    121                                 FdoString* proxyPort = NULL,
    122                                 FdoString* proxyUsername = NULL
    123                            )
    124 };
    125 }}}
    126 The proxyUrl, proxyPort, proxyUsername all have the NULL as their default value. Their parent constructor FdoOwsDelegate will be called to pass the proxy settings.
     41This is a more detailed description of the actual changes desired.  The contents of this section will vary based on the target of the RFC, be it a technical change, website change, or process change.  For example, for a technical change, items such as files, XML schema changes, and API chances would be identified.  For a process change, the new process would be laid out in detail.  For a website change, the files affected would be listed.
    12742
    12843== Implications ==
    12944
    130 •       Some new connection properties are introduced.[[BR]]
    131 •       Both constructors of FdoWmsDelegate and FdoWfsDelegate class will be enhanced with more parameters.
    132 
     45This section allows discussion of the repercussions of the change, such as whether there will be any breakage in backwards compatibility, if documentation will need to be updated, etc.
    13346
    13447== Test Plan ==
    13548
    136 Add unit tests into WMS/WFS provider to test the specified proxy setting.
     49How the proposed change will be tested, if applicable.  New unit tests should be detailed here???
    13750
    13851== !Funding/Resources ==
    13952
    140 Autodesk to provide resources / funding
     53This section will confirm that the proposed feature has enough support to proceed.  This would typically mean that the entity making the changes would put forward the RFC, but a non-developer could act as an RFC author if they are sure they have the funding to cover the change.