Windows communication foundation -WCF
lượt xem 22
download
Đƣợc giới thiệu ở .NET 3 WCF cung cấp mô hình lập trình đơn giản, thống nhất và có thể mở rộng và có thể tƣơng tác với các công nghệ phân tán khác: DCOM, .NET Remoting, XML web service, Sockets, P2P,… Tích hợp các công nghệ phân tán vào trong API với namespace System.ServiceModel Cung cấp các công nghệ khác nhau để ngƣời sử dụng service có thể sử dụng dễ dàng. Ví dụ WCF có thể cung cấp service làm việc với giao thức TCP hoặc sử dụng XML web service Wednesday, March 21, 2012...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Windows communication foundation -WCF
- Wednesday, March 21, 2012 WINDOWS COMMUNICATION FOUNDATION 1 Khoa Công nghệ Thông tin Ths. Nguyễn Văn Lót
- WINDOWS COMMUNICATION FOUNDATION - WCF GIỚI THIỆU Đƣợc giới thiệu ở .NET 3 WCF cung cấp mô hình lập trình đơn giản, thống nhất và có thể mở rộng và có thể tƣơng tác với các công nghệ phân tán khác: DCOM, .NET Remoting, XML web service, Sockets, P2P,… Tích hợp các công nghệ phân tán vào trong API với namespace System.ServiceModel Cung cấp các công nghệ khác nhau để ngƣời sử dụng service có thể sử dụng dễ dàng. Ví dụ WCF có thể cung cấp service làm việc với giao thức TCP hoặc sử dụng XML web service 2 Wednesday, March 21, 2012
- WCF CÁC NÉT ĐẶC TRƢNG Hỗ trợ “strongly typed” định dạng cũng nhƣ “untyped” messages. Cho phép ứng dụng .net chia sẽ kiểu dữ liệu hiệu quả giữa các nền (ví dụ J2EE) Hỗ trợ nhiều binding ( HTTP, TCP, MSMQ, named pipes) cho phép chọn loại thích hợp để truyền tải dữ liệu Hỗ trợ các web service chuyên biệt gần nhất (WS- Policy, WS-Security, WS-Trust,…) Tích hợp đầy đủ mô hình anh ninh và các kỹ thuật an ninh 3 Hỗ trợ session cũng nhƣ hỗ trợ one-way message Wednesday, March 21, 2012
- KIẾN TRÚC CỦA WCF 4 Wednesday, March 21, 2012
- CÁC THÀNH PHẦN CƠ BẢN CỦA ỨNG DỤNG WCF The WCF Service assembly: *.dll chứa đựng các class và interface trình bày các chức năng (functions) để ngƣời khác có thể gọi The WCF Service host: host WCF Service assembly The WCF client: đây là một application truy xuất các chức năng của service qua proxy 5 Wednesday, March 21, 2012
- ABCS CỦA WCF Host và client trao đổi với nhau thông qua ABCs (address, binding, contact) Address: Xác định vị trí của service Binding: chỉ định kênh trao đổi thông tin Contract: mô tả các phƣơng thức của service 6 Wednesday, March 21, 2012
- WCF CONTRACT Là key để xây dựng WCF service. Nó giúp mô tả service, kiểu dữ liệu và các hàm của service [ServiceContract]: mô tả interface của service [OperationContract]: mô tả hàm/thủ tục của service [DataContract]: mô tả kiểu dữ liệu mới của service [ServiceContract] public interface IService1 { [OperationContract] string GetData(int value); [DataContract] [OperationContract] public class CompositeType CompositeType GetDataUsingDataContract(CompositeType { composite); 7 bool boolValue = true; } string stringValue = "Hello "; ……. Wednesday, March 21, 2012
- WCF BINDING Binding là đối tƣợng đƣợc sử dụng để chỉ định chi tiết trao đổi dữ liệu đƣợc yêu cầu để nối kết đến endpoint của WCF Binding có thể chứa các thông tin cơ bản sau: Protocol: Xác định bộ máy mã bảo mật đƣợc sử dụng Encoding: xác định mã hoá thông tin: text, binary Transport: xác định giao thức truyền dữ liệu: tcp, http,… 8 Wednesday, March 21, 2012
- WCF BINDING Một số wcf binding hệ thống thƣờng dùng HTTP-Based Bindings BasicHttpBinding: Đƣợc sử dụng để xây dựng WS-Basic Profile (WS-I Basic Profile 1.1). Binding này sử dụng HTTP nhƣ phƣơng tiện vận chuyển và Text/XML nhƣ mã hoá message mặc định WSHttpBinding: Tƣơng tự BasicHttpBinding, nhƣng cung cấp nhiều tính năng web service: cung cấp giao dịch (transaction), thông tin tin cậy (reliable) và WS-Address TCP-Based Bindings NetNamedPipeBinding:Một Binding an ninh, tin cậy cho việc trao đổi trên cùng máy giữa các ứng dụng .NET MSMQ-Based Bindings NetMsmqBinding: Binding hàng đợi (queued) thích hợp cho 9 trao đổi giữa các máy giữa các ứng dụng .NET Wednesday, March 21, 2012
- WCF ADDRESS WCF Address giúp xác định endpoint và chỉ cho các customer của service địa chỉ của nó Address có các thông tin cơ bản sau: Scheme: giao thức vận chuyển. Ex. http, tcp, msmq MachineName: Tên domain của máy Port: Cổng đƣợc sử dụng. Ví dụ port 80 cho http binding Path: đƣờng dẫn đến WCF Service Scheme://[:Port]/Path http://localhost:8080/MyWCFService net.tcp://localhost:8080/MyWCFService 10 net.msmq://localhost:8080/MyWCFService Wednesday, March 21, 2012
- XÂY DỰNG WCF SERVICE Khi xây dựng wcf service, nó bao gồm 2 phần: Interface và Implementation [ServiceContract] public interface IServiceTest { [OperationContract] string GetData(int value); [OperationContract] CompositeType GetDataUsingDataContract(CompositeType composite); } public class Service1 : IServiceTest { public string GetData(int value) { 11 return string.Format("You entered: {0}", value); } .... Wednesday, March 21, 2012
- XÂY DỰNG WCF SERVICE Thuộc tính [ServiceContract] Dùng để mô tả Service [ServiceContract(Namespace="http://minSoft.com")] public interface IServiceTest { .... } Một số thuộc tính của ServiceContract Đƣợc sử dụng nếu Service yêu cầu callback cho việc trao CallbackContract đổi two-way Đƣợc sử dụng để xác định phần tử service trong ứng ConfigurationName dụng. Mặc định là tên class implementation ProtectionLevel Chỉ định mức độ binding yêu cầu mã hoá, chữ ký số12 SessionMode Đƣợc sử dụng để thiết đặt session Wednesday, March 21, 2012
- XÂY DỰNG WCF SERVICE Thuộc tính [OperationContract] Chỉ định phƣơng thức thuộc WCF Service Action Get hoặc Set WS-Addressing của message yêu cầu AsyncPattern Xác định toán tử đƣợc thực hiện không đồng bộ Asynchronous IsInitiating Get hoặc set giá trị mà chỉ định có hay không phƣơng thức thực hiện toán tử có thể khởi tạo một session IsOneWay Chỉ định one way message ( chỉ input message, không output hoặc biến tham chiếu) IsTerminating Chỉ định WCF runtime kết thúc giao dịch hiện tại sau khi toán tử thực hiện xong 13 Wednesday, March 21, 2012
- XÂY DỰNG WCF SERVICE VÍ DỤ Toán tử OneWay [OperationContract(IsOneWay = true)] void AddTo(double n); [OperationContract(IsOneWay = true)] void SubtractFrom(double n); Khởi tạo Session [OperationContract(IsOneWay=true,IsInitiating=true,IsTerminating=false)] public void MethodOne() { return; } Asyncronous [OperationContract(AsyncPattern = true)] 14 IAsyncResult BeginDoWork(int count, AsyncCallback callback, object state); Wednesday, March 21, 2012
- XÂY DỰNG WCF SERVICE Thuộc tính [DataContract] Định nghĩa kiểu dữ liệu mới cho phƣơng thức của WCF Service, dùng để mô tả dữ liệu đƣợc trao đổi giữa client and service [ServiceContract] public interface ISampleInterface { [OperationContract] bool ApprovePurchaseOrder(MyTypes.PurchaseOrder po); } 15 Wednesday, March 21, 2012
- XÂY DỰNG WCF SERVICE Thuộc tính [DataContract] (tt) namespace MyTypes { [DataContract] public class PurchaseOrder { private int poId_value; // Apply the DataMemberAttribute to the property. [DataMember] public int PurchaseOrderId { get { return poId_value; } set { poId_value = value; } } } 16 } Wednesday, March 21, 2012
- HOST WCF SERVICE IIS và Window Service thƣờng đƣợc sử dụng để host WCF Service Thiết đặt ABCs trong Web.config nhằm mục đích phục vụ những nhu cầu khác nhau của service 17 Wednesday, March 21, 2012
- SỬ DỤNG WCF SERVICE Tạo proxy client/gọi service qua Visual Studio 18 Wednesday, March 21, 2012
- SỬ DỤNG WCF SERVICE Sử dụng đối tƣợng proxy để truy xuất các phƣơng thức của service CalculatorClient client = new CalculatorClient("BasicHttpBinding_ICalculator"); ViewBag.Message = client.Subtract(20, 4); Tên endpoint đƣợc sử dụng 19 Wednesday, March 21, 2012
- BẢO MẬT WCF Có 2 cách bảo mật cơ bản trong wcf là: message and transport security. Tuy nhiên có thể kết hợp 2 loại này Transport Security 20 Wednesday, March 21, 2012
CÓ THỂ BẠN MUỐN DOWNLOAD
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn