34
Giới thiệu Windows Communication Foundation Nguyễn Bá Quang [[email protected]] Microsoft Corporation

Giới thiệu Windows Communication Foundation

  • Upload
    juro

  • View
    67

  • Download
    0

Embed Size (px)

DESCRIPTION

Giới thiệu Windows Communication Foundation. Nguyễn Bá Quang. [[email protected]] Microsoft Corporation. Nội dung. Windows Communication Foundation là gì ? Kiến trúc hướng dịch vụ (SOA) và WCF Làm gì để xây dựng một ứng dụng WCF? Một dịch vụ WCF hoạt động như thế nào ? - PowerPoint PPT Presentation

Citation preview

Page 1: Giới thiệu Windows Communication Foundation

Giới thiệu

Windows Communication Foundation

Nguyễn Bá Quang[[email protected]]

Microsoft Corporation

Page 2: Giới thiệu Windows Communication Foundation

Nội dung

• Windows Communication Foundation là gì?• Kiến trúc hướng dịch vụ (SOA) và WCF• Làm gì để xây dựng một ứng dụng WCF?• Một dịch vụ WCF hoạt động như thế nào?• Hosting một dịch vụ WCF

Page 3: Giới thiệu Windows Communication Foundation

Vấn đề phát sinhVấn đề phát sinh

Các phần mềm hiện nay yêu cầu khả năng tích hợp cao

… Xây dựng các hệ thống có tính kết nối là rất khó!

1. Có rất nhiều công nghệ giải quyết cho vấn đề truyền thông và tích hợp hiện nay Chọn cái nào?

2. Nhu cầu thay đổi nền tảng ứng dụng xảy ra bất cứ lúc nào Làm sao để chuyển đổi mà tiết kiệm chi phí

Page 4: Giới thiệu Windows Communication Foundation

Windows Communication Foundation

Khung thống nhất cho

việc phát triển nhanh các

ứng dụng hướng dịch vụ.

Page 5: Giới thiệu Windows Communication Foundation

Dịch vụ Web ASP.NET

ASMX

Lập trình nền thuộc

tính

WSE

Dịch vụ Web nâng cao

Lập trình nền thông điệp

Mô hình từ xa

Remoting

Mô hình thống nhất thay thế cho các công nghệ phân tán trước đó

Windows Communication Foundation

ES/COM+ MSMQ

Page 6: Giới thiệu Windows Communication Foundation

Mục tiêu thiết kế WCF

UnificationThống nhất

Interoperability & IntegrationKhả năng tương tác và tích hợp

Productive SO Programming

Đẩy mạnh lập trình hướng dịch

vụ

“Mô hình lập trình thống nhất nhằm phát triển nhanh các ứng dụng hướng dịch vụ trên nền Windows”

Thống nhất về công nghệ Giữ nguyên ưu điểm Thích hợp cho nhiều mục đích sử dụng

Tương tác và tích hợp với các ứng dụng trên các nền tảng khác Tương tác và nâng cấp các ứng dụng phân tán hiện có

Là một mô hình lập trình hướng dịch vụ

Đáp ứng 4 tiêu chí của lập trình hướng

dịch vụ

Page 7: Giới thiệu Windows Communication Foundation

Dịch vụ và sử dụng dịch vụ là độc lập với các quá trình nâng cấp phiên bản, triển khai, hoạt động và bảo mật.

Tự phát triển

Các dịch vụ cung cấp các phép toánvà cấu trúc thông tin. Không bao gồm nội dung thông tin

Chia sẻ yêu cầu, không chia

sẻ nội dung

Các dịch vụ có thể thiết kế để độc lập với việc triển khai, thống nhất với các ứng dụng về chuẩn giao tiếp

Tương thích dựa trên chính

sách

Các ứng dụng và dịch vụ liên lạc với nhau thông qua các thông điệp mà không quan tâm đến việc xử lý và tiếp nhận

Rõ ràng về ranh giới

SOA và WCFWCF đã được thiết kế với các nguyên lý sau của SOA

Page 8: Giới thiệu Windows Communication Foundation

Dễ dàng thự thi

Độc lập triển khai, phát triển và quản lý

Nâng cao khả năng tái sử dụng công nghệ

Các lợi ích của SOA

Giảm chi phí cho việc cập nhật và bảo trì phần mềm

Page 9: Giới thiệu Windows Communication Foundation

Xây dựng một ứng dụng WCF

Xây dựng một dịch vụ WCF

Xây dựng một ứng dụng

client sử dụng dịch vụ WCF

Page 10: Giới thiệu Windows Communication Foundation

Xây dựng dịch vụ WCF

• Định nghĩa các Contracts• Data Contract• Operation Contract

• Thi hành các dịch vụ• Cấu hình, triển khai và kiểm thử các dịch

vụ• Cấu hình services trong configuration file• Triển khai lên IIS 7• Kiểm thử

Page 11: Giới thiệu Windows Communication Foundation

Data Contract

• [DataContract]: cho biết một class được khai báo có thể được serialized và deserialized như một XML stream bởi WCF

• [DataMember]: cho biết thuộc tính nào sẽ được serialized và deserialized

Page 12: Giới thiệu Windows Communication Foundation

Service Contract

• [ServiceContract ]: cho biết một interface là một service contract. WCF dựa vào thuộc tính này để sinh ra metadata cho client khi sử dụng

• [OperationContract]: cho biết phương thức nào sẽ được đưa vào sử dụng

Page 13: Giới thiệu Windows Communication Foundation

Thi hành các dịch vụ

• Một class được cung cấp bởi một dịch vụ WCF phải thực thi đầy đủ một service contract.

Page 14: Giới thiệu Windows Communication Foundation

Cấu hình các dịch vụ WCF

• ProductService.svc

• Web.config<serviceModel>: chứa thông tin cấu hình cho một dịch vụ Web WCF<services>: chứa thông tin chi tiết của mỗi service được thực thi<service>: chỉ ra namespace và class mà thực thi service<endpoint>: cung cấp thông tin chi tiết của service mà các ứng dụng client yêu cầu theo thứ tự để liên lạc với service<behavior >: cho phép metadata được công bố tới client

Page 15: Giới thiệu Windows Communication Foundation

Triển khai trên IIS 7 (Vista)

Page 16: Giới thiệu Windows Communication Foundation

Kiểm thử

Page 17: Giới thiệu Windows Communication Foundation

Xây dựng ứng dụng client

Page 18: Giới thiệu Windows Communication Foundation

Nguyên lý ABCs của WCF

Page 19: Giới thiệu Windows Communication Foundation

Kiến trúc ABCs của WCF

Client Service

MessageABC A B C

Address Binding Contract

(Where) (How) (What)

Bv

Bv

Bv

Bv A B C

Endpoint

Service Host

Page 20: Giới thiệu Windows Communication Foundation

Endpoints

• Address: Where?– Chỉ ra nơi nào để gửi và nhận thông điệp– Chỉ ra nơi nào để tìm ra Endpoints

• Binding: How?– Chỉ ra làm cách nào để gửi thông điệp– Chỉ ra làm sao để client liên lạc với Service endpoints

• Contract: What?– Chỉ ra nhưng cái gì được bao gồm trong thông điệp– Chỉ ra những dịch vụ nào client có thể sử dụng

• Behaviours:– Triển khai chi tiết

Page 21: Giới thiệu Windows Communication Foundation

Address

• Nơi để truyền và nhận thông điệp• Cung cấp thông tin:

– Đường dẫn– Giao thức vận chuyển– Tên Host– Cổng truy cập [transport]://[machine][:optional

port]http://localhosthttp://localhost:8081http://localhost:8081/Servicenet.tcp://localhost:8082/Servicenet.pipe://localhost/Pipe

Page 22: Giới thiệu Windows Communication Foundation

Address URInet.p2p://localhost/MyService

NetPeerTcpBinding

Peer to Peer

net.pipe://localhost/MyService

NetNamedPipeBinding

Named Pipes

net.msmq://localhost/private/MyService

NetMsmqBinding

MSMQ

net.tcp://localhost:8088/MyService

NetTcpBinding

TCP

http://localhost:80/MyService

BasicHttpBindingWSHttpBinding

WSDualHttpBindingWSFederationHttpBinding

HTTP

SchemeHostPortPath

Chia sẻ Port thông quaHTTP.SYS

Chia sẻ Port thông quaTCP Port Sharing Service

Page 23: Giới thiệu Windows Communication Foundation

Bindings (Gắn kết)

• Mô tả cách Client kết nối với services• Định dạng dữ liệu mong muốn• Có thể bao gồm các thông tin

– Giao thức vận chuyển– Định dạng mã hóa thông điệp– Cơ chế bảo mật– Cơ chế giao dịch– Tính tin cậy trong liên lạc

Một số bindings phổ biếnBasicHttpBindingNetTcpBindingWSHttpBindingNetMsqmqBinding

Page 24: Giới thiệu Windows Communication Foundation

Contracts (Hợp đồng)

• [Service Contract]: Là một Interface • [OperationContract]: Mô tả các phép toán có

thể thực thi bởi service– Toàn bộ data phải được serializable

• [Data Contract]: Mô tả cấu trúc dữ liệu và cách mà dữ liệu được serializable.

Page 25: Giới thiệu Windows Communication Foundation

Hosting and Demo

IIS 7 và WAS

Windows

Service

Ứng dụng User

Page 26: Giới thiệu Windows Communication Foundation

class HelloHost { static void Main(string[] args) { ServiceHost host = new ServiceHost(typeof(HelloService)); host.Open(); Console.ReadLine(); host.Close(); }}

Hosting: Ứng dụng người dùng

<service name="HelloService">  <host>    <baseAddresses>      <add baseAddress="http://localhost:8000"/>    </baseAddresses>  </host> …</service>

Page 27: Giới thiệu Windows Communication Foundation

Hosting: Ứng dụng người dùng

• Thuận lợi– Kiểm soát toàn vẹn– Không giới hạn trong việc binding/behavior– Sử dụng các ứng dụng có giao diện

• Khó khăn– Không có các chức năng quản lý Hosting

Page 28: Giới thiệu Windows Communication Foundation

public class WindowsService : ServiceBase { ServiceHost host; protected override void OnStart(string[] args) { host = new ServiceHost(typeof(HelloService)); host.Open(); } protected override void OnStop() { host.Close(); }}

[RunInstaller(true)]public class WindowsServiceInstaller : Installer { public WindowsServiceInstaller() { ServiceProcessInstaller spi = new ServiceProcessInstaller(); ServiceInstaller si = new ServiceInstaller(); Installers.Add(spi); Installers.Add(si); }}

Hosting: Windows Service

Page 29: Giới thiệu Windows Communication Foundation

Hosting: Windows Service

• Thuận lợi– Tự động Start/Stop/Restart– Có tool quản lý service– Có thể thực thi ở tài khoản máy cũng như

người dùng• Khó khăn

– Sự kích hoạt không có thông báo

Page 30: Giới thiệu Windows Communication Foundation

Hosting: IIS7/WAS

<%@ Service language="C#" class="HelloService" %>using System;using System.ServiceModel;public class HelloService : IHelloService { … }

http://localhost/HelloService/HelloService.svc

Page 31: Giới thiệu Windows Communication Foundation

Hosting: IIS7/WAS

• Thuận lợi– Kích hoạt sẵn có trong IIS– Hỗ trợ Named Pipes, TCP, and MSMQ – Sử dụng công cụ quản lý IIS7 mới

• Khó khăn– Chỉ hoạt động trên VISTA

Page 32: Giới thiệu Windows Communication Foundation

Tóm tắt về WCF

• WCF là công nghệ cho tính toán phân tán• WCF tích hợp tất cả các công nghệ phân tán tốt nhất• Sử dụng chuẩn Web Services để tương tác và tích hợp

với các giải pháp đang tồn tại• WCF sẵn có trong Windows Vista, Windows XP SP2,

Windows Server 2008

Page 33: Giới thiệu Windows Communication Foundation

Tham khảo thêm….

Check out the WCF community site for a list of useful resources: http://windowscommunication.net

Download and prototype on the WCF CTP Releases: http://msdn.microsoft.com/windowsvista/getthebeta/default.aspx

Leverage the community forum to post comments and connect with the feature team: http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=118&SiteID=1

Page 34: Giới thiệu Windows Communication Foundation