Showing posts with label Abhishek Anand. Show all posts
Showing posts with label Abhishek Anand. Show all posts

Tuesday, 26 April 2011

SOA vs distributed internet architecure

Application Logic:
The traditional distributed computing architecture is almost similar to the SOA but they are different at many points like the SOA uses the XML to communicate ie to pass messages between each other thus reducing the dependancy on any particular technology, whereasin  the distributed internet componet uses the properietary API to communicate with each other.
The distributed internet shows tight coupling as when they communicate a proxy stub is passed so that both can communicate with each other, this makes them stateful. The SOA does not have this problem, they does not require this stubs and can communicate by passing the XML messages.
Technology:
The traditional distributed computing were using the proprietary middleware like Corba, DCOM, because of this  they have got some compatibility issues, this was correted in SOA by usin SOAP messages to communicate which eliminated the use of proprietary middleware.
Technologies:
The technology behind distributed internet architecture has cheanged over time. They uses the HTML, HTTp etc. With the time webservies came into picture, SOA asically uses XML data representation and it uses SOAP for communication, Many new things has been introduced like WSDL, UDDI etc.
Security:
When it comes about distributed system security plays major role. In traditional distributed computing many things has been implemented like encryption of data. In SOA we can include the security parameters in the SOAP header itself.

comparision of SOA with past architecture

A client server architecture may consist different no of tiers: it may be single tier as well as of multi-tier.
In single-tier all the processing are assigned to the server but in two tier the data is assigned to server and the business and presentation are assigned to client.
We can compare SOA and Client Server Architecture on following base:

Application Logic:
In client-Server architecture, the main processing work resides with the client creating a monolithic architecture. This somewhat abstracted a set of business logic from the client and simplified data access programming. The presentation layer within contemporary service oriented solutions can vary.Within the server environment, options exhixts as to where application logic can reside and how it can be distributed. Additionally, it is more common within an SOA for these units of processing logic to be solution agnostic.
Application Processing:
Because more client-server application logic reside in the client component, the client workstation is responsible for the bulk of processing.The 80/20 is the rule of thumb. A two tier client server solution with large user base requires each client establish its own database connection. Each connection are persistent and communication is synchronous. Whereas, Processing in SOA is highly distributed. There is no fixed processing ratio for processing.Communication between service and requestor can  be synchronous or asynchronous.
Technology:
The emergence of client server application promoted the  use of 4GL programming Language, such as visual basic. The technology related to CS have emerged with time, each era has used different technology. The technology for SOA has emerged but not changed drastically. The technologies being used is HTML, HTTP, XML etc.
Security:
SOA has many benifits over Client Server Architecture but when it comes about security SOA introduces some problem. As SOA is distributed the security implementation not that easy but the case is not same for Client SErver. Later WS security framework has been developed to deal with the problem.
Administration:
The administration of client server architecture is problematic, with the time maintainance cost has increased dramatically for CS, also the problem with data maintainance the data may increase and as they are at one place they pose problem, the problems may also accur due to the different technologies used for each server.
SOA due its flexibility and various features does not incur any serious maintainance problem.

Principles of SOA

Following are the principles of SOA:


  1. Re usability: One of the main feature of Services are that they can be reused. This helps in saving the redevelopment time and helps reducing the cost of the Application being created
  2. Formal Contract: Each service need to share following formal contract, like Service Endpoint, service Operation, Every input and output for each operation, and rules and characterstics of the operation of the services. This help in communicating the services to each other and reduces the ambiguity.
  3. Loose Coupling: The services are loosely coupled meaning that the services keep the information being independent of each other.
  4. Abstraction: Services hide the underlying logic. They provide interface for the users to work upon. A client does not know about the underlying logic.
  5. Composable: Services are composable in the sense that more than one services can be taken together to create a new service. This is done by creating a common interface to all the underlying services.
  6. Autonomous: Services are meant to be autonomous that is they should not depend on other services for the execution of there services. They can provide their services on their own. There are two types of  autonomy is there: Service level autonomy and pure autonomy.
  7. Stateless: The services should be stateless this is because if the services will hold the state it will not be possible for other client to discover the service. The services may remain stateful for a small period of time but this should not be for longer time interval. 
  8. Discoverable: The discoverable services help to reduce the conflicts. If the services are not discoverable, there may exhist redundant services. 

Wednesday, 9 March 2011


train_info.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE rail_info SYSTEM "rail_info.dtd">
<?xml-stylesheet type="text/css" href="rail_info.css"?>
<rail_info>

<train_info>
<title1>Information about the trains</title1>

<train>
<type>SuperFast</type>
<name>GaribRath</name>
<no>12495</no>
<source>Delhi</source>
<dest>Patna</dest>
</train>
</train_info>

<station_info>
<title2>Information about the station</title2>
<station>
<name>Patna</name>
<code>pnbe</code>
<zone>North East</zone>
<no_train_stop>50</no_train_stop>
<no_train_pass>50</no_train_pass>
</station>
</station_info>

<zone_info>
<title2>Information about the zone</title2>
<zone>
<name>North East</name>
<code>ne</code>
<no_of_st>100</no_of_st>
</zone>
</zone_info>

</rail_info>


train_info.dtd
<!ELEMENT rail_info (train_info,station_info,zone_info)>
<!ELEMENT train_info (title1,train+)>
<!ELEMENT train (type,name,no,source,dest)>
<!ELEMENT station_info (title2,station+)>
<!ELEMENT station (name,code,zone,no_train_stop,no_train_pass)>
<!ELEMENT zone_info (title3,zone+)>
<!ELEMENT zone (name,code,no_of_st)>
<!ELEMENT type (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT no (#PCDATA)>
<!ELEMENT source (#PCDATA)>
<!ELEMENT dest (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT code (#PCDATA)>
<!ELEMENT zone (#PCDATA)>
<!ELEMENT no_train_stop (#PCDATA)>
<!ELEMENT no_train_pass (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT code (#PCDATA)>
<!ELEMENT zone (#PCDATA)>

rail_info.css

rail_info
{
background-color: #ffffff;
width: 100%;
}
train_info,station_info,zone_info,train,station,zone
{
display: block;
margin-bottom: 30pt;
margin-left: 0;
}
title1,title2,title3
{
color: #FF0000;
font-size: 20pt;
}
type,name
{
color: #0000FF;
font-size: 20pt;
}
code,no,source,dest,zone,no_train_stop,no_train_pass,code,no_of_st
{
display: block;
color: #ff0;
margin-left: 20pt;
}

Wednesday, 2 March 2011

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 website, for 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.

Evolution of SOA

According to IBM, SOA can be defined in several ways depending upon the point of view:
From the point of view of:SOA is
Business executive and business analystA set of services that constitutes IT assets (capabilities) and can be used for building solutions and exposing them to customers and partners
Enterprise architectA set of architectural principles and patterns addressing overall characteristics of solutions: modularity, encapsulation, loose coupling, separation of concerns, reuse, composability, and so on
Project managerA development approach supporting massive parallel development
Tester or quality assurance engineerA way to modularize, and consequently simplify, overall system testing
Software developerA programming model complete with standards, tools, and technologies, such as Web services
The above set of definitons gives a clear picture of what are the capabilities of SOA, It is seen as set of services, sometime as set of architectural principles. Each has their own way to look into this.

To begin with,lets see what was there before SOA,In the mid and late 90s the evolution of WEB was at its peak(DOT COM boom), People started looking at the WEB as a good platform for extending their business, Many of them ported their business as web application, but this has its own limitations, In beginning, these web application were built as single Monolithic application, the underlying architecture was Client Server architecture. The user used to interact though this application to access the server.

This has got several problems, like access to the data required by others, this lead to development of new softwares like screen scrapping. But this was not the complete solution to the problem. To overcome this problem, the services has been improvised, these were the API to the various application needed.

But now the problem was how to access this. Due to the different specifications and standard being used. The direct interaction was not possible. To overcome this broker agents were introduced. But this was not able to solve the comlete problem of consistency. 
To overcome this,the new architecture has been introduced SOA. This uses XML based language for the communication between different identity. The SOAP is used for the communication between the service provider and the requester of that service. WSDL is used for describing the services provided by the various service providers. UDDI is used to describe and integrate them.

The SOA is playing important role in integrating the various services, as it is platform independent. Many organizations e.g. W3C, OASIS are working in the direction of standardization of the architecture and specification of SOA. Many companies like Microsoft, IBM, Sun Microsystems are also trying to make a standard for these.

Monday, 28 February 2011

Web service VS Web application

According to Wikipedia:
"A web application is an application that is accessed over a network such as the Internet or an intranet."


When we consider this definition we can easily say that any application which are being provided to the user on the WEB is web application. The web application had started getting appraisal mostly in the 90s due to what we call today DOT COM boom. The internet was spreading at a very high rate and every one was trying to exploit their chances. This provided a very huge market and companies like amazon and ebay came into picture. To do so they require some way to interact with the end users, this was provided by the web applications.


Whereas web application is used by the end users to take the benefit of the capabilities of the internet, The Web Services are not used by these end users directly They are used by the various application which provides these services to the end users.


When there was no web services there were a lot of problem regarding providing services to the end users. Many of the techniques has been devised to overcome these problems,e.g., screen scrapping. The initial question was how to fulfill the need of the end user, the answer to this was the use of CORBA or DCOM. But the problem here was the interoperability.


With the need to resolve the problem of interoperability, the XML came into picture and was widely accepted due to its capability to exchange the information without any constraint of data, platform etc. This XML played a great role in the development of web services as these give the freedom to interact across boundaries. This was followed by the development of new protocols and Languages specifically for web service. These were the SOAP, WSDL and UDDI.


Now a days many of the web application are using the web services to provide services to the user in very efficient manner. They are taking services from different sources and pass these to the end user. 


In the conclusion of this, the web application can be seen as the interface through which the end user can access the benefits of various services(web services) where as the web services can be seen as the method to provide these services. The web services actually has made the web application very sophisticated which can improve according to the change in the end user requirements.  

Web Services

When we talk about web services the first question to be answered should be what are services and what is the need of web service.
Lets begin with a simple example:

The Knowledge process outsourcing may be a simple example of how the web is exploited to provide service.
When we talk about KPO it is about providing the education to the students who are not able to get to a good teacher due to some constraints, the tutoring here is the services being provided by the KPOs. The KPOs use the services of the teachers and provide it to the students. This is how web services work.

Lets come to other example coming to online payment system. This may be used for paying money to any purchase and may be required by different vendors and in turn these vendors may require to be using services of many banks. Here the role of online payment system come into picture. This system take the services of different banks and bundle it together to provide the services to these vendors.

The same may apply to amazon which takes the order for the different stuffs or ebay which also applies similar thing to provide the services.

These  are the places where the role of web services come into picture:
Web service is defined as the capability that are available to other application by various Industry Standards, API and Protocols.
In this sense, the web service implement these services to be provided to various applications which in turn is provided to the end users.

Now comes, How it helps. So the one very important benefit of this is the infrastructure required had reduced drastically. Now we can combine the services provided by several sources to one and exploit the benefit of the services. And as these services are provided on the WEB this can reach to a large mass of people.

Coming to the Technical point of view,  the web services use various technologies designed specifically to support it. These are SOAP, WSDL and UDDI.

Simple Object Access Protocol (SOAP) is the XML based mechanism for exchanging the information. This is also used to implement Remote Procedure Calls(RPC). This helps in making the data to be exchanged in a format which is independent of the different platforms, languages etc.
Web Service Description Language(WSDL) is an XML-based language  for describing web services. This describes services as the collection of ports. data are  implemented as messages which are exchanged between different ports which represents various services.
Universal Description, Discovery and Integration (UDDI) is a specification for a registry of information for web services. This is used to publish about the web services which are available and dicver it if some one needs it.


Wednesday, 23 February 2011

HI ALL

welcome to SOA...
All of the Members are requested to add their Full Names as the Labels in their post

All the best