For the most part, you call Web Services in the same way you call Web Services elsewhere. While the general process may not differ, it’s important that you are aware of these platform-specific features.

Security

The content you see as a response to a Web Service call depends on your access privileges. When you login using the loginUser Web Service, you provide your user identity. If session sharing is enabled, all subsequent Web Service calls in that session are associated with that identity and related role.

For more information on loginUser, see the Personalization Programming Guide. You may also want to learn how other Web Services handle the security information provided by loginUser. Such information exists in the Repository Guide and the Core Commerce Programming Guide.

Transactions

When a client calls a Web Service, the transactional behavior of the service is managed entirely on the server side. The method that is exposed as a Web Service can use standard transaction demarcation techniques, but the calling client has no control over this.

There are some practical considerations you should be aware of. If a single Web Service call attempts to perform some operation, and the operation fails, the operation can be rolled back (provided that the Nucleus method is demarcated properly). However, a transaction cannot span multiple Web Service calls so if an operation is performed by a sequence of Web Service calls, and the final call fails, there is no way to roll back the steps performed by the previous calls.

Session Sharing

When you create a Web Service, you specify whether it should be executed within the context of an HTTP session. Associating Web Services with a session enables an application to maintain state across Web Service calls and to use login information for security purposes.

To allow multiple Web Services to share a session on .NET, two things need to happen:

Client Stubs

The Oracle Commerce Platform provides preconfigured client stubs for all Web Services in ATGWS.dll. To use these stubs you need to install ATGWS.dll. See Installing ATGWS.dll for instructions. The client stubs provided here should be sufficient for your Web Services. Note that simultaneous calls to a Web Service made by different threads will require that a unique client stub instance exist for each thread.

Web Services that Access RepositoryItems

Standard serializers and deserializers can handle some complex types, such as JMS messages sent to the ContentViewed and ContentRecommended Web Services. When Web Services interact with proprietary technologies, such as RepositoryItems, standard serializers and deserializers do not understand the source data type so they are not able to recreate it.

A RepositoryItem is a specialized JavaBean called a Dynamic Bean that produces basic get and set methods for the fields you define for it. Many complex items are stored by the Oracle Commerce Platform as RepositoryItems. The following Web Services transmit content that is natively stored as RepositoryItems:

For these Web Services, you can use the Atg.DotNet.WebService API to serialize and deserialize related content. Descriptions for API classes are in Using the Atg.DotNet.WebService API with RepositoryItems. You can find this API in ATGWS.dll, which you need to install in order to access them. See Installing ATGWS.dll.


Copyright © 1997, 2015 Oracle and/or its affiliates. All rights reserved. Legal Notices