Web Services API
There are several web services APIs present on the S60 platform.
Serene (The Nokia Web Services Framework for S60)
In S60 3rd Edition and later SDKs, in addition to the Series 80 SDK (Nokia 9300 and 9500 Communicators), a full framework for web services is provided, allowing simplified access to SOAP services. Support is provided for access to WS-I Basic Profile compliant services, in addition to the Liberty Alliance Identity Web Services Framework services.
The basic API for accessing a web service is very simple:
iConnection = CSenServiceConnection::NewL(*this, *pattern) ; response = iConnection->SubmitL(*message) ;
Things are a little more complicated than that, so more information about the Nokia Web Services Framework can be found at http://www.developer.nokia.com/Develop/
In addition to the basic APIs, some utility classes for parsing XML and SOAP messages are provided, and their implementation is optimized for a mobile environment (i.e., to save memory)
In post-3rd Edition SDKs, the S60Ex\AddressBook directory holds an example of using this API to access an address book web service that is running within Nokia Developer.
In addition to the regular Symbian C++ API, there is a Python binding to the same APIs, which is described a little in the following blog post: http://appliedlife.blogspot.com/2007/08/python-web-services-on-mobile-phones.html
Finally, there is a plug-in tool that allows a developer to take a WSDL file, and compile this into Symbian C++ stub code for the client of the web service described in the WSDL.
Java (J2ME) JSR 172
Java ME Web Services Specification (JSR-172), to consume web services as defined in the Web Services SOAP standard. With this API you can call a remote method stored on a server developed with any server technology, as Java, PHP, .NET.
It has support for remote service invocation and also XML parsing at the device level without parsing it manually or using another API that consumes JAR size.
It allows theses Web services specifications:
- Simple Object Access Protocol (SOAP) 1.1, which defines transport and data encoding.
- Web Services Definition Language (WSDL) 1.1, which defines how to describe remote services.
- XML 1.0.
- XML Schema.
You can use kXML, a small XML pull parser, specially designed for constrained environments as MIDP. With this classes you can parse XML on Java ME applications without having Web Services API installed. But you have to manually parse the SOAP protocol.