Technology Overview

Authentication

Client Contract 1 (CC1) uses Basic Authentication for all requests except for the initial extraction of the WSDL contract. The WSDL definition requires no authentication. Execution of any method within the service will require a valid Attendance on Demand Client Access Account. The Access Account used will determine the level of access permitted on the client database.

Encryption

All Web Services operate under https: (SSL). No access is permitted under http:. This includes extraction of the basic WSDL definition.

Protocol

Client Contract (CC1) uses a SOAP based RPC methodology with WSDL definitions for methods, enumerations, and complex data types. All complex data types have been verified for correct operation on Microsoft’s Visual Studio .NET and Borland’s Developer Studio.

Extracting the WSDL Defintion

Extracting the WSDL definition is as easy as acting upon the definition returned from the site:

https://aodws.attendanceondemand.com:8192/cc1.aew/wsdl/IAeXMLBridge

Programmers Note: For most development environments, once your development tools read the WSDL definition (contract) from the above URL you will be able to immediately begin invoking the defined methods.

Programmers Note: The “aodws” portion of the URL needs to be replaced with the URI of your development or test database.

Programmers Note: No authentication is required at this level.

SOAP Endpoint

When building your client access code, it is important to correctly specify the SOAP endpoint (which is invoked over HTTP) for each client. CC1 is a client based contract and the client is identified within the sub-domain portion (URI) of the URL.

https://testdemomrc.attendanceondemand.com:8192/cc1exec.aew/soap/IAeXMLBridge

Programmers Note: The “testdemomrc” portion of the URL needs to be changed for each client. This is the SOAP endpoint that is set before connecting to Attendance on Demand.

Programmers Note: Authentication is required at this level. You must supply a valid Access Account and Password using Basic Authentication in order to invoke any CC1 specific methods.

Programmers Note: This URL is returned within the WSDL specification (usually at the end) under the elements “service”, “port”, and “soap:address”. The “soap:address” is the endpoint. If you re-contract on a per client basis, the endpoint will automatically adjust to contain the client URI.

Programmers Note: The contract is static across all clients. It is safe to change the client portion of the endpoint (client URI) at any time for any clients your account has access to.

Port Access

Attendance on Demand has chosen to use a reserved port number to both access the WSDL specification and to invoke remote methods. This port number is 8192 and must be present on all requests.

Stateless Operation

The Attendance on Demand Web Service CC1 operates in a stateless environment. There are no handles or session identifiers or cookies to maintain for continuous operation. It requires a valid Access Account, supplied by Attendance on Demand, an Attendance on Demand Channel Partner, or by an Individual Client. It is recommended that the Access Account used for Web Service is not also shared by an operator. Modifications made to a client database using an Access Account through Web Services logs employee changes the same way as operator changes are logged.

Simple Level

Client Contract 1 (CC1) represents a simple level access, although the specification is quite robust. The design of CC1 permits the 3rd party developer the ability to easily maintain synchronization between a client’s Attendance on Demand database and an external database with minimal effort. A large number of methods exist, but only a few are required for a comprehensive operation.

An example of this is the maintainEmployeeBasic () method. Although add employee and edit employee methods are available, a single call to maintainEmployeeBasic () can be used for both add and edit operations. Attendance on Demand will automatically perform the add/edit operation by applying a set of rules (described later in this wiki). This single entry point is an example of how the CC1 is designed to minimize the amount of effort the developer is required to invest in order to build a reliable synchronization link.

Key Concepts