Tải bản đầy đủ (.pdf) (70 trang)

NGHIÊN CỨU VỀ WEB API VÀ VIẾT ỨNG DỤNG XÂY DỰNG PHẦN MỀM QUẢN LÝ BẢO HÀNH THIẾT BỊ TIN HỌC TRÊN WEB SERVICE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.44 MB, 70 trang )

UBND TỈNH QUẢNG NAM
TRƯỜNG ĐẠI HỌC QUẢNG NAM
KHOA CÔNG NGHỆ THÔNG TIN

----------

NGUYỄN THỊ YẾN HỢP

NGHIÊN CỨU VỀ WEB API VÀ VIẾT ỨNG
DỤNG XÂY DỰNG PHẦN MỀM QUẢN LÝ

BẢO HÀNH THIẾT BỊ TIN HỌC
TRÊN WEB SERVICE

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC

Quảng Nam, tháng 4 năm 2017

UBND TỈNH QUẢNG NAM
TRƯỜNG ĐẠI HỌC QUẢNG NAM
KHOA: CÔNG NGHỆ THÔNG TIN

----------

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC

Tên đề tài:
NGHIÊN CỨU VỀ WEB API VÀ VIẾT ỨNG DỤNG
XÂY DỰNG PHẦN MỀM QUẢN LÝ BẢO HÀNH
THIẾT BỊ TIN HỌC TRÊN WEB SERVICE


Sinh viên thực hiện
NGUYỄN THỊ YẾN HỢP

MSSV: 2113011012
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN

KHÓA 2013 – 2017.
Cán bộ hướng dẫn

ThS. TRẦN THỊ DIỆU HIỀN
MSCB: ………

Quảng Nam, tháng 4 năm 2017

MỤC LỤC

Phần 1. MỞ ĐẦU ........................................................................................................... 1
1.1. Lý do chọn đề tài ...................................................................................................... 1
1.2. Mục tiêu của đề tài.................................................................................................... 1
1.3. Đối tượng và phạm vi nghiên cứu ............................................................................ 1
1.4. Phương pháp nghiên cứu .......................................................................................... 2
1.5. Lịch sử nghiên cứu.................................................................................................... 2
1.6. Đóng góp của đề tài .................................................................................................. 2
1.7 Cấu trúc đề tài ............................................................................................................ 2
Phần 2. NỘI DUNG NGHIÊN CỨU ............................................................................ 3
Chương 1: CƠ SỞ LÝ THUYẾT ................................................................................. 3
1.1. Tổng quan về Web Service ....................................................................................... 3
1.1.1. Giới thiệu Web Service.......................................................................................... 3
1.1.2. Các công nghệ xây dựng Web Service .................................................................. 3
1.1.3. Đặc điểm của Web Service .................................................................................... 4

1.1.4. Kiến trúc của Web Service .................................................................................... 5
1.1.5. Các thành phần chính của Web Service ................................................................ 8
1.1.6. An toàn cho Web Service .................................................................................... 11
1.1.7. Xây dựng một Web Service................................................................................. 11
1.1.8. Tích hợp Web Service theo chuẩn ....................................................................... 11
1.2. So sánh giữa RESTful và SOAP............................................................................. 12
1.3. Giới thiệu về API .................................................................................................... 13
1.4. Giới thiệu về Web API ........................................................................................... 14
1.5. So sánh ASP.NET Web API và ASP.NET MVC.................................................. 15
Chương 2: LẬP TRÌNH TRÊN WEB SERVICE..................................................... 17
2.1. Giới thiệu về lập trình trên Web Service ................................................................ 17
2.2. Tìm hiểu về ASP.NET Core ................................................................................... 17
2.2.1. Khái niệm ASP.NET Core................................................................................... 17
2.2.2. Những cải tiến của ASP.NET Core ..................................................................... 17
2.2.3. Các tính năng của ASP.NET Core....................................................................... 17
2.3. Giới thiệu Visual Studio 2015 Update 3................................................................. 19
2.4. Giới thiệu về SQL Sever 2016................................................................................ 21
Chương 3: PHÂN TÍCH VÀ XÂY DỰNG PHẦN MỀM BẢO HÀNH.................. 22
THIẾT BỊ TIN HỌC ................................................................................................... 22

3.1. Giới thiệu phần mềm bảo hành thiết bị tin học....................................................... 22
3.2. Phân tích và thiết kế ứng dụng................................................................................ 22
3.2.1. Mơ tả bài tốn ...................................................................................................... 22
3.2.2. Đặc tả u cầu...................................................................................................... 22
3.2.3. Xác định tác nhân của hệ thống ........................................................................... 23
3.2.4. Các chức năng chính của hệ thống ...................................................................... 24
3.2.5. Xác định các UC .................................................................................................. 25
3.2.6. Đặc tả UC............................................................................................................. 26
3.2.8. Biểu đồ tuần tự..................................................................................................... 33
3.2.9. Biểu đồ lớp........................................................................................................... 44

3.2.10. Biểu đồ trạng thái............................................................................................... 45
3.3. Xây dựng web API cho phần mềm bảo hành thiết bị tin học ................................. 48
3.4. Sử dụng fiddler để test Web API ............................................................................ 53
3.4.1. Giới thiệu fiddler.................................................................................................. 53
3.4.2. Get dữ liệu bằng Fiddler ...................................................................................... 53
3.4.3. Post dữ liệu với Fiddler........................................................................................ 53
3.4.4. Put dữ liệu với Fiddler ......................................................................................... 55
3.4.5. Delete dữ liệu với Fiddler .................................................................................... 57
3.5. Tạo ứng dụng Client kết nối với Web API ............................................................. 58
Phần 3. KẾT LUẬN VÀ KIẾN NGHỊ ....................................................................... 61
1. Kết luận ...................................................................................................................... 61
2. Kiến nghị.................................................................................................................... 61
Phần 4. TÀI LIỆU THAM KHẢO ............................................................................. 62
NHẬN XÉT CỦA GIÁO VIÊN .................................................................................. 63

DANH MỤC HÌNH̉ ANH

Hình 1.1: Mơ hình Web Service....................................................................................... 3

Hình 1.2: Mơ hình hoạt động của Web Service............................................................... 5

Hình 1.3: Mơ hình hoạt động của Web Service dùng SOAP ........................................... 6

Hình 1.4: Hệ thống SOAP đơn giản ................................................................................ 7

Hình 1.5: Cấu trúc thơng điệp SOAP .............................................................................. 7

Hình 1.6: Mơ hình Web Service dùng REST.................................................................... 8

Hình 1.7: Mơ hình Web API .......................................................................................... 14


Hình 2: Giới thiệu Microsoft Visual Studio 2015.......................................................... 19

Hı̀nh 3.1: Biểu đồ UC hệ thống ..................................................................................... 29
Hı̀nh 3.2: Biểu đồ UC quản ĺy nhân viên....................................................................... 30
Hı̀nh 3.3: Biểu đồ UC quản ĺy sản phẩm....................................................................... 30
Hı̀nh 3.4: Biểu đồ UC quản ĺy nh̀a cung cấp................................................................. 30
Hı̀nh 3.5: Biểu đồ UC quản ĺy kh́ach h̀ang.................................................................... 31
Hı̀nh 3.6: Biểu đồ UC quản ĺy tiếp nhận sản phẩm....................................................... 31
Hı̀nh 3.7: Biểu đồ UC b̀an giao sản phẩm..................................................................... 32
Hı̀nh 3.8: Biểu đồ UC quản ĺy công việc bảo h̀anh ....................................................... 32
Hı̀nh 3.9: Biểu đồ UC thống kê tı̀nh trạng trong kho .................................................... 33
Hı̀nh 3.10: Biểu đồ tuần tự ch́ưc năng đăng nhập......................................................... 33
Hı̀nh 3.11: Biểu đồ tuần tự ch́ưc năng đăng xuất.......................................................... 34
Hı̀nh 3.12: Biểu đồ tuần tự ch́ưc năng thêm nhân viên ................................................. 34
Hı̀nh 3.13: Biểu đồ tuần tự ch́ưc năng sửa nhân viên ................................................... 35
Hı̀nh 3.14: Biểu đồ tuần tự ch́ưc năng x́oa nhân viên ................................................... 35
Hı̀nh 3.15: Biểu đồ tuần tự ch́ưc năng thêm sản phẩm ................................................. 36
Hı̀nh 3.16: Biểu đồ tuần tự ch́ưc năng sửa sản phẩm ................................................... 36
Hı̀nh 3.17: Biểu đồ tuần tự ch́ưc năng x́oa sản phẩm ................................................... 37
Hı̀nh 3.18: Biểu đồ tuần tự ch́ưc năng thêm nh̀a cung cấp ........................................... 37
Hı̀nh 3.19: Biểu đồ tuần tự ch́ưc năng sửa nh̀a cung cấp ............................................. 38
Hı̀nh 3.20: Biểu đồ tuần tự ch́ưc năng x́oa nh̀a cung cấp ............................................. 38
Hı̀nh 3.21: Biểu đồ tuần tự ch́ưc năng thêm kh́ach h̀ang .............................................. 39
Hı̀nh 3.22: Biểu đồ tuần tự ch́ưc năng sửa kh́ach h̀ang ................................................ 39
Hı̀nh 3.23: Biểu đồ tuận tự ch́ưc năng x́oa kh́ach h̀ang ................................................ 40
Hı̀nh 3.24: Biểu đồ tuần tự ch́ưc năng thêm nh̀a sản xuất ............................................ 40

Hı̀nh 3.25: Biểu đồ tuần tự ch́ưc năng sửa nh̀a sản xuất .............................................. 41
Hı̀nh 3.26: Biểu đồ tuần tự ch́ưc năng x́oa nh̀a sản xuất .............................................. 41

Hı̀nh 3.27: Biểu đồ tuần tự ch́ưc năng tạo phiếu sửa chữa........................................... 42
Hı̀nh 3.28: Biểu đồ tuần tự ch́ưc năng cập nhật phiếu sửa chữa .................................. 42
Hı̀nh 3.29: Biểu đồ tuận tự ch́ưc năng x́oa phiếu sửa chữa .......................................... 43
Hı̀nh 3.30: Biểu đồ tuần tự ch́ưc năng thống kê............................................................ 43
Hı̀nh 3.31: Biểu đồ tuần tự ch́ưc năng tı̀m kiếm thông tin ............................................ 44
Hı̀nh 3.32: Biểu đồ ĺơp của hệ thống............................................................................. 44
Hı̀nh 3.33: Biểu đồ trạng th́ai ĺơp nhân viên ch́ưc năng đăng nhập ............................. 45
Hı̀nh 3.34: Biểu đồ trạng th́ai ĺơp nhân viên ch́ưc năng thêm thông tin....................... 45
Hı̀nh 3.35: Biểu đồ trạng th́ai ĺơp nhân viên ch́ưc năng cập nhật thông tin................. 46
Hı̀nh 3.36: Biểu đồ trạng th́ai ĺơp nhân viên ch́ưc năng x́oa thông tin ......................... 46
Hı̀nh 3.37: Biểu đồ trạng th́ai ĺơp nhân viên ch́ưc năng tı̀m kiếm thông tin ................. 47
Hı̀nh 3.38: Biểu đồ trạng th́ai ĺơp phiếu sửa chữa ........................................................ 47
Hình 3.39: Biểu đồ trạng thái lớp hóa đơn ................................................................... 48

Hı̀nh 3.40: Giao diện dữ liệu trả về json trong web API............................................... 52
Hình 3.41: Test API với phương thức GET ................................................................... 53

Hình 3.42: POST dữ liệu trong Fiddler......................................................................... 54

Hình 3.43: POST dữ liệu thành cơng ............................................................................ 54

Hình 3.44: PUT dữ liệu với Fiddler .............................................................................. 55

Hình 3.45: Kết quả kiểm tra với PUT service ............................................................... 56

Hình 3.46: Kết quả PUT thành cơng ............................................................................. 56

Hình 3.47: Delete dữ liệu với fiddler............................................................................. 57

Hình 3.48: Kiểm tra xóa thành cơng ............................................................................. 57


Hình 3.49: Giao diện trang đăng nhập ......................................................................... 58

Hình 3.50: Giao diện quản lý nhân viên........................................................................ 58

Hình 3.51: Giao diện quản lý khách hành dùng .Net Core ........................................... 59

Hình 3.52: Giao diện quản lý nhân viên........................................................................ 59

Hình 3.53: Giao diện thêm mới nhân viên..................................................................... 60

Hình 3.54: Giao diện lập phiếu bảo hành ..................................................................... 60

DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮT

Tên viết tắt Mô tả

API Application Programming Interface

B2B Business To Business

W3C World Wide Web Consortium

REST Representational State Tranfer

WWW World Wide Web

WSDL File Transfer Protocol

JSON Javascript Object Notation


HTTP Hypertext Transfer Protocol

HTML Hypertext Markup Language

POP3 Post Office Protocol phiên bản 3

SOAP Simple Object Access Protocol

SOA Service Oriented Architecture

SSL Security Sockets Layers

UDDI Universal Description Discovery and Integration

URL Uniform Resource Locator

WSDL Web Service Description Language

WS Web Service

W3C World Wide Web Consortium

Phần 1. MỞ ĐẦU

1.1. Lý do chọn đề tài

Trong thời đại bùng nổ công nghệ thông tin như ngày nay, công nghệ Web đã trở
thành một nền tảng quen thuộc và phát triển rộng khắp. Có nhiều tổ chức lớn như
Facebook, Google, Amazon, Ebay, Paypal, Youtube đang phát triển và thu được

những thành tựu nổi bật nhờ phát triển website của họ cùng với những Web Service,
những tiện ích Web cho người dùng kèm theo. Web Service ra đời giống như một cuộc
cách mạng, đã làm thay đổi cách thức cộng tác trong kinh doanh giữa các tổ chức với
nhau. Giờ đây, một Web Service không chỉ được cung cấp bởi chỉ một tổ chức nữa mà
có thể có nhiều tổ chức khác nhau cùng cộng tác với nhau trong một môi trường thuận
tiện, dễ dàng để cùng nhau phát triển Web Service của họ. Web Service là một ứng
dụng tuyệt vời của kĩ thuật lập trình phân tán và được coi là một công nghệ mang đến
cuộc cách mạng trong cách thức hoạt động của các dịch vụ B2B, B2C và nhiều loại
dịch vụ mạng khác. Giá trị cơ bản của Web Service là dựa trên việc cung cấp các
phương thức theo chuẩn và cho phép các đối tượng khác nhau ở rất nhiều hệ thống
khác nhau truy cập đến. Web Service hoàn toàn độc lập với mọi nền tảng máy tính,
khiến cho hai máy tính bất kì nào, dù chạy hệ điều hành Windows hay Linux,… cũng
đều có thể tương tác, trao đổi dữ liệu với nhau được dễ dàng. Trong thời gian gần đây,
công nghệ mới đây nhất là Web API đang nổi lên là công nghệ lý tưởng nhất cho việc
xây dựng các ứng dụng điện toán đám mây.

Với mong muốn tìm hiểu sâu về Web Service và những công nghệ mới đang
được áp dụng trong việc phát triển các ứng dụng Web Service và để xây dựng phần
mềm ứng dụng Web Service nên em chọn đề tài “Nghiên cứu về Web API và viết
ứng dụng xây dựng phần mềm quản lý bảo hành thiết bị tin học trên Web
Service”.

1.2. Mục tiêu của đề tài

- Nắm vững các kiến thức lý thuyết về Web API

- Tìm hiểu về lập trình trên Web Service

- Triển khai ứng dụng Web Service với phần mềm bảo hành thiết bị tin học


1.3. Đối tượng và phạm vi nghiên cứu

- Đối tượng nghiên cứu của đề tài là lý thuyết kiến trúc Web Service, công nghệ
Web API.

- Phạm vi nghiên cứu của đề tài được giới hạn trong các nội dung sau: về mặt lý
thuyết, đó là kiến trúc Web Service, nền tảng, mơ hình kiến trúc, khả năng ứng dụng
của Web Service trong việc xây dựng các ứng dụng hướng dịch vụ (SOA) và công
nghệ Web API trong Web Service. Về thực tế, xây dựng phần mềm ứng dụng bảo
hành thiết bị tin học trên Web Service.

Sinh viên thực hiện: Nguyễn Thị Yến Hợp 1

1.4. Phương pháp nghiên cứu

- Tìm kiếm tài liệu liên quan đến Web Service, công nghệ Web API và các kiến
thức liên quan.

- Đọc tài liệu, chọn những công cụ cần thiết cho việc xây dựng ứng dụng.

- Phương pháp nghiên cứu lí thuyết.

- Sử dụng các phương pháp thu thập thơng tin, phân tích và tổng hợp.

1.5. Lịch sử nghiên cứu

- Nội dung này được các tác giả trong và ngoài nước nghiên cứu. Tuy nhiên, đây
là đề tài mới, với công nghệ mới, phù hợp với thời đại công nghệ phát triển. Với mong
muốn nâng cao kiến thức của bản thân và chia sẻ một phần kiến thức của mình nên tơi
lựa chọn đề tài này để phát triển.


1.6. Đóng góp của đề tài

- Cung cấp kiến thức về Web Service, công nghệ Web API và triển khai xây
dựng ứng dụng trên thực tế.

- Cung cấp một nền tảng ứng dụng trên di động. Có thể nói đây là một ứng dụng
thiết thực và có tính ứng dụng cao. Ứng dụng sẽ làm phong phú thêm cho kho ứng
dụng trên di động, giúp người dùng có thêm nhiều lựa chọn và những trải nghiệm tốt
nhất.

- Với đề tài này tôi mong muốn chia sẻ kiến thức và cung cấp một tài liệu tham
khảo cho các bạn sinh viên công nghệ thơng tin khi tiếp cận, tìm hiểu về cơng nghệ và
ứng dụng Web. Hi vọng đề tài sẽ giúp ích cho mọi người.

1.7 Cấu trúc đề tài

Với đề tài này, phần nội dung thực tập gồm 3 chương sau:

Chương 1: Cơ sở lý thuyết. Chương này sẽ tơi sẽ trình bày tổng quan về Web
Service, công nghệ Web API và các ưu điểm của nó so với các cơng nghệ khác.

Chương 2: Lập trình trên Web Service. Chương này tơi sẽ trình bày về ngơn
ngữ và các công cụ cần thiết để xây dựng ứng dụng Web Service.

Chương 3: Phân tích và xây dựng ứng dụng phần mềm. Chương này tơi sẽ
trình bày các phần phân tích hệ thống và xây dựng phần mềm bảo hành thiết bị tin học
trên Web Service.

Sinh viên thực hiện: Nguyễn Thị Yến Hợp 2


Phần 2. NỘI DUNG NGHIÊN CỨU

Chương 1: CƠ SỞ LÝ THUYẾT

1.1. Tổng quan về Web Service

1.1.1. Giới thiệu Web Service

Là sự kết hợp cáć ưng dụng trên máy tı́nh cá nhân, thiết bị di động vớí ưng dụng
trên các thiết bị khác, các cơ s̉ơ dữ liệu và các mạng máy tı́nh để tạo thành một cơ cấu
tı́nh toán hoàn hảo mà ngừơi s̉ư dụng có thể làm việc, yêu cầu, phân tı́ch, khai thác,
cập nhật thông tin với nó thông qua mạng Internet hoặc Wifi.

Hình 1.1: Mơ hình Web Service

Theo định nghı̃a của W3C (World Wide Web Consortium):
- Dịch vụ Web là một hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương
tác giữa các ứng dụng trên các máy tính khác nhau thơng qua mạng Internet, giao diện
chung và sự gắn kết của nó được mô tả bằng XML.

- Là tài nguyên phần mềm có thể xác định bằng địa chỉ URL.

- Thực hiện các chức năng và đưa ra các thông tin người dùng yêu cầu.

-́ Ưng dụng cơ bản của Web Service là tích hợp các hệ thống.

- Các ứng dụng được tích hợp với cơ sở dữ liệu và các ứng dụng khác, người sử
dụng sẽ giao tiếp với cơ sở dữ liệu để tiến hành phân tích và lấy dữ liệu.


1.1.2. Các cơng nghệ xây dựng Web Service

Phân loại theo Công nghệ s̉ư dụng để xây dựng dịch vụ Web chó ưng dụng di
động dùng .NET Framwork (phiên bản 4.5.3), hiện nay có các công nghệ chı́nh sau:

- Web Service

Sinh viên thực hiện: Nguyễn Thị Yến Hợp 3

- WCF Service

- WCF REST Service

- Web API Service

1.1.3. Đặc điểm của Web Service

- Web Service cho phép client và server tương tác được với nhau ngay cả trong
những mơi trường khác nhau. Ví dụ, đặt Web server cho ứng dụng trên một máy chủ
chạy hệ điều hành Linux trong khi người dùng sử dụng máy tính chạy hệ điều hành
Windows, ứng dụng vẫn có thể chạy và xử lý bình thường mà khơng cần thêm yêu cầu
đặc biệt để tương thích giữa hai hệ điều hành này.

- Phần lớn kĩ thuật của Web Service được xây dựng dựa trên mã nguồn mở và
được phát triển từ các chuẩn đã được cơng nhận, ví dụ như XML.

- Là sự kết hợp của việc phát triển theo hướng từng thành phần với những lĩnh
vực cụ thể và cơ sở hạ tầng Web, đưa ra những lợi ích cho cả doanh nghiệp, khách
hàng, những nhà cung cấp khác và cả những cá nhân thông qua mạng Internet.


- Một ứng dụng khi được triển khai sẽ hoạt động theo mơ hình client-server. Nó
có thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ như PHP, Oracle
Application server hay Microsoft.Net…

- Ngày nay Web Service đang rất phát triển, những lĩnh vực trong cuộc sống có
thể áp dụng và tích hợp Web Service là khá rộng lớn như dịch vụ chọn lọc và phân
loại tin tức, ứng dụng cho các dịch vụ du lịch (cung cấp giá vé, thông tin về địa
điểm…), các đại lý bán hàng qua mạng, thông tin thương mại như đấu giá qua mạng,
hay dịch vụ giao dịch trực tuyến như đặt vé máy bay, thông tin thuê xe…

Ưu điểm

- Cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần mềm khác nhau
chạy trên những nền tảng khác nhau.

- Sử dụng các giao thức và chuẩn mở.

- Nâng cao khả năng tái sử dụng.

- Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại.

- Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ
thống, dễ dàng cho việc phát triển các ứng dụng phân tán.

- Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt
động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh
nghiệp khác.

Sinh viên thực hiện: Nguyễn Thị Yến Hợp 4


Nhược điểm
- Vào những khoảng thời gian chết của Web Service sẽ dẫn đến những thiệt hại
ĺơn:
+ Giao diện không thay đổi.
+ Có thể lỗi nếu một máy khách không được nâng cấp.
+ Thiếu các giao thức cho việc vận hành.
- Có quá nhiều chuẩn cho Web Service khiến người dùng khó nắm bắt.
- Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật.
1.1.4. Kiến trúc của Web Service
- Mô hı̀nh hoạt động của dịch vụ Web

Hình 1.2: Mơ hình hoạt động của Web Service
- Web Service gồm có 4 chuẩn chính:
+ SOAP (Simple Object Access Protocol)
+ WSDL (Web Service Description Language)
+ UDDI (Universal Description, Discovery, and Integration)
+ REST (Representational State Tranfer)

Sinh viên thực hiện: Nguyễn Thị Yến Hợp 5

[1]. Giới thiệu về SOAP

Hình 1.3: Mơ hình hoạt động của Web Service dùng SOAP

Khái niệm SOAP

- SOAP là một giao thức giao tiếp có cấu trúc như XML và mã hóa thành định
dạng chung cho các ứng dụng trao đổi với nhau.

- Ý tưởng bắt đầu từ Microsoft và phần mềm Userland, trải qua nhiều lần thay

đổi, hiện tại là phiên bản SOAP 1.2 với nhiều ưu điểm vượt trội hơn phiên bản SOAP
1.1. SOAP được xem như là cấu trúc xương sống của các ứng dụng phân tán xây dựng
từ nhiều ngôn ngữ, hệ điều hành khác nhau.

- SOAP là một đặc tả việc sử dụng các tài liệu XML theo dạng các thông điệp.

- Đặc tả về SOAP định nghĩa một mơ hình trao đổi dữ liệu dựa trên ba khái niệm
cơ bản: Các thông điệp là các tài liệu XML, chúng được truyền đi từ bên gửi đến bên
nhận, bên nhận có thể chuyển tiếp dữ liệu đến nơi khác.

Đặc trưng của SOAP

- SOAP được thiết kế đơn giản và dễ m̉ơ rộng.
- Tất cả các thông điệp SOAP đều được mã hóa s̉ư dụng XML.
- SOAP sử dùng giao thức truyền dữ liệu riêng.

- Khơng có cơ chế tham chiếu. Vì thế SOAP client khơng giữ bất kỳ một tham
chiếu đầy đủ nào về các đối tượng ở xa.

- SOAP không bị ràng buộc bởi bất kỳ ngôn ngữ lập trı̀nh nào hoặc cơng nghệ
nào.

Vì những đặc trưng này, nó khơng quan tâm đến cơng nghệ gì được sử dụng để
thực hiện miễn là người dùng sử dụng các thông điệp theo định danh dạng XML.

Sinh viên thực hiện: Nguyễn Thị Yến Hợp 6

Tương tự, Service có thể được thực hiện trong bất kỳ ngôn ngữ nào, miễn là nó
có thể xử lý được những thơng điệp theo định dạng XML.


Khi trao đổi thơng điệp SOAP, có hai thành phần liên quan: Bên gửi và bên nhận.
Thông điệp sẽ được chuyển từ bên gửi sang bên nhận. Đây là ý niệm đơn giản nhất
trong trao đổi thông điệp SOAP. Trong nhiều trường hợp, kiểu trao đổi này không
cung cấp đủ chức năng. Nhưng đây là mơ hình cơ bản, dựa trên đó sẽ phát triển các
mơ hình trao đổi phức tạp hơn.

Hệ thống SOAP đơn giản

Hình 1.4: Hệ thống SOAP đơn giản
Một cấu trúc SOAP được định nghĩa gồm các thành phần: <Envelope>,
<Header>, <Body>
Cấu trúc thông điệp SOAP

Hình 1.5: Cấu trúc thông điệp SOAP
[2]. Giới thiệu về REST

- Bốn nguyên tắc thiết kế cơ bản:
+ S̉ư dụng phương th́ưc HTTP rõ ràng.
+ Phi trạng thái.
+ Hiển thị cấu trúc thư mục URIs
+ Chuyển đổi JSON/ XML hoặc cả hai.

Sinh viên thực hiện: Nguyễn Thị Yến Hợp 7

Hình 1.6: Mơ hình Web Service dùng REST

Khái niệm REST

REST (Representational State Tranfer) là một kiến trúc phần mềm cho các ĥẹ
thống phân tán siêu truyền thông như WWW, được chọn sử dụng rộng rãi thay cho

Web Service dựa trên SOAP và WSDL.

Đặc trưng của REST

- Là dạng client - server.

- Phân tách giao diện của client ra khỏi dữ liệu.

- Cho phép mỗi thành phần phát triển độc lập.

- Hỗ trợ đa nền tảng.

- Mỗi yêu cầu t̀ư client phải có đủ thông tin cần thiết để server có thể hiểu được
mà không cần phải lưu trữ thêm thông tin nào trứơc đó.

- Tất cả tài nguyên được truy cập thông qua một phương thức thống nhất (HTTP
GET, PUT, POST, DELETE,...).

1.1.5. Các thành phần chính của Web Service

[1]. XML – eXtensible Markup Language

Là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu, nó được sử dụng
để định nghĩa các thành phần dữ liệu trên trang web và cho những tài liệu B2B (mơ
hình doanh nghiệp). Về hình thức, XML hồn tồn có cấu trúc thẻ giống như ngôn ngữ
HTML nhưng HTML định nghĩa thành phần được hiển thị như thế nào thì XML lại
định nghĩa những thành phần đó chứa cái gì. Với XML, các thẻ có thể được lập trình
viên tự tạo ra trên mỗi trang web và được chọn là định dạng thơng điệp chuẩn bởi tính
phổ biến và hiệu quả mã nguồn mở.


Do Web Service là sự kết hợp của nhiều thành phần khác nhau nên nó sử dụng
các tính năng và đặc trưng của các thành phần đó để giao tiếp. XML là cơng cụ chính
để giải quyết vấn đề này và là kiến trúc nền tảng cho việc xây dựng một Web Service,
tất cả dữ liệu sẽ được chuyển sang định dạng thẻ XML. Khi đó, các thơng tin mã hóa

Sinh viên thực hiện: Nguyễn Thị Yến Hợp 8

sẽ hồn tồn phù hợp với các thơng tin theo chuẩn của SOAP hoặc XML - RPC và có
thể tương tác với nhau trong một thể thống nhất.

[2]. WSDL - Web Service Description Language

WSDL định nghĩa cách mô tả Web Service theo cú pháp tổng quát của XML,
bao gồm các thông tin:

- Tên dịch vụ

- Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của Web Service

- Loại thông tin: thao tác, tham số, những kiểu dữ liệu (có thể là giao diện của
Web Service cộng với tên cho giao diện này).

Một WSDL hợp lệ gồm hai phần: phần giao diện (mô tả giao diện và phương
thức kết nối) và phần thi hành mô tả thông tin truy xuất cơ sở dữ liệu. Cả hai phần này
sẽ được lưu trong hai tập tin XML tương ứng là tập tin giao diện dịch vụ và tập tin thi
hành dịch vụ. Giao diện của một Web Service được miêu tả trong phần này đưa ra
cách thức làm thế nào để giao tiếp qua Web Service. Tên, giao thức liên kết và định
dạng thông điệp yêu cầu để tương tác với Web Service được đưa vào thư mục của
WSDL.


WSDL thường được sử dụng kết hợp với XML schema và SOAP để cung cấp
Web Service qua Internet. Một client khi kết nối tới Web Service có thể đọc WSDL để
xác định những chức năng sẵn có trên server. Sau đó, client có thể sử dụng SOAP để
lấy ra chức năng chính xác có trong WSDL.

[3]. Universal Description, Discovery, and Integration (UDDI)

Để có thể sử dụng các dịch vụ, trước tiên client phải tìm dịch vụ, ghi nhận thông
tin về cách sử dụng và biết được đối tượng nào cung cấp dịch vụ. UDDI định nghĩa
một số thành phần cho biết các thông tin này, cho phép các client truy tìm và nhận
những thơng tin được yêu cầu khi sử dụng Web Service.

- Cấu trúc UDDI :

+ Trang trắng - White pages: chứa thông tin liên hệ và các định dạng chính yếu
của Web Service, chẳng hạn tên giao dịch, địa chỉ, thông tin nhận dạng… Những
thông tin này cho phép các đối tượng khác xác định được dịch vụ.

+ Trang vàng - Yellow pages: chứa thông tin mô tả Web Service theo những loại
khác nhau. Những thông tin này cho phép các đối tượng thấy được Web Service theo
từng loại với nó.

+ Trang xanh - Green pages: chứa thông tin kỹ thuật mô tả các hành vi và các
chức năng của Web Service.

+ Loại dịch vụ - tModel: chứa các thông tin về loại dịch vụ được sử dụng.

Sinh viên thực hiện: Nguyễn Thị Yến Hợp 9

Những thông tin về Web Service được sử dụng và công bố lên mạng sử dụng

giao thức này. Nó sẽ kích hoạt các ứng dụng để tìm kiếm thơng tin của Web Service
khác nhằm xác định xem dịch vụ nào sẽ cần đến nó.

[4]. SOAP – Simple Object Access Protocol

Chúng ta đã hiểu cơ bản Web Service như thế nào nhưng vẫn còn một vấn đề khá
quan trọng. Đó là làm thế nào để truy xuất dịch vụ khi đã tìm thấy? Câu trả lời là các
Web Service có thể truy xuất bằng một giao thức là Simple Object Access Protocol –
SOAP. Nói cách khác chúng ta có thể truy xuất đến UDDI registry bằng các lệnh gọi
hoàn toàn theo định dạng của SOAP.

SOAP là một giao thức giao tiếp có cấu trúc như XML. Nó được xem là cấu trúc
xương sống của các ứng dụng phân tán được xây dựng từ nhiều ngôn ngữ và các hệ
điều hành khác nhau. SOAP là giao thức thay đổi các thông điệp dựa trên XML qua
mạng máy tính, thơng thường sử dụng giao thức HTTP.

Một client sẽ gửi thông điệp yêu cầu tới server và ngay lập tức server sẽ gửi
những thông điệp trả lời tới client. Cả SMTP và HTTP đều là những giao thức ở lớp
ứng dụng của SOAP nhưng HTTP được sử dụng và chấp nhận rộng rãi hơn bởi ngày
nay nó có thể làm việc rất tốt với cơ sở hạ tầng Internet.

Cấu trúc một thông điệp theo dạng SOAP

Thông điệp theo định dạng SOAP là một văn bản XML bình thường bao gồm các
phần tử sau:

- Phần tử gốc - envelop: phần tử bao trùm nội dung thông điệp, khai báo văn bản
XML như là một thông điệp SOAP.

- Phần tử đầu trang - header: chứa các thông tin tiêu đề cho trang, phần tử này

khơng bắt buộc khai báo trong văn bản. Header cịn có thể mang những dữ liệu chứng
thực, những chứ ký số, thơng tin mã hóa hay cài đặt cho các giao dịch khác.

- Phần tử khai báo nội dung chính trong thơng điệp - body, chứa các thông tin
yêu cầu và thông tin được phản hồi.

- Phần tử đưa ra các thông tin về lỗi - fault, cung cấp thơng tin lỗi xảy ra trong
q trình xử lý thông điệp.

Một SOAP đơn giản trong body sẽ lưu các thông tin về tên thông điệp, tham
chiếu tới một thể hiện của dịch vụ, một hoặc nhiều tham số. Có ba kiểu thơng báo sẽ
được đưa ra khi truyền thông tin: request message (tham số gọi thực thi một thông
điệp), respond message (các tham số trả về, được sử dụng khi yêu cầu được đáp ứng)
và cuối cùng là fault message (thơng báo tình trạng lỗi).

Có hai kiểu truyền thơng:

- Remote procedure call (RPC): cho phép gọi hàm hoặc thủ tục qua mạng.

Sinh viên thực hiện: Nguyễn Thị Yến Hợp 10

- Document: được biết đến như kiểu hướng thơng điệp, nó cung cấp giao tiếp ở
mức trừu tượng thấp, khó hiểu và yêu cầu lập trình viên mất cơng sức hơn.

Hai kiểu truyền thông này cung cấp các định dạng thông điệp, tham số, lời gọi
đến các API khác nhau nên việc sử dụng chúng tùy thuộc vào thời gian và sự phù hợp
với Web Service cần xây dựng.

Cấu trúc dữ liệu: Cung cấp những định dạng và khái niệm cơ bản giống như
trong các ngơn ngữ lập trình khác như kiểu dữ liệu (int, string, date…) hay những kiểu

phức tạp hơn như struct, array, vector… Định nghĩa cấu trúc dữ liệu SOAP được đặt
trong namespace SOAP-ENC.

1.1.6. An toàn cho Web Service

Việc đảm bảo an toàn cho Web Service là một vấn đề quan trọng.

Đảm bảo an toàn cho Web Service:
- WS-Security (bảo mật cho Web Service) - chuẩn an toàn bao trùm cho SOAP,
nó được dùng khi muốn xây dựng những Web Service toàn vẹn và tin cậy.

- Các thành phần được thêm vào: WS-Secure Conversation Describes, WS-
Authentication Describes, WS-Policy Describes hay WS-Trust Describes…

1.1.7. Xây dựng một Web Service

Qui trình xây dựng một Web Service bao gồm các bước sau:

- Định nghĩa và xây dựng các chức năng, các dịch vụ mà dịch vụ sẽ cung cấp

- Tạo WSDL cho dịch vụ

- Xây dựng SOAP hoặc REST server

- Đăng ký WSDL với UDDI registry để cho phép các client có thể tìm thấy và
truy xuất

- Client nhận tập tin WSDL và từ đó xây dựng SOAP hoặc REST client để có thể
kết nối với SOAP hoặc REST server


- Xây dựng ứng dụng phía client và sau đó gọi thực hiện dịch vụ thơng qua việc
kết nối tới SOAP hoặc REST server

1.1.8. Tích hợp Web Service theo chuẩn

- Giám sát (Monitoring): Giám sát các Web Service chạy như thế nào qua toàn
bộ mạng, từ một chi nhánh con của một công ty trên mạng tới các chi nhánh khác
trong công ty hay giao tiếp với doanh nghiệp khác.

- Xác định đường đi dữ liệu (Data routing): Hứơng tới tối đa hóa khả năng sử
dụng lại. Những thể hiện của cùng một thành phần có thể dễ dàng được sử dụng lại

Sinh viên thực hiện: Nguyễn Thị Yến Hợp 11

trong các ứng dụng phân tán khác bởi vì chúng hồn tồn độc lập và khơng phụ thuộc
lẫn nhau.

- Triển khai (Deployment): Triển khai các Web Service có khả năng nâng cấp,
điều khiển và cấu hình các thành phần từ xa thơng qua mạng phân tán.

- Quản lý (Management): Có thể xây dựng theo kiến trúc P2P (Peer-to-Peer)

- Cấu hình và quản lý phiên bản (Configuration and Version Management): Sử
dụng các công cụ linh hoạt để quản lý các phiên bản khác nhau của Web Service, cho
phép các phiên bản được nâng cấp và điều khiển từ một công cụ quản lý tập trung.

- Bảo mật (Security): Web Service kết hợp với những cơng nghệ có khả năng bảo
mật cao.

1.2. So sánh giữa RESTful và SOAP


Ngày nay, người ta thường dùng hai giải pháp Web Service chính để giao tiếp
với ứng dụng web là: SOAP (Simple Object Access Protocol) và REST
(Representational State Transfer). Cải hai giải pháp này đều là những lựa chọn tốt khi
thiết kế hệ thống, nhưng nó cũng những ưu điểm và nhược điểm của riêng. Việc lựa
chọn giải pháp nào còn tùy thuộc vào người phát triển hệ thống và từng trường hợp hệ
thống cụ thể.

Sự khác nhau giữa SOAP và RESTfull được thể hiện trong bảng 1.1

Bảng 1.1: Sự khác nhau giữa SOAP và RESTfull

STT SOAP REST

1) SOAP là một giao thức REST là một cách thiết kế kiến trúc

SOAP là từ viết tắt của Simple
2) Object Access Protocol(Giao REST viết tắt của REpresentational State thức truy cập đối tượng đơn Transfer

giản)

3) SOAP khơng thể sử dụng REST REST có thể dùng các Web Services sử dụng SOAP vì nó có thể dùng bất kỳ giao
vì nó là một giao thức
thức nào như HTTP, SOAP

SOAP cung cấp các giao diện
4) dịch vụ(services interfaces) cho REST sử dụng đỉa chỉ URI để cung cấp các các thành phần bên ngoài sử dịch vụ

dụng


Sinh viên thực hiện: Nguyễn Thị Yến Hợp 12

JAX-WS là java API cài đặt 5) Web Services theo giao thức JAX-RS là java API cài đặt Web Services
theo kiến trúc RESTful
SOAP

6) SOAP định nghĩa các chuẩn và REST không định nghĩa nhiều chuẩn như
quy tắc chặt chẽ SOAP

7) SOAP sử dụng băng thông và REST sử dụng băng thông và tài nguyên ít tài nguyên nhiều hơn REST hơn SOAP

8) SOAP định nghĩa chuẩn bảo RESTful kế thừa chuẩn bảo mật tầng vận tải mật của riêng nó của giao thức mạng

9) SOAP chỉ hỗ trợ định dạng dữ REST hỗ trợ các định dạng dữ liệu khác liệu XML nhau như text, HTML, XML, JSON

10) SOAP ít được dùng hơn REST REST được ưa chuộng hơn SOAP

11) Được thiết kế để dùng trong tính Thương khơng được dùng trong mơi trường tốn phân tán tính tốn phân tán

12) Tin cậy hơn Ít tin cậy hơn – chẳng hạn, HTTP DELETE
có thể trả về trạng thái OK ngay cả khi tài
nguyên khơng được xóa

Sử dụng tốt với các giao thức như: HTTP,
13) Hỗ trợ hầu hết các chuẩn bảo SSL. Các phương thức DELETE và PUT mật, tin cậy và giao dịch thường bị vơ hiệu hóa bởi tường lửa hoặc

vấn đề bảo mật

14) SOAP hỗ trợ cả hai giao thức SMTP và HTTP REST gắn với giao thức HTTP


1.3. Giới thiệu về API

- Application Programming Interface (API): Giao diện ứng dụng lập trình.

- Gồm các phương thức để cho các ứng dụng bên ngồi có thể gọi, tương tác để
trao đổi thơng tin, tính tốn.

Sinh viên thực hiện: Nguyễn Thị Yến Hợp 13


×