Showing posts with label Sriharsha Guttal. Show all posts
Showing posts with label Sriharsha Guttal. Show all posts

Thursday, 7 April 2011

Comparison of SOA to past architectures

SOA vs hybrid Web service architecture

Here the use of Web Services with traditional architectures is found to be meaningful because of the flexibility in having established programming languages and make compatible with older application designs.Adapters are often available if there is no support available for the custom development of Web Services.

Web Services as component wrappers :

The primary role of Web Services here is to introduce an integration layer that consists of wrapper services which enables synchronous communication via SOAP-compliant integration channels.The communication with other applications or outside partners and also to take advantage of the features offered by third-party utility web services leading to the main purpose of having integration layer.

Web Services within SOA :

SOA provides strong support for a variety of messaging models and in this context the support of service orientation principles (loose coupling) for specific design requirements will be made available.By making standardization on SOA across an enterprise a natural interoperability emerges that makes compatible for proprietary application platforms.



Common Principles Of Service Oriented Architecture

1.Services are reusable that is for  example say account service.So the operations in account service like GetAccount,UpdateAccount,AddAccount makes you to reuse each operation by multiple service requestors.

2.Services share a formal contract say you are opening a new account in a bank for that you need to fill the application form.So the completed application form is much like a contract between the service provider and requestor of the service.

3.Services are loosely coupled that is a condition wherein a service acquires knowledge of another service but still remaining independent of that service.

4.Services abstract underlying logic that is some functionality provided to the requestor service is hidden.

5.Services are composable that is reconcile the sub-operations into a single operation which is simply another form of reuse.

6.Services are autonomous that is self-governance and eliminating dependencies on other services.

7.Services are stateless.

8.Services are discoverable that is for example a service registry provides a discovery mechanism very much like a phone book allowing potential requestors to query and check for service providers.

Wednesday, 9 March 2011

DTD AND XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE trainlog[
<!ELEMENT trainlog (session+)>

 <!ELEMENT session (duration, distance, location, comments)>
  <!ATTLIST session
    date CDATA #IMPLIED
   type (running | swimming | cycling) "running"
   heartrate CDATA #IMPLIED>

 <!ELEMENT duration (#PCDATA)>
 <!ATTLIST duration
   units (seconds | minutes | hours) "minutes">

 <!ELEMENT distance (#PCDATA)>
 <!ATTLIST distance
   units (miles | kilometers | laps) "miles">

 <!ELEMENT location (#PCDATA)>

 <!ELEMENT comments (#PCDATA)>
 <!ENTITY WP "Warner Park">
 <!ENTITY  NTP "Natchez Trace Parkway">

]>
 <trainlog>
   <session date="11/19/05" type="running" heartrate="158">
     <duration units="minutes">50</duration>
     <distance units="miles">5.5</distance>
     <location>&WP;</location>
     <comments>Mid-morning run, a little winded throughout.</comments>
   </session>

   <session date="11/21/05" type="cycling" heartrate="153">
     <duration units="hours">1.5</duration>
     <distance units="miles">26.4</distance>
     <location>&NTP;</location>
     <comments>Hilly ride, felt strong as an ox.</comments>
   </session>
 </trainlog>

Wednesday, 2 March 2011

Evolution Of Service Oriented Architecture

Service Oriented Architecture is all about collection of services where service is a function which is well-defined,self-contained and does not depend on the context or state of other services.
As we all know Architecture will be the first stage in software creation in which quality requirements can be addressed.
A Service actually forms end-point of a connection and actually describes what we connect together using web services.
So the Web Services purposefully use XML for establishing a robust connection.

The Importance Of XML is described as follows.
  1. XML documents benefit from their hierarchical structure say in a document for example we are willing to move a heading to a new location and drag everything under it along with the heading instead of having to page down to make a selection cut and then paste the selection into a new location.
  2. XML is not a binary format .We can create and edit files using anything from a standard text editor to a visual development environment which makes it easy to debug our programs and it makes XML useful for storing small amounts of data.
  3. XML front end to a database can store large amounts of XML data.So XML provides scalability for small configuration files to a company wide data repository.
  4. XML markup is a meta language which means markup can be used to describe other languages and allows you to create our own XML tags where it provides information about the information for which we are creating the XML based document structure.XML tells about data identification like what kind of data we are accessing.
  5. XML can be easily processed and XML documents can be composed from separate entities which gives a characteristic called In-line Re-usability.



Mashup Applications

The terms Remix and Mashup actually came from the music world.Remix is actually the same song sung to an new or updated beat.Mashup is similar to Remix where in the music world two elements are combined to form a different effect of that song that's actually called mashup.
So now coming back to actual field where Mashup,a web application based technology which actually combines data and services from various sources to create new application.
Some examples of the companies which currently use Mashups are Google,Yahoo,Amazon,eBay,Flickr as well as many online news services and social networking sites.
A simplest form of mashup is shown in the figure.
(Reference:Amazon.com Mashups by Francis Shanahan)


The working procedure in steps is as follows:
Step 1 : The Web browser communicates with the server which actually requests  a page using HTTP or HTTPS.
So actually there are two requests which is being handled one is Amazon and the other one is Yahoo.
Step 2 :  So the page is constructed by the Web Server and the first request which is Amazon is handled by using the SOAP over HTTP.
Step 3 : Amazon returns back a SOAP response.
Step 4 : The second request is Yahoo by using a Representational State Transfer (REST) style approach.
Step 5 : Yahoo will respond with Plain Old XML over HTTP.
Step 6 : Finally the web server takes up the responses and combines the data which makes some sense.
Step 7 : So the resulting data will be in HTML and which is inserted into the response and lastly sent back to the browser.
                  

Monday, 28 February 2011

Difference Between Web Application and Web Services

First i will briefly describe about Web Application.
A Web Application is a dynamic extension of a web or application server or you can say it as a website where we can log on to it and browse.
A Web Application actually consists of web components,static resource files such as images and helper classes and libraries.
There are basically two types of Web Applications.
First one is called Presentation Oriented Web Application which generates interactive web pages containing various types of markup languages like XML and the dynamic content in response to requests.
Second one is Service Oriented Web Application which implements the end point of a web service.
So to conclude lastly Presentation Oriented Applications are often clients of Service Oriented Web Applications.

So now about Web Services which is a software component that is described via WSDL and is capable of being accessed via standard network protocols such as SOAP over HTTP.
Web Services are self-contained (like independent unit),modular applications which can be described,published,located and invoked over a network like to expose some business logic you have over the internet.
As i have already mentioned in this blog Web Services are meant for developers but not for novice users.
Web Services can be used to realize Service Oriented Architecture which is explained later in this blog.



Web Services


The definition about Web Service is actually a software component stored on one computer that can be accessed via function calls by an application on another computer over a network.
                                          
HTTP protocol facilitated Human-to-Application like communications and there was an increasing demand for Application-to-Application communication with the traditional existing techniques.HTTP was not adequate for more complex operations like remote operation.
                                                                                                         
In Late 1999,Microsoft published SOAP (Simple Object Access Protocol) an XML-based protocol and then IBM support came into picture in early 2000 and the term Web Services was coined several months later,when IBM,Microsoft,and Ariba jointly published the Web Services Description Language (WSDL).



Web Service normally resides on a server.The term coined for making a web service available to recieve client requests is known as Publishing a Web Service and using a web service from a client application is known as Consuming a Web Service.Web Services have the characteristic like software portability and reusability in applications that operate over the internet. 

Some of  the Web technologies used are as follows.
XML (Extensible Markup Language)
SOAP (Simple Object Access Protocol) which allows client to call remote service.
WSDL (Web Services Description Language)
WSIL (Web Services Inspection Language)
UDDI (Universal Description,Discovery and Integration) a standard used for publishing or query web services.
                                                    
Web services are meant for developers but not for novice users.Web services are platform and language independent.Web services have important implications for business to business transactions.