Java/.NET Services

Java/.NET Services must comply with these rules:

Make the Service class public, and make all methods called by the client public.
A method can take any number of arguments and can have a return type of void. The return values of state methods are ignored, and a Service method with a void return type returns a null.
If you plan to use the Service cross-language, the arguments and return values must conform to the rules of interoperability, as described in the section Interoperable Types for XML Serialization.
If only a client of the same language uses the Service, you can use any serializable object for arguments and return values.
Overloaded methods are prohibited.
Methods can throw exceptions within a Service, which captures and includes stack trace data and nested exception data when available.