Why Web Services?
Component-based programming has become very popular than ever. Scarcely an application is created today that does not entail leveraging components in some form, usually from different vendors. As applications have grown more sophisticated, the requirement to leverage components distributed on remote machines has also grown. web services iowa
An example of a component-based application is an end-to-end e-commerce solution. An e-commerce application residing on a Web farm building needs to submit purchases to a back-end Venture Resource Planning (ERP) app. Oftentimes, the ERP app resides on different hardware and may run on a different operating system.
The Microsoft Distributed Part Object Model (DCOM), a distributed object infrastructure that allows a software to employ Component Object Model (COM) components attached to another server, has been ported to a number of non-Windows platforms. But DCOM has never gained vast acceptance on these websites, so it will be rarely used to facilitate communication between House windows and non-Windows computers. ENTERPRISE RESOURCE PLANNING software vendors often create components for the Glass windows platform that communicate with the back-end system via a proprietary protocol.
A lot of services leveraged by an e-commerce application may well not live within the datacenter at all. For example, if the e-commerce application allows mastercard payment for goods purchased by the customer, it must elicit the services of the service provider bank to process the customer’s credit card information. But for all sensible purposes, DCOM and related technologies such as CORBA and Java RMI are limited to applications and components installed within the organization datacenter. Two principal reasons behind this are that automatically these technologies influence proprietary protocols and these protocols are inherently interconnection oriented.
Clients communicating with the server over the Internet face numerous potential barriers to communicating with the server. Security-conscious network administrators around the world have implemented corporate routers and firewalls to refuse practically different types of communication over the Internet. Trying to takes an work of God to acquire a network administrator to open slots beyond the bare lowest.
If you are lucky enough to get a network manager to open up the appropriate ports to support your service, it’s likely your clients will not be as fortunate. As a result, proprietary protocols such those employed by DCOM, CORBA, and Java RMI are not practical for Net scenarios.
The other problem, as mentioned, with these solutions is they are innately connection oriented and therefore cannot handle network disturbances gracefully. Because the Net is not under your direct control, you are unable to make any assumptions about the quality or dependability of the connection. When a network interruption occurs, another call the client makes to the server might fail.
The connection-oriented characteristics of such technologies also makes it challenging to build the load-balanced infrastructures necessary to achieve high scalability. Once the connection between the client and the server is severed, you cannot simply route the next request to another server.
Developers have tried out to overcome these constraints by leveraging a model called stateless programming, nonetheless they have had limited success because the technologies are fairly heavy and make it expensive to improve a connection with a remote object.