Designer 10.15 | webMethods Service Development Help | Working with gRPC Descriptors | Support for gRPC in Integration Server
 
Support for gRPC in Integration Server
 
Limitations for gRPC Support
Integration Server can receive and process messages for methods defined in a gRPC service definition. This support is provided by a gRPC server embedded within Integration Server and by Designer functionality that consumes a proto file describing one or more gRPC service definitions and generates the Integration Server artifacts that will be used to implement the logic of the gRPC methods.
The gRPC server implementation in Integration Server uses the Java gRPC API protocol buffers version 3 (proto3). Integration Server makes use of the Java code generated by the protoc-gen-grpc-java plug-in along with some of its own generated Java code that corresponds to the gRPC methods defined within the proto file to marshal gRPC requests and responses. Designer represents the proto file as a gRPC descriptor with a collection of assets that correspond to the services, methods, and messages defined in the proto file.
Below is the gRPC descriptor generated from a simple proto file containing a gRPC service definition named Greeting which has a method named SayHello that performs a simple “hello world” call.
The gRPC descriptor references gRPC method flow services for methods and gRPC document types for the input and output messages.
At run time, Integration Server routes the call for a gRPC method to a gRPC method flow service on Integration Server, converts the gRPC message to IData, and then invokes the gRPC method flow service. Integration Server includes built-in service to convert the gRPC method flow service output from IData to a gRPC message and send the response to the client.
For more information about how a gRPC service definition in a proto file corresponds to a gRPC descriptor, see About gRPC Descriptors.
Note:
While the gRPC server implementation in Integration Server uses proto3 libraries and compiler, Integration Server uses proto2 descriptors for webMethods messaging with Universal Messaging. The proto3 libraries and compiler supports proto2 as well as proto3.