Performancing Metrics

IWD
Home Careers Sitemap FAQ
 
 
 
Search
piece together your IT success with offshored .NET

What is SOA? - SOA and Web Services Explained

Software developers have always struggled with the problem of creating software that is easy to maintain, extend and integrate with other systems. In this quest, various approaches to designing and writing software have been followed:

  • In the early stages of the software industry itself, programmers learnt that organizing code into modules made it easy to maintain and reuse discrete pieces of functionality. This led to the development of large libraries of code that are still used today.
  • The next major revolution in software design was object orientation. Software was modeled on the lines of real world and virtual objects where an ‘object’ had properties which defined its state as well as methods to change its state. Objects could be extended as required. The implementation details of an object were hidden from the consumers of the object and could be changed as long as the object’s signature remained the same. This led to even greater ease of maintenance and extensibility. This paradigm was extended to distributed object systems where objects could reside on different machines across a network and talk to each other using various remote access protocols.
  • The industry gradually realized that there was a huge potential market for pieces of functionality that could be plugged into software applications and customized for that specific application’s needs. This led to the concept of software components.
  • The latest buzzword in the software industry is ‘Service Orientation’. In this approach, software functionality is defined as a set of services. Service Oriented Architecture (SOA) Explained
    • SOA is a style of architecting applications in such a way that they are composed of discrete software agents that have simple, well defined interfaces and are orchestrated through a loose coupling to perform a required function.
    • There are 2 roles in SOA- a service provider and a service consumer. A software agent may play both roles. SOA is not an entirely new concept – however, this article mainly focuses on SOA as implemented with web services.
 

What is a service?

A service is an implementation of a clearly defined business function that operates independent of the state of any other service. It has a well defined set of platform-independent interfaces and operates through a pre-defined contract with the consumer of the service. Services are loosely coupled – a service need not know the technical details of another service in order to work with it – all interaction takes place through the interfaces.

Data between the consumer and the service are passed in XML format over a variety of protocols. The main protocols that web services use today are SOAP (Simple Object Access Protocol) and REST (Representational State Transfer). While REST uses the existing internet infrastructure (HTTP), SOAP is independent of the network layer and can use a variety of network protocols like HTTP, SMTP and the like.

Benefits of Service Oriented Architecture (SOA):

1. Platform Independence Since web services can be published and consumed across development and operating platforms, an enterprise can leverage its existing legacy applications that reside on different types of servers and build additional functionality without having to rebuild the entire thing. It also helps an enterprise to integrate its applications with those of its partners.

2. Focused Developer Roles Since a service is a discrete implementation independent of other services, developers in charge of a service can focus completely on implementing and maintaining that services without having to worry about other services as long as the pre-defined contract is honored.

3. Location TransparencyWeb services are often published to a directory where consumers can look them up. The advantage of this approach is that the web service can change its location at any time. Consumers of the service will be able to locate the service through the directory.

4. Code Reuse Since SOA breaks down an application into small independent pieces of functionality, the services can be reused in multiple applications, thereby bringing down the cost of development.

5. Greater Testability Small, independent services are easier to test and debug than monolithic applications. This leads to more reliable software.

6. Parallel DevelopmentSince the services are independent of each other and contracts between services are pre-defined, the services can be developed in parallel – this shortens the software development life cycle considerably.

7. Better scalability Since the location of a service does not matter anymore, the service can be transparently moved to a more powerful server to service more consumers if required. Also, there can be multiple instances of the service running on different servers. This increases scalability.

8. Higher availabilitySince the location of a service does not matter and you can have multiple instances of a service, it is possible to ensure high availability.

About IWD

IWD is the .NET division of Bangalore based Stylus Systems Pvt. Ltd. IWD offers qualified and experienced .NET Software Engineers on contract to global companies to work from IWD premises. CIOs whose roles are changing from purely technical to business oriented solutions development find our .NET Software Engineers very useful and productive towards realizing their company’s goal and the overall development of the IT department. Contact us with your outsourcing requirements. Our Client Engagement Team will get back to you within 24 hours.

With our experience in handling over 250 clients across the globe, we have designed efficient processes which will help CIOs and IT managers in providing a valuable contribution in reaching their business goals. This has helped us in gaining quality experience with technology and we specialize in .NET technology.

Further reading

Web services

Know more about our services

SaaS Solutions development
Social network development
Offshore development center solutions
Custom .NET programming

Contact US

 
 

IWD is the .NET software division of Stylus Systems Pvt. Ltd. IWD offers qualified and experienced .NET Software Engineers on contract to global companies for their .NET based Application Development and support and Workflow Automation.

IWD’s software engineers have assisted CIOs excel in their IT projects and redefine the scope of outsourcing. Our clients have leveraged the opportunity to derive tangible benefits.

You can hire a team of expert .NET software engineers from our resource pool on contract to meet your project requirements


Have more questions?

.NET hiring on contract

Clear all your apprehensions about
"Hiring on Contract"



           Hire
.    Programmers
     on Contract
Contact US
 
 
Home | IWD Services | Why IWD | Clients | Resource Center | Company | Contact | Careers | Sitemap | FAQ A division of Stylus Systems
Copyright ©2010, IWD, Stylus Systems Private Limited - Privacy Policy & Terms of Use