bài giảng Webservic

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Nguyễn Tấn Tài (trang riêng)
Ngày gửi: 21h:55' 02-07-2013
Dung lượng: 3.5 MB
Số lượt tải: 3
Nguồn:
Người gửi: Nguyễn Tấn Tài (trang riêng)
Ngày gửi: 21h:55' 02-07-2013
Dung lượng: 3.5 MB
Số lượt tải: 3
Số lượt thích:
0 người
1
Chuyên đề Thương mại điện tử
Công nghệ Web services
Tháng 11-2006
Khoa Công nghệ thông tin
Bộ môn HTTT
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
2
Nội dung trình bày
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
3
Các ứng dụng phân tán
Distributed Application
Dữ liệu
Ứng dụng
phân tán
Dữ liệu
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
4
Kiến trúc hướng dịch vụ
Service-Oriented Architecture-SOA
Publish
Find
Bind
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
5
Web Service
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
6
Web service là gì
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
7
Đặc điểm
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
8
Kiến trúc của Web Service
Publish
Find
Bind
Internet
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
9
Kiến trúc của Web Service
Any Client
SOAP
SOAP
SOAP
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
10
Web service provider
IIS
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
11
Web service consumer
Sử dụng Web service do WS Provider cung cấp để xây dựng ứng dụng
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
12
Web service broker
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
13
Mô hình tương tác giữa các thành phần
4
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
14
Nền tảng của Web Service
Web Service
XML
SOAP
HTTP
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
15
HTTP – Hyper text transfer protocol
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
16
XML – Extend Markup Language
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
17
SOAP(1)
An envelope for handling extensibility and modularity
An encoding mechanism for representing types within an envelope
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
18
SOAP (2)
POST /WebCalculator/Calculator.asmx HTTP/1.1
Content-Type: text/xml
SOAPAction: “http://tempuri.org/Add”
Content-Length: 386
...
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
19
SOAP(3) - Message Structure
SOAP Message
SOAP Envelope
SOAP Header
SOAP Body
Message Name & Data
Headers
Headers
XML-encoded SOAP message name
& data
contains SOAP message name
Individual headers
encloses headers
encloses payload
Protocol binding headers
The complete SOAP message
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
20
SOAP(4) - Example of a SOAP Request
POST /StockQuote HTTP/1.1
Host: www.stockquoteserver.com
Content-Type: text/xml;
charset="utf-8"
Content-Length: nnnn
SOAPAction: "Some-URI“
SOAP-ENV: encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/">
DIS
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
21
SOAP(5) - Example of a SOAP Response
HTTP/1.1 200 OK
Content-Type: text/xml;
charset="utf-8"
Content-Length: nnnn
xmlns:SOAP-ENV= "http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV: encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/"/>
34.5
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
22
Lập trình Web service bằng VS.NET 2003
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
23
Lập trình Web service (1)
System
System.Data
System.Web
System.Web.Webservices
System.Xml
File *.asmx
File global.asax
File web.config
Thư mục Bin
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
24
Lập trình Web service (2)
Thêm chỉ thị [Web Method]
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
25
Lập trình Web service (3)
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
26
Lập trình Web service (3)
[WebMethod(BufferResponse=false)]
public Transactions GetTransactionHistory()
{
//implementation code
}
[WebMethod (Description=“This method using for converting ..” )]
public double ConvertTemperature(double dFahrenheit)
{
return ((dFahrenheit - 32) * 5) / 9;
}
Ví dụ
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
27
Lập trình Web service (4)
Dùng để xác định cấu trúc tài liệu XML mong muốn để biểu diễn đối tượng của một lớp
Namespace : System.Xml.Serialization
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
28
Lập trình Web service (5)
[XmlRoot("account")]
public class Acct
{
[XmlElement("description")]
public string Description;
[XmlElement("number")]
public string Number;
[XmlElement("type")]
public string Type;
[XmlElement("balance")]
public decimal Balance;
[XmlAttribute("status")]
public string Status;
}
Ví dụ 1
Hello
10
C
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
29
Lập trình Web service (6)
…
[return:XmlArray("AccountList")]
[return:XmlArrayItem("Account")]
public Acct[] GetAllAccounts()
…
………
….
Ví dụ 2
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
30
Lập trình Web service (7)
…
[return:XmlArrayItem(ElementName="savingsAcct", Type=typeof(SavingsAcct))]
[return:XmlArrayItem(ElementName="creditCardAcct", Type=typeof(CreditCardAcct))]
[WebMethod]
public Acct[] GetAllAccounts()
{
...
…
…
…
Ví dụ 3
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
31
Lập trình Web service (8)
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
32
Lập trình Web service – provider side(9)
Phải khai báo tường minh tất cả các kiểu dữ liệu có thể có trong mảng
Sử dụng :XmlInclude
Name space System.Xml.Serialization
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
33
Lập trình Web service – provider side(10)
Ví dụ
public class Acct
{
public string Description;
public string Number;
public string Type;
public decimal Balance;
public string Status;
}
public class SavingsAcct : Acct
{
public decimal MinimumBalance;
}
public class CreditCardAcct : Acct
{
public int PayPeriod;
}
[WebMethod]
[XmlInclude(typeof(CreditCardAcct))]
[XmlInclude(typeof(SavingsAcct))]
[return:XmlArray("AccountList")]
[return:XmlArrayItem("Account")]
public Acct[] GetAllAccounts()
{
SavingsAcct a = new SavingsAcct();
CreditCardAcct cc = new CreditCardAcct();
// populate the accounts
Acct [] sa = new Acct[2];
sa[0] = a;
sa[1] = cc;
return sa;
}
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
34
Triển khai Web service
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
35
Web Service Consumer
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
36
WSDL Documents
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
37
Proxy class
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
38
Sử dụng Web service trong .NET
Sử dụng wsdl.exe
Sử dụng VS.Net
Gọi bình thường như các phương thức khác
Add Web References …
wsdl [options] {URL | Path}
wsdl http://www.woodgrovebank.com/services/bank.asmx?wsdl
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
39
WSDL Document
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
40
Proxy Class
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
41
SOAP Request and Response
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
42
HTTP Request and Response
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
43
Web service and State Management
Sử dụng đối tượng Application và Session đề quản lý trạng thái của web service
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
44
Ứng dụng của Web Services
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
45
Demo
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
46
Hỏi và đáp
Chuyên đề Thương mại điện tử
Công nghệ Web services
Tháng 11-2006
Khoa Công nghệ thông tin
Bộ môn HTTT
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
2
Nội dung trình bày
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
3
Các ứng dụng phân tán
Distributed Application
Dữ liệu
Ứng dụng
phân tán
Dữ liệu
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
4
Kiến trúc hướng dịch vụ
Service-Oriented Architecture-SOA
Publish
Find
Bind
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
5
Web Service
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
6
Web service là gì
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
7
Đặc điểm
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
8
Kiến trúc của Web Service
Publish
Find
Bind
Internet
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
9
Kiến trúc của Web Service
Any Client
SOAP
SOAP
SOAP
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
10
Web service provider
IIS
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
11
Web service consumer
Sử dụng Web service do WS Provider cung cấp để xây dựng ứng dụng
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
12
Web service broker
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
13
Mô hình tương tác giữa các thành phần
4
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
14
Nền tảng của Web Service
Web Service
XML
SOAP
HTTP
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
15
HTTP – Hyper text transfer protocol
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
16
XML – Extend Markup Language
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
17
SOAP(1)
An envelope for handling extensibility and modularity
An encoding mechanism for representing types within an envelope
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
18
SOAP (2)
POST /WebCalculator/Calculator.asmx HTTP/1.1
Content-Type: text/xml
SOAPAction: “http://tempuri.org/Add”
Content-Length: 386
...
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
19
SOAP(3) - Message Structure
SOAP Message
SOAP Envelope
SOAP Header
SOAP Body
Message Name & Data
Headers
Headers
XML-encoded SOAP message name
& data
contains SOAP message name
Individual headers
Protocol binding headers
The complete SOAP message
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
20
SOAP(4) - Example of a SOAP Request
POST /StockQuote HTTP/1.1
Host: www.stockquoteserver.com
Content-Type: text/xml;
charset="utf-8"
Content-Length: nnnn
SOAPAction: "Some-URI“
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
21
SOAP(5) - Example of a SOAP Response
HTTP/1.1 200 OK
Content-Type: text/xml;
charset="utf-8"
Content-Length: nnnn
SOAP-ENV: encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/"/>
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
22
Lập trình Web service bằng VS.NET 2003
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
23
Lập trình Web service (1)
System
System.Data
System.Web
System.Web.Webservices
System.Xml
File *.asmx
File global.asax
File web.config
Thư mục Bin
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
24
Lập trình Web service (2)
Thêm chỉ thị [Web Method]
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
25
Lập trình Web service (3)
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
26
Lập trình Web service (3)
[WebMethod(BufferResponse=false)]
public Transactions GetTransactionHistory()
{
//implementation code
}
[WebMethod (Description=“This method using for converting ..” )]
public double ConvertTemperature(double dFahrenheit)
{
return ((dFahrenheit - 32) * 5) / 9;
}
Ví dụ
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
27
Lập trình Web service (4)
Dùng để xác định cấu trúc tài liệu XML mong muốn để biểu diễn đối tượng của một lớp
Namespace : System.Xml.Serialization
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
28
Lập trình Web service (5)
[XmlRoot("account")]
public class Acct
{
[XmlElement("description")]
public string Description;
[XmlElement("number")]
public string Number;
[XmlElement("type")]
public string Type;
[XmlElement("balance")]
public decimal Balance;
[XmlAttribute("status")]
public string Status;
}
Ví dụ 1
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
29
Lập trình Web service (6)
…
[return:XmlArray("AccountList")]
[return:XmlArrayItem("Account")]
public Acct[] GetAllAccounts()
…
………
….
Ví dụ 2
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
30
Lập trình Web service (7)
…
[return:XmlArrayItem(ElementName="savingsAcct", Type=typeof(SavingsAcct))]
[return:XmlArrayItem(ElementName="creditCardAcct", Type=typeof(CreditCardAcct))]
[WebMethod]
public Acct[] GetAllAccounts()
{
...
…
…
…
Ví dụ 3
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
31
Lập trình Web service (8)
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
32
Lập trình Web service – provider side(9)
Phải khai báo tường minh tất cả các kiểu dữ liệu có thể có trong mảng
Sử dụng :XmlInclude
Name space System.Xml.Serialization
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
33
Lập trình Web service – provider side(10)
Ví dụ
public class Acct
{
public string Description;
public string Number;
public string Type;
public decimal Balance;
public string Status;
}
public class SavingsAcct : Acct
{
public decimal MinimumBalance;
}
public class CreditCardAcct : Acct
{
public int PayPeriod;
}
[WebMethod]
[XmlInclude(typeof(CreditCardAcct))]
[XmlInclude(typeof(SavingsAcct))]
[return:XmlArray("AccountList")]
[return:XmlArrayItem("Account")]
public Acct[] GetAllAccounts()
{
SavingsAcct a = new SavingsAcct();
CreditCardAcct cc = new CreditCardAcct();
// populate the accounts
Acct [] sa = new Acct[2];
sa[0] = a;
sa[1] = cc;
return sa;
}
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
34
Triển khai Web service
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
35
Web Service Consumer
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
36
WSDL Documents
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
37
Proxy class
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
38
Sử dụng Web service trong .NET
Sử dụng wsdl.exe
Sử dụng VS.Net
Gọi bình thường như các phương thức khác
Add Web References …
wsdl [options] {URL | Path}
wsdl http://www.woodgrovebank.com/services/bank.asmx?wsdl
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
39
WSDL Document
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
40
Proxy Class
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
41
SOAP Request and Response
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
42
HTTP Request and Response
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
43
Web service and State Management
Sử dụng đối tượng Application và Session đề quản lý trạng thái của web service
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
44
Ứng dụng của Web Services
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
45
Demo
11/2006
Môn: Chuyên đề TMĐT – Bộ môn HTTT
46
Hỏi và đáp
 
↓ CHÚ Ý: Bài giảng này được nén lại dưới dạng ZIP và có thể chứa nhiều file. Hệ thống chỉ hiển thị 1 file trong số đó, đề nghị các thầy cô KIỂM TRA KỸ TRƯỚC KHI NHẬN XÉT ↓






Các ý kiến mới nhất