Mục đích của mô hình dữ liệu SOAP là cung cấp sự trừu tượng hóa độc lập ngôn ngữ cho kiểu ngôn ngữ lập trình chung. Nó gồm có:
§ Những kiểu XSD đơn giản như những kiểu dữ liệu cơ bản trong đa số các ngôn ngữ lập trình như int, string, date…
§ Những kiểu phức tạp, có hai loại là struct và array.
Tất cả các phần tử và những định danh có trong mô hình dữ liệu SOAP thì được định nghĩa bằng namespace SOAP-ENC
II/GIỚI THIỆU VỀ CÔNG NGHỆ LẬP TRÌNH: 2.1. Giới thiệu về Microsoft. NET Framework
Microsoft.NET Framework là một nền tảng cho việc tạo, triển khai và chạy trên Web-Server và ứng dụng. Nó cung cấp hiệu suất cao, dựa trên các tiêu chuẩn, môi trường đa ngôn ngữ, cho phép bạn tích hợp với các ứng dụng hiện tại, dịch vụ và các ứng dụng của thế hệ kế tiếp, cũng như để đáp ứng các thách thức về việc triển khai và sử dụng các ứng dụng của Internet. .NET Framework bao gồm ba phần chính - những ngôn ngữ phổ biến runtime (ngôn ngữ phổ biến runtime), một hierarchical bộ thống nhất các thư viện lớp học và thành phần phiên bản LYS, được gọi là ASP.NET. Các gói phần mềm bao gồm tất cả các phiên bản đã được phát hành trên segodnyaschny
Platform Microsoft.NET Framework: Đây là mã số mới, quản lý chương trình của mô hình cho các hệ điều hành Windows ®. Nó kết nối sức mạnh nền tảng .NET Framework phiên bản 1,0, 1,1, 2,0, 3,0, 3,5, 1,1 và 3,5 SP công nghệ mới để phát triển các ứng dụng duy nhất với một giao diện đồ họa, bằng cách sử dụng các công nghệ khác nhau và trao đổi dữ liệu có thể hỗ trợ một số lượng lớn các quy trình kinh doanh. Những công nghệ mới - đây là Windows Presentation Foundation, Windows Communication Foundation,Windows Workflow Foundation, Windows CardSpace. Nền tảng .NET Framework AIO là một phần của hệ điều hành Windows Vista ™ và Windows 7, bạn có thể cài đặt và bỏ cài đặt bằng cách sử dụng bảng điều khiển các chức năng của Windows. Các cơ sở NET Framework AIO về việc cung cấp các tính năng mới in NET Framework 3.5, ví dụ bộ chức năng trong Windows Workflow Foundation (WF), Windows Communication Foundation (WCF), Windows Presentation Foundation (WPF) và Windows CardSpace. Ngoài ra, .NET Framework AIO bao gồm các tính năng mới trong một số lĩnh vực công nghệ đã được thêm để tránh các hành vi vi phạm của các cơ cấu. Sau đây mô tả các tính năng:
Việc tích hợp chặt chẽ của các kết hợp ngôn ngữ truy vấn (LINQ) và các thông tin nhận thức. Tính năng này cho phép bạn sử dụng cùng một cú pháp để tạo ra bằng cách sử dụng ngôn ngữ có hỗ trợ cho LINQ mã để thực hiện lọc, chuyển giao và tạo ra các dự án, bao gồm cả một số loại dữ liệu SQL, các bộ sưu tập, XML và đặt ra những dữ liệu. ASP.NET AJAX cho phép bạn tạo ra hiệu quả hơn giao diện web tương tác với các thiết lập quyền lực, được hỗ trợ bởi các trình duyệt phổ biến nhất. Hỗ trợ cho các dịch vụ web mới cho các giao thức tạo ra các WCF, bao gồm cả AJAX, JSON, REST, pox, RSS, ATOM và một số tiêu chuẩn mới của WS-*. Việc hoàn thành công cụ hỗ trợ trong Visual Studio 2009 cho WF, WCF và WPF, cũng như các dịch vụ công nghệ mới, workflow. Các lớp học mới trong các lớp thư viện cơ sở (BCL) .NET Framework, được thiết kế để phục vụ rất nhiều các điển hình của khách hàng.
2.2 /Giới thiệu về ASP.NET
ASP.NET là một kỹ thuật phía server (server-side) dành cho việc thiết kế các ứng dụng web trên môi trường .NET
ASP.NET là một kỹ thuật server-side. Hầu hết những web designers bắt đầu sự nghiệp của họ bằng việc học các kỹ thuật client-side như HTML, JavaScript và
Cascading Style Sheets (CSS). Khi một trình duyệt web yêu cầu một trang web được tạo ra bởi các kỹ thuật client-side, web server đơn giản lấy các files mà được yêu cầu và gửi chúng xuống. Phía client chịu trách nhiệm hoàn toàn trong việc đọc các định dạng trong các files này và biên dịch chúng và xuất ra màn hình.
Với kỹ thuật server-side như ASP.NET thì hoàn toàn khác, thay vì việc biên dịch từ phía client, các đoạn mã server-side sẽ được biên dịch bởi web server. Trong trường hợp này, các đoạn mã sẽ được đọc bởi server và dùng để phát sinh ra HTML,
JavaScript và CSS để gửi cho trình duyệt. Chính vì việc xử lý mã xảy ra trên server
nên nó được gọi là kỹ thuật server-side.
ASP.NET cho phép bạn viết ứng dụng web bằng các loại ngôn ngữ lập trình quen thuộc khác nhau.
ASP.NET sử dụng .NET Framework, .NET Framework là sự tổng hợp tất cả các kỹ thuật cần thiết cho việc xây dựng một ứng dụng nền desktop, ứng dụng web,
web services… thành một gói duy nhất nhằm tạo ra cho chúng khả năng giao tiếp với hơn 40 ngôn ngữ lập trình.
Thậm chí với những sự lý giải kỹ càng như vậy, chúng ta vẫn ngạc nhiên tự hỏi điều gì làm nên một ASP.NET tốt như vậy. Sự thật là có rất nhiều kỹ thuật server- side với điểm mạnh và điểm yếu riêng nhưng ASP.NET có những tính năng gần như là duy nhất.
• ASP cho phép bạn sử dụng ngôn ngữ lập trình mà bạn ưa thích hoặc gần gũi với chúng. Hiện tại, thì .NET Framework hỗ trợ trên 40 ngôn ngữ lập trình khác nhau mà đa phần đều có thể được sử dụng để xây dựng nên những web sites ASP.NET. Chẳng hạn như C# (C sharp) và Visual Basic.
• Nhưng trang ASP.NET được Compiled chứ không phải là Interpreted. Khác với các trang ASP được Interpreted, điều này có nghĩa là mỗi lần người dùng yêu cầu một trang, máy chủ sẽ đọc các đoạn mã vào bộ nhớ, xử lý cách thức thực thi các đoạn mã và thực thi chúng. Đối với ASP.NET, máy chủ chỉ cần xử lý cách thức thực thi một lần duy nhất. Đoạn mã sẽ được Compiled thành các files mã nhị phân cái mà được thực thi rất nhanh mà không cần phải đọc lại. Chính điều này tạo ra bước tiến nhảy vọt về hiệu suất so với ASP
• ASP đã có khả năng toàn quyền truy xuất tới các chức năng của .NET Framework. Hỗ trợ XML, web services, giao tiếp với CSDL, email… và rất nhiều các kỹ thuật khác được tích hợp vào .NET, giúp bạn tiết kiệm được công sức.
• ASP cho phép bạn phân chia các đoạn mã server-side và HTML. Khi bạn phải làm việc với cả đội ngũ lập trình và thiết kế, sự tách biệt này cho phép các lập trình viên chỉnh sửa server-side code mà không cần dính dáng gì tới đội ngũ thiết kế.
• ASP giúp cho việc tái sử dụng những yếu tố giao diện người dùng trong nhiều web form vì nó cho phép chúng ta lưu các thành phần này một cách độc lập.
PHẦN 3
XÂY DỰNG ỨNG DỤNG
Trong phần này em xin trình bày chi tiết xây dựng hệ thống tìm kiếm khách sạn với Web service và Microsoft.NET Framework.
Nội dung trình bày bao gồm các phần sau:
Hướng tiếp cận xây dựng ứng dụng.
Phân tích thiết kế hệ thống.
Cài đặt ứng dụng.
I/HƯỚNG TIẾP CẬN XÂY DỰNG ỨNG DỤNG: 1/Phát biểu bài toán:
Hệ thống tìm kiếm khách sạn được xây dựng đáp ứng các yêu cầu sau:
1. Về phía người sử dụng, hệ thống cho phép người sử dụng nhập vào thông tin truy vấn về khách sạn bao gồm: Địa điểm, ngày đến, ngày đi, tên khách sạn, hạng khách sạn, số giường, giá phòng.
=> Thông tin trả về của hệ thống là một danh sách các khách sạn bao gồm: Tên khách sạn, hạng khách sạn, địa chỉ, điện thoại, phòng, số giường/phòng, đơn giá/ngày và tổng giá tiền. Cũng có thể trả về kết quả là không tìm được khách sạn theo yêu cầu của khách hàng.
2. Về phía hệ thống, yêu cầu thiết kế hệ thống đó là:
a. Hệ thống phải hoạt động với một số lượng lớn các web service của các khách sạn.
b. Hệ thống cho phép sắp xếp kết quả tìm kiếm trả về cho người sử dụng dựa trên việc sắp xếp trình tự truy vấn các web service. Trình tự truy vấn các web service phụ thuộc vào gói dịch vụ mà web service đó đăng kí với hệ thống. Hệ thống đăng kí này bao gồm ba mức (vàng - gold, bạc – silver, đồng – copper), các web service đăng kí tham gia ở mức cao sẽ được ưu tiên hiển thị kết quả trước.
c. Hệ thống cho phép thêm hoặc bớt các web service mà nó truy vấn thông tin một cách động. Hệ thống cũng cho phép chuyển đổi các gói dịch vụ mà các web service đã đăng kí với hệ thống.
2/Hướng tiếp cận giải quyết bài toán:
Việc giải quyết bài toán với hướng tiếp cận truyền thống đó là xây dựng một web service client. Web service này sẽ trực tiếp truy vấn đến các web service của các khách sạn và sắp xếp các kết quả trả về theo các tiêu chuẩn đã đặt ra. Cách tiếp cận giải quyết bài toán này là hoàn toàn không thích hợp cho việc giải quyết các yêu cầu của bài toán.
Thứ nhất, hệ thống xây dựng dựa trên cách tiếp cận trên sẽ rất nặng nề và nhiều dư thừa trong lập trình do khi muốn truy vấn đến một web service, hệ thống phải có các tham chiếu đến các web service đó. Ở đây trong việc lập trình đó là hệ thống phải sinh ra các stub, các lớp liên quan đến việc gọi web service. Đồng thời với đó là hệ thống không thể thêm bớt các web service một cách động. Khi muốn thêm, bớt các web service hệ thống phải được xây dựng lại để thêm hoặc bớt các lớp liên quan đến việc gọi web service tương ứng.
Ta thấy hướng giải quyết bài toán bằng hướng tiếp cận web service client là không hợp lý, nó sẽ không đáp ứng được các yêu cầu của bài toán, điều này khiến ta phải tìm ra hướng tiếp cận và giải quyết mới. Sau đây em xin trình bày kĩ thuật chính để giải quyết bài toán này như sau:
3/Kĩ thuật chính giải quyết bài toán:
SoapHttpClientProtocol cung cấp khả năng thay đổi địa chỉ của một service trong chuỗi sử lý (flow process) của chương trình ngay trong khi chuỗi xử lý đó đang được thực thi (gán địa chỉ động).
Vi dụ:
localhost.FirstService mySvc = new localhost.FirstService(); mySvc.Url = http://localhost/test1/FirstService.asmx;
II/PHÂN TÍCH THIẾT KẾ HỆ THỐNG:
1/Mô tả các Actors và Use cases
Use cases diagram
Mô tả các Actors
Người sử dụng (User) là người trực tiếp sử dụng chương trình, khai thác các tiện ích của chương trình.
Mô tả các Use cases
Management Partner
- Tóm tắt:
Đây là trường hợp người sử dụng lựa chọn chức năng quản lý các đối tác là các khách sạn
- Tác nhân:
NSD (User)
- Liên quan:
Không có các use cases liên quan
- Luồng sự kiện:
+ Luồng sự kiện Thêm mới:
* Người sử dụng chọn nút thêm bản ghi mới * Người sử dụng nhập các thông tin đầu vào * Người sử dụng chọn nút lưu
* Hệ thống hiển thị kết quả cập nhật * Kết thúc use case
+ Luồng sự kiện Sửa:
* Người sử dụng chọn bản ghi cần sửa * Người sử dụng chọn nút sửa
* Người sử dụng nhập các thông tin đầu vào * Người sử dụng chọn nút lưu
* Hệ thống hiển thị kết quả cập nhật * Kết thúc use case
+ Luồng sự kiện Xóa:
* Người sử dụng chọn bản ghi cần xóa * Người sử dụng chọn nút xóa
* Hệ thống hỏi “Bạn có chắc chắn muốn xóa không?”
* Người sử dụng chọn nút “Yes”, hệ thống xóa và hiển thị kết quả * Người sử dụng chọn nút “No”, hệ thống không xóa
* Kết thúc use case
Tìm kiếm khách sạn
- Tóm tắt:
Đây là trường hợp người sử dụng lựa chọn chức năng tìm kiếm khách sạn để đặt phòng.
- Tác nhân:
NSD (User)
- Liên quan:
Không có các use cases liên quan
- Luồng sự kiện:
+ Luồng sự kiện chính:
* Người sử dụng nhập những thông tin cần để tìm kiếm * Người sử dụng chọn nút “Tìm kiếm”
* Hệ thống hiển thị kết quả tìm được * Kết thúc use case
2/Mô hình hóa tương tác
Management Partner
Biểu đồ trình tự
Insert(): Thêm mới bản ghi thông tin của đối tác (khách sạn) Update(): Sửa thông tin một bản ghi
Delete(): Xóa một bản ghi
Biểu đồ lớp (Class) của modul Management Partner
Tìm kiếm khách sạn (Search ) Biểu đồ trình tự
chooseCondtion(): Nhập vào các điều kiện tìm kiếm Execute(): Thực hiện lệnh tìm kiếm
displayResult(): Hiển thị kết quả tìm kiếm
Modul Web Service của khách sạn:
Là một thư viện cung cấp thông tin do các đối tác phát triển, ở đây em tự phát triển một mẫu. Web service này gồm một webmethod với các tham số đầu vào là số giường, đơn giá, tình trạng đặt phòng. Khi hệ thống gọi webmethod của service, webservice sẽ trả về kết quả được thiết kế dưới dạng một danh sách cấu trúc định nghĩa dưới dạng XML schema như sau
<DataSet xmlns="http://localhost/MyWebServices/"> <xs:schema id="NewDataSet" xmlns=""
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas- microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="Table">
<xs:complexType> <xs:sequence>
<xs:element name="ID" type="xs:decimal" minOccurs="0" /> <xs:element name="SO_PHONG" type="xs:int" minOccurs="0" / >
<xs:element name="SO_GIUONG" type="xs:int" minOccurs="0" />
<xs:element name="GIA_TIEN" type="xs:decimal" minOccurs="0" />
<xs:element name="CHECK_IN" type="xs:boolean" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> <NewDataSet xmlns="">
<Table diffgr:id="Table1" msdata:rowOrder="0"> <ID>1</ID> <SO_PHONG>201</SO_PHONG> <SO_GIUONG>2</SO_GIUONG> <GIA_TIEN>100</GIA_TIEN> <CHECK_IN>true</CHECK_IN> </Table>
<Table diffgr:id="Table2" msdata:rowOrder="1"> <ID>2</ID> <SO_PHONG>203</SO_PHONG> <SO_GIUONG>3</SO_GIUONG> <GIA_TIEN>120</GIA_TIEN> <CHECK_IN>true</CHECK_IN> </Table> </NewDataSet> </diffgr:diffgram> </DataSet>
3/Mô hình cơ sở dữ liệu quan hệ
Bảng dm_ws (danh mục các đối tác, phục vụ cho modul Management
Partner)
Tên trường Kiểu dữ liệu Diễn giải
ID decimal(18, 0) Khóa chính
NamePartner nvarchar(250) Tên đối tác (khách sạn)
NameWS nvarchar(250) Đường dẫn web services
Packet nvarchar(50)
Gói dịch vụ (Gold, Silver, Copper), gói dịch vụ thể hiện mức ưu tiên của đối tác trong tìm kiếm
NumStar int Hạng (1 sao, 2 sao,.., 5 sao)
[Add] nvarchar(250) Địa chỉ
Tel varchar(50) Số điện thoại
UU_TIEN varchar(1)
A, B, C (Mức ưu tiên tương ứng với Packet (Gold, Silver,
Copper), dùng để sắp xếp khi liệt kê
III/CÀI ĐẶT ỨNG DỤNG:
1/Môi trường cài đặt:
Dùng công nghệ ASP.Net và SQL server 2005.
2/Một số giao diện chương trình:
Giao diện tìm kiếm cho người sử dụng:
Hình 3.1.1: Giao diện tìm kiếm cho người sử dụng
Giao diện thông tin trả về:
Giao diện quản lý dịch vụ:
Hình 3.1.3: Giao diện xem thông tin và quản lý đối tác
PHẦN 4
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
MỘT SỐ KẾT QUẢ ĐẠT ĐƯỢC:
Qua tìm hiểu và nghiên cứu đề tài, em đã nắm được các cở sở lý thuyết về kiến trúc cùng với kĩ thuật phát triển ứng dụng với web service và Microsoft.NET Framework.
Do các kiến trúc và kĩ thuật này còn mới mẻ nên để hiểu rõ và nắm vững là điều không dễ dàng. Vì vậy, mục tiêu của đề tài đặt ra gồm hai phần chính như sau:
Về lý thuyết: Mục tiêu là tìm hiểu, nghiên cứu về kiến trúc Web Service và công nghệ Microsoft.NET Framework.
Về phần ứng dụng minh họa: Mục tiêu là nắm vững được các kỹ thuật lập trình web service và ngôn ngữ Microsoft.NET Framework: Cách tạo ra web service phục vụ cho việc trao đổi thông tin. Bên cạnh đó là xây dựng một hệ thống ứng dụng tìm kiếm khách sạn dựa trên những công nghệ đã tìm hiểu đáp ứng được các yêu cầu đề ra.
Nội dung đề tài đưa ra khá rộng mà chỉ được thực hiện trong khoảng thời gian không dài do đó để hoàn tất đề tài này em phải gặp rất nhiều khó khăn về mặt tìm kiếm tài liệu, đọc hiểu tài liệu và một số kỹ thuật để vận dụng kiến thức mình đã tìm hiểu được nhưng nhờ sự giúp đỡ và chỉ bảo tận tình của cô giáo hướng dẫn: TS. Trương Diệu Linh cùng các thầy cô trong Viện Công nghệ thông tin và truyền thông, trường Đại học Bách Khoa Hà Nội em đã hoàn thành được những mục tiêu,