Try OpenEdge Now
skip to main content
Open Client Introduction and Programming
Overview : Architecture


The Open Client architecture allows Open Clients to access application services that are organized into separate ABL source files (usually .p (procedure) files, .w files, or both).
There are several components involved in accessing AppServer functionality from Open Clients. The following figure shows the basic components involved when an Open Client application communicates with an AppServer on a company intranet or the Internet.
Figure 1. Open Client architecture
Note: OpenEdge also supports SSL intranet connections between the WSA or AIA and the AppServer. For more information, see OpenEdge Application Server: Administration.
For Java and .NET, the client programmer writes the client application in Java™ or any .NET language. This application typically executes remote procedures and functions in an AppServer session through methods on a proxy object you generate using ProxyGen.
For OpenEdge Web services, the client programmer writes the client application in any Web-service-enabled language, such as Java, VB.NET, or ABL. This application sends requests to an OpenEdge Web Service Adapter (WSA), to execute remote procedures and functions in an AppServer session. The available methods and location of the WSA are specified in a Web Services Definition Language (WSDL) file generated when the Web service is deployed to the WSA. ProxyGen is used before deployment, to define the Web service.
ProxyGen is an Open Client development tool that defines and generates Java and .NET proxies (for use by Java and .NET Open Clients, respectively) and generates SOAP Web service definitions (for use by Web service clients). The proxy objects generated by ProxyGen are first class Java or .NET classes and use the Open Client Runtime to access the AppServer. For more information about using ProxyGen to generate proxies and Web service definitions, see Building and deploying an Open Client application and Generating Proxies and Web Service Definitions.
A key feature of the Open Client is support for relational data exchange. This allows ABL ProDataSets and temp-tables to be passed between the AppServer and the client application, which sees the data in its native environment. For Java, a ProDataSet parameter (DATASET or DATASET-HANDLE data type) maps to an OpenEdge ProDataGraph object, which is an implementation of the Java Service Data Objects (Java SDO) DataGraph interface. For .NET, a ProDataSet parameter maps to an ADO.NET DataSet object. Similarly, for Java, a temp-table parameter (TABLE or TABLE-HANDLE data type) can map (your choice) to either an SQL ResultSet object or an OpenEdge ProDataGraph object (as the wrapper for a single temp-table). For .NET, a temp-table parameter maps to anADO.NET DataTable object. In this way, Open Client applications can access any OpenEdge database or DataServer connected to and exposed by the AppServer application.