Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công nghệ thông tin 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 toán ...................................................................................................... 22 3.2.2. Đặc tả yê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 ẢNH 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 lý nhân viên....................................................................... 30 Hı̀ nh 3.3: Biểu đồ UC quản lý sả n phẩ m ....................................................................... 30 Hı̀ nh 3.4: Biểu đồ UC quản lý nhà cung cấp ................................................................. 30 Hı̀ nh 3.5: Biểu đồ UC quản lý khá ch hàng .................................................................... 31 Hı̀ nh 3.6: Biểu đồ UC quản lý tiếp nhận sản phẩm ....................................................... 31 Hı̀ nh 3.7: Biểu đồ UC bàn giao sản phẩ m..................................................................... 32 Hı̀ nh 3.8: Biểu đồ UC quản lý công việc bảo hành ....................................................... 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óa 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óa sản phẩm ................................................... 37 Hı̀ nh 3.18: Biểu đồ tuần tự chức năng thêm nhà cung cấ p ........................................... 37 Hı̀ nh 3.19: Biểu đồ tuần tự chức năng sửa nhà cung cấp ............................................. 38 Hı̀ nh 3.20: Biểu đồ tuần tự chức năng xóa nhà cung cấp ............................................. 38 Hı̀ nh 3.21: Biểu đồ tuần tự chức năng thêm khách hàng .............................................. 39 Hı̀ nh 3.22: Biểu đồ tuần tự chức năng sửa khách hà ng ................................................ 39 Hı̀ nh 3.23: Biểu đồ tuận tự chức năng xóa khách hà ng ................................................ 40 Hı̀ nh 3.24: Biểu đồ tuần tự chức năng thêm nhà sản xuất ............................................ 40 Hı̀ nh 3.25: Biểu đồ tuần tự chức năng sửa nhà sản xuất .............................................. 41 Hı̀ nh 3.26: Biểu đồ tuần tự chức năng xóa nhà 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óa 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 đồ lớp của hệ thống ............................................................................. 44 Hı̀ nh 3.33: Biểu đồ trạng thái lớp nhân viên chức năng đăng nhập ............................. 45 Hı̀ nh 3.34: Biểu đồ trạng thái lớp nhân viên chức năng thêm thông tin ....................... 45 Hı̀ nh 3.35: Biểu đồ trạng thái lớ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ái lớp nhân viên chức năng xóa thông tin ......................... 46 Hı̀ nh 3.37: Biểu đồ trạng thái lớ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ái lớ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 Sinh viên thực hiện: Nguyễn Thị Yến Hợp 1 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 2 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 3 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ác ứng dụng trên máy tı́nh cá nhân, thiết bị di động với ứ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 cho ứ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 4 - 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 5 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 lớ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 6 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 7 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: , , 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 8 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 hệ 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 hoàn toà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 9 sẽ hoàn toà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 10 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 quá 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 11 - 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 12 trong các ứng dụng phân tán khác bởi vì chúng hoàn toà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 2) SOAP là từ viết tắt của Simple Object Access Protocol(Giao thức truy cập đối tượng đơn giản) REST viết tắt của REpresentational State Transfer 3) SOAP không thể sử dụng REST vì nó là một giao thức REST có thể dùng các Web Services sử dụng SOAP vì nó có thể dùng bất kỳ giao thức nào như HTTP, SOAP 4) SOAP cung cấp các giao diện dịch vụ(services interfaces) cho các thành phần bên ngoài sử dụng REST sử dụng đỉa chỉ URI để cung cấp các dịch vụ Sinh viên thực hiện: Nguyễn Thị Yến Hợp 13 5) JAX-WS là java API cài đặt Web Services theo giao thức SOAP JAX-RS là java API cài đặt Web Services theo kiến trúc RESTful 6) SOAP định nghĩa các chuẩn và quy tắc chặt chẽ REST không định nghĩa nhiều chuẩn như SOAP 7) SOAP sử dụng băng thông và tài nguyên nhiều hơn REST REST sử dụng băng thông và tài nguyên ít hơn SOAP 8) SOAP định nghĩa chuẩn bảo mật của riêng nó RESTful kế thừa chuẩn bảo mật tầng vận tải của giao thức mạng 9) SOAP chỉ hỗ trợ định dạng dữ liệu XML REST hỗ trợ các định dạng dữ liệu khác 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 toán phân tán Thương không được dùng trong môi trường tính toá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 13) Hỗ trợ hầu hết các chuẩn bảo mật, tin cậy và giao dịch Sử dụng tốt với các giao thức như: HTTP, SSL. Các phương thức DELETE và PUT 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 ngoài có thể gọi, tương tác để trao đổi thông tin, tính toán. Sinh viên thực hiện: Nguyễn Thị Yến Hợp 14 - Giúp các nhà lập trình tạo ra các service hỗ trợ những lập trình viên khác có thể tương tác với ứng dụng của chính mình. - Mỗi phần mềm, ứng dụng có các cung cấp các API để các ứng dụng khác có thể tương tác với nó. - Việc xây dựng lên các API cần tuân thủ các chuẩn công nghệ để nhiều nền tảng công nghệ có thể sử dụng được API mà ứng dụng cung cấp. 1.4. Giới thiệu về Web API - ASP.NET Web API là framework giúp chúng ta tạo ra các Web API - API trên nền web (HTT...
Trang 1UBND 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
Trang 2UBND TỈNH QUẢNG NAM
TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN
Sinh viên thực hiện
Trang 3MỤ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
Trang 43.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 toán 22
3.2.2 Đặc tả yê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
Trang 5DANH MỤC HÌNH ẢNH
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 lý nhân viên 30
Hı̀nh 3.3: Biểu đồ UC quản lý sản phẩm 30
Hı̀nh 3.4: Biểu đồ UC quản lý nhà cung cấp 30
Hı̀nh 3.5: Biểu đồ UC quản lý khách hàng 31
Hı̀nh 3.6: Biểu đồ UC quản lý tiếp nhận sản phẩm 31
Hı̀nh 3.7: Biểu đồ UC bàn giao sản phẩm 32
Hı̀nh 3.8: Biểu đồ UC quản lý công viê ̣c bảo hành 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óa 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óa sản phẩm 37
Hı̀nh 3.18: Biểu đồ tuần tự chức năng thêm nhà cung cấp 37
Hı̀nh 3.19: Biểu đồ tuần tự chức năng sửa nhà cung cấp 38
Hı̀nh 3.20: Biểu đồ tuần tự chức năng xóa nhà cung cấp 38
Hı̀nh 3.21: Biểu đồ tuần tự chức năng thêm khách hàng 39
Hı̀nh 3.22: Biểu đồ tuần tự chức năng sửa khách hàng 39
Hı̀nh 3.23: Biểu đồ tuận tự chức năng xóa khách hàng 40
Hı̀nh 3.24: Biểu đồ tuần tự chức năng thêm nhà sản xuất 40
Trang 6Hı̀nh 3.25: Biểu đồ tuần tự chức năng sửa nhà sản xuất 41
Hı̀nh 3.26: Biểu đồ tuần tự chức năng xóa nhà 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óa 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 đồ lớp của hệ thống 44
Hı̀nh 3.33: Biểu đồ trạng thái lớp nhân viên chức năng đăng nhập 45
Hı̀nh 3.34: Biểu đồ trạng thái lớp nhân viên chức năng thêm thông tin 45
Hı̀nh 3.35: Biểu đồ trạng thái lớ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ái lớp nhân viên chức năng xóa thông tin 46
Hı̀nh 3.37: Biểu đồ trạng thái lớ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ái lớ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
Trang 7DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮT
Trang 8Phầ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
Trang 91.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
- 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
Trang 10Phầ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ác ứng du ̣ng trên máy tı́nh cá nhân, thiết bi ̣ di đô ̣ng với ứng du ̣ng trên các thiết bi ̣ khác, các cơ sở dữ liê ̣u và các ma ̣ng máy tı́nh để ta ̣o thành mô ̣t cơ cấu tı́nh toán hoàn hảo mà người sử du ̣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 ma ̣ng Internet hoă ̣c Wifi
Hình 1.1: Mô hình Web Service
Theo đi ̣nh nghı̃a của W3C (World Wide Web Consortium):
- Di ̣ch vu ̣ 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 loa ̣i theo Công nghê ̣ sử du ̣ng để xây dựng di ̣ch vu ̣ Web cho ứng du ̣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
Trang 11- 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
Trang 12Nhượ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 ha ̣i lớ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 hoa ̣t đô ̣ng của di ̣ch vu ̣ 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)
Trang 13[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ử du ̣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 bi ̣ 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
Trang 14Tươ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ử du ̣ng phương thức HTTP rõ ràng
+ Phi tra ̣ng thái
+ Hiển thi ̣ cấu trúc thư mu ̣c URIs
+ Chuyển đổi JSON/ XML hoă ̣c cả hai
Trang 15Hì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 hệ 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 hoàn toà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
Trang 16sẽ hoàn toà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
Trang 17Nhữ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 quá 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
Trang 18- 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: Secure Conversation Describes, Authentication Describes, WS-Policy Describes hay WS-Trust Describes…
WS-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
Trang 19trong các ứng dụng phân tán khác bởi vì chúng hoàn toà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
1) SOAP là một giao thức REST là một cách thiết kế kiến trúc
2)
SOAP là từ viết tắt của Simple
Object Access Protocol(Giao
thức truy cập đối tượng đơn
4)
SOAP cung cấp các giao diện
dịch vụ(services interfaces) cho
các thành phần bên ngoài sử
dụng
REST sử dụng đỉa chỉ URI để cung cấp các dịch vụ
Trang 205)
JAX-WS là java API cài đặt
Web Services theo giao thức
7) SOAP sử dụng băng thông và
tài nguyên nhiều hơn REST
REST sử dụng băng thông và tài nguyên ít hơn SOAP
8) SOAP định nghĩa chuẩn bảo
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
toán phân tán
Thương không được dùng trong môi trường tính toá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
13) Hỗ trợ hầu hết các chuẩn bảo
mật, tin cậy và giao dịch
Sử dụng tốt với các giao thức như: HTTP, SSL Các phương thức DELETE và PUT 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
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 ngoài có thể gọi, tương tác để trao đổi thông tin, tính toán
Trang 21- Giúp các nhà lập trình tạo ra các service hỗ trợ những lập trình viên khác có thể tương tác với ứng dụng của chính mình
- Mỗi phần mềm, ứng dụng có các cung cấp các API để các ứng dụng khác có thể tương tác với nó
- Việc xây dựng lên các API cần tuân thủ các chuẩn công nghệ để nhiều nền tảng công nghệ có thể sử dụng được API mà ứng dụng cung cấp
1.4 Giới thiệu về Web API
- ASP.NET Web API là framework giúp chúng ta tạo ra các Web API - API trên nền web (HTTP)
- Web API là các di ̣ch vu ̣ Web (Web Service) được xây dựng dựa trên HTTP sử dụng mô hình lập trình convention (như ASP.NET MVC)
Hình 1.7: Mô hình Web API
1.4.1 Đă ̣c điểm Web API (.NET 4.0 trở lên)
- Giúp cho việc xây dựng các HTTP service rất đơn giản, nhanh chóng
- Mã nguồn mở (Open Source) và có thể được sử dụng bởi bất kì client nào hỗ trợ XML, JSON
- Hỗ trợ đầy đủ các thành phần HTTP: URI, request/response headers, caching, versioning, content formats
- Có thể host trong ứng dụng hoặc trên IIS
- Kiến trúc lý tưởng cho các thiết bị có băng thông giới hạn như các thiết bi ̣ di
đô ̣ng
- Định dạng dữ liệu có thể là JSON, XML hoặc một kiểu dữ liệu bất kỳ
- Làm mới và hiện đại hóa các mẫu dự án mặc định
Trang 22- Mẫu dự án trên điện thoại di động
- Nhiều tính năng mới để hỗ trợ các ứng dụng di động
- Tùy chỉnh sinh mã (code)
- Tăng cường hỗ trợ cho các phương pháp bất đồng bộ
- Đọc danh sách đầy đủ tính năng trong các ghi chú phát hành
1.4.2 Ưu điểm của Web API
- Cấu hı̀nh đơn giản hơn nhiều so với WCF
- Hiê ̣u suất (performance) cao
- Hỗ trơ ̣ RESTfull đầy đủ
- Hỗ trơ ̣ đầy đủ các thành phần MVC như: routing, controller, action result, filter, model binder, IoC container, dependency injection, unit test, …
- Mã nguồn mở (Open source)
- Là mô ̣t di ̣ch vu ̣ web đơn giản sử du ̣ng HTTP và tı́nh chất của REST
- Nó tuân thủ theo 4 nguyên tắc thiết kế cơ bản sau:
+ Sử dụng các phương thức HTTP một cách rõ ràng
+ Phi trạng thái
+ Chuyển đổi dữ liệu về dạng JSON và XML hoặc cả hai
1.5 So sánh ASP.NET Web API và ASP.NET MVC
Một số điểm giống và khác nhau giữa ASP.NET Web API và ASP.NET MVC:
- MVC trả về cả View và Data trong đó Web API chỉ trả về Data
- Web API giúp xây dựng REST-full Services trên nền tảng NET Hỗ trợ content-negitiation (tự động trả dữ liệu có kiểu phù hợp với client như Json, Xml, Atom,…), self-hosting mà MVC không có
- Web API sẽ giúp bạn chuyển kiểu dữ liệu trả về theo thuộc tính Accept trong header của request MVC thì chỉ trả về kiểu JSON
- Web API, Request được kết nối với các Actions dựa trên phương thức, vd: GET, PUT, POST, … Còn MVC thì Request được kết nối với tên các Action
- ASP.Net Web API là một nền tảng mới và là một phần của ASP.NET Các tính năng như model binding, filters, routing và nhiều tính năng khác của MVC cũng có trong Web API nhưng nó được đóng gói vào System.Web.Http Trong MVC những tính năng này nằm trong System.Web.MVC Vì vậy Web API có thể được sử dụng với ASP.NET hay đứng độc lập
Trang 23- Bạn có thể dùng cả Web API và MVC controller trong cùng một dự án để xử lý các Ajax Request trả về dữ liệu kiểu JSON, XML, Cái này gọi là Web API self-hosting
- Khi dùng cả Web API và Web MVC, bạn cần kiểm soát quyền truy cập Và như vậy trong hệ thống của bạn sẽ tồn tại hai bộ lọc (filter), một cho Web API và một cho Web MVC
- Hơn hết, Web API là một kiến trúc gọn nhẹ ngoài việc dùng cho các ứng dụng web, nó còn dùng được với các ứng dụng smartphone
-HẾT CHƯƠNG I -
Trang 24Chương 2: LẬP TRÌNH TRÊN WEB SERVICE 2.1 Giới thiệu về lập trình trên Web Service
Web Service đượ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 (Business to Business) và B2C (Business to Customer) Giá trị cơ bản của Web Service dựa trên việc cung cấp các phương thức theo chuẩn trong việc truy nhập đối với hệ thống đóng gói và hệ thống kế thừa Các phần mềm được viết bởi những ngôn ngữ lập trình khác nhau và chạy trên những nền tảng khác nhau có thể sử dụng Web Service để chuyển đổi dữ liệu thông qua mạng Internet theo cách giao tiếp tương tự bên trong một máy tính
Với sự phát triển và lớn mạnh của Internet, Web Service thật sự là một công nghệ đáng được quan tâm để giảm chi phí và độ phức tạp trong tích hợp và phát triển
hệ thống
2.2 Tìm hiểu về ASP.NET Core
2.2.1 Khái niệm ASP.NET Core
ASP.NET Core là một mã nguồn mở và là nền tảng mới cho xây dựng đám mây trên internet kết nối các ứng dụng web, mobile backends ASP.NET Core có thể chạy trên NET Core hoặc chạy đầy đủ trên NET Framework ASP.NET Core được kiến trúc để cung cấp một nền tảng phát triển tối ưu cho các ứng dụng được triển khai tới cloud hoặc chạy cục bộ ASP.NET Core bao gồm các thành phần mô - đun cần thiết tối thiểu, do đó khi xây dựng các giải pháp giữ lại được tính linh hoạt
2.2.2 Những cải tiến của ASP.NET Core
- Web UI và Web API được hợp nhất
- Tích hợp các frameworks hiện đại cho khách hàng và nhà phát triển
- Hệ thống được cấu hình dựa trên điện toán đám mây
- Khả năng lưu trữ trên IIS hoặc tự chủ trong tiến trình riêng của bạn
- Được xây dựng trên NET Core, hỗ trợ ứng dụng side-by-side
- Công cụ vừa mới và đơn giản để phát triển các web hiện đại
- Xây dựng và chạy nền tảng ứng dụng ASP.NET không chỉ trên Windows mà còn trên MAC và Linux nữa
Trang 252015 để tạo, quản lý và gỡ lỗi các ứng dụng ASP.NET Core của bạn, thì nay trên bất
kỳ nền tảng nào bạn có thể sử dụng Visual Studio Code Visual Studio Code là một trình soạn thảo với các plugin có hỗ trợ để chỉnh sửa các ứng dụng ASP.NET Core của bạn
[2] Nguồn mở
Ngày nay mã nguồn và tài liệu ASP.NET đã được Microsoft mở tất cả Các mã nguồn giờ đã có sẵn trong Github bạn giờ có thể tải hay thay đổi bất kỳ mã nào mà bạn thích Nếu bạn có bất kỳ một góp ý cải tiến gì đó, bạn có thể gửi một yêu cầu đến cho microsoft để xem xét và kết hợp Tương tự như vậy, tất cả các tài liệu cũng là mã nguồn mở và có sẵn trong bài viết docs.asp.net Mỗi trang trên đó điều có chức năng
“chỉnh sửa trang này” ở phía trên và bạn có thể chỉnh sửa các tài liệu từ Microsoft
[3] Hỗ trợ đầy đủ cho framework
Một thông tin hữu ích là asp.net core dẫu trở thành mã nguồn mở nhưng Microsoft vẫn sẽ cung cấp hỗ trợ trong 3 năm cho mỗi bản phát hành của họ
[4] Hiệu suất
Microsoft giới thiệu máy chủ mới web Kestrel chạy trong host IIS của bạn hoặc chạy sau một host process khác Kestrel hiện tại là máy chủ NET chạy nhanh nhất hiện nay
Dưới đây là bảng hiệu xuất đánh giá từ Microsoft:
Bảng 2: Bảng hiệu xuất đánh giá từ Microsoft
[5] Hỗ trợ xây dựng bằng Dependency Injection
Nếu mà giải thích thì chỉ vài dòng thì sẽ hơi khó hiểu ASP.NET Core đã được xây dựng trong Dependency Injection Dependency Injection là một mẫu thiết kế cho phép các phụ thuộc của một class được đưa vào như các đối tượng được yêu cầu trong ứng dụng của bạn Với ASP.NET Core, Microsoft đã cung cấp một Dependency Injection mà bạn có thể sử dụng để xác định sự phụ thuộc được đưa vào Controller, View của bạn, hoặc bất kỳ lớp học khác mà framework sẽ tạo ra cho bạn Bạn có thể
Trang 26bắt đầu việc cấu hình thông qua phương thức ConfigureServices trong tập tin Startup.cs
[6] Một Framework duy nhất
Trong ASP.NET Core, Microsoft đã đưa tất cả các framework vào một framework duy nhất vừa nhẹ hơn và vừa có những tính năng của MVC và WebAPI Với việc sáp nhập này của MVC và Web API, mọi thứ đơn giản hơn nhiều khi bạn không cần phải cân nhắc định tuyến khác nhau, an toàn, hoặc các bộ lọc cho một ApiController so với MVC Controller Tất cả các lớp Controller hiện giờ có thể xử lý các yêu cầu sử dụng API Web hoặc cách tiếp cận MVC
[7] MVC Helpers Tag
Với ASP.NET Core, Microsoft đã giới thiệu tag helpers để tạo ra mã phía client
từ NET và làm cho nó dễ dàng hơn để tái sử dụng trong Razor markup Nó được tham chiếu trong đánh dấu phía máy chủ của bạn như thể họ là một tag HTML mà bạn được
sử dụng Công cụ Razor sẽ nhận ra thẻ và thực thi các mã NET có liên quan tương ứng với nó
2.3 Giới thiệu Visual Studio 2015 Update 3
Microsoft Visual Studio 2015 là công cụ lập trình mạnh mẽ được sử dụng để phát triển các chương trình máy tính cho Microsoft Windows, cũng như các trang Web, các ứng dụng Web Về phần Visual Studio 2015, phiên bản mới này sẽ mở rộng khả năng lập trình cho các nền tảng iOS, Android và Windows nhờ việc hỗ trợ các công cụ biên soạn Slang, LLVM và C++ Để hỗ trợ tốt hơn cho việc phát triển ứng dụng di động với NET và cũng là một phần của mối quan hệ hợp tác chiến lược giữa Microsoft và Xamarin, lập trình viên bây giờ có thể cài đặt trực tiếp Xamarin từ Visual Studio Thêm vào đó, đối với lập trình viên Web có nhu cầu phát triển các ứng dụng trên nền tảng đám mây dành riêng cho thiết bị di động Microsoft cũng đã phát hành phiên bản cuối của bộ công cụ Apache Cordova
Hình 2: Giới thiệu Microsoft Visual Studio 2015
Trang 27- Microsoft Visual Studio 2015 - công cụ lập trình mạnh mẽ Nó được xem là một giải pháp toàn diện cho các lập trình viên để phát triển và quản lý ứng dụng trên nhiều thiết bị và nền tảng khác nhau Trong phiên bản mới nhất này sẽ mở rộng khả năng lập trình cho các nền tảng iOS, Android và Windows nhờ việc hỗ trợ các công cụ biên soạn Slang, LLVM và C++
Visual Studio hỗ trợ nhiều ngôn ngữ lập trình khác nhau và cho phép các lập trình viên biên tập mã và gỡ lỗi để hỗ trợ (mức độ khác nhau) với hầu hết các ngôn ngữ lập trình, cung cấp một dịch vụ ngôn ngữ cụ thể tồn tại Ứng dụng này được xây dựng trong ngôn ngữ bao gồm C, C++, C++/ CLI (thông qua Visual C++), VB.NET (thông qua Visual Basic.NET), C# (thông qua Visual C#) và F# (như Visual Studio 2010)
- Những tính năng chính của Microsoft Visual Studio 2015
+ Biên tập Code: Microsoft Visual Studio giống như bất kỳ IDE khác, nó bao gồm một trình soạn thảo mã hỗ trợ làm nổi bật cú pháp và hoàn thành mã sử dụng Phần gợi ý khi viết code cho các biến, chức năng, phương pháp, các vòng lặp và
LINQ Phần gợi ý khi viết code được hỗ trợ cho các ngôn ngữ cũng như đối
với XML, Cascading style Sheets và JavaScript khi phát triển các trang Web và các ứng dụng Web
+ Thiết kế: Thiết kế Windows Forms được sử dụng để xây dựng các ứng dụng GUI bằng Windows Forms Các lập trình viên có thể điều khiển hiển thị dữ liệu (như hộp, hộp danh sách, xem lưới ) có thể được liên kết với nguồn dữ liệu như cơ sở dữ liệu hoặc truy vấn Điều khiển dữ liệu bị ràng buộc có thể được tạo ra bằng cách kéo các mục từ cửa sổ nguồn dữ liệu lên bề mặt thiết kế Các UI được liên kết với mã sử dụng một mô hình lập trình điều khiển theo sự kiện Các nhà thiết kế tạo ra hoặc là C# hay VB.NET cho các ứng dụng
WPF Designer đã được giới thiệu trong phiên bản Visual Studio 2008 Giống như các thiết kế Windows Forms nó hỗ trợ kéo và thả ẩn WPF Designer hỗ trợ tất cả các chức năng WPF bao gồm data binding, tự động quản lý cách bố trí và tạo mã XAML cho UI Các tập tin XAML tạo ra là tương thích với Microsoft Expression Design, sản phẩm thiết kế theo định hướng
+ Thiết kế và phát triển Web: Visual Studio cũng bao gồm một trình biên tập website và thiết kế cho phép các trang Web bằng cách kéo và thả các widget Nó được
sử dụng để phát triển các ứng dụng ASP.NET, hỗ trợ HTML, CSS và JavaScript Nó
sử dụng một mô hình code-behind (mã ẩn) để liên kết với mã ASP.NET
+ Thiết kế lớp: Các thiết kế Class được sử dụng để biên soạn và chỉnh sửa các lớp sử dụng mô hình UML Ngoài ra, tính năng này các trình lập viên có thể tạo ra các
mã vạch C # và VB.NET cho các lớp và phương pháp khác nhau
Trang 28+ Thiết kế dữ liệu: Có thể được sử dụng để chỉnh sửa đồ họa giản đồ cơ sở dữ liệu bao gồm các bảng, khóa chính, khóa ngoại và các rằng buộc Nó cũng có thể được
sử dụng để thiết kế các truy vấn từ các giao diện đồ họa
2.4 Giới thiệu về SQL Sever 2016
SQL Server 2016 có thể quản trị tốt dữ liệu quan hệ và hơn thế như hệ dữ liệu JSON, XML, Hadoop, và tích hợp liền mạch các dữ liệu có cấu trúc với Hadoop, hay tích hợp các dữ liệu lưu trữ tại doanh nghiệp với dữ liệu đám mây SQL Server 2016
sẽ là giải pháp lý tưởng cho:
- Các ứng dụng trí tuệ cao đòi hỏi đưa ra các thông tin vận hành thời gian thực bằng cách tổ hợp các phân tích dựng sẵn tiên tiến với công nghệ “in-memory” nhưng không cần dịch chuyển dữ liệu hoặc ảnh hưởng đến hiệu suất trên máy người dùng
- Các ứng dụng đòi hỏi bảo mật cao với những công nghệ mới “luôn mã hóa” giúp bảo vệ dữ liệu người dùng toàn vẹn, luôn hoạt động mà không ảnh hưởng tới hiệu suất của CSDL
- Giải pháp BI toàn diện trên thiết bị di động với hàm BI đầu cuối dựng sẵn giúp đưa đến tầm nhìn sâu sắc toàn cảnh trên mọi thiết bị Người dùng có thể quản trị mọi chỉ tiêu (KPIs), báo cáo trên mobile hay báo cáo truyền thống từ các cổng điện tử hiện đại
- Những giải pháp quản trị dữ liệu lớn mới tổng hợp các dữ liệu quan hệ với dữ liệu không quan hệ dựa trên nền tảng PolyBase được dựng sẵn, giúp người dùng có thể truy vấn các dữ liệu phi cấu trúc nhờ sự đơn giản hóa của công nghệ T - SQL
- Giải pháp đám mây lai giúp giảm đi chi phí lưu trữ, cải thiện sự sẵn sàng và đơn giản hóa vận hành IT cao nhờ công nghệ dàn trải CSDL (Stretch Database) Hơn thế, các bản sao (replicas) có thể được đặt trong đám mây Microsoft Azure để giúp khách hàng đạt hiệu quả hơn về mặt khôi phục dữ liệu sau thảm họa và cập nhật
Trang 29
Chương 3: PHÂN TÍCH VÀ XÂY DỰNG PHẦN MỀM BẢO HÀNH
THIẾT BỊ TIN HỌC 3.1 Giới thiệu phần mềm bảo hành thiết bị tin học
Bảo hành là công tác được thực hiện sau quá trình bán sản phẩm cho khách hàng Công việc này cũng là một trong những công việc chăm sóc khách hàng Đối với công
ty mua bán thiết bị tin học thì đây là một công đoạn không thể không tính đến nếu muốn công ty hoạt động hiệu quả
Hiện nay các thiết bị kỹ thuật số ngày càng được sử dụng rộng rãi Các doanh nghiệp cũng như các cá nhân luôn lựa chọn nhà cung cấp tôt nhất để mua sản phẩm
Và yếu tố được mọi người quan tâm đó là việc các thiết bị của họ sẽ được bảo hành ra sao khi gặp vấn dề Để đáp ứng được yêu cầu đó, phần mềm bảo hành thiết bị giúp cho việc quản lý bảo hành được hiệu quả hơn, tiết kiệm thời gian và chi phí, là nguồn tin cậy của khách hàng
3.2 Phân tích và thiết kế ứng dụng
3.2.1 Mô tả bài toán
Hệ thống bảo hành thiết bị được thực hiện xuyên suốt từ khâu tiếp nhận thiết bị, tiến hành kiểm tra, thực hiện sửa chữa, trả hàng và thanh toán nếu có Công việc được thực hiện theo quy trình như sau:
Khi khách hàng mang thiết bị đến công ty để bảo hành, nhân viên kinh doanh sẽ tiếp nhận và kiểm tra thiết bị Nếu thiết bị được mua trong vòng 1 tháng và bị lỗi do nhà sản xuất thì nhân viên kinh doanh tiến hành đổi mới sản phẩm từ nguồn hàng của kho bán hàng, sau đó in phiếu bảo hành mới cho khách hàng
Nếu thiết bị được mua quá một tháng mà vẫn còn thời gian bảo hành, nhân viên kinh doanh sẽ chuyển cho nhân viên kỹ thuật kiểm tra và sửa chữa Nếu sửa chữa được ngay thì gửi lại cho khách hàng Nếu chưa xử lý được thì báo cho nhân viên kinh doanh in phiếu hẹn cho khách hàng Nếu thiết bị lỗi do kỹ thuật hay về phần cứng thì
sẽ sửa chữa và nhập kho bảo hành, nếu lỗi do hệ thống hay gặp vấn đề khó khăn không sửa chữa được sẽ gửi đi bảo hành dựa vào hỗ trợ của phần mềm
Khi thiết bị được bảo hành gửi về, nhân viên kinh doanh sẽ tiếp nhận và nhập vào kho bảo hành, tiến hành trả hàng cho khách theo thời gian đã hẹn Nếu thiết bị chưa được gửi về kho đúng tiến độ, nhân viên kinh doanh sẽ gọi điện cho khách gia hạn thêm thời gian trả hàng
3.2.2 Đặc tả yêu cầu
Phần mềm bảo hành thiết bị tin học đảm bảo các yêu cầu sau:
- Quản lý thông tin thiết bị như hãng sản xuất, loại thiết bị, tên thiết bị, ngày bán, thời gian bảo hành…
Trang 30- Quản lý việc đổi trả hàng: hỗ trợ đổi trả hàng thông qua phiếu mua hàng
- Theo dõi nhật ký bảo hành và sử dụng dịch vụ
- Quản lý thông tin chi tiết khách hàng như mã khách hàng, tên khách hàng, địa chỉ, điện thoại…
- Quản lý thông tin chi tiết nhà cung cấp như mã nhà cung cấp, tên nhà cung cấp, điện thoại, địa chỉ…
- Quản lý tiếp nhận sản phẩm, đặt lịch hẹn thời gian bảo hành và bàn giao sản phẩm cho khách hàng thông qua phiếu sửa chữa gồm các thông tin như mã phiếu, khách hàng, số serial sản phẩm, tên sản phẩm, loại sửa chữa, báo giá sản phẩm, ngày nhận, ngày hẹn trả
- Quản lý danh mục sửa chữa gồm mã công việc, tên công việc, phân loại sản phẩm, đơn giá bảo hành…
- Theo dõi các sản phẩm đang bảo hành, thông báo và báo giá cho khách hàng khi có phát sinh trong quá trình sửa chữa
- Tiến hành nghiệm thu, đánh giá nhân viên kỹ thuật bảo hành và bàn giao sản phẩm cho phòng bảo hành
- In phiếu thanh toán, phiếu xuất kho sau khi sản phẩm bảo hành xong và giao cho khách hàng
3.2.3 Xác định tác nhân của hệ thống
- Người quản trị hệ thống: điều hành, quản lý và theo dõi mọi hoạt động của hệ thống như quản lý nhân viên, quản lý sản phẩm, quản lý hoạt động bảo hành của công ty…
- Nhân viên kinh doanh: là những người tiếp nhận và kiểm tra sản phẩm để chuyển cho nhân viên kỹ thuật nếu thiết bị cần được bảo hành và bàn giao sản phẩm cho khách hàng đúng thời gian đã hẹn
- Nhân viên kỹ thuật: là những người sửa chữa thiết bị và nhập vào kho bảo hành khi sửa chữa xong
- Nhân viên kho: là người quản lý kho, tiến hành nhập kho từ nhà cung cấp khi kho hết hàng Cấp sản phẩm cho kỹ thuật viên và nhận linh kiện từ kỹ thuật viên Trả hàng cho nhà cung cấp khi hàng lỗi không sửa chữa được Thống kê số lượng theo tình trạng bảo hành của sản phẩm hàng tháng
Trang 313.2.4 Các chức năng chính của hệ thống
[1] Tiếp nhận sản phẩm
R1.2 Kiểm tra sản phẩm còn thời gian bảo hành
hay không hoặc tiếp nhận yêu cầu sửa chữa
tiếp nhận sản phẩm từ nhân viên kinh doanh
R2.3 Nếu không sửa được thì sẽ gửi đi bảo hành
dựa vào hỗ trợ của phần mềm
[3] Bàn giao sản phẩm và thanh toán
R3.1 Nhân viên kinh doanh kiểm tra sản phẩm của từng
khách hàng và thời gian bàn giao
R3.3 Bàn giao cho khách hàng theo đúng hẹn
R3.4 Thanh toán nếu sản phẩm không thuộc chính sách bảo
hành
Trang 32
[4] Thống kê
theo từng loại thiết bị trong tháng R4.2 Thống kê số lượng thiết bị bảo hành theo
từng tình trạng trong tháng
3.2.5 Xác định các UC
Người quản trị hệ thống - Đăng nhập, đăng xuất
- Quản lý nhân viên
- Quản lý sản phẩm
- Quản lý nhà cung cấp
- Quản lý khách hàng
- Quản lý danh mục công việc sửa chữa
- Tiếp nhận và lập phiếu tiếp nhận và sửa chữa sản phẩm
- Lấy sản phẩm từ kho bảo hành
- Bàn giao sản phẩm cho khách
- Thanh toán (nếu có) tùy vào từng sản phẩm
- Trả sản phẩm vào kho khi sửa chữa xong
- Xuất kho
- Thống kê tình trạng trong kho
Trang 333.2.6 Đặc tả UC
[1] UC_ Đăng nhập hệ thống
Tác nhân: Người quản trị, nhân viên
Mô tả: Sau khi người quản trị cung cấp cho mỗi nhân viên một tài khoản, thì nhân viên có thể truy cập vào hệ thống để quản lý thông tin dữ liệu
Luồng sự kiện chính:
- Người dùng mở phần mềm
- Form đăng nhập hiển thị
- Bắt buộc nhập tên, mật khẩu vào form đăng nhập để truy cập vào hệ thống
- Hệ thống kiểm tra tên, mật khẩu của thành viên
- Nếu việc đăng nhập thành công thì mở giao diện hệ thống quản lý Nếu người dùng nhập sai tên, mật khẩu thì yêu cầu nhập lại
- UC kết thúc
Ri: R1.1, R1.2, R1.3, R1.4, R3.1, R3.2, R3.3, R3.4, R4.1, R4.2
[2] UC_Đăng xuất
Tác nhân: Người quản trị, nhân viên
Mô tả: Sau khi người dùng đã đăng nhập vào hệ thống, sau khi hoàn thành công việc, tiến hành đăng xuất khỏi hệ thống
Luồng sự kiện chính:
- Người dùng chọn menu đăng xuất
- Hiện thông báo bạn có chắc chắn muốn đăng xuất không
- Nếu đồng ý thì trở về màn hình đăng nhập Ngược lại, trở về trang quản lý
hệ thống
Ri: R1.1, R1.2, R1.3, R1.4, R3.1, R3.2, R3.3, R3.4, R4.1, R4.2
[3] UC_Quản lý nhân viên
Tác nhân: Người quản trị
Mô tả: Người quản trị có quyền quản lý thông tin nhân viên công ty, thêm, cập nhật nếu có thay đổi
Luồng sự kiện chính:
- Người quản trị đăng nhập vào hệ thống
- Nhấn vào menu quản lý nhân viên để xem và cập nhật thông tin
Trang 34- Nếu có nhân viên mới vào công ty, tiến hành thêm mới một nhân viên, bằng cách nhấn vào nút thêm mới Hiển thị form thêm với các thông tin nhân viên
- Hoặc có nhân viên nghỉ thì xóa thông tin nhân viên đó Hiện hộp thông báo Nếu đồng ý thì xóa, ngược lại trở về trang quản lý nhân viên
Ri: R1.1, R1.2, R1.3, R1.4, R3.1, R3.2, R3.3, R3.4, R4.1, R4.2
[4] UC_Quản lý sản phẩm
Tác nhân: Người quản trị, nhân viên kinh doanh
Mô tả: Người dùng quản lý thông tin chi tiết của sản phẩm, thêm, cập nhật, xóa thông tin sản phẩm
Luồng sự kiện chính:
- Người dùng đăng nhập vào hệ thống
- Nhấn vào menu quản lý sản phẩm để xem và cập nhật thông tin
- Các hành động thêm, sửa, xóa được thực hiện sau khi người dùng nhấn vào các hành động tương ứng và các form thêm, sửa hiện ra Hiển thị thông báo nếu người dùng muốn xóa thông tin
Ri: R1.1, R1.2, R1.3, R1.4, R2.1, R2.2, R2.3, R2.4, R3.1, R3.2, R3.3, R3.4, R4.1, R4.2
[5] UC_Quản lý nhà cung cấp
Tác nhân: Người quản trị, nhân viên kinh doanh
Mô tả: Người dùng quản lý thông tin chi tiết của nhà cung cấp, thêm, cập nhật, xóa thông tin nhà cung cấp
Luồng sự kiện chính:
- Người dùng đăng nhập vào hệ thống
- Nhấn vào menu quản lý nhà cung cấp để xem và cập nhật thông tin
- Các hành động thêm, sửa, xóa được thực hiện sau khi người dùng nhấn vào các hành động tương ứng và các form thêm, sửa hiện ra Hiển thị thông báo nếu người dùng muốn xóa thông tin nhà cung cấp
Ri: R2.1, R2.2, R2.3, R2.4
[6] UC_Quản lý khách hàng
Tác nhân: Người quản trị, nhân viên kinh doanh
Mô tả: Những người đã mua hàng của công ty và được bảo hành sản phẩm thì được quản lý thông tin chi tiết của khách hàng đó Việc quản lý thông khách hàng thông qua các hành động xem, thêm, sửa, xóa dữ liệu
Luồng sự kiện chính:
Trang 35- Người dùng đăng nhập vào hệ thống
- Nhấn vào menu quản lý khách hành để xem và cập nhật thông tin
- Các hành động thêm, sửa, xóa được thực hiện sau khi người dùng nhấn vào các hành động tương ứng và các form thêm, sửa hiện ra Hiển thị thông báo nếu người dùng muốn xóa thông tin khách hàng
Ri: R1.1, R1.2, R1.3, R3.1, R3.3, R3.4
[7] UC_Quản lý tiếp nhận sản phẩm
Tác nhân: Nhân viên kinh doanh
Mô tả: Khi khách hàng mang sản phẩm đến bảo hành, nhân viên kinh doanh sẽ tiếp nhận và lập phiếu tiếp nhận gồm các thông tin về tình trạng sản phẩm và thời gian hẹn trả sản phẩm
Luồng sự kiện chính:
- Người dùng đăng nhập vào hệ thống
- Nhấn vào menu lập phiếu tiếp nhận để thêm thông tin phiếu tiếp nhận
- Các hành động thêm, sửa, xóa được thực hiện sau khi người dùng nhấn vào các hành động tương ứng và các form thêm, sửa hiện ra Hiển thị thông báo nếu người dùng muốn xóa thông tin phiếu tiếp nhận
Ri: R1.1, R1.2, R1.3
[8] UC_Quản lý bàn giao sản phẩm
Tác nhân: Nhân viên kinh doanh
Mô tả: Sau khi sản phẩm được sửa chữa xong và chuyển đến kho bảo hành, nhân viên kinh doanh sẽ lấy sản phẩm bàn giao cho khách hàng đúng thời gian đã hẹn và thanh toán nếu có
Luồng sự kiện chính:
- Người dùng đăng nhập vào hệ thống
- Cập nhật trạng thái của phiếu tiếp nhận đó
Ri: R3.1, R3.2, R3.3, R3.4
[9] UC_Thống kê
Tác nhân: Nhân viên kho
Mô tả: Hàng tháng, nhân viên kho thống kê số lượng sản phẩm nhập kho và thống kê chi phí cho việc bảo hành
Luồng sự kiện chính: