Understanding the Definition and Philosophy of Web Services and SOA

an article added by: Sonja Lande at 05312007


In: Root » Computers and technology » AJAX » Understanding the Definition and Philosophy of Web Services and SOA

French Spanish Portuguese Italian German Japanese Chinese Korean Russian Arabic

Understanding the Definition and Philosophy of Web Services and SOA

Wikipedia offers the following definition of Web services:4 The W3C defines aWeb service as a software system designed to support interoperable machine-to-machine interaction over a network. This definition encompasses many different systems, but in common usage the term refers to those services that use SOAPformatted XML envelopes and have their interfaces described by WSDL. For example, WS-I only recognizes Web services in the context of these specifications. Interestingly, like the pure Ajax definition, aWeb service is defined to a large degree using technical terms such as Simple Object Access Protocol (SOAP), Web Services Description Language (WSDL), and so on. It leads you to believe that in order to build aWeb service, you must use SOAP and WSDL. What is misleading is that aWeb service is directly related to the technology being used. For example, the REST way of building Web services may not involve XML, WSDL, or SOAP. Thus, is REST aWeb service?

The answer is that REST is indeed aWeb service if the following more succinct definition5 is used: Web services [instead] share business logic, data and processes through a programmatic interface across a network. What is preferable with this definition is the reference to business logic, data, and processes and the exposing of those items using a programmatic interface. With this definition, Web services need not be a machine-to-machine interaction, as aWeb browser in the context of Ajax has the ability to call aWeb service. It’s important to realize that in the context of Ajax, the programmatic interface may generate an interface definition that is intended to be processed by a human for example, a link or button that is pressed to generate new content. With a generalized definition of Web services, let’s look at a definition of service-oriented architecture (SOA):6 In computing, the term service-oriented architecture (SOA) expresses a perspective of software architecture that defines the use of loosely coupled software services to support the requirements of business processes and software users. In an SOA environment, resources on a network are made as independent services that can be accessed without knowledge of their underlying platform implementation. This time, instead of a definition that uses technical terms, abstract terminology is used to describe an SOA. Looking at the definition of SOA, you might consider a network printer as an SOA. Yet, is that what the definition of SOA intends? Is aWeb service an SOA, and is an SOA aWeb service? JP Morgenthal7 says it best: An SOA is a service with a contract.

Morgenthal’s comment is simple, succinct, and expresses exactly what an SOA is: An SOA is a service with a contract. What makes an SOA unique is that somebody who has no knowledge of a system can ask an SOA, “What services do you offer?” and the SOA will respond, “Here is what I offer and here is how you call me.” Therefore, since Web services provide a description of their interface, aWeb service is an SOA. A file server is an SOA, if a client is able to query the file server for its contract in order to ask for data. Keep the following facts in mind when trying to understand the philosophy and definition of Web services and SOA:

• An SOA can be aWeb service, and aWeb service can be an SOA.

• When building robust, scalable, and extendable Ajax applications, write the client code to only make Web service calls. Don’t use the traditional Web application architecture, where pieces of HTML are cobbled together to make a functioning HTML page.

• Don’t get too caught up with the details of the definition of a true Web service or a true SOA. Theory is good, but pragmatics solves problems.

• A Web service is a programmatic interface to business logic, data, or processes across a network.

• An SOA is a service (a programmatic interface to business logic, data, or processes across a network) with a contract.

legal disclaimer

Our website is not responsible for the information contained by this article. Web-articles is a free articles resource.
Suggestion: If you need fresh, daily updated content for your website, feel free to use our service. Click here for more information.

related articles

1. Ajax
Given the recent interest in Ajax, you’d be forgiven for thinking it was a new technology. In fact, the XMLHttpRequest object has been around for years. In technical terms, asynchronous JavaScript interaction with the server is nothing new. All of the other elements of the Ajax model have also been around for quite some time: CSS, (X)HTML, and DOM Scripting. Yet in 2005, interest in this methodology soared. Could it really be that simply giving this approach a snappy name like Ajax was responsible for the sudde...

2. Understanding the Definition and Philosophy of Ajax
The focus of this article is to provide solutions to some common, general problems and questions that are bound to arise before or during development of Asynchronous JavaScript and XML (Ajax) and Representational State Transfer (REST) applications. These common questions are not always technical in nature, often leaning more toward theory or philosophy of development. The problem with these kinds of questions is that once you begin to think about them, you keep going in a circle and end up where you star...

3. Understanding the Definition and Philosophy of REST
Understanding the Definition and Philosophy of REST REST is a controversial topic among Web service enthusiasts, because it’s considered to stand for the opposite of what Web services and SOA are trying to achieve. The problem with this thinking is that REST is not in contradiction with the abstract definition of SOA and Web services. REST is in contradiction with technologies such as SOAP, WSDL, and WS-* specifications. The following offers a quick definition of REST:...

4. The Easiest Way to Get Started with Ajax and REST
The Easiest Way to Get Started with Ajax and REST Problem You want to know the best way to get started with writing Ajax and REST. Solution When developing an Ajax and REST application, you must decide on the tools and frameworks you’ll use. The choice is simple: Use whatever you’re using today, and write some Ajax applications. You don’t need to change the tools you’re using today. Whether you’re using ASP.NET, JavaServer Pages (JSP), PHP, Ruby, or Python, you...

5. Testing a Dynamic Contract with Ajax
Coding the Contract Using Test-Driven Development Techniques Coding the contract using agile and test-driven development techniques requires writing a number of tests and implementing aMock URL layer. Problem You want to code the contract using these development techniques. Solution To demonstrate, let’s define a use case, implement the use case as a contract, write a test case(s) to implement the contract, implement the contract in the Mock URL, and finally...

6. Testing the Client Side Logic
Problem You want to effectively test your application’s client-side logic. Theory Testing GUI code tends not to be a productive task because of the complications that arise. The main complication is how to test the correctness of a user interface. Imagine a situation where clicking a button causes a table to be filled with data. Now imagine that when a check box is checked and the button is clicked again, a different table is filled with content. The fact that clicking the same button results in two ...

7. Understanding JavaScript and Types
Understanding JavaScript and Types Problem You want to work around the fact that JavaScript does not have types declared for its variables. Theory JavaScript code does not have any variables with a declared type. The lack of typed variables is apparent when you declare functions. That said, not having typed variable declarations does not mean JavaScript has no types or no type safety. Let’s start out with the simple declaration of a function, as illustrated by the following ex...