The Genero Web Services library provides two new methods in the WebOperation class to create One-Way operations in services. A One-Way operation means that the server accepts an incoming request, but doesn't return any response back to the client. There is one method called CreateOneWayRPCStyle to create an RPC Style operation, and another one called CreateOneWayDOCStyle to create a Document Style operation. A One-Way operation can be used as a logger service for instance, where a client sends a message to the server, but doesn't care about what the server is doing with it.
See WebOperation for information about these two methods.
The fglwsdl tool was enhanced with the following new options :
The following options have been changed as described below :
See fglwsdl for more information.
The Genero Web Services library has been enhanced to support WSDL with circular references. Actually, the 4GL language doesn't provide a way to define variables or types that refer to themselves. However, to provide better interoperability and a way to handle such circular data, the fglwsdl tool now generates variables or types of xml.DomDocument type when circular references are detected during the processing of WSDL files. This gives the user the ability to manipulate the circular data by hand, using the XML DOM API.
See Genero Web Services XML Extension Library for information about the various classes and methods for handling XML documents.
The Genero Web Services com library provides one more class, HTTPServiceRequest, to perform low-level XML and TEXT over HTTP communication on the server side. This allows communication at a very low-level layer, to write your own type of web services.
See HTTPServiceRequest for information about how to write an HTTP server.
The Genero Web Services xml library provides 12 new XML attributes to map to simple 4GL variables. These attributes restrict the acceptable value-space for each variable in different ways such as:
See Constraints between simple 4GL and XML datatypes for more details.
The fglwsdl tool was enhanced with the following three new options :
See fglwsdl for more information.
This library provides classes and methods to perform:
See Genero Web Services XML Extension Library for information about the various classes and methods included in the xml library.
The Genero Web Services com library provides two classes, HTTPRequest and HTTPResponse, to perform low-level XML and TEXT over HTTP communications on the client side. Two more classes, TCPRequest and TCPResponse, are also provided to perform low-level XML and TEXT over TCP communications on the client side. This allows communication between applications using the core Web technology, taking advantage of the large installed base of tools that can process XML delivered plainly over HTTP or TCP, as well as SOAP over HTTP.
Specific streaming methods are also available to improve the communication by sending XML to the network even if the serialization process is not yet finished, as well as for the deserialization process.
It is also possible to prevent asynchronous requests from being blocked when waiting for a response, and to perform specific HTTP form encoded requests as specified in HTML 4 or XForms 1.0.
See HTTPRequest and
HTTPResponse for
information about HTTP classes included in the com library.
See TCPRequest and
TCPResponse for
information about TCP classes included in the com library.
The fglwsdl tool generates all client stubs with the low-level HTTPRequest and HTTPResponse classes of the com library to perform HTTP communications. The low-level generated stub also takes advantage of the streaming methods, if Document Style or RPC-Literal web services are performed. Streaming is not possible with RPC-Encoded web services, as nodes can have references to other nodes in the XML document, requiring the entire document in memory to perform serialization or deserialization.
The fglwsdl tool also generates two new 4GL functions for each operation of a Web service. These two functions enable you to perform asynchronous web service operation calls by first sending the request, and retrieving the corresponding response later in the application. This allows you to prevent a 4GL application from being blocked if the response of a web service operation takes a certain amount of time.
See HTTPRequest and HTTPResponse for information about classes included in the com library, and the fglwsdl tool for additional information about generated code and asynchronous calls.
Genero Web Services Extension provides an enhanced fglwsdl tool that is able to generate 4GL data types from a XML schema. The data types can then be used in your application to be serialized or deserialized in XML. The resulting XML is a valid instance of that XML schema, and validation with a XML validator will succeed.
See the fglwsdl tool for additional information about XSD.
You can now choose to use Document Style Service (Doc/Literal) or RPC Literal Style Service (RPC/Literal) with Genero Web Services Extension (GWS), for .NET compatibility and WS-I compatibility (standards defined by the Web Services Interoperability organization).
Note: RPC/Encoded Style Service (Traditional SOAP section 5) is available for backwards compatibility.
See Web Services Styles and the GWS Web Server Tutorial for additional information.
Genero Web Services Extension provides a tool, fglwsdl, to allow a Genero application that is accessing a Web Service to obtain the WSDL information for the desired service. It does not matter what language the Web Service is written in. The fglwsdl tool is installed in Genero as part of the Genero Web Services Extension package.
See The fglwsdl Tool for additional information about WSDL.
You no longer need to create a runner that includes the Genero Web Services Extension package. Instead, your applications import the Genero Web Services Extension library named com. This library provides classes and methods that allow you to perform tasks associated with creating GWS Servers and Clients, and managing the Web Services.
See Genero Web Services COM Extension Library for information about the various classes and methods included in the com library.
GWS supports SOAP header management through the CreateHeader method in the Web Service class that is part of the Web Services Extension library (com).
See Web Service Class for additional information.
GWS supports secure communications through the use of encryption and standard X.509 certificates. Based on the OpenSSL engine, new security features allow a Web Services client to communicate with any secured server over HTTP or HTTPS.
A new tool is provided, fglpass, allowing you to encrypt a password from a standard X.509 certificate, and to de-crypt a password you previously encrypted with a certificate.
Entries in the FGLPROFILE file are used to define the configuration for client security.
See FGLPROFILE Password Encryption and FGLPROFILE Configuration, as well as the other pages listed in the Security section, for additional information.
You can configure a GWS Client to connect via an HTTP proxy by adding an entry in the FGLPROFILE file.
See the SSL Proxy Tutorial for additional information.
You can define multiple Web Services in a single Genero DVM. When you start the Web Services engine, all registered Web Services are started.
See the Web Services Engine class that is part of the Web Services Extensions library (com).
You can remap the location of Genero Web Services using entries in the FGLPROFILE file, depending on the network configuration and the access rights management of the deployment site.
See Using Logical Names for Service Locations for additional information.
You can add optional attributes to the definition of data types. You can use these attributes to map the BDL data types in a Genero Web Services Client or Server application to their corresponding XML data types.
See XML Attributes for additional information, including a complete list of attributes that can be used.
This file contains internal 4GL functions to handle SOAP requests and errors.
The file is provided in the $FGLDIR/lib directory of the Genero Web Services Extension package, and should be linked into every Genero Web Services Server or Client program.