Web Services

5,120 views

Published on

Published in: Technology
5 Comments
2 Likes
Statistics
Notes
  • Sao ko download dc zay
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • zxzzXz
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • zxz
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • xzx
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Chào thầy!
    Em đang làm ứng dụng bằng VB6, nhưng giờ có yêu cầu từ vb6 gọi tới 1 webservice coa truyền 1 số tham số. Sau đó ứng dụng sẽ nhận lại file xml mà webservice trả về. Em đang kg biết cách nào để lấy file xml trả về. Mong thầy giúp đỡ.
    Em xin cảm ơn.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
5,120
On SlideShare
0
From Embeds
0
Number of Embeds
53
Actions
Shares
0
Downloads
357
Comments
5
Likes
2
Embeds 0
No embeds

No notes for slide

Web Services

  1. 1. Web Service – Chuyện nhỏ! Phạm Minh Tuấn Khoa CNTT - ĐH KHTN
  2. 2. Nội dung trình bày <ul><li>Web Service là gì vậy? </li></ul><ul><li>Cho vài ví dụ đi… </li></ul><ul><li>Làm sao gọi thực hiện một Web Service có sẵn? </li></ul><ul><li>Tạo một Web Service như thế nào? </li></ul><ul><li>Tản mạn chuyện hậu trường </li></ul>
  3. 3. Web Service là cái gì vậy? GetStudentInfo(int Id) Web Service
  4. 4. Cho vài ví dụ đi… <ul><li>Xem thông tin thời tiết </li></ul><ul><li>Dịch tự động </li></ul><ul><li>Kiểm tra Card Number </li></ul><ul><li>Xem thông tin Sân bay </li></ul><ul><li>Tỉ giá ngoại tệ </li></ul><ul><li>Kiểm tra Email </li></ul><ul><li>… . </li></ul>
  5. 5. Làm sao gọi thực hiện một Web Service có sẵn? <ul><li>Gọi từ Windows Application </li></ul><ul><ul><li>Kiểm tra Email </li></ul></ul><ul><li>Gọi từ Web Application: Tương tự Windows Application </li></ul><ul><ul><li>Tỉ giá ngoại tệ </li></ul></ul><ul><li>Gọi từ Client Script </li></ul><ul><ul><li>Tỉ giá ngoại tệ </li></ul></ul>
  6. 6. Làm sao gọi thực hiện một Web Service có sẵn? <ul><li>Gọi từ Windows và Web Application </li></ul><ul><ul><li>Add Web Reference </li></ul></ul><ul><ul><li>Và sử dụng như các thư viện bình thường khác </li></ul></ul><ul><ul><li>Ví dụ: </li></ul></ul><ul><ul><li>private void button1_Click(object sender, EventArgs e) </li></ul></ul><ul><ul><li>{ </li></ul></ul><ul><ul><li>net.webservicex.www.TranslateService t = new </li></ul></ul><ul><ul><li>net.webservicex.www.TranslateService(); </li></ul></ul><ul><ul><li>textBox2.Text= t.Translate(net.webservicex.www.Language.EnglishTOGerman, textBox1.Text); </li></ul></ul><ul><ul><li>} </li></ul></ul>
  7. 7. Làm sao gọi thực hiện một Web Service có sẵn? <ul><li>Gọi từ Client Script(1) </li></ul><ul><ul><li>Gắn kết Webservice behavior vào trang web. Chú ý file webservice.htc phải nằm cùng thư mục với trang web. </li></ul></ul><ul><ul><li>Onresult cho phép xác định hàm sẽ được gọi tự động sau khi Server thực hiện xong Web service và trả kết quả về. </li></ul></ul><ul><ul><li><div id=&quot;service&quot; style=&quot;behavior:url(webservice.htc)&quot; onresult=&quot;ShowResult()&quot;> </li></ul></ul><ul><ul><li></div> </li></ul></ul>
  8. 8. Làm sao gọi thực hiện một Web Service có sẵn? <ul><li>Gọi từ Client Script(2) </li></ul><ul><ul><li>Xác định Web Service sẽ được sử dụng bằng hàm useService. </li></ul></ul><ul><ul><li>service.useService(&quot;http://trial.serviceobjects.com/ce/CurrencyExchange.asmx?wsdl&quot;,&quot;CurrencyExchange&quot;); </li></ul></ul><ul><ul><li>Gọi thực hiện Web Service bằng hàm callService service.CurrencyExchange.callService(&quot;ConvertCurrency&quot;,”10”,”USD”,”VND”,&quot;WS30-HKM3-JNZ4&quot;); </li></ul></ul>
  9. 9. Làm sao gọi thực hiện một Web Service có sẵn? <ul><li>Gọi từ Client Script(3) </li></ul><ul><ul><li>Xử lý kết quả trả về </li></ul></ul><ul><ul><ul><li>Lấy giá trị bằng event.result.value </li></ul></ul></ul><ul><ul><ul><li>Kiểm tra có lỗi hay không thông qua event.result.error </li></ul></ul></ul><ul><ul><ul><li>Nếu có lỗi thì xem thông tin lỗi qua event.result.errorDetail.string </li></ul></ul></ul><ul><ul><li>function ShowResult() { </li></ul></ul><ul><ul><li>if (event.result.error) </li></ul></ul><ul><ul><li>document.DemoForm.BoxText.value = </li></ul></ul><ul><ul><li>event.result.errorDetail.string; </li></ul></ul><ul><ul><li>else document.DemoForm.BoxText.value = </li></ul></ul><ul><ul><li>event.result.value; </li></ul></ul><ul><ul><li>} </li></ul></ul>
  10. 10. Tạo một Web Service như thế nào? <ul><li>Xử lý với các kiểu dữ liệu cơ sở </li></ul><ul><ul><li><WebMethod()> Public Function GetAge(ByVal Month As Integer, ByVal Day As Integer, ByVal Year As Integer) As Integer </li></ul></ul><ul><ul><li>Dim Birthday As New DateTime(Year, Month, Day) </li></ul></ul><ul><ul><li>If (Year < 1900) Then </li></ul></ul><ul><ul><li>GetAge = -1 </li></ul></ul><ul><ul><li>ElseIf (Year > Now.Year) Then </li></ul></ul><ul><ul><li>GetAge = -1 </li></ul></ul><ul><ul><li>ElseIf (Month < 1) Or (Month > 12) Then </li></ul></ul><ul><ul><li>GetAge = -1 </li></ul></ul><ul><ul><li>ElseIf (Day < 1) Or (Day > 31) Then </li></ul></ul><ul><ul><li>GetAge = -1 </li></ul></ul><ul><ul><li>Else </li></ul></ul><ul><ul><li>GetAge = New DateTime(Now.Ticks - Birthday.Ticks).Year - 1 </li></ul></ul><ul><ul><li>End If </li></ul></ul><ul><ul><li>End Function </li></ul></ul>
  11. 11. Tạo một Web Service như thế nào? <ul><li>Xử lý với mảng </li></ul><ul><ul><li><WebMethod()> Public Function Add(ByRef Values As Double(), ByVal Increment As Double) As Integer </li></ul></ul><ul><ul><li>Dim Entry As Double </li></ul></ul><ul><ul><li>Dim I As Integer </li></ul></ul><ul><ul><li>For I = 0 To Values.Length - 1 </li></ul></ul><ul><ul><li>Values(I) += Increment </li></ul></ul><ul><ul><li>Next </li></ul></ul><ul><ul><li>Return 0 </li></ul></ul><ul><ul><li>End Function </li></ul></ul>
  12. 12. Tạo một Web Service như thế nào? <ul><li>Xử lý với đối tượng </li></ul><ul><ul><li>Public Structure ServerInfo </li></ul></ul><ul><ul><li>Dim OS As String </li></ul></ul><ul><ul><li>Dim DotNet As Boolean </li></ul></ul><ul><ul><li>Dim SSL As Boolean </li></ul></ul><ul><ul><li>Dim Administrator As String </li></ul></ul><ul><ul><li>Dim WebServer As String </li></ul></ul><ul><ul><li>End Structure </li></ul></ul><ul><ul><li><WebMethod()> Public Function GetInfo() As ServerInfo </li></ul></ul><ul><ul><li>Dim Result As New ServerInfo </li></ul></ul><ul><ul><li>Result.OS = &quot;Windows&quot; </li></ul></ul><ul><ul><li>Result.DotNet = True </li></ul></ul><ul><ul><li>Result.SSL = True </li></ul></ul><ul><ul><li>Result.Administrator = &quot;B. Gates&quot; </li></ul></ul><ul><ul><li>Result.WebServer = &quot;IIS&quot; </li></ul></ul><ul><ul><li>GetInfo = Result </li></ul></ul><ul><ul><li>End Function </li></ul></ul>
  13. 13. Tạo một Web Service như thế nào? <ul><li>Xử lý với CSDL </li></ul><ul><li><WebMethod()> Public Function GetEntries(ByVal TableName As String) As String() </li></ul><ul><li>Dim Entries(1) As String </li></ul><ul><li>Dim Connection As New SqlConnection(&quot;Initial Catalog=Db1; </li></ul><ul><li>Data Source=(local);User ID=sa;password=;&quot;) </li></ul><ul><li>Connection.Open() </li></ul><ul><li>Dim Query As String = &quot;SELECT * From &quot; & TableName </li></ul><ul><li>Dim DataSetObj As New DataSet() </li></ul><ul><li>Dim Adapter As SqlDataAdapter = New _ SqlDataAdapter(Query, Connection) </li></ul><ul><li>Dim CmdBuilder As SqlCommandBuilder = New SqlCommandBuilder(Adapter) </li></ul><ul><li>Adapter.Fill(DataSetObj) </li></ul><ul><li>Dim I As Integer </li></ul><ul><li>For I = 0 To DataSetObj.Tables(0).Rows.Count - 1 </li></ul><ul><li>ReDim Preserve Entries(I + 1) </li></ul><ul><li>Entries(I) = DataSetObj.Tables(0).Rows(I).ItemArray(1) </li></ul><ul><li>Next </li></ul><ul><li>Connection.Close() </li></ul><ul><li>GetEntries = Entries </li></ul><ul><li>End Function </li></ul>
  14. 14. Tản mạn chuyện hậu trường…
  15. 15. Tản mạn chuyện hậu trường… <ul><li>WSDL: Web Service Description Language </li></ul><ul><ul><li>Dùng để mô tả các thông tin về Web Service: Tên phương thức, các tham số đầu vào, kiểu trả về… </li></ul></ul><ul><ul><li>Ví dụ: File WSDL tương ứng với GetAge </li></ul></ul><ul><ul><ul><li><WebMethod()> Public Function GetAge(ByVal Month As Integer, ByVal Day As Integer, ByVal Year As Integer) As Integer </li></ul></ul></ul><ul><ul><ul><li>…… . </li></ul></ul></ul><ul><ul><ul><li>End Function </li></ul></ul></ul>
  16. 16. Tản mạn chuyện hậu trường… <ul><li>SOAP: Simple Object Access Protocol </li></ul><ul><ul><li>protocol for exchanging XML-based messages over computer network </li></ul></ul><ul><ul><li>Ví dụ thông điệp gửi đi từ Client </li></ul></ul><ul><ul><li><soap:Envelope xmlns:soap=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;> <soap:Body> </li></ul></ul><ul><ul><li><getProductDetails xmlns=&quot;http://warehouse.example.com/ws&quot;> </li></ul></ul><ul><ul><li><productID>827635</productID> </li></ul></ul><ul><ul><li></getProductDetails> </soap:Body> </soap:Envelope> </li></ul></ul><ul><ul><li>Ví dụ thông điệp gửi về từ Server </li></ul></ul><ul><ul><li><soap:Envelope xmlns:soap=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;> <soap:Body> </li></ul></ul><ul><ul><li><getProductDetailsResponse xmlns=&quot;http://warehouse.example.com/ws&quot;> </li></ul></ul><ul><ul><li><getProductDetailsResult> </li></ul></ul><ul><ul><li><productName>Toptimate 3-Piece Set</productName> </li></ul></ul><ul><ul><li><productID>827635</productID> </li></ul></ul><ul><ul><li><description>3-Piece luggage set. Black Polyester.</description> </li></ul></ul><ul><ul><li><price>96.50</price> <inStock>true</inStock> </li></ul></ul><ul><ul><li></getProductDetailsResult> </getProductDetailsResponse> </soap:Body> </soap:Envelope> </li></ul></ul>
  17. 17. Tản mạn chuyện hậu trường… <ul><li>UDDI: Universal Description Discovery Integration </li></ul><ul><ul><li>a “yellow pages” for web services that exist worldwide </li></ul></ul>
  18. 18. Q & A… <ul><li>Cám ơn các bạn đã theo dõi </li></ul>

×