Posts

Showing posts from 2005

WSDL and Extensibilty

If you are curious about any vs. anyType, here is a recent paper from Russell Butek that may be helpfull. For me, the common usage of any / anyType remains the way the DataSet are exposed in WSDL, with Microsoft .NET 1.1: <s:element name="GetAuthorsResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1"
name="GetAuthorsResult">
<s:complexType>
<s:sequence>
<s:element ref="s:schema" />
<s:any />
•••
</s:element>
A basic rule to keep in mind, when you author your own WSDL files. Uses xsd:anyType where you will otherwise use xsd:int, xsd:string or any other XML type. Uses xsd:any where you will otherwise use a named element (not a type).And to keep out of trouble, only use xsd:anyType when you want to handle arbitrary XML documents. Refrain yourself from using it when you try to thi…

Is WS-I BP good for you?

Image
As I spend time looking at web services in real life, there is a question that is comming back, all the time:
What is wrong with my WSDL?

Today, I am looking at Microsoft Office 2003 Web Services Toolkit. Why do I get 0 as Search Results with a WSDL that is looking good, and pass the WS-I Basic Profile report without any error?
Here is a screen shoot with the error message. This error is not listed as one of the top-5 common problems [look at the troubleshooting section].
.
Using the A9 search with image-on was an easy way to locate atricles with the screen that is giving me troubles. For this sample, I am using a WSDL from systinet.
As you do not have access to this service, hosted by Systinet, you have to work without access to the server. It's as simple as one-two:

make a local copy of the WSDL.on your local copy, remove the 'parts' attribute on all the soap:body elements, inside the binding. <input>
<soap:body parts='parameters' use='literal'/>
<…

Looking for a new acronym ?

The acronym of the day - SCA.

If you are curious about the new acronym of the week, don't rely on Google too much. It does not means 'Sexual Compulsives Anonymous' in our context. Instead, it means 'Service Component Architecture'.

Revolution is around the corner

This article is incredible: "Bell Launches Ingenious Bicycle Anti-Theft Product".

I had to share this one.
-ecco

Vista Beta 2, take II

After spending a few days with my installation, I am starting to find that it was only a beta drop, after all.
I am running into some interesting issues with access priviledge. I have been used to start my process using 'sudo' on Linux, so that I can work around some system checks without to go through a real server strength installation.
For now, I'll give it another shoot, before to go for a clean install and avoid the potential trouble with the Window XP upgrade part.
-ecco

Vista Beta 2 - Nice look

Finally,

I have found the time to get build 5219 of Windows Vista installed on my laptop. It was a seamless experience, that started on the wrong foot, but with an happy ending. I did not use NFS - still the FAT32 - did not have the 9GB of free disk space required - bye bye Oracle db 9r2.

The other surprise was with the time it took to finalize the installation, having the same screen asking me not to reboot yet for over 3 hours - good for our front yard, where I have spend most of the afternoon.

Cisco wireless is working again, and I do not seam to have any problem. I can start to play with the new stuff there !!!

-ecco

OOW Demo3 - .NET/J2EE interop by examples

Last week, I have been presenting at Oracle Open World on the subject of Web services interoperability between .NET and J2EE, with a focus on Oracle's implementation of JAX-RPC that is available in our latest developer preview.

Today, I have a very simple example of 'tweaking a local copy of the original WSDL'.

Here is the WSDL : http://www.tilisoft.com/ws/LocInfo/ZipCode.asmx?WSDL

C:\ow2005\Demo3>java -jar /oc4j/webservices/lib/wsa.jar genProxy output ./gen_src wsdl http://www.tilisoft.com/ws/LocInfo/ZipCode.asmx?WSDL
SEVERE: WSDL validation failed. The wsdl contains a mixture of styles - "document" and "rpc". Only "rpc" OR "document" is supported in a wsdl, not both.

work around:
- make a local copy
- edit the WSDL, and replace the instances of rpc with document.
- re-run the genProxy command

For some reason, the publisher of this service has been using 'rpc' at the service level, then 'document' at the operation level …

Usefull C# code snippet

If you are trying to look at the payload, when writing C# code, here is the way I ussually send the request from my C# client through an HTTP proxy. Usually, I am using the one that is embedded in JDeveloper.

using System.Net; // for proxy setup
...
  IWebProxy proxyObject = new WebProxy("http://hostname:8099", false);
  service.Proxy = proxyObject;

Note: do not use localhost or 127.0.0.1 if you want to hit the network layer.

When all the stars start to get aligned...

Discovered a cool post on WCF position regarding RPC-literal: "RPC" vs. Messaging in WCF.
It looks like the old position, from the early days of .NET is no longer the norm. The choice is back to the developers. Now, we can rename this post the way it was supposed to be name: 'RPC/Literal and French Choice'.

The way to go forward is still with the Document-Literal-MSS [Microsoft Secret Sauce] format, a.k.a Wrapped style. The legacy is sutch that you will have interoperability problem if you use this message format with a non-indigo based .NET framework.

-ecco

Simon Says - Top 10 tips on interop

If you don't have the time to watch msdntv, here they are:
#10 - no empty array (or arrays with un-initialized elements to be more precise)
Person[] getPeoples() { return new Person[10]; }#9 - package name (don't use equal test when comparing complexType - result in class cast or compiler error)#8 - test for null ; don't use ==. instead use isNull()#7 - no null for Date (System.DateTime does not have a null).
It's supported in indigo but don't use.#6 - date comparaison (use compareTo)#5 - use a trace tool (console, proxy)#4 - code so that you can change port number.#3 - Unit Test (another good practice)#2 - use doc/literal (WS-I recommend doc/literal, WS-I allow rpc/literal, niche market)#1 - use XSD first (but still use your WS platform or toolkit for the WSDL from code).A few comments I have :#5 - I'll even go further on this one - Mindreef's SOAPscope rules !!!#4 - this is just good practice, not an interop tip.#3 - And make sure that you do not rely on def…

404 - Not Found

Bush Error 404 - Bush Not Found In Crawford
If the page does not load for you, hit refresh (or the any key).

found it on Chris's Rants

Back online

Almost a month now that the vacations are over and I have finally been able to recover my account information to resume this endavour.
It's amazing to see how much damage a set of little software glitches can do...

-ecco

Why ws-rx ?

Image
I am mostly working on Web Services related technologies. I found the recent introduction of the WS-RX committe from the Oasis consortium funny, as it reuse the original drugs' Rx symbol [nothing to do with the work of the committe; just the name]. These two points should be enought to explain the reasons behind my choice, and it should be easy to remember.
-ecco

Is there any simpler than that ?

I have been reading articles at the gym, and was surprise to see how simple it can be to build an afiliate program with Web Services, using the .NET Web Services Platform. Read 'Create a Modern Extension to Your Online Business with a Public API' @ http://www.devx.com/webdev/Article/28026 to have a feel for it. When I came back from the gym, I got a few questions on the back of the printed copy:
What's in the WSDL to describe the interfaces?Error handling is implied. How does it work for real ? What happens when the DB is down?There is some DataSet Magic, with the way the result of the Web Service call is mapped into an ASP template? Does it work the same if the affiliate what to use java / jsp ?Other than switching to https, the options listed sound like marketing sageway into the futur. Is WSE 2.0 realy interoperable today?It look like a lot of material to get started with, on my technical writing, here on Blogger :-)Until then, -ecco