Published on

Introduction to WCF

  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. Windows Communication Foundation Ch. Vishwa Mohan M.Sc., M.Tech Freelance Software Consultant & Corporate Trainer
  2. 2. <ul><li>Introducing WCF </li></ul><ul><li>WCF Programming Life Cycle </li></ul><ul><li>WCF Serialization </li></ul><ul><li>Messaging Pattern </li></ul><ul><li>WCF Bindings </li></ul><ul><li>Hosting a WCF Service </li></ul><ul><li>WCF Configuration </li></ul><ul><li>Behaviors </li></ul><ul><li>WCF Security </li></ul><ul><li>WCF Transactions </li></ul><ul><li>WCF Reliable Sessions </li></ul><ul><li>WCF Queuing </li></ul>Agenda
  3. 3. WCF Introduction Windows Communication Foundation
  4. 4. <ul><li>Moving from Objects to Services </li></ul><ul><li>Service Oriented Architecture Concepts </li></ul><ul><li>WCF Fundamental Concepts </li></ul><ul><li>WS-* Standards and their relationship. </li></ul><ul><li>WCF Architecture </li></ul><ul><li>WCF Endpoints </li></ul><ul><li>WCF Address, Binding and Contract </li></ul>WCF Introduction
  5. 5. From Objects to Services <ul><li>Polymorphism </li></ul><ul><li>Encapsulation </li></ul><ul><li>Subclassing </li></ul><ul><li>Message-based </li></ul><ul><li>Schema+Contract+Policy </li></ul><ul><li>Broad Interop </li></ul><ul><li>Location Transparent </li></ul><ul><li>Tight Coupling </li></ul><ul><li>Runtime Metadata </li></ul>Object-Oriented Service-Oriented Component-Oriented 1980s 2000s 1990s
  6. 6. What is a SOA ? <ul><li>Service-Oriented Architecture (SOA) is an approach to loosely coupled, protocol independent, standards-based distributed computing where software resources available on the network are considered as Services. </li></ul><ul><ul><li>SOA represents business functions as shared, reusable services. </li></ul></ul><ul><ul><li>SOA is not a product but an architectural paradigm. </li></ul></ul><ul><li>SOA Characteristics: </li></ul><ul><ul><li>The software components in a SOA are services based on standard protocol. </li></ul></ul><ul><ul><li>Services in SOA have minimum amount of interdependencies. </li></ul></ul><ul><ul><li>Communication infrastructure used within an SOA should be designed to be independent of the underlying protocol layer. </li></ul></ul><ul><ul><li>Share Schema and Contract, not Class/database </li></ul></ul><ul><ul><li>Offers coarse-grained business services, as opposed to fine-grained software-oriented function calls. </li></ul></ul><ul><ul><li>Uses service granularity to provide effective composition, encapsulation and management of services. </li></ul></ul>A fully Implemented SOA Provides the ability to rapidly and dynamically compose applications, services and even complete processes.
  7. 7. What is a Service ? <ul><li>Services are reusable units providing business functionality that are… </li></ul><ul><ul><li>Clearly defined using standard policies, practice and framework. </li></ul></ul><ul><ul><li>Clearly described (usually with XML). </li></ul></ul><ul><ul><li>Autonomous </li></ul></ul><ul><ul><li>Abstraction of the underlying business logic and functionality. </li></ul></ul><ul><li>Functionality exposed via structured messaging scheme. </li></ul><ul><li>Not XML centric, Not HTTP centric. </li></ul><ul><ul><li>JSON, XML, SOAP, Images etc., over TCP, HTTP, Name Pipes, MSMQ, etc., </li></ul></ul><ul><li>Messages sent and received. </li></ul><ul><li>Moves from a client/server model to a sender/receiver model. </li></ul><ul><li>Rich communication pattern </li></ul><ul><li>Versioning Independency. </li></ul><ul><li>Service orientation provides the benefits of loosely coupled, message-oriented programming. </li></ul>Loose coupling is a requirement not a suggestion
  8. 8. Four Tenets of Service Orientation SERVICE ORIENTATION Compatibility Based On Policy Share Schema & Contract, Not Class Services Are Autonomous Boundaries Are Explicit
  9. 9. <ul><li>The Webservice technology is stimulated (inspired) by SOA. </li></ul><ul><li>Webservices and services are not identical. </li></ul><ul><li>Two critical characteristics are realized for SOA development are: </li></ul><ul><ul><li>Services are truly independent. </li></ul></ul><ul><ul><li>They can be managed. Management includes many functions including, Security, Deployment, Logging, Dynamic rerouting and Maintenance </li></ul></ul><ul><li>The connectivity Imperatives: </li></ul><ul><ul><li>Interoperability and Integration. </li></ul></ul><ul><ul><li>Secure, Reliable and Transacted Messages. </li></ul></ul><ul><ul><li>Decoupled Dynamic Applications. </li></ul></ul><ul><li>WCF will be the foundation for service oriented applications built on top of the .NET framework. </li></ul>Service Oriented Architecture (SOA)
  10. 10. SOA Implementation in WCF Boundaries are Explicit Services are autonomous Share schema & contract, not class Compatibility based on policy Developers opt-in to consuming, exposing, and defining public-facing service façade. Services and consumers are independently versioned, deployed, operated, and secured . Data never includes behavior; Objects with data and behavior are a local phenomenon. Capabilities and requirements represented by a unique public name; Used to establish service suitability.
  11. 11. Anatomy of a Service ? <ul><li>A service use a channel to communicate. </li></ul><ul><li>Through channel messages are sent and received. </li></ul><ul><li>The messages are build according to predefined contract with data according to predefined schema. </li></ul><ul><li>Service can use Policies indicating what and how the client should behave. </li></ul>
  12. 12. How to build Service Oriented Applications? “ What API should I use?” “ How do I build service-oriented systems?” “ How can I send messages securely & reliably?” “ How do I build dynamic, decoupled applications?”
  13. 13. <ul><li>An API for communicating between applications and services. </li></ul><ul><li>Provides secure , reliable , and transacted messaging along with interoperability. </li></ul><ul><li>Unifies a broad array of distributed systems capabilities in an extensible architecture. </li></ul><ul><li>Spans transports , security systems, messaging patterns, encodings , network topologies, and hosting models. </li></ul><ul><li>WCF combines the best of all existing Microsoft distributed computing stacks. </li></ul><ul><li>WCF uses WS-* standards for interoperability and .NET value-add for performance and integration with existing solutions </li></ul><ul><li>WCF is the future of distributed computing. </li></ul>What is WCF ?
  14. 14. Extending the .NET Framework WCF Presentation Data Communication Windows Forms ASP.NET SQL Server Compact Framework Console & NT Service … J# C++ C# VB Base App Services Security Configuration Deployment & Management Visual Studio 2008
  15. 15. Windows Communication Foundation INTEROPERABILITY PRODUCTIVITY SERVICE-ORIENTED DEVELOPMENT <ul><li>Broad Support for WS-* specifications </li></ul><ul><li>Compatible with existing MS distributed application technologies </li></ul><ul><li>Unifies today’s distributed technologies </li></ul><ul><li>Attribute-based development </li></ul><ul><li>Visual Studio Integration </li></ul><ul><li>Enables development of loosely-coupled services </li></ul><ul><li>Config-based communication </li></ul>
  16. 16. WCF Unified Programming Model ( Supersets Existing Technologies ) Interop with other platforms ASMX Attribute- Based Programming Enterprise Services WS-* Protocol Support WSE 2/3 Message- Oriented Programming MSMQ Extensibility Location transparency .NET Remoting Supersets Existing Technologies
  17. 17. <ul><li>WCF address range of challenges for communicating applications: </li></ul><ul><ul><li>Unification of existing .NET Framework Communication technologies. </li></ul></ul><ul><ul><li>Support for cross-vendor interoperability. </li></ul></ul><ul><ul><li>Explicit Service Orientation. </li></ul></ul><ul><li>WCF address the following unified distributed technologies: </li></ul><ul><ul><li>Web Services (ASPX) </li></ul></ul><ul><ul><li>.NET Remoting </li></ul></ul><ul><ul><li>WSE </li></ul></ul><ul><ul><li>Enterprise Services </li></ul></ul><ul><ul><li>MSMQ </li></ul></ul><ul><li>WCF supports large set of WS-* specifications. So it provides reliability, security, and transactions when communicating with any platform that also supports these specifications. </li></ul><ul><li>With WCF also achieve high performance with binary encoding. </li></ul>Unified Programming Model
  18. 18. WS-* Protocol Support Security WS-Security WS-Trust WS-Secure Conversation Messaging SOAP, WS-Addressing, MTOM Reliability WS-Reliable Messaging Transactions WS-Atomic Transactions WS-Coordination Metadata WSDL, WS-Policy WS-MetadataExchange <ul><li>WCF supports all the specifications shown in the below fig: </li></ul>XML
  19. 19. <ul><li>Distributed computing/communications platforms need to interoperate with the technologies different vendors offer. Likewise, security must also be interoperable . </li></ul><ul><li>To enable interoperable security systems a few notable standards have been proposed by Webservice industry. </li></ul><ul><ul><li>WS-Security </li></ul></ul><ul><ul><li>WS-Trust </li></ul></ul><ul><ul><li>WS-SecureConversation </li></ul></ul><ul><ul><li>WS-SecurityPolicy </li></ul></ul><ul><li>All the above standards defines addition to SOAP messages for providing authentication, data integrity and data piracy. </li></ul><ul><li>WCF also provides support for Kerberos, NTLM, Username, Certificates supported as credential tokens. </li></ul><ul><li>SAML Claims support. </li></ul>WCF Security
  20. 20. <ul><li>Support for WS-AtomicTransaction and WS-Coordination . </li></ul><ul><li>Provides distributed transaction enlistment with commit / rollback. </li></ul><ul><li>Automatic flow provided by transaction scope. </li></ul><ul><li>Allows using two-phase commit transaction with SOAP based message exchanges. </li></ul>WCF Transaction
  21. 21. <ul><li>Reliable messaging is how a reliable messaging source transfers messages reliably to a reliable messaging destination. </li></ul><ul><li>Supports WS-ReliableMessaging . It defines addition to the SOAP header that allows reliable end to end communication. </li></ul><ul><li>Provides mechanism to guarantee delivery via acknowledgement protocol. </li></ul><ul><li>Note: Retries can be very slow. </li></ul>WCF Reliability
  22. 22. WS-* Composability and Message Anatomy
  23. 23. Investment Protection SIDE-BY-SIDE Interop UPGRADE Side-by-side co-existence with existing distributed technologies. Smooth upgrade of existing code to WCF Seamless communications with application built on existing technologies
  24. 24. <ul><li>WCF is Microsoft’s unified programming model for building service-oriented applications.  </li></ul><ul><li>WCF enables developers to build secure, reliable, transacted solutions that integrate across platforms and interoperate with existing investments. </li></ul><ul><li>WCF is implemented primarily as a set of classes on top of .NET Framework CLR. </li></ul><ul><li>WCF’s fundamental communication mechanism is SOAP-based WebServices. </li></ul>WCF Introduction Caller Service Service 1 Service 2 Message Message All messages are SOAP based
  25. 25. <ul><li>SOAP is XML based protocol providing message construct. </li></ul><ul><li>Presently 2 SOAP versions are in use. </li></ul><ul><ul><li>SOAP 1.1 is built on XML </li></ul></ul><ul><ul><li>SOAP 1.2 is built on XML Infoset. </li></ul></ul><ul><li>A SOAP message is composed of: </li></ul><ul><ul><li>An Envelop. </li></ul></ul><ul><ul><li>Within an envelop optional header section and mandatory body. </li></ul></ul><ul><ul><li>Within a header zero or more header blocks. </li></ul></ul>What is SOAP ? <S:Envelope> <S:Header> <n:HeaderBlock> . . . </n:HeaderBlock> </S:Header> <S:Body> . . . </S:Body> </S:Envelope>
  26. 26. Example of Simple SOAP Envelope <?xml version=&quot;1.0&quot;?> < soap:Envelope xmlns:soap=&quot;http://www.w3.org/2001/12/soap-envelope&quot; soap:encodingStyle=&quot;http://www.w3.org/2001/12/soap-encoding&quot;> < soap:Heade r> <m:Trans xmlns:m=&quot;http://www.w3schools.com/transaction/&quot; soap:mustUnderstand=&quot;1&quot;>234</m:Trans> </ soap:Header > < soap:Body xmlns:m=&quot;http://www.example.org/stock&quot;> <m:GetStockPrice> <m:StockName>IBM</m:StockName> </m:GetStockPrice> </ soap:Body > </ soap:Envelope >
  27. 27. <ul><li>A service is a construct that exposes one or more endpoints, each of which exposes one or more service operations. </li></ul><ul><li>Endpoints are defined for communication between services. </li></ul><ul><li>The endpoint of a service specifies: </li></ul><ul><ul><li>An address where the service can be found. It is basically a URI. </li></ul></ul><ul><ul><li>A binding that specifies how a client communicate with the endpoint. </li></ul></ul><ul><ul><li>Finally a contract that defines the functionality provided by the service to its clients. </li></ul></ul>End Points Caller Service Message Endpoint Endpoint Endpoint
  28. 28. <ul><li>A endpoint can send and receive messages independent of transport . </li></ul><ul><li>The endpoint of a service can be specified either imperatively through code or declaratively through configuration file. </li></ul><ul><li>The endpoint represented in WCF object model </li></ul><ul><li>by ServiceEndpoint class. </li></ul><ul><li>Each endpoint is made up of three elements: </li></ul><ul><ul><li>Address: It is a basically URI. </li></ul></ul><ul><ul><li> In WCF object model this address is represented </li></ul></ul><ul><ul><li> by EndpointAddress . </li></ul></ul><ul><ul><li>Binding: It describes how a service communicate with the partners. So it consists of collection of details such as transport method, encoding, reliability requirements, and security considerations. Represented by Binding class. </li></ul></ul><ul><ul><ul><li>WCF Creates channel stack to satisfy the using binding. </li></ul></ul></ul><ul><ul><li>Contract: It consists of collection of operations that endpoint expose to the outside world. Represented by ContractDescription class. </li></ul></ul>End Points
  29. 29. Address, Binding and Contract Caller Service Message Address Binding Contract (Where) (How) (What) <ul><li>There are two ways to specify endpoint address for a service in WCF. </li></ul><ul><ul><li>You can specify an absolute address for each endpoint associated with service. </li></ul></ul><ul><ul><li>You can provide a base address for the ServiceHost of a service and specify an address for each endpoint relative to this base address. </li></ul></ul>A B C A B C A B C
  30. 30. <ul><li>Defines where a service is located. </li></ul><ul><li>Specifies a URI where the service is located. </li></ul><ul><ul><li>Relative or Absolute </li></ul></ul><ul><li>The Address of endpoint represented in WCF by EndpointAddress class. It consists basically URI , an Identity and collection of optional Headers . </li></ul><ul><li>Address consists of: </li></ul><ul><ul><li>Scheme ( HTTP, TCP, Named Pipes, MSMQ) </li></ul></ul><ul><ul><li>Machine (www.visitech.com) </li></ul></ul><ul><ul><li>[Port] : (optional 1024) </li></ul></ul><ul><ul><li>Path: MbusOpcServer.svc/secureEP </li></ul></ul><ul><li>Examples: </li></ul><ul><li>http://ww.visitech.com:1024/MbusOpcServer.svc </li></ul><ul><li>net.tcp://visitech.com:1024/MbusOpcServer.svc </li></ul>WCF Address
  31. 31. <ul><li>Describes how a service communicates </li></ul><ul><li>Specifies set of binding elements </li></ul><ul><ul><li>Transport; http, tcp, np, msmq </li></ul></ul><ul><ul><li>Encoding format; text, binary, MTOM, ... </li></ul></ul><ul><ul><li>Security requirements </li></ul></ul><ul><ul><li>Reliable session requirements </li></ul></ul><ul><ul><li>Transaction requirements </li></ul></ul><ul><li>Set of predefined standard bindings. These bindings can be customized. </li></ul><ul><li>You can also build custom bindings. </li></ul><ul><li>A bindinig contains three types of binding elements. </li></ul><ul><ul><li>Transport Channel Binding Element </li></ul></ul><ul><ul><li>Message Encoding Binding Element </li></ul></ul><ul><ul><li>Protocol Channel Binding Element </li></ul></ul>WCF Bindings
  32. 32. Standard Bindings <ul><li>T = Transport Security | S = WS-Security | O = One-Way Only </li></ul>Interop Security Session Transx Duplex Stream BasicHttpBinding WsHttpBinding WsDualHttpBinding NetTcpBinding NetNamedPipeBinding NetMsmqBinding BP WS WS T TS TS TS TS TS O O NetPeerTcpBinding TS .NET .NET .NET
  33. 33. <ul><li>Defines what a service communicates </li></ul><ul><ul><li>Contract defines the interfaces what you are exposing to the outside world. </li></ul></ul><ul><li>A Service Contract </li></ul><ul><ul><li>Group the operaitons in one service. </li></ul></ul><ul><ul><li>The signature of the operations in terms of messages exchanged. </li></ul></ul><ul><ul><li>The data types of the message. </li></ul></ul><ul><ul><li>Specifies the MEP’s, </li></ul></ul><ul><ul><li>The location of the operation. </li></ul></ul><ul><ul><li>Indicates categories of run-time behavior. </li></ul></ul><ul><ul><li>Also indicates sessions and Faults </li></ul></ul><ul><ul><li>Maps CLR types to WSDL. </li></ul></ul>WCF Contracts
  34. 34. <ul><li>In WCF define an operation by creating method and marked with [ OperationContract] attribute. </li></ul><ul><ul><li>Even if you mark private methods with OperationContract attribute then it will be available to clients. </li></ul></ul><ul><li>To create a service contract, group together your operations, either by declaring them within an interface or defining them within a class and marked it with [ ServiceContractAttribute ] attribute. </li></ul>WCF Service Contract [ ServiceContract (Namespace=&quot;http://Microsoft.ServiceModel.Samples&quot;)] public interface ICalculator { [ OperationContract ] ComplexNumber Add(ComplexNumber n1, ComplexNumber n2); [ OperationContract ] ComplexNumber Subtract(ComplexNumber n1, ComplexNumber n2); void InnerMethod(string msg); //Not exposed to client. }
  35. 35. WCF Data Contract <ul><li>Data Contract </li></ul><ul><ul><li>Defines data structures </li></ul></ul><ul><ul><li>Maps CLR types to XML schema. </li></ul></ul><ul><ul><li>[ DataContract ] attribute applied on types </li></ul></ul><ul><ul><li>[ DataMember ] attribute applied on members to be serialized. </li></ul></ul><ul><ul><ul><li>Can be applied to private fields also. </li></ul></ul></ul><ul><li>Data Contract Example: </li></ul>[ DataContract ] public class ComplexNumber { [ DataMember ] public double Real = 0.0D; [ DataMember ] public double Imaginary = 0.0D; }
  36. 36. <ul><li>Modifies or extends service or client runtime behavior </li></ul><ul><li>Behaviors are objects that modify the WCF runtime by either setting a runtime property or by inserting a customization type into the runtime. </li></ul><ul><li>Examples </li></ul><ul><ul><li>Instancing; Singleton, PrivateSession, SharedSession, PerCall </li></ul></ul><ul><ul><li>Concurrency; Multiple, Reentrant, Single </li></ul></ul><ul><ul><li>Throttling; connections, threading </li></ul></ul><ul><ul><li>Metadata customization </li></ul></ul><ul><ul><li>Transactions; AutoEnlist, Isolation, AutoComplete </li></ul></ul>WCF Behaviors
  37. 37. Message Exchange Pattern <ul><li>One-way (Datagram) </li></ul><ul><ul><li>Messages send and no response. ( Datagram style delivery ) </li></ul></ul><ul><ul><li>Typical for MSMQ. </li></ul></ul>Sender Receiver <ul><li>Request / Reply from the save Receiver </li></ul><ul><ul><li>Messages send another message received as a response. ( Immediate reply ) </li></ul></ul>Sender Receiver <ul><li>Duplex </li></ul><ul><ul><li>Sender and receiver can exchange multiple messages. </li></ul></ul><ul><ul><li>Reply later and on backchannel (callback–style). </li></ul></ul>Sender Receiver
  38. 38. Message Topologies <ul><li>Intermediary </li></ul><ul><ul><li>Invisible to the sender, promises to not materially change the message </li></ul></ul><ul><ul><li>A received message triggers a send to another service </li></ul></ul><ul><li>Request / Reply from another Receiver </li></ul><ul><ul><li>Message sent, one or more replies from a receiver other than the original recipient </li></ul></ul>Sender Receiver Intermediary Sender Receiver Sender Receiver
  39. 39. <ul><li>An empty request message can be described by having no input or reference parameters </li></ul><ul><ul><li>[OperationContract] </li></ul></ul><ul><ul><li>public int GetCurrentTemperature(); </li></ul></ul><ul><li>An empty reply message can be described by having a void return type and no output or reference parameters. </li></ul><ul><ul><li>[OperationContract] </li></ul></ul><ul><ul><li>public void SetTemperature(int temperature); </li></ul></ul><ul><ul><li>The above operation returns an empty message. It may return a fault instead if there is a problem in processing input message. </li></ul></ul><ul><li>The above is different from a One Way operation: </li></ul><ul><ul><li>[OperationContract( IsOneWay =true)] </li></ul></ul><ul><ul><li>public void SetLightbulbStatus(bool isOn); </li></ul></ul><ul><ul><li>The above operation returns nothing. There is no way to communicate fault condition from this operation. </li></ul></ul>WCF Message Terminology
  40. 40. <ul><li>WCF is a runtime and a set of APIs for creating systems that send messages between services and clients. </li></ul><ul><li>WCF is based on the notion of message-based communication, and anything that can be modeled as a message. </li></ul><ul><ul><li>This enables a unified API across different transport mechanisms. </li></ul></ul><ul><li>In WCF model we have concept of clients and services. </li></ul><ul><li>Message are sent or received (or both) at endpoints. </li></ul><ul><li>Messages can be sent over intranets and the Internet using common transports, such as HTTP and TCP. </li></ul><ul><ul><li>More transport mechanisms can be added to WCF. </li></ul></ul><ul><li>WCF ships with several encoders. </li></ul><ul><ul><li>Text (TextMessageEncoder). </li></ul></ul><ul><ul><li>MTOM (MTOMMessageEncoder) </li></ul></ul><ul><ul><li>Binary (BinaryMessageEncoder). </li></ul></ul>WCF Concepts
  41. 41. WCF Architecture: Messaging Runtime Client Dispatcher Service Contract and Behaviors Binding Address Transport Encoder Protocol(s) Transport Encoder Protocol(s)
  42. 42. WCF Architecture WS Security Channel Messaging HTTP Channel TCP Channel MSMQ Channel Named Pipe Channel Transaction Flow Channel WS Reliable Messaging Channel Encoders (Binary/MTOM/Text/XML) Activation and Hosting Service Runtime Contracts Data Contract Message Contract Service Contract Policy and Binding Application Windows Activation Service .EXE Windows Service COM+ Throttling Behavior Error Behavior Metadata Behavior Instance Behavior Message Behavior Transaction Behavior Dispatch Behavior Concurrency Behavior Parameter Filtering
  43. 43. WCF Features Summary Address Binding Behavior Contract HTTP Transport TCP Transport NamedPipe Transport MSMQ Transport Custom Transport WS-Security Protocol WS-RM Protocol WS-Coord Protocol Duplex Channel Custom Protocol http://... net.tcp://... net.pipe://... net.msmq://... xxx://... Throttling Behavior Metadata Behavior Error Behavior Custom Behavior Instancing Behavior Concurrency Behavior Transaction Behavior Security Behavior Request/ Response One-Way Duplex net.p2p://... Peer Transport
  44. 44. WCF Architecture Binding Address Contract
  45. 45. <ul><li>The WCF authentication service enables you to use ASP.NET membership to authenticate users from any application ( Console or Outside of .NET ) that can send and consume SOAP messages. </li></ul><ul><li>The AuthenticationService class contains the following methods these accessible only a through WCF service. </li></ul><ul><ul><li>IsLoggedIn() </li></ul></ul><ul><ul><li>Login() </li></ul></ul><ul><ul><li>Logout() </li></ul></ul><ul><ul><li>ValidateUser() </li></ul></ul><ul><li>Once authenticated the user credentials with Login() method, ASP.NET authentication service issues an authentication ticket as an HTTP cookie that is compatible with ASP.NET forms authentication. </li></ul><ul><ul><li>Cookie-less authentication is not available through the AuthenticationService . </li></ul></ul><ul><li>In addition to methods, this AuthenticationService class also raises two events : Authenticating and CreatingCookie. </li></ul>WCF Authentication Service Overview
  46. 46. <ul><li>Ch. Vishwa Mohan </li></ul><ul><li>M.Sc., M.Tech </li></ul><ul><li>Web: http://in.linkedin.com/in/vishwam </li></ul><ul><li>Phone: +91- 9490995632 </li></ul>Contact Me