Summary
T.Witsml.Service is a service running on TWebServer or IIS. It works as a "gateway" between any "Witsml client" and a project running on our platform. The project must have a Script.Class (Domain: Server) exposing some standard methods that will be consumed by this service.
T.Witsml.Service works with Witsml 1.3.1.1 Specification. It only exposes some WMLS_GetFromStore: Well, Wellbore and Log.
Settings
Below are methods that must be implemented in FS project:
- public Dictionary<string, string> GetServerInfo(string userName);
- Returns information about sever.
- public List<List<KeyValuePair<string, string>>> GetWells(string userName, List<KeyValuePair<string, string>> queryInfo, Dictionary<string, string> propertyHelp);
- Returns available wells according to requested items (queryInfo).
- public List<List<KeyValuePair<string, string>>> GetWellbores(string userName, List<KeyValuePair<string, string>> queryInfo, Dictionary<string, string> propertyHelp);
- Returns available wellbores according to requested items (queryInfo).
- public List<List<KeyValuePair<string, string>>> GetLogs(string userName, List<KeyValuePair<string, string>> queryInfo, Dictionary<string, string> propertyHelp);
- Returns available logs according to requested items (queryInfo).
An example of FS project can be found at "Egnyte/Shared/FS_Projects_Tatsoft/Witsml/Server/WitsmlServerTest.tproj". The project has a "DataSet/DB" called "SQLDepth". This provider connects to "SQL Server" using "Windows Authentication", so the project needs run inside of a context user (such as "rigdata.svc") that get connection to "SQL Server".
The next lines show settings whether you want change the default values for connection between T.Witsml.Service and FS project:
Inside FactoryStudio\TWebServer.exe.config and FactoryStudio\fs-8.1\Web.exe.config (used by IIS):
<add key ="Witsml-EnableLog" value="false"/> // If true log messages are generated on "C:\ProgramData\FacrotyStudio\" folder
<add key ="Witsml-RemoteIP" value="localhost"/> // TServer Computer IP
<add key ="Witsml-RemotePort" value="3101"/> // TServer Port Number. WitsmlServerTest project runs on 3501 (port number)
<add key ="Witsml-RemotePortWA" value="3102"/> // TServer WA Port Number
<add key ="Witsml-WA" value="false"/> // If true connects to FS runtime using "Witsml-RemotePortWA"
<add key ="Witsml-ClassName="WitsmlServer"/> // Script class name where methods are exposed
Testing
For testing follow steps:
- Use "fs-2016.2.103" or "fs-8.1.7" .
- Run "TWebServer.exe";
- Run FS project: WitsmlServerTest.
- Information used in "Witsml Client":
- Host: http://<IP>:<TWebServerPort>/fs-2016.2/T.Witsml.Service.svc
- Authentication: Basic
- User: Administrator
- Pass: <blank>
IIS also be used as WebServer. In this case "https" is required with Basic Authentication enabled, and the validation of users is performed by Windows, i.e., it is necessary create user in local account of Windows.
In this section...