Wednesday, 2 March 2011

Evolution of SOA

The main reason which led to the evolution of SOA is the difficulty faced by the programmers in writing the software. In the early days the programmers were rewriting the exiting piece of code, to over come this disadvantage modular design principles were introduced. Even though this code can be reused with this technology, it led to the maintenance and deployment problems.

To solve this problem classes and object-oriented techniques were introduced. This also led to the reuse of just code and not the functionality of the program. Component based approach is introduced to reuse the functionality. Todays software development faces the problems like distributed software,application integration, varying platform, varying protocols.

All above problems could be solved by using SOA. SOA has following components service, message, dynamic discovery and web services.








Mashup

A mashup  is a Web application that combines multiple services into a single application.

The main characteristics of the mashup are combination, visualization, and aggregation. Mashup makes existing data more useful for personal and professional use.

The first mashup application was  used to map services or photo services to combine these services with data of any kind.
There are many types of mashup such as
  Data mashups
  Consumer mashups
  Enterprise mashups.               


 Data mashups combine similar types of media and information from multiple sources into a single representation.

Consumer mashups combines different data types such as visual elements and data from multiple sources .

Business mashups  applications  combines their own resources, application and data, with other external Web Services.
The architecture of a mashup is divided into three layers:
  • Presentation: It defines user interface by adopting technologies like HTML,CSS Javascript and AJAX.
  • Web Services: The functionality can be accessed using the API services and technologies like RPC, SOAP,REST.
  • Data: Handling of data like sending, storing and receiving are  performed using technologies like XML and JSON.







Web Services and Web Applications

Lets first see what they actually mean.

Web services provide a standard means of interoperation between different software applications, running on a variety of platforms and/or frameworks. In a broader sense it means: " A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards."

The purpose of a Web service is to provide some functionality on behalf of its owner -- person or organization, such as a business or an individual. 
Web services are sometimes called application services. Web services are not directly meant for the users but for the developers to aggregate/integrate the different services from different services providers to give users the flexibility to use various services on a single web application.
These services may be checking someone's credit, checking the inventory status or checking shipping status for a logistics firm.
AMAZON is the pioneer in web services frontier these days.

Now lets see what is a web application.
A web application is an application that is accessed over a network such as the internet or an intranet. 

A web application is a self-contained subtree of the web site. It uses Servlets, Filters, JSP, and the functionality provided by any other java code to provide a response to a client that makes an HTTP request.

Any application that uses a web browser as a client is actually a web application.
For example, a web site with a sign-in for the users or a web site with a message board 

Mashups

A mashup is a type of  application that's comprised of two or more  components that have
 been connected to create a new integrated experience.Mashups are generally client applications or hosted online.The term implies easy, fast integration, frequently using open APIs.Mashup is important to make existing data more useful, moreover for personal and professional use.standardizing key technologies, such as SOAP, REST, and Ajax, we've seen an explosion in the adoption of SOAs, both on the Web and inside the enterprise. This has led to the technologies reaching a critical mass whereby there is aincreased  reusable Web-based APIs and mashups . In this, there's an  expanding set of content, data, and services available for people who wish to develop applications using this model.
--------------------------------------------------------------------------------------------------------------
1) IBM® Mashup Center
IBM® Mashup Center is an enterprise mashup platform enabling the rapid creation, sharing, and discovery of reusable application building blocks (widgets, feeds, mashups) that can be easily assembled into new applications or leveraged within existing applications - with the governance and security IT requires
http://www.ibm.com/developerworks/downloads/ls/lsmashupcenter/index.html

2)IBM mashup technology on YouTube.
--------------------------------------------------------------------------------------------------------------

Evolution of SOA!!!

SOA is a revolutionary shift from client server architecture ,SOA emerged into IT mainstream when web services became the  basis of a seperate architectural platform.

The IT industry has decomposed IT infrastructures into modular, reusable services.Evolution of the SOA will put these services in the hands of the users (non-developers) so they can build solutions in a manner that can overcome various  problems.We need a new way of accessing and leveraging the current services in the SOA and empowering the end or business user to quickly integrate the services together. This approach would allow them to rapidly create applications that meet their situational needs.


Mashup Application

Wikipedia explains Mashup as: 
                                        a mashup is a web page or application that uses and combines data, presentation or functionality from two or more sources to create new services.
According to Mcmillan Dictionary:
                            a website or piece of software making use of information from more than one websitefor exampleusing photographs from one website and text from another.


Both of the above definition has many thing in common. Both presents Mashup as either a Web Page or Application.
It is also clear that Mashup Application deals with the combination of data and its presentation. Mashup Application is very common and useful in the scenario today. A very famous mashup application is Google Map.


Google provides API, which can be used to add other informations over it. We can today see many of the websites which are based on the google Map Application. In similar ways their are many other application like this.


Mashup Can be of many type e.g.:
Mapping Mashup, Photo and Video Mashup, Search and shopping Mashup, news Mashup( From IBM.COM)



There are many technologies that are being used to implement Mashup Application:


The Mashup Architecture consists of following three participants:
API/content providers, the mashup site, and the client's Web browser.
The API/ content providers are the site from which the data is fetched. The Mashup site is a place where the Mashup is hosted. The place where user interacts with the Mashup Application is Clients Web Browser.


Ajax which is a combination of several technologies is used to create a smooth and cohesive web experience for the user by exchanging small amount of data rather than reloading complete page.


Web Protocols like REST and SOAP are used to create a platform independent environment.


When we focus on the Mashup Application we come to know that this is a very useful and widely used and uses all the latest ways to make the maximum use of them.

Mashup application

Mashups are an exciting genre of interactive Web applications that draw upon content retrieved from external data sources to create entirely new and innovative services. They are a hallmark of the second generation of Web applications informally known as Web 2.0.

In short "In web development a mashup is a web page or application that uses and combines data, presentation or functionality from two or more sources to create new services."

There are many types of mashup, such as data mashups, consumer mashups, and enterprise mashups:
  1. Data mashups combine similar types of media and information from multiple sources into a single representation.
  2. Consumer mashups generally visual elements and data from multiple sources
  3. Business mashups generally define applications that combine their own resources, application and data,with other external web service.