Sunday, 20 January 2013

How do we implement SOA?

How do we implement SOA?


We've established why SOA is needed by the business,
The question becomes—How do we implement SOA?
To implement SOA in an organization, three key elements have to be evaluated —
1:) People
2:) Process
3:) Technology.

Firstly, the people in the organization must be ready to adopt SOA. Secondly, the organization must know the processes that the SOA approach will include, including the definition, scope, and priority. Finally, the organization should choose the right technology to implement it. Note that people and processes take precedence over technology in an SOA implementation.

Live Example :

The rental car reservation application will likely be accessed by a range of other applications. When it’s designed, however, the architects of the rental car reservation application know that its business logic will be accessed, as shown in the figure above, by three other kinds of software:

A call center client application running on Windows desktops that will be used by employees in the organization’s call center. Created specifically for the new reservations system, this application will also be built using the .NET Framework 3.5 and WCF. (In some sense, this application isn’t truly distinct from the new rental car reservation application, since its only purpose is to act as a client for the new system. Still from a service-oriented perspective, it’s just another client for the reservation system’s business logic.)

An existing reservation application built on a Java Platform, Enterprise Edition (Java EE) server running on a non-Windows system. Due to a recent merger with another car rental firm, this existing system must be able to access the new application’s logic to provide customers of the merged firms with a unified experience.

Partner applications running on a variety of platforms, each located within a company that has a business arrangement with the car rental firm. Partners might include travel agencies, airlines and others that are required to make car rental reservations.

The diverse communication requirements for the new rental car reservation application aren’t simple. For interactions with the call center client application, for instance, performance is paramount, while interoperability is straightforward, since both are built on the .NET Framework. For communication with the existing Java EE-based reservation application and with the diverse partner applications, however, interoperability becomes the highest goal. The security requirements are also quite different, varying across connections with local Windows-based applications, a Java EE-based application running on another operating system, and a variety of partner applications coming in across the Internet. Even transactional requirements might vary, with only the internal applications being allowed to make transactional requests. How can these diverse business and technical requirements be met without exposing the creators of the new application to unmanageable complexity? The answer to this question is WCF. Designed for exactly this kind of diverse but realistic scenario, WCF will be the default technology for Windows applications that expose and access services. This paper introduces WCF, examining what it provides and showing how it’s used. Throughout this introduction, the scenario just described will serve as an example. The goal is to make clear what WCF is, show what problems it solves, and illustrate how it solves those problems.

Why WCF is in SOA?

Why WCF is in Service Oriented Architecture :

So why do we need SOA now? The answer is in one word—agility.

Every Business requirements change and improve frequently as they always have. The IT department has to respond more quickly ,secure, faster and cost-effectively to those changes.
With a traditional architecture, all components are bundled together with each other. Thus, even a small change to one component will require a large number of other components to be recompiled and redeployed.
Quality assurance (QA) effort is also huge for any code changes. The processes of gathering requirements, designing, development, QA, and deployment are too long for businesses to wait for, and become actual bottlenecks.
To complicate matters further, some business processes are no longer static. Requirements change on an ad-hoc basis, and a business needs to be able to dynamically define its own processes whenever it wants. A business needs a system that is agile enough for its day-to-day work. This is very hard, if not impossible, with existing traditional infrastructure and systems.
This is where SOA comes into play.








SOA's basic unit is a service. These services are building blocks that business users can use to define their own processes. Services are designed and implemented so that they can serve different purposes or processes, and not just specific ones. No matter what new processes a business needs to build or what existing processes a business needs need to modify, the business users should always be able to use existing service blocks, in order to compete with others according to current marketing conditions. Also, if necessary, some new service blocks can be used.
These services are also designed and implemented so that they are loosely coupled, and independent of one another. A change to one service does not affect any other service. Also, the deployment of a new service does not affect any existing service. This greatly eases release management and makes agility possible.

Introduction of WCF (Windows Communication Foundation) and SOA (Service oriented Architecture)

Windows Communication Foundation is a programming platform and runtime system for building , configuring and deploying network-distributed services. Which Code Name is indigo. It is the latest web service oriented technology of Microsoft. WCF Model Provide in .Net Framework 3.0 with Visual Studio 2008. Interoperability is the fundamental characteristics of WCF.  WCF is a combined features of Web Service , Remoting, MSMQ and COM+. WCF provides a common platform for all Network communication.


Describing Windows Communication Foundation :

The move to service-oriented communication has changed software development.
 Viewing services as a distinct software abstraction is fundamental to service-oriented architecture (SOA). 
An approach that many organizations are putting in place today. Whether implemented using SOAP or in some other way, applications that interact through services are becoming the norm.
Software development environments must keep pace with these changes. The benefits services bring should be reflected in the tools and technologies that developers use. Windows Communication Foundation (WCF), Microsoft’s technology for service-oriented applications, is designed to address these requirements. First released as part of the .NET Framework 3.0 in 2006, an updated version of this technology is included in the .NET Framework 3.5. For a large share of new software built on .NET, WCF is the right foundation.


What is SOA (Service Oriented Architecture) :

 SOA is the acronym for Service Oriented Architecture. As it has come to be known, SOA is an architectural design pattern by which several guiding principles
determine the nature of the design. Basically, SOA states that every component
of a system should be a service, and the system should be composed of several loosely-coupled services. A service here means a unit of a program that serves a business process. "Loosely-coupled" here means that these services should be independent of each other, so that changing one of them should not affect any
other services.
SOA is not a specific technology, nor a specific language. It is just a blueprint, or a system design approach. It is an architecture model that aims to enhance the efficiency, agility, and productivity of an enterprise system. The key concepts of SOA are services, high interoperability and loose coupling.
 
Several other architecture/technologies such as RPC, DCOM, and CORBA have existed for a long time, and attempted to address the client/server communication problems. The difference between SOA and these other approaches is that SOA is trying to address the problem from the client side, and not from the server side. It tries to decouple the client side from the server side, instead of bundling them, to make the client side application much easier to develop and maintain.

Without SOA every application is a bundled, tightly coupled solution. The client-side application is often compiled and deployed along with the server-side applications, making it impossible to quickly change anything on the server side. DCOM and CORBA were on the right track to ease this problem by making the server-side components reside on remote machines. The client application could directly call a method on a remote object, without knowing that this object was actually far away, just like calling a method on a local object. However, the client-side applications continue to remain tightly coupled with these remote objects, and any change to the remote object will still result in a recompiling or redeploying of the client application.

Now with SOA, the remote objects are truly treated as remote objects. To the client applications, they are no longer objects; they are services. The client application is unaware of how the service is implemented, or of the signature that should be used when interacting with those services. The client application interacts with these services by exchanging messages. What a client application knows now is only the interfaces, or protocols of the services, such as the format of the messages to be passed in to the service, and the format of the expected returning messages from
the service.

 

Getting Started with Windows Communication Foundation Tutorials

Microsoft Windows Communication Foundation (Code named Indigo) is Microsoft’s unified programming model for building service-oriented applications.
It enables developers to build secure, reliable, transacted solutions that integrate across platforms and inter-operate with existing investments. 

Welcome to WCF Tutorials