Guest Articles >> XML Web Services - To develop or Not to develop
Author: Vidya Rajagopalan
"O Mirror, mirror on the wall, Do I develop XML Web Services or not?" As I looked into the mirror today, I realized that it is going to be an important decision making day for me. I have to submit a technical paper on XML web services, its usefulness, and finally to recommend development or to protest against it vehemently. So, here I am talking to myself, asking a fairy tale kind of question to go about my job. Mom, if you hear a lot of noises from the room, it is just I, on a debating spree.
I think the logical way to analyze this problem will be to break it down into series of smaller problems so that my life becomes easy. The first question that pops to my mind is the most obvious. Let me just jot it down.
XML Web Services?
What are these business services? Why do we need them? Now for this, I have to delve into the history of business over the Internet. Till the advent of this new star called Web Services, the Internet was used for business communication with the customers and so we have a variety of sites varying from a static-content providing site to a full-fledged database driven site. As is with all technologies, this scenario too had to undergo a change. I think it must have started with a person who said "When I post a sale order in my application, I want a purchase order generated in your application NOW". And a customer's whine is ALWAYS taken notice of immediately. As a result of the whine, we were looking at a situation where transactions take place back to back. There is a clinch though. Let us say that I, at ABC.com, want to purchase a book. I purchase the book with my credit card and expect the book to be shipped as soon as possible to me. This is possible if ABC places a shipping request to the freight company and gets its response about the earliest time in which the book can be shipped. More importantly, ABC will also need to know the latest freight rates of the shipping company so that I, the customer, can be billed for it 'correctly'. Consider this situation in the former scenario. The rates would have been hard coded in ABC and each time there is a change in the freight charges, ABC will have to ensure that they have the recent rates.
Fine, now how is that going to change in the new scenario? Instead of writing it all down, let me just draw a picture and get things clearer in my mind.
Click here for the picture.
Looking at the picture, I can just about see how useful these web services are going to be. They are going to help us to
1. Reuse Code. After all, do I need to reinvent the wheel?
2. Reuse information across enterprises too. The world will shrink further!
The freight company can supply its rates through web services not only to
ABC.com but also to any other company which requests for it.
3. More automation of the automated business processes only that
in this case, life is made very simple.
4. Save time and money due to accurate information available at any time.
5. Ease of integration and so expedite development time.
6. Streamline businesses better because of the common 'mode' of communication, namely XML Web Service.
Now these are good reasons why the business managers should nod sagely for a B2B business enterprise using XML web Services. Not only the business managers but also the customer who gets his sale order converted to a purchase order correctly, the first time, every time.
Opportunities for Development
OK now, what does it have for me as a developer? Being familiar with OOPS approach, I think all this basically boils down to exposing interfaces for others to use. There should be some standards to establish this 'talk' between interfaces otherwise we are going to face another Tower of Babel. What does it take for a web service to be made and 'consumed'. We should first have a protocol to transfer web pages, something like HTTP, SMTP and the like. We have to transfer data too. What better way other than through all-pervading XML? Yet, there is still something lacking in the logical sequence. Before sending data, I, as a consumer of web services, will need to know what data has to be sent and what data can be expected in return. This is taken care of, by SOAP. These are the basics and over and above all this, we require the proprietary software, which allows developers to make and use web services.
I am just wondering if there are a variety of vendors offering such services. Let me just check up the Internet. Ah, well, here we are. We have
1. Microsoft with its famous .Net Framework and Visual Studio .Net
2. IBM is also in the fray by integrating web services functionality
into its server and developer products. The Apache group will also be
able to support web services.
3. Sun Systems too are busy with their web services implementation and support.
4. HP
No worries about standards either. These big cats will see to that.
Apart from all these new languages and development environment, Web services can be written and called using almost any language: VC++, VB, Java, and JavaScript.
Now I think I will just move ahead and think about how web services can be used for the current Internet scenario. And again, I have to break it into smaller problems.
1. What are the possible business models that can be made
available over the Internet for web services?
2. What are the current problems with the older models of the
Internet?
3. Will Web Services be able to solve these problems or may be even
lead to replacement of some of the models?