GT 4.0 Component Guide to Public Interfaces: C WS Core

1. Semantics and syntax of APIs

1.1. Programming Model Overview

The C WS-Core provides interfaces for developers interested in writing web services and clients in C. The primary APIs available to the developer are the C stub bindings generated from WSDL and XSD. These APIs provide the structures and type definitions for each XML Schema type, client stub functions for invoking services, and service skeleton code that allows service writers to fill in the service implementation.

The client stub bindings provide the following:

  • Portable ANSI-C API
  • Control of message handling and configurable attributes through client handles
  • Asynchronous stub functions for non-blocking requests
  • EPR encapsulation for easy interaction with resources
  • Convenient handling of XSD wildcards

For service writers, the C WS-Core provides service-side skeleton bindings that perform the necessary routing and marshalling for a service operation. The interface to the developer is through the service implementation functions that must be filled in. The service-side programming model includes the ability to load operation providers, which are generic operation implementations that exist over a set of services. This is useful with WSRF, where pseudo-operation inheritance exists. As well, message handling can be controlled at the service implementation level, providing flexibility and control to the service developer.

The C WS-Core provides resource management using the resource API. This is a C API that can be invoked from within C services for creation, access, and control of resources and resource properties.

1.2. Component API

  • Resource and Resource Property API: Useful for writing WSRF-enabled services. This API allows resources to be created, accessed, and modified from within a C Web Service implementation.
  • Service Engine and Message Attributes: The message attributes provides mechanisms for manipulating runtime parameters of messages. This includes security setup, specific HTTP and WS-Addressing configuration, among others.

    The service engine API is useful for embedding Web Services in C programs. This API allows an application to directly control service invocations and interact with services as they are being invoked. It also provides a convenient API for running a NotificationConsumer service (receiving notifications) from within a client application.

  • Notification Consumer API: Allows creation of NotificationConsumer resource instances from a client API. This API can be used in combination with the Service Engine API to receive notifications.
  • WSRF Core Bindings API: These are the types generated from the set of core WSRF schemas. For example, the wsa_EndpointReferenceType passed to all EPR stub functions is a generated type from the WS-Addressing schema. The other schemas include:

    • WS-Addressing
    • WS-BaseFaults
    • WS-ResourceProperties
    • WS-ResourceLifetime
    • WS-BaseN
    • WS-ServiceGroup

2. Semantics and syntax of the WSDL

2.1. Protocol overview

The C WS-Core does not provide WSDL interfaces

3. Command-line tools

Please see the C WS Core Command Reference.

4. Overview of Graphical User Interface

There is no support for this type of interface for C WS Core.

5. Semantics and syntax of domain-specific interface

5.1. Interface introduction

The C WS-Core does not provide domain specific interfaces.

6. Configuration interface

6.1. Configuration overview

The C WS-Core component does not provide global configuration functionality.

7. Environment variable interface

The C WS-Core does not provide any user-level component specific environment variables.