Why using Web services for B2B is hard to do
Let’s take an example. I was talking to the eCommerce architect at a large chemical company that is a SAP customer. He said that his company has a goal of using CIDX Chem eStandards XML business documents (for orders, invoices etc.) to connect with any company where they exchange 400 or more documents per year. However they are finding it hard work to build connections to customers where they exchange 1000 documents per year. Even when they do connect, they frequently have to adapt to the technology the smaller company has rather than the smaller company adapting to the CIDX standard that the large chemical company wants to use.
Basically the Walmart* effect is not working.
The Walmart effect says “Connect to me my way or I won’t do business with you” which is exactly what Walmart did with their suppliers over RFID. Now this is not quite true. It does sometimes work. For example if you do 80% of your business with Walmart then you would do whatever they ask as the health of your business depends on it. But if, say, you do just 2% or less of your business with them then you are much more likely to say no as the cost and disruption of implementing the RFID technology would outweigh the benefits.
This is the crux of the problem. Small companies often don’t have the money to support multiple different types of business connections. Even if they have the money and they want to support different connections, they often don’t have the technology staff to make it happen. Finally, if the company has no big customers who account for a lot of their turnover, there is no way that they can afford to implement different types of connections for each of their customers. Instead they will rely on fax, email or the regular post.
You might think that Web services and adoption of standard business document formats based on UN/CEFACT Core Components will make the problem go away. All you need to do is create WSDL definitions for your Web services and give them to the company that you want to connect with and they can bind their solution to the WSDL and voilà, you have a connection.
If only it were that simple.
Firstly, the company you want to connect to must also provide you with a WSDL definition for their Web services … if they have them. Secondly … eCommerce connections using Web services, need to use multiple different specifications, e.g. Do you use WS Addressing or WS Context to describe the metadata about your service? Do you use WS Reliability or WS Reliable Messaging to make sure your message is delivered? How do you do message security? Do you use HTTP/S or XML Signature and WS Security. You might agree to using WS Security but which of the signature algorithms do you use for generating your signatures?
The key point is that any variability requires additional effort when building your solution. So even if you are using WSDL to define your connections, there is potentially still a lot of work to do before you can implement that connection. A small business can’t afford to do this, of if they do, they will only do it for their major customers. If you are not one of their major customers then you are stuck … even if you are a Walmart!
So the less variability the better. Ideally you probably want to get to the point where the only variability you have to support is the URL used for receiving messages and the digital certificate to use for encrypting messages and validating signatures. If everything else is standardized then you stand a much better chance of being able to add connections to new partners quickly and easily. So really, for interoperability “less is more”!
So what’s the solution?
Firstly, some of the Web services standards need to mature – standards such as WS Addressing are still in development. Debates over competing standards such as WS Reliability and WS Reliable Messaging need to be resolved. We also need to develop a profile of how all the different web services standards are used together so that the amount of variability that small organizations have to handle is significantly reduced. Groups such as WS-I that SAP actively participates in, are working on this.
We’re not there yet … but we’re getting there.
* I think everyone who lives in the US will know Walmart. But for those who do not, Walmart is the largest retailer in the world with revenue of $280 billion in 2003. This is larger than the GDP for whole countries such as Sweden which had an estimated GDP of $238 billion in 2003. Sources: Walmart – http://finance.yahoo.com/q/ks?s=WMT, Sweden – http://www.cia.gov/cia/publications/factbook/geos/sw.html.