2010年11月24日星期三

Cloud computing, SOA and Web Services standards


Today’s topic is how cloud computing is related to SOA and why Web services standards are important to adoption of cloud computing.
Both cloud computing and SOA do not have a standard definition. It can be concluded that cloud computing is centralized model required pay-per-use in order to achieve a cost-efficient, scalable, reliable, convenient and transparent network for users to access a pool of measurable computing recourses. Cloud computing strives for the minimal management recourses and keep continuous service provider interaction. SOA is an architectural style designed for the better implementation of business. Software services and functions are built in a loosely or tightly coupled way to support business process. Invocation plays an essential role in SOA. Softer services and functions can be assembled and reassembled quickly according to the business requirement.
Web services are now regulated by W3C web services architecture working group. Concluded from the definition from W3C, a web service standard gives interoperating method between different software, running on different applications, platforms and infrastructure.
Firstly, let’s talk about the relationship between cloud computing and service-oriented architecture (SOA).
1.       Cloud computing is totally different from SOA on the concept view. “SOA is a pattern of architecture, whereas cloud computing is an instance of architecture, or an architectural option.”[5]
2.       Although cloud computing and SOA are different in concept but they can be related. Cloud computing can be used in service-oriented architecture for the purpose of convenience of retrieving data, less management effort or risk diversification. The following diagram shows a basic usage of cloud computing in an SOA: (the applications are retrieving information that business required from the cloud)
[5]
This is only one example using one of the services of cloud computing called information as a service. The major difference between using a built-it-in function and using a simple web API to retrieve information for the cloud is the cost. Company does not have such information service may require one thousand of times of cost to build the infrastructure and software than just outsourcing it on a cloud. That is the magic of “cloud”.
3.       SOA is not the only that cloud computing collaborated with. Cloud computing are used with many other business models or architecture forms including peer-to-peer (P2P) computing, SOA and autonomic computing nowadays. Cloud computing reveals its business benefit in different architecture and it seems that there is trend for using cloud computing in a variety of business services on information technology.

The second part is the importance of web services standards to the adoption of cloud computing.
Cloud computing provide access of computing recourses for a broad range. It can be servers, platforms, storage devices, application and etc. For a user who wants to develop web application using cloud as a platform, many programming language or method can be used. Web services standards play an important role for the compatibility of applications developed using cloud computing. The compatibility of applications or usage of the software directly influences the scalability. For example, database of a cloud stores some information that a client required. How the client would deliver the request application and how the form of data should the servers sent back are very important. Web services standards regulate and improve the collaboration using the cloud computing. Furthermore, web services standards include items on business process, service publications, transport, security and reliability. These are all essential factors in a cloud computing process. One of the vulnerable point of cloud computing is the security problem because data or information are stored remotely on a server. Web services standards give better solution to the security problem so that cloud computing are easier to be accept in the business cases require high protection of the data and information.


Reference:
[1] Toward a Unified Ontology of Cloud Computing by Lamia Youseff University of California, Santa Barbara, Maria Butrico, Dilma Da Silva, IBM T.J. Watson Research Center
[2] Cloud Computing – Issues, Research and Implementations by Mladen A. Vouk Department of Computer Science, North Carolina State University,
[3] W3C Web Service Architecture Working Group http://www.w3.org/TR/ws-arch/
[4] Cloud computing and emerging IT platforms: Vision, hype, and reality for delivering computing as the 5th utility by Rajkumar Buyyaa, Chee Shin Yeoa, Srikumar Venugopala, James Broberg, Ivona Brandic
[5] Cloud Computing and SOA Convergence in Your Enterprise: A Step-by-Step Guide by David S. Linthicum

2010年11月17日星期三

Survey: SOAP-based vs. RESTful Web Services


Nowadays, as the development of the internet, web services are also development rapidly in order to meet the demanding need of the user. Web services have changed dramatically from architecture, usage, method and concept. There is a tendency that web services are moving away from SOAP-based towards RESTful. A basic comparison and discussion between SOAP and RESTful will be shown in this article.
What is web service?
Web services are a form of distributed information system. Typically speaking, it is application interface based on a network to fulfill the task of interaction and communication. The services are usually described in a standardized format such as WSDL and can be accessed via HTTP on a remote machine. Web services are tending to group into two categories: Big Web Services and RESTful Web Services.[1]
What is SOAP? How it is used in web service?
SOAP (Simple Object Access protocol) is a typical protocol in Big Web Services category because SOAP message are usually delivered using an XML format and via HTTP. SOAP also combines many other web-based standards.
What is RESTful web service?
RESTful web service stands for Representation State Transfer. It is a style of software architecture described by Fielding. The REST architectural style was developed in parallel with the HTTP/1.1 protocol, based on the existing design of HTTP/1.0.[2]
In a RESTful web service, there are two types of parties: clients and servers. Clients initiate requests to servers; servers process requests and return appropriate responses. The key momentum of RESTful is representation. All the resource transferring through requests and response are addressed in a represented way. They can be coherent and meaning concept captured by a document with a state.
There are states for the client party: application states and “at rest”. A client in a rest state is ready to interact with its user. During this state, any interaction does not occupy any storage of the servers or have no load on the network.
Each interaction or request for the user provides the client with the opportunity to change the state of the object by navigating to a different URI (Uniform Resource Identifier). The application of transferring state and also URI will be represented and maybe used when the client asks for a transmission next time.
The following figure shows a work flow of a REST-style work flow:
[5]
Initially, RESTful web service is developed based on HTTP and can be called using some HTTP method such as PUT, POST and GET; but it can be used by other application layer protocols if the protocol can have a uniformly representation method which can give a meaningful solution of each document.
To conclude, REST has four major factors: resource identification through URI, uniform interface, self-descriptive messages and stateful interactions through hyperlinks.[4]
Comparison between SOAP-based web service and RESTful web service
There many discussions on SOAP and REST technology. From the architectural principle of the two services, they are different from:
1.      Layering: SOAP is using HTTP as transport-layer protocol while REST treats HTTP as application-level protocol.
2.      Compatibility: SOAP has advantages on computing the middleware while REST is simple and able to apply even on a browser.
3.      Scalability: SOAP is based on WSDL and XML while REST supports a uniform interface as well as XML.
For detailed characteristic comparison, please refer to the appendix.
Furthermore, they have their own advantages on different aspects.
Advantages of SOAP:
1. SOAP is protocol transparency and independence. The same message in the same format can be transported and accepted by many tyeps of working system rely on HTTP.
2. Quality of service such as encryption and reliable transfer can be made using SOAP independently from the transport path.
3. Using WSDL in SOAP has many advantages on compatibility with working platform (both operating system and programming language).
4. SOAP engines and WSDL tools are well-developed which can effectively help integrator to develop a interpretational service on a sophisticated and complex application without carefully knowing all the functions of the application. For example, test clients can be generated from the WSDL contracts automatically.
Advantage of RESTful
1. RESTfulWeb services are perceived to be simple because REST leverages existing well-known W3C/IETF standards (HTTP, XML, URI, MIME). It is uniformed so that the meaning of the document is easily known between parties.
2. RESTful has a lightweight infrastructure is inexpensive to acquire so that it has a very low barrier for adoption. For example, developers can begin testing RESTful to client services from an ordinary Web browser, without having to develop custom client-side software.
3. REST is scalable and easier for users to discover the web resource based URI and hyperlinks. RESTfulWeb service is stateless so that it is able to serve a very large number of clients with the support for caching, clustering and load balancing built into REST.
Conclusion
Since there are so many trade-offs between SOAP and RESTful technology, it remains a problem for the users in choosing the method of web service. As the tendency of increasing number of users and web services, it is a problem to be considered. The characteristic of scalability of the service may be the most important point to consider. RESTful web service needs to be consummate before it is widely applied in the future.

References:
[1] http://en.wikipedia.org/wiki/Web_service on 15 November 2010 at 12:15
[4] RESTful Web Services vs. “Big” Web Services: Making the Right Architectural Decision by Cesare Pautasso, Olaf Zimmermann, Frank Leymann
[5] Developing web services choreography standards—the case of REST vs. SOAP by Michael zur Muehlena,*, Jeffrey V. Nickersona, Keith D. Swensonb
[6] A RESTful Web service, an example by Paul James on Thu 11th Nov 2010

Appendix:
The detailed characteristics of SOAP and REST[5]

2010年11月3日星期三

Web 3.0 and Semantic Web


In this article, I am going to discuss about what is my vision on Web 3.0 and what are the key technologies that will make it happen.

To better describe web 3.0, we must first have clear idea on the history of web.
Web 1.0 gives us a method to connect and communicate. New innovative ideas occur and internet is growing significantly. Website like Face book and Amazon opens a new era of web communication.
As the success of user oriented website, more and more developer are seeking new innovations, more and more rich internet application occur. Web 2.0 is a revolutionized network. The blog is the example best describe the idea of web 2.0. The users connected by internet are not just information retrievers. They are the also the content producer and contributors. People like to share their ideas and doing more interactive using the web. Wikipedia, windows live messenger, YouTube and micro-blogs are all well-known applications developed under web 2.0.

Seems like web 2.0 is well-developed, why web 3.0 is still required?
The revolution of web is desirable. The reasons are listed as following:
1. As more and more contents generated by the user, web is meeting the challenge on storing data and status of users. All the data are unstructured on the internet. People will use different structure on different server. 2. Mobility of applications, devices and users are a newly demand. How to design a web that can be compatible with all operating systems of devices becomes an inevitable problem. Compatible problems are not only occurs on different devices, but also from different places. 3. Users are not easily satisfied with normal systems that just follow the instructions they give. Intelligence web applications are required. For example: a user wants to listen to a new piece of music but there are so many songs that he does not know which to choose, the web learns from the past records of songs that user have listened to and automatically response and select a suitable song for the user.

According to the requirement previously discussed, what key functions or technologies may be added in Web 3.0?
1.      In order to meet the need of compatibility, Web should be developed towards a “semantic” web. The word “semantics” is related to syntax and the meaning behind what you said. The computers and devices can access and be able to display the webpage using standard html, but they actually do not know the meaning of the webpage. Semantic web is going to make the devices recognize the meaning and learn what the users are interested in. By knowing the user’s preference, all the application devices can change the method of helping the user from passive to active. The compatibility problem does not occur in a semantic web because all the devices know the meaning of the webpage and display them to the users to the way that user preferred.
2.      According to the change of semantic web, the document saving method is also required to change. The data now saving in the web server are a bundle of documents. When people are talking about the semantic web, the computer have to learn the meaning by retrieving “things” but not document from the website. Things can mean everything or everything related, such as: people, places, events, organizations, music, movies, relationships and etc. Knowing the meaning of things is not enough. In order to server people actively, computers are also required to the relationships between the elements in one thing and also the relationships between things. The reorganizing process of things changes the unstructured data into a better structure. Some of the technologies have been underdevelopment to do such things, such as micro-format and RDFA. So in Web 3.0, data stored in the web service are things with relationships.
3.      After talking about the semantic and data storage of Web 3.0, I would like to emphasis on the learning abilities of the device. In my point of view, both web servers and application devices are able to learn about the things and the user. What is possible logic and technology embedded in the devices? Learning is a graduate process I think. I suggest one of the technology can be adopted in the web is the artificial neural network. It is already used in learning process of some complex functions. Given numbers of set of inputs and outputs, neural networks are able to approximate and learn the function. I suggest that semantic webs can also use this technology. For example: by initial giving several search and choice operation of music by a user, devices automatically learn the preference of the users and choose music for the user next time.
4.      Mobile technology is essential in Web 3.0 because in a semantic web all the devices are connected. Now 3G mobile networks is a revolution of mobile devices technology. But as the increase of the number of wireless data transmission traffic, 3G algorithm may not be able to support the semantic web. Most 3G networks are using code division multiplexing method. The data rate of this method is limited. Revolution of mobile networks is also necessary in Web 3.0. 4G or higher generation of mobile networks will be the dominant in the future.

Finally, let me give an interesting example on the use of Web 3.0 or Semantic Web.
Nowadays, searching machines are able to help the user find the document on the internet by key words searching. In a semantic web, electronic devices are able to understand the meaning of the search and give out the result, “Thing”, according to the matching of the characteristic of the users’ requirement and the thing. All the relationships or properties of things will be displayed to the user.

References: (people interested in Web 3.0 can browse the website and video in the following websites)