Service Enablement - Overview

The Service Enablement functionality uses the Microsoft Windows Communication Foundation (WCF) as exposed in the .NET Framework 3.5. WCF is implemented primarily as a set of classes on top of the .NET Framework CLR. Studio is integrated with WCF so developers of object-oriented applications can quickly build and publish service-oriented automations and integrations.

A WCF service is a program that exposes a collection of endpoints. Each endpoint is a communications portal. A ServiceDescription holds the collection of ServiceEndpoints each describing an endpoint the service exposes. From this description, ServiceHost creates a runtime that contains an EndpointListener for each ServiceEndpoint in the ServiceDescription. The endpoint's address, binding, and contract correspond to the EndpointListener's listening address, message filtering and dispatch, and channel stack, respectively.

A WCF client is a program that exchanges messages with one or more endpoints. A Channel Description holds the one ServiceEndpoint with which the Client communicates. From this Channel Description, ChannelFactory creates the channel stack that can communicate with the service's endpoint.

A service endpoint has an address, a binding, and a contract.  

The endpoint's address specifies where the Endpoint resides as a network address. An endpoint address is basically a URI, an identity, and a collection of optional headers.

The endpoint's binding specifies how the Endpoint communicates with the world, including things like transport protocol (TCP, HTTP, and so on), encoding (text, binary), and security requirements (SSL, SOAP message security). A binding has a name, a namespace, and a collection of composable binding elements. The binding's name and namespace uniquely identify it in the service's metadata.

The Endpoint's contract specifies what the endpoint communicates, and is essentially a collection of messages organized in operations that have basic Message Exchange Patterns (MEPs) such as one-way, duplex, and request/reply. Similar to service bindings, each service contract has a name and a namespace that uniquely identify it in the service's metadata.

Studio implements the WCF service as shown below.

Note: If the Dynamic Assembly for a Service Enablement Object is deleted, you must also delete the Service Enablement to allow the solution to function.


Port numbers

A service supports its own HTTP page with an optional WSDL link. That page is hosted on the service address where the service port is part of that address. The same service address could also be used by clients for automatic service discovery. Binding, on the other hand, is a protocol-specific means of communicating with a service. Clients can invoke service contracts using any one of service’s bindings. To do so they need to know binding’s address. That is where binding’s port comes in as it is part of binding address. Whether the service’s and binding’s ports can be the same largely depends on binding. Some bindings allow for that but others require an exclusive port usage.


Privacy | Trademarks | Terms of Use | Feedback

Updated: 18 June 2020

© 2016 - 2020 Pegasystems Inc.  Cambridge, MA All rights reserved.


OpenSpan data classification label