Đặt vấn đề Đối với các ứng dụng phân tán chúng ta hoàn toàn có thể sử dụng kiến trúc .NET Remoting để giải quyết các vấn đề xử lý khai thác dữ liệu trên các máy ở xa.Tuy nhiên điều này
Trang 1Hướng dẫn cách ứng dụng kỹ thuật XML Web Service trong VB.NET
Nguồn : forum.t3h.vn
I Đặt vấn đề
Đối với các ứng dụng phân tán chúng ta hoàn toàn có thể sử dụng kiến trúc NET Remoting để giải quyết các vấn đề xử lý khai thác dữ liệu trên các máy ở xa.Tuy nhiên điều này có nhược điểm là nó đòi hỏi ứng dụng phải được xây dựng trên cùng platform hoặc cùng hệ thống mạng
Để khắc phục tình trang này, MS đưa ra khái niệm các dịch vụ Web XML Chúng cho phép bạn trưng ra chức năng của ứng dụng đối với phạm vi rộng rãi người dùng Các dịch vụ Web XML có thể được sử dụng khi nó là không thể sử dụng .NET Remoting— bởi vì ứng dụng XML Web services vận hành trên một web server có thể truy xuất tới Internet, người dùng không có cùng platform hoặc cùng
hệ thống mạng để có thể truy xuất ứng dụng của bạn Các dịch vụ Web dựa trên nền tảng của các chuẩn Internet, ví dụ như HTTP, XML, và SOAP, nó cho phép ứng dụng của bạn có thể thấy và truy xuất đối với người dùng trên platform bất kỳ Các dịch vụ Web mang lại cho các ứng dụng của bạn khả năng truy xuất tài
nguyên thông qua Internet với sự dễ dàng, và điều đó làm cho World Wide Web trở nên được ưa chuộng đến mức phổ dụng đối với việc tìm và duyệt thông tin
II Cách xây dựng ứng dụng với việc sử dụng các dịch vụ Web XML
Trong bài viết này, tôi sẽ hướng dẫn các bạn cách xây dựng một ứng dụng theo tinh thần hướng service này
Yêu cầu của ví dụ mà tôi sẽ đưa ra làm mẫu cho các bạn được tóm tắt như sau:
- Đơn vị đào tạo XYZ đang có sẵn cơ sở dữ liệu lưu trữ thông tin liên quan đến
nghiệp vụ đào tạo, một phần trong đó là thông tin về các kỳ thi
- Do nhu cầu được sớm biết thông tin về tình hình học tập của con em mình, các vị phụ huynh có nhu cầu được xem trực tiếp kết quả học tập với cách dễ dàng và thuận tiện nhất
- Để giải quyết vấn đề này,đơn vị XYZ quyết định cung cấp thông tin kết quả học
tập thông qua trang WEB với việc bổ sung thêm chức năng này trên trang đang tồn tại của đơn vị
Hướng giải quyết vấn đề là : Xây dựng XML Web Service trên đó bao gồm các phương thức phục vụ cho ứng dụng Web + Xây dựng ứng dung Web giao diện người dùng và gọi các phương thức cung cấp từ XML Web Service
II.1 Chuẩn bị Database
• Bạn cần tạo database trên MS SQL Server theo cấu trúc sau:
Chú ý rằng database này chỉ mang tính chất minh hoạ
• Tạo View có tên V_ThongTinKyThi
Trang 2II.2 Tạo Web Service
Bước 1: Khởi động Visual Studio NET và tạo một project mới với việc sử dụng ASP.NET Web Service template Trong ô textbox của mục Location xác định chuỗi với nội dung: http://localhost/WebService_TraCuuDiem
Mục đích là để tạo một virtual root directory trên web server của bạn Ví dụ này sử dụng localhost như là tên server Chỉ thị này có ý nghĩa rằng web server đang chạy trên cùng máy tính với Visual Studio NET Bạn có thể thay thế một tên server khác cho localhost nếu nó thích hợp với môi trường của bạn
Bước 2: Trong Solution Explorer, đổi tên của tập tin Service1.asmx thành
TraCuuDiem.asmx
Bước 3: Click phải tại tập tin TraCuuDiem.asmx > chọn View Code Bước 4: Đổi tên của lớp Service1 thành TraCuuDiem Visual Studio NET cung cấp sẵn một ví dụ phương thức Web đơn giản Bạn sẽ dựa theo ví dụ này và tạo hai
phương thức đơn giản cho web service của bạn
Bước 5: Khai báo các biến toàn cục sau:
Code:
Dim Ket_noi As New SqlConnectionDim Chuoi_CSDL As String =
"Data_DiemThi" Dim Chuoi_vi_tri As String = "IBM-333CF670847"
Dim Chuoi_nguoi_dung As String = "sa"
Dim Chuoi_mat_khau As String = ""
Trang 3
Bước 5 : Bổ sung các tham số Name và Description tớithuộc tính WebService cho việc định nghĩa lớp Mã chương trình của bạn sẽ giống như sau:
chú ý là khai báo trên đặt phía trên của dòng lệnh Public Class TraCuuDiem
Ket_noi.ConnectionString = Chuoi_ket_noi
Try
Ket_noi.Open()
Catch ex As Exception
MsgBox("Lỗi kết nối CSDL! Chi tiết lỗi: " & vbNewLine & ex.Message,
MsgBoxStyle.Critical, "Thông báo lỗi")
Throw ex
End Try
End Sub
Bước 7: Bổ sung mã chương trình sau đây vào bên trong lớp để tạo phương thức Web, phương thức lấy thông tin kết quả của kỳ thi với các tham số là mã kỳ thi và
mã hoc viên, phương thức GetDiem:
HTML Code:
<WebMethod(Description:="Lấy điểm của hv theo kỳ thi")>
_
Code:
Catch ex As SqlException
MsgBox("Lỗi kết nối CSDL! Chi tiết lỗi: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Thông báo lỗi")
Throw ex
End Try
End Function
Chú ý rằng một câu lệnh Imports đối với System.Web.Services namespace đã tự động thêm tới mã chương trình
Bước 8: Phương thức kế tiếp mà bạn sẽ tạo sử dụng hàm GetKyThi() Mã chương trình của bạn sẽ như sau:
Trang 4HTML Code:
Code:
Public Function GetKyThi() As DataSet
Bo_doc_ghi.SelectCommand = New SqlCommand(Lenh, Ket_noi)
Bo_doc_ghi.Fill(BangKetQua)
Return BangKetQua
Catch ex As SqlException
MsgBox("Lỗi kết nối CSDL! Chi tiết lỗi: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Thông báo lỗi")
Throw ex
End Try
End Function
Code:
Bước 10: Lưu công việc của bạn và thực hiện build WebService_TraCuuDiem
II.3 Kiểm tra thử nghiệm Web Service
Bước 1: Khởi động trình duyệt web của bạn và gõ vào URL sau:
http://localhost/WebService_TraCuuDiem/TraCuuDiem.asmx
Một trang kiểm thử được phát sinh bởi Visual Studio dựa trên các phương thức mà
nó tìm thấy trong mã chương trình Web service của bạn (Xem hình bên dưới)
Bước 2: Click vào hyperlink của phương thức GetDiem Bạn sẽ thấy một trang thử thứ hai, nó trưng bày tham số được yêu cầu khi gọi phương thức GetDiem và nút
Trang 5lệnh Invoke để chạy thử button to run the test Gõ vào một giá trị và click nút lệnh Invoke
Kết quả kiểm tra sẽ được hiển thị trong một cửa sổ browser mới Các kết quả được trả về dưới dạng tài liệu XML, như trình bày ở hình hình sau:
Bước 3: Click nút lệnh Back trên web browser của bạn để quay lại trang thử đầu tiên Click vào hyperlink của phương thức GetKyThi Kiểm thử phương thức này với cùng một cách thức như trên