Saturday, January 17, 2009

WCF - New Mantra to Connected World

· One of the biggest challenges / opportunities in the industry is the integration and reuse of the existing systems.

- Connectivity (Connect people, organizations, and existing systems) through connected applications becomes the key factor in the software development.

- Solution to this challenge lies on developing interoperable, secure distributed application using Service Orientation.

- For the last few years, Web Services assist the developers to build distributed applications.

· The Windows Communication Foundation (WCF), Microsoft’s next generation Web services technology, simplifies development of connected applications through a new service-oriented managed programming model.

- WCF takes Web services to the next level by providing developers with a highly productive framework for building secure, reliable and interoperable applications that send messages between services and clients.

- Windows Communication Foundation (formerly code-named "Indigo") is a set of .NET technologies which for building and running connected systems.

WCF Key Features
· WCF is the Microsoft service-oriented communication infrastructure and programming platform and runtime system for building, configuring and deploying network-distributed services.

- WCF is implemented in managed code as an extension of the Microsoft .NET Framework 2.0.

- WCF provides key characteristics like Transport Neutral (Http, TCP, MSMQ and Named Pipes), various security features, multiple messaging patterns (simplex, duplex and request reply), encodings (text, binary or MTOM), network topologies, and hosting models (Windows, Windows NT Service, Console and IIS).

- Unification of existing .NET Framework communication technologies like ASMX, Remoting, Enterprise Services, WSE, MSMQ etc...

- Implementing latest Web Services Standards / WS* Specifications and to support interoperability, including reliability, security, and transactions.

- Implicit use of service-oriented development principles.

Unified Programming Model
· Today we had distributed stacks of technologies like ASMX, WSE, Remoting, System.Messaging, Enterprise Services etc…

- AMX (ASP.NET Web Services) – To achieve cross-vendor interoperability (Interoperable, ASP.NET Integration)

- .NET Remoting - Tightly coupled .NET-to-.NET communication to achieve performance (Extensible and CLR Integration)

- Web Services Enhancements (WSE) – To implement WS-* specifications along with ASMX

- System. Messaging – Communication with Windows-based applications that require guaranteed data delivery. (Queuing, Reliable Messaging and MSMQ Integration),

- Enterprise Services - This handles things like components, activation, transactions and so on.

· Developers have had to use multiple technologies to build connected systems.

- Each stack has its own strengths and once you choose one technology, it is difficult to switch gear to another one.

- WCF combines and extends the functionality of existing Microsoft technologies (ASMX, .NET Remoting, .NET Enterprise Services, Web Services Enhancements, and System.Messaging) to deliver a single, highly-productive development framework that improves developer productivity.

· Indigo provides all these features through one unified programming model including
- Message oriented programming (System. Messaging)
- Implement WS* specifications (WSE)
- Achieve Extensibility and performance (Remoting)
- Service oriented programming and Interop (ASMX)
- Attribute based programming, object life time management, distributed transactions (Enterprise services).
- Wondering how? Will see one by one!
Interoperability with Applications
· Right now, XML Web services provide support for basic interoperability between applications running on different platforms.

- WCF delivers secure, reliable, transacted interoperability through built-in support for the WS-* specifications.

- For developers, this greatly reduces the amount of infrastructure code required to achieve interoperability along with other enterprise features.

· An application built on WCF can communicate with WCF-based applications running in a different process on the same Windows machine, WCF-based applications running on another Windows machine and applications built on other technologies, such as IBM WebSphere, BEA WebLogic, and other Web services built in J2EE that are standards compliant.

- These applications can be running on Windows machines or on machines running other operating systems, such as Sun Solaris, IBM z/OS, or Linux.

- WCF support various specifications/standards, including basic standards (XML, XSD, XPath, SOAP, WSDL) as well as advanced standards and specifications that comprise the WS-* architecture. These include: WS-Addressing, WS-MetadataExchange, WS-Policy, WS-Security, WS-Trust, WS-SecureConversation, WS-ReliableMessaging, WS-AtomicTransaction, WS-Coordination, WS-Policy, and MTOM.

Support for Service-Oriented Development

· Building adaptable solution which is flexible enough to the fast moving business and technological change is one of the biggest challenges faced by software industry.

- WCF is the programming model build up from scratch for building service-oriented application development.

· WCF completely supports the four tenants of Service Orientation.
- Boundaries are Explicit
- Services are Autonomous
- Services share schema and contract, not class
- Service compatibility is determined based on policy
· Applications based on the above four tenants provide benefits in maintainability, reusability, and manageability of connected systems.

· Service-oriented development complements object-oriented (OO) development. Still Object-oriented concepts will be used to implement internal design of services.

No comments: