Migrating AppServer and WebSpeed Applications : ABL application code migration : Migrating client connections to PAS for OpenEdge
Migrating client connections to PAS for OpenEdge
When migrating clients from accessing the classic OpenEdge AppServer or its adapters to accessing PAS for OpenEdge, you need to search for the statements or routines that invoke the connection code and ensure that it uses an appropriate URL to connect to the OE ABL Web application, including a transport, service, and resource path appropriate to the client type.
For ABL clients, this is the CONNECT() method on the server object handle used to access the PAS for OpenEdge instance. For OpenEdge Java and .NET Open Clients, this involves a set of parameters passed to the Connection object constructor. URLs for these clients use the APSV transport, but no service and resource path.
For OpenEdge SOAP Web service clients, the WSDL file that you deploy provides the URL information for SOAP Web service clients to access its service objects. Connection URLs for these clients use the SOAP transport followed by a WSDL path that includes a URL query parameter to specify the Web service object to access.
OpenEdge REST Web service clients connect with a URL that uses the REST transport followed by a URI path that identifies the service and resource. The format of the URL does not change from accessing the same REST Web service implemented on the OpenEdge AppServer. You can thus configure a PAS for OpenEdge instance and OE ABL Web application so that existing REST Web service clients can use URLs that are identical to the URLs they used to access the same REST Web services running on the classic AppServer.
In general, the URL that you use to access an OE ABL Web application must conform to the following syntax:
Specifies the PAS for OpenEdge instance to connect with using the following syntax:
Syntax
scheme://[username:passphrase@]host:port
scheme
Specifies either HTTP or HTTPS.
Internet-secure connections to a PAS for OpenEdge instance using HTTPS require the management of a certificate store for public key certificates on the client (SSL client) and a certificate and key store for private keys and certificates on the PAS for OpenEdge instance (SSL server). For information on configuring both OpenEdge clients and PAS for OpenEdge instances for HTTPS connections, see Digital certificate management in this manual. Other SOAP clients and REST clients (such as Web browsers) have their own tools for managing certificate stores.
[username:passphrase@]
Specifies any user login credentials required to connect to the specified OE ABL Web application using the specified transport on the PAS for OpenEdge instance, according to the authentication model configured for the transport. If the authentication model is Anonymous, no user credentials are required. If the model is HTTP Basic or HTTP Forms, you must provide a valid username (username) and password (passphrase) known to the user account systems configured for the transport. Also, SOAP and REST clients often use an API to pass the user credentials in an authentication header of the HTTP message, in which case you do not need to specify them in the URL. Note that any user credentials you specify in the URL are ultimately passed in this authentication header of the HTTP message. However, to protect them, you should always use HTTPS for the life of the connection.
The APSV and SOAP transports support only Anonymous and HTTP Basic authentication (not HTTP Forms).
For OpenEdge clients using the APSV transport (ABL and Open Clients), you can separately pass the same, or different, user credentials in a client-principal object, or if the connection is session-managed, as connection parameters to the PAS for OpenEdge Connect procedure. In this case, the ABL application on the server typically manages the authentication of these separate credentials at a secondary level, after authentication succeeds on the server. For more information, see the sections on using a client-principal and the Connect procedure in the part of this manual on "Application Development with PAS for OpenEdge."
host
Specifies the name or domain of the PAS for OpenEdge host.
port
Specifies the port for the host connection. Typically, HTTP uses 8810 and HTTPS uses 8811.
[oeabl-web-application/]
Specifies the OE ABL Web application to connect to using the following syntax:
Syntax
[web-app-name/|ROOT/|/]
Specifies the OE ABL Web application, where web-app-name is the name of an OE ABL Web application other than the default, ROOT (oeabl.war). Any other combination, including no OE ABL Web application specification at all, specifies a connection to ROOT.
transport
Specifies the transport for the connection using the following syntax:
Syntax
apsv|soap|rest
apsv
Specifies the APSV transport used by ABL clients and Java and .NET Open Clients.
soap
Specifies the SOAP transport used by both ABL and external SOAP Web service clients.
rest
Specifies the REST transport used by REST Web service clients, which primarily include Web browser applications and apps running in mobile devices, such as Rollbase® and mobile apps accessing OpenEdge Data Object Services.
service-resource
Supported only for the OpenEdge SOAP and REST transports, this specifies a OpenEdge SOAP or REST Web service and its associated resource to access using the following syntax:
Specifies a URI that identifies the namespace for SOAP Web services defined in the WSDL file (SOAPnamespace) and the name of a service (SOAPsvc-name) to access, as defined in the WSDL file. SOAPsvc-name can also identify the service by itself if there is only one Web service defined in the WSDL file.
RESTsvc-name/resource-path
Specifies a URI path that identifies the name of a REST Web service (RESTsvc-name) and the REST resource (resource-path) to access. The resource-path can include query parameters for the resource as well.
For more information on the formation of URIs for accessing OpenEdge SOAP and REST Web services, see OpenEdge Development: Web Services.
In addition to specifying the URL for an OE ABL Web application, the client connection must specify the application model that PAS for OpenEdge and its business application is expected to execute. This is done for each transport and client type when connecting to PAS for OpenEdge in exactly the same way as specifying the session model when connecting to the classic OpenEdge AppServer:
APSV transport — For ABL clients, by setting the -sessionModel connection parameter of the CONNECT( ) method; for Java and .NET Open Clients, by setting the appropriate Open Client proxy property.
SOAP transport — The application model must be specified for the OpenEdge SOAP Web service when you define it in ProxyGen and is included in the WSDL file that you generate for client access. SOAP clients need only be written to support the application model for which the Web service is defined and for which the implementing business application on PAS for OpenEdge is written to support.
REST transport — The application model is always session-free to execute OpenEdge REST Web service requests and all REST clients need only be written to support session-free access.
For more information on migrating client connections from accessing AppServer services to access corresponding services of PAS for OpenEdge ABL Web applications, see the following sections: