XML WITSML Plug-in
WITSML Plug-in DLL
for the XML
Interface to the PI System
Version 0.9.1.0Beta
Rev B
How to Contact Us
|Phone |(510) 297-5800 (main number) |
| |(510) 297-5828 (technical support) |
|Fax |(510) 357-8136 |
|E-mail |techsupport@ |
|World Wide Web | |
|Mail |OSIsoft |OSI Software, Ltd |
| |P.O. Box 727 |P O Box 8256 |
| |San Leandro, CA 94577-0427 |Symonds Street |
| |USA |Auckland 1035 New Zealand |
| | | |
| |OSI Software GmbH |OSI Software, Asia Pte Ltd |
| |Hauptstra(e 30 |152 Beach Road |
| |D-63674 Altenstadt 1 |#09-06 Gateway East |
| |Deutschland |Singapore, 189721 |
Unpublished – rights reserved under the copyright laws of the United States.
RESTRICTED RIGHTS LEGEND
Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii)
of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013
Trademark statement—PI is a registered trademark of OSIsoft, Inc. Microsoft Windows, Microsoft Windows for Workgroups, and Microsoft NT are registered trademarks of Microsoft Corporation. Solaris is a registered trademark of Sun Microsystems. HP-UX is a registered trademark of Hewlett Packard Corp.. IBM AIX RS/6000 is a registered trademark of the IBM Corporation. DUX, DEC VAX and DEC Alpha are registered trademarks of the Digital Equipment Corporation.
PIXML_WITSML_Plug-in.doc
( 2005 OSIsoft, Inc. All rights reserved
777 Davis Street, Suite 250, San Leandro, CA 94577
Table of Contents
Introduction 1
Reference Manuals 1
Plug-in Specific Features 2
Principles of Operation 3
Installation Checklist 5
Plug-In Installation and Administration 7
Plug-In Directory 7
Modify PIXML.BAT 7
Configure PI tags 7
Upgrading the Plug-In 7
Moving the Plug-In to a New Directory 7
Uninstalling the Plug-In 8
Startup Command File 9
Configuring the Plug-In with PI-ICU 9
Command-line Parameters 11
Sample PIXML.bat File 13
Error and Informational Messages 19
Message Logs 19
System Errors and PI Errors 19
Revision History 21
Introduction
The PI-XML interface reads XML data that conforms to the OPC XML-DA specification using the SOAP protocol as a transport mechanism. In order to handle other XML schemas and transport mechanisms, the PI-XML interface was designed to allow for the development of custom plug-in DLLs. The WITSML plug-in DLL is a custom plug-in DLL that can interface with a WITSML-compliant server in order to import data into PI by using SOAP over HTTP/S-based protocols, depending on the security settings, which are described in detail in the Security section of the PI-XML Interface manual. The WITSML plug-in is in a file called PIXML_WITSML.DLL.
WITSML was initially developed by an oil industry initiative as a new standard for drilling information transfer. WITSML uses XML to represent the underlying data objects that are exchanged between systems and is platform independent. The format of the data objects is described by the WITSML XML schemas. Currently, the WITSML standard defines two core interfaces, STORE and PUBLISH, which use a Client/Server and a Subscribe/Publish mechanism for exchanging data, respectively. The WITSML plug-in currently only supports the Client/Server mechanism (STORE interface) while future support of the PUBLISH interface is anticipated. Additionally, the WITSML standard defines two supplemental interfaces, ITEM and DOCUMENT. The ITEM interface is used for manipulating WITSML data items without regards to their XML representation, while the DOCUMENT interface can be used to provide document location independence. These interfaces are not relevant to the WITSML plug-in as it is familiar with the document location and the underlying XML representation.
Note: Neither this manual nor the plug-in are stand-alone products; they are to be used in conjunction with the PI-XML interface. This version of the plug-in requires 1.0.0.0 or above versions of the PI-XML Interface.
Reference Manuals
OSIsoft
• PI Server manuals
• PI-API manual
• XML Interface to the PI System
Vendor
• Extensible Markup Language (XML) 1.0 (Second Edition)
• OPC XML-DA specification (version 1.0)
Plug-in Specific Features
Several features of this product are unique to this plug-in. These features are detailed below.
Exception Reporting
When using the PIXML_WITSML_plugin, it is not possible to request that exception reporting be performed by the XML server through the use of the /sn command-line option. If the /sn command-line option is specified, the PI-XML Interface will not do any exception reporting. Also, the /returnallitems command-line option that is typically used to force the XML server to return data after each scan, has no effect when the PIXML_WITSML_plugin is being used.
Source of Timestamps
By default, timestamps will be read from the WITSML server. However, local timestamps can be used if the /TS option is specified. For WITSML data objects that do not supply a timestamp, a local, offset-adjusted timestamp will be used.
Synchronous Reads
When using the PIXML_WITSML_plugin, the /sync_read command-line option must be specified. This option tells the interface that a client/server mechanism of polling the WITSML server will be used.
Output Points
Currently, the PIXML_WITSML_plugin does not support outputs.
Principles of Operation
As with all plug-ins, the WITSML plug-in acts as an intermediary between the XML interface, which must receive OPC XML-DA compliant data, and the XML data server, which in this case is the WITSML server. The WITSML server is specified through the use of the /server command-line option which is a URL. On startup, the interface will then connect to the WITSML server and use the WMLS_GetFromStore call to retrieve the WITSML data. The query string for the WMLS_GetFromStore call is built up through the various attributes of the PI tag requesting the data. The data returned is an XML string that is then transformed to be compliant with the ReadResponse extract of the OPC XML-DA schema and returned to the interface which processes the data and sends it to PI.
Tag configuration is predominantly done through the instrumenttag field of the PI tag, which has the following format.
nameWell, XML_Path_to_Data_Item
Each WITSML data object has a nameWell attribute and this needs to be specified on the instrument tag field. In addition, the XML_Path_to_Data_Item portion of the instrumenttag field specifies the data item to retrieve from the WITSML server. The format of the XML_Path_to_Data_Item portion of the instrumenttag field is a location path to the XML item in question. For example, the following XML corresponds to a partial listing of a well data object described in the WITSML schemas.
6507/7-1
Scotland
...
To configure a tag that would store the “country” data item in a PI tag, the XML_Path_to_Data_Item portion of the instrumenttag field would be defined as /wells/well/country, and full configuration for instrumenttag field would be W-1, /wells/well/country.
Installation Checklist
For those users who are familiar with running PI-XML interface with the WITSML Plug-In DLL, this checklist helps you get the PI-XML interface running. If you are not familiar with the WITSML Plug-In DLL for the PI-XML
Interface, you should return to this section after reading the rest of the manual in detail.
1. Install the PI-Interface Configuration Utility (which installs PI-SDK and PI-API)
2. Verify that PI-API and PI-SDK have been installed.
3. Install the PI-XML interface.
4. Configure the PI-XML Interface using the PI-Interface Configuration Utility which is the recommended way to configure the interface.
5. Configure PI points.
Location1 is the interface instance.
Location2 specifies whether the tag is an input (0) or output (1) tag.
Location3 is not used.
Location4 is the scan class.
Location5 is not used.
ExDesc is not used.
InstrumentTag is the itemID. It is specified using the following format
uID, XML_Path_to_Data_Item
6. Start the interface without buffering.
7. Verify data.
8. Stop interface, start buffering, start interface.
Plug-in Installation and Administration
Plug-In Directory
The PIXML_WITSML.dll is installed in the PI-XML interface directory in the plug-ins directory. For instance if the interface is installed in
PIHOME\Interfaces\XML
then the DLL should be present in the corresponding plug-in directory in
PIHOME\Interfaces\XML\Plug-Ins\WITSML
The other plug-in DLLs are installed in their own separate sub-directories.
Configure PI tags
A detailed description for configuring tags can be found the XML Interface to the PI System manual. However, when using the WITSML Plug-In DLL, there are a few differences that should be noted. Firstly, all tags should support buffering by setting location3 equal to 0. Additionally, the instrumenttag field is defined using the following format:
nameWell, XML_Path_to_Data_Item
where nameWell is the name of the WITSML data object and XML_Path_to_Data_Item is the location path to the data Item (as described earlier).
Upgrading the Plug-in
If the plug-in is upgraded independent of the PI-XML Interface, it will be necessary to stop the PI-XML Interface, install the plug-in in the appropriate directory and restart the interface according to the instructions in the XML Interface to the PI System manual.
Moving the Plug-in to a New Directory
Although it is not recommended, it is possible to move the plug-in to a new directory. You will need to change pixml.bat to reflect the name of the new directory and then stop and restart the interface as described in the XML Interface to the PI System manual.
Uninstalling the Plug-In
In order to run the PI-XML Interface without the WITSML plug-in, use the PI-ICU program to change the plug-in DLL. Stop and restart the interface according to the instructions in the XML Interface to the PI System manual.
Startup Command File
Configuring the Plug-in with PI-ICU
Note: PI-ICU requires PI 3.3 or greater.
The PI-Interface Configuration Utility provides a graphical user interface for configuring PI interfaces. By configuring the interface with PI-ICU, the user makes it possible to recognize the interface, edit configurations, run and stop the interface. If the interface is configured by the PI-ICU, the batch file of the interface (pixml.bat) will be maintained by the PI-ICU and all configuration changes will be kept in that file. The procedure describing the necessary steps for using PI-ICU to configure the PI-XML Interface is described in XML Interface to the PI System manual.
When using the XML ICU control with the WITSML plug-in, it is necessary to choose the appropriate plug in DLL. This is done by selecting the PIXML_WITSML.dll in the Configuration tab of the XML ICU control as shown below.
[pic]
Once this is done, the WITSML Plug-In tab should appear, and the following options will available for selection.
WITSML Plug-In
[pic]
Currently there are no options available for the WITSML plug-in, although the following connection settings do apply.
Connection Settings
This selection provides you with specific parameters for setting up connection options of the interface. The PI-XML interface is designed to provide authentication options as well the ability to connect through a proxy server. Here we list available selections from the PI-ICU.
[pic]
• Use SSL Security -- Specifies the use of SSL to encrypt communication between the server and the interface. Note the XML server must support the use of SSL. (/usessl).
• USE Authentication-- Enables you to choose an acceptable authentication mechanism that is supported by the XML server. (/authscheme).
• Auth Scheme - The value of the authentication scheme bitmask is displayed in the text field.
• The various authentication schemes that are supported by the server can be selected by the group of check boxes. Basic Auth, ntlm Auth, Digest Auth and Negotiate Auth.
• User -- Enables you to choose a user for authentication. (/AUTHUSER).
• Password -- Enables you to supply a password associated with the user for authentication. (/authpassword).
• Connection Timeout – Limits the time (in milliseconds) it takes to make an initial connection with the XML server. After a connection to the server has been established the timeout property applies (/CONNECTTIMEOUT).
• Runtime Timeout – The timeout in milliseconds after a connection to the XML server has been established. Communication taking longer than this value will be dropped. The default value is 30,000 milliseconds. Not all plug-in DLLs support this command line parameter (/TIMEOUT).
• USE Proxy Server -- Enables you to enable options for connecting to a proxy server through which the interface will connect to the XML server. (/Proxyserver).
• Proxy Server -- Enables you to choose a proxy server through which the interface will connect to the XML server. (/Proxyserver).
• Proxy User -- Enables you to choose a user for the proxy server. (/proxyUSER).
• Proxy Password -- Enables you to supply a password associated with the user for the proxy server. (/Proxypassword).
• Additional Parameters – Enter any additional parameter not currently supported by the XML Interface ICU Control.
Command-line Parameters
Not all the options available to the PIXML interface are used and only the ones listed below are relevant.
|Parameter |Description |
|/server=path |The flag tells the interface the URL where the WITSML server resides. |
|Required |For other plug-in DLLs, this option could be used differently and the corresponding |
| |plug-in manual should be consulted. |
|/dll=path\name |This specifies the path for the plug-in DLL and should point to the WITSML plug-in. |
|Required |The default for this location is: |
| |\Plug-ins\WITSML\PIXML_WITSML.dll |
|/sync_read |Tells the XML interface, the data acquisition will be retrieved synchronously. This|
|Required |is required as the WITSML plug-in currently only supports the STORE interface which |
| |uses a client server mechanism for acquiring data. |
|/connecttimeout=x |Limits the time (in milliseconds) it takes to make an initial connection with the |
|Optional |XML server. After a connection to the server has been established the timeout |
| |property applies. |
|/timeout=x |The timeout in milliseconds after a connection to the XML server has been |
|Optional |established. Communication taking longer than this value will be dropped. The |
| |default value is 30,000 milliseconds. Not all plug-in DLLs support this command |
| |line parameter. |
|/authscheme=x |Enables you to choose an acceptable authentication mechanism that is supported by |
|Optional |the XML server. The value of x corresponds to the following values. |
| |1 - basic authentication |
| |2 - ntlm authentication |
| |8 - digest authentication |
| |16 - negotiate authentication |
| |Note that x is a bitmask so you can combine these values (bitwise OR) to enable |
| |multiple types of authentication. For example, to enable both basic and digest |
| |auth, x would be set to 9 (1+8=9). The default value for this property is 18 (ntlm |
| |and negotiate). |
|/authuser=x |The user name (x) used for authentication with the XML server. This option should |
|Optional |only be used if the XML server has been configured to support authentication. Not |
| |all plug-in DLLs support this command line parameter. |
|/authpassword=x |The password (x) used for authentication with the XML server. This option should |
|Optional |only be used if the XML server has been configured to support authentication. It |
| |works in conjunction with the /authuser option. If the /authuser option is |
| |specified but this option is not, then an empty string will be passed as the |
| |password. Not all plug-in DLLs support this command line parameter. |
|/proxyserver=x |Identifies the proxy server (x) through which messages are sent and received. It |
|Optional |should only be used if communication to the XML server is through a proxy server. |
| |This option may have one of the following values: |
| | -- Indicates that the proxy configuration specified using the |
| |proxycfg utility is to be used. Use this setting when the interface is configured as|
| |a Windows NT service, and there is no "current user" with proxy settings. |
| | — Indicates that the Microsoft Internet Explorer proxy settings for |
| |the current user should be used. Use this setting for client programs run by a user.|
| | |
| |host[:port] – Indicates that a specific host and port should be used. Replace "host"|
| |with the DNS name or IP address of the proxy server. Replace "port" with the proxy |
| |port on that server. Omit ":port" to use the default port of "80". Use this setting |
| |if the proxy is known when the client program is created or when a client |
| |application provides a way for the user to specify a proxy configuration. Not all |
| |plug-in DLLs support this command line parameter. |
|/proxyuser=x |The user name used for proxy authentication. The default is the value of the proxy |
|Optional |server port shown in the Local Area Network (LAN) Settings dialog box in Microsoft |
| |Internet Explorer. To open this dialog box, on the Tools menu, point to Internet |
| |Options, click on the Connections tab, and then click LAN Settings. Not all plug-in|
| |DLLs support this command line parameter. |
|/proxypass=x |The password used for proxy authentication. The default is an empty string. Not all|
|Optional |plug-in DLLs support this command line parameter. |
|/usessl |A Boolean value (True or False) that specifies the use of SSL to encrypt |
|Optional |communication between the server and the interface. Note the XML server must |
| |support the use of SSL. |
Sample PIXML.bat File
The following is an example file that exists in the
PIHOME\interfaces\XML\Plug-ins\WITSML\ directory.
REM ============================================================================
REM Sample startup command file for the PI-XML Interface to the PI System
REM ============================================================================
REM
REM pixml.bat.new
REM Use this file as a template for pixml.bat
REM
REM Required command-line parameters
REM ----------------------------------------------------------------------------
REM
REM /ps=x Point source; must match PointSource pt attribute
REM
REM /id=x Interface ID; must match Location1 pt attribute
REM
REM /server=x XML server; must match URL of XML server
REM
REM Optional command-line parameters
REM ----------------------------------------------------------------------------
REM
REM /dll==x Path for plug-in DLL, default uses PIXML_OPC.dll
REM located in the interface Plug-ins OPC subdirectory
REM
REM /sync_read Forces the interface to do synchronous reads.
REM Required for the WITSML Plug-in.
REM
REM /ts Use local timestamps instead of server timestamps.
REM
REM /arcreplace Force values into archive. Replace if they already
REM exist.
REM
REM /time_offset=x An offset of x seconds is applied to all timestamps
REM
REM /ignore_offset Ingore time difference between PI and interface node
REM
REM /db=x Print interface-level debug messages
REM
REM /sn Do not perform exception reporting, and force XML
REM server to do exception reporting
REM
REM Common optional command-line parameter used by the OPC and WITSML Plug-ins
REM ----------------------------------------------------------------------------
REM
REM /connecttimeout=x Limits the time (in milliseconds) it takes to make
REM an initial connection with the XML server. After a
REM connection to the server has been established the
REM timeout property applies
REM
REM /timeout=x The timeout in milliseconds after a connection to
REM the XML server has been established. Communication
REM taking longer than this value will be dropped. The
REM default value is 30,000 milliseconds.
REM
REM /authsceme=x Enables you to choose acceptable an authentication
REM mechanism that is supported by the XML server. The
REM value of x corresponds to the following values.
REM 1 - basic authentication
REM 2 - ntlm authentication
REM 8 - digest authentication
REM 16 - negotiate authentication
REM Note that x is a bitmask so you can combine
REM these values (bitwise OR) to enable multiple
REM types of authentication. For example, to
REM enable both basic and digest auth, x would be
REM set to 9 (1+8=9). The default value for this
REM property is 18 (ntlm and negotiate).
REM /authuser=x User for authentication
REM
REM /authpassword=x Password for authorizing user
REM
REM /proxyserver=x Identifies the proxy server (x) through which
REM messages are sent and received.
REM
REM /proxyuser=x The user name used for proxy authentication.
REM
REM /proxypass=x The password used for proxy authentication.
REM
REM /usessl Use ssl to encrypt communication, XML server
REM must support the use of SSL certificates
REM
REM OPC Plug-in specific optional command-line parameters
REM ----------------------------------------------------------------------------
REM
REM /locale=x Specifies the LocaleID to be requested by the
REM interface in communicating with the XML server
REM
REM /keep_alive_mult=x The keep alive multiplier tells the XML server how
REM long to keep a subscription alive. Subscription are
REM kept alive at a rate that is equal to x times the
REM scan frequency.
REM
REM /ssr=x Specifies the Subscription rate ratio. The value of
REM x represents the number of values to obtain between
REM each scan and can be used to increase data
REM throughput by buffering values on the XML-DA server.
REM The XML-DA server may revise this value downwards
REM automatically if they cannot support the data rate.
REM
REM /holdtime=x Instructs the XML server to hold off returning any
REM value until the specified absolute XML server time
REM (x) in milliseconds is reached.
REM
REM /waittime=x Instructs the XML server to wait for the specified
REM duration, x, after the holdtime is reached before
REM returning if there are no changes to report.
REM Changes that occur during this time will be
REM immediately reported to the interface.
REM
REM /returnallitems XML server will return all values for each scan
REM
REM FileReader specific optional plug-in command-line parameters
REM ----------------------------------------------------------------------------
REM
REM /purge=#c Time to wait before purging old *.old files
REM already scanned. The format of the time string
REM should be a number followed by a one-digit letter,
REM which can be either h for hours, m for minutes,
REM s for seconds, or d for days
REM
REM /mask=file.ext Wildcard mask use to specify a subset of
REM of files that exist in the XML directory
REM
REM /xsl=x Location of XSLT file;
REM Matches location of XSLT file used to transform raw
REM XML into XML that conforms to the ReadResponse
REM extract of the OPC XML-DA schema (version 1.0)
REM
REM /xslout=path/file Location of output XSLT file;
REM Matches location of XSLT file used to transform XML
REM that conforms to the WriteResponse extract of the
REM OPC XML-DA schema (v1.0) into any kind of XML
REM
REM /output=path Path;
REM Must match path where XML file are to written to
REM for output points
REM
REM /xsd=path\filename Location of schema file for input XML validation
REM Matched location of schema file used to validate
REM XML files that are read before transforming them.
REM
REM /dbll=x Print interface-level debug messages
REM
REM Http plug-in command-line parameters
REM ----------------------------------------------------------------------------
REM
REM /xsl=x Location of XSLT file;
REM Matches location of XSLT file used to transform raw
REM XML into XML that conforms to the ReadResponse
REM extract of the OPC XML-DA schema (version 1.0)
REM
REM /xsd=path\filename Location of schema file for input XML validation
REM Matched location of schema file used to validate
REM XML files that are read before transforming them.
REM
REM /user=x Username for authentication
REM
REM /password=x Password for authentication
REM WITSML plug-in command-line parameters
REM ----------------------------------------------------------------------------
REM
REM NONE except the common ones between OPC and WITSML listed above.
REM
REM ****************************************************************************
REM * Uncomment the appropriate command lines for the Plug-in you wish to use, *
REM * by default the OPC Plug-in is already uncommented *
REM ****************************************************************************
REM
REM ----------------------------------------------------------------------------
REM Sample startup command line using FileReader Plug-in
REM ----------------------------------------------------------------------------
REM
REM .\pixml.exe /ps=X /id=1 /f=00:00:30 ^
REM /server="c:\XMLFiles\testfiles" ^
REM /dll=".\Plug-Ins\File Reader\PIXML_FileReader.dll" ^
REM /xsl="c:\XSLT\process.xsl"^
REM /xslout="c:\outputs\test.xsl" ^
REM /output="c:\output files" ^
REM /stopstat="Intf Shut"
REM
REM ----------------------------------------------------------------------------
REM Sample startup command line using OPC Plug-in
REM ----------------------------------------------------------------------------
REM
REM .\pixml.exe /ps=X /id=1 /f=00:00:05 /f=00:00:10 /f=00:00:30 ^
REM /server="" ^
REM /dll=".\Plug-Ins\OPC\PIXML_OPC.dll" /stopstat="Intf Shut"
REM
REM ----------------------------------------------------------------------------
REM Sample startup command line using http plug-in
REM ----------------------------------------------------------------------------
REM
REM .\pixml.exe /ps=X /id=1 /f=00:00:30 ^
REM /server="" ^
REM /dll=".\Plug-Ins\http\PIXML_http.dll" ^
REM /xsl="c:\XSLT\process.xsl"^
REM
REM ----------------------------------------------------------------------------
REM Sample startup command line using WITSML Plug-in
REM ----------------------------------------------------------------------------
.\pixml.exe /ps=x /id=1 /f=00:00:05 /f=00:00:10 /f=00:00:30 ^
/server="" ^
/dll=".\Plug-Ins\WITSML\PIXML_WITSML.dll" /stopstat="Intf Shut" ^
/sync_read
The above command line tells the Interface to
• service PI points whose PointSource is X and Location1 is 1,
• define three scan classes with periods of 5, 10 and 30 seconds
• connect to an XML server whose URL is
• use the post-processing dll for the WITSML specification
• write Intf Shut to its list of points upon exit, and
• uses synchronous read operations which are required for this plug-in.
The installation program installs a sample command file named pixml.bat.new. If you are not using the PI-ICU, you should use this file as a template for your own pixml.bat.
Error and Informational Messages
A string NameID is pre-pended to error messages written to the message log. Name is a non-configurable identifier that is no longer than 9 characters. ID is a configurable identifier that is no longer than 9 characters and is specified using the /id flag on the startup command line.
Message Logs
The location of the message log depends upon the platform on which the interface is running. See the UniInt End User Document for more information.
Messages are written to PIHOME\dat\pipc.log at the following times.
• When the interface starts many informational messages are written to the log. These include the version of the interface, the version of UniInt, the command-line parameters used, and the number of points.
• As the interface retrieves points, messages are sent to the log if there are any problems with the configuration of the points.
• If the /db is used on the command line, then various informational messages are written to the log file.
System Errors and PI Errors
System errors are associated with positive error numbers. Errors related to PI are associated with negative error numbers.
Error Descriptions
Descriptions of system and PI errors can be obtained with the pidiag utility:
\PI\adm\pidiag –e error_number
Revision History
|Date |Author |Comments |
|17-Aug-04 |ASingh |Rough Draft. |
|15-Nov-04 |ASingh |Changed instrument tag to use nameWell instead of UID according to user feedback. No|
| | |support for output points yet. No support for storing full XML strings until |
| | |requested as a need. |
|18-Jul-05 |ASingh |Added connection settings info. |
|18-Aug-05 |MPKelly |Fixed Copyright page, removed all references to File Reader dll , fixed directory |
| | |paths, updated ICU Control screenshots, updated TOC. Fixed headers and footers. |
|22-Aug-05 |ASingh |Addressed MPK comments. |
|30-Aug-05 |MKelly |Made Final. |
|8-Dec-05 |ASingh |Version 0.9.1.0 Rev A: Updated bat file for version 1.2.0.0 release |
|16-Dec-05 |Chrys |Version 0.9.1.0 Rev B: fixed headers & footers; clarified ICU fields |
| | | |
| | | |
| | | |
| | | |
| | | |
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.