In: Categories » Computers and technology » AJAX » 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 notice
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.
Useful tools and features
related articles
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...
2. 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 ...
3. 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...
4. Coding Using Conventions and Not Configurations
Coding Using Conventions and Not Configurations Problem You want to make your JavaScript constructs more efficient by applying the Rails “convention over configuration” principle to them. Theory You may already be familiar with the programming platform Ruby on Rails, which is used to build Web applications. The focus of this recipe is not Ruby on Rails, but one aspect of Ruby on Rails namely, convention over configuration (see http://en.wikipedia.org/wiki/ Ruby_on_Rails for m...
5. Advantage of parameterless functions in JavaScript
Using Parameterless Functions Problem You want to take advantage of parameterless functions in JavaScript. Theory JavaScript functions for the most part have parameters. You may think that the previous sentence states the obvious after all, without parameters, what data could be passed to a function? JavaScript has the ability to declare functions that have no parameters, even though the caller of the function has passed parameters to the function. For example, let’s look at...
6. JavaScripot Functions
Treating Functions Like Objects Problem You want to take advantage of the fact that functions are objects (remember, everything is an object in JavaScript). Theory Many people think that a function is some keyword used in JavaScript. A function is also an object that can be manipulated. Knowing that a function is an object makes it very interesting from the perspective of writing JavaScript code, because the code can treat the function like another other object. This mean...
7. Implementing an Error and Exception Handling Strategy
Implementing an Error and Exception Handling Strategy Problem You want to implement a clean error and exception handling strategy in your applications, to make them run more smoothly. Theory Of course, you might argue that one error is a dialog box and the other is generated in the JavaScript console. The fact that one browser uses a dialog box to show an error and the other does not is a browser issue, not an error issue. A concise way of classifying the two errors is to ...
