Hệ thống được xây dựng đểtăng hiệu năng sử dụng, giảm thất thoát hỏng hóc thiết bị. Phần mềm được xây dựng dựa trên tính thực tiễn nên có tính ứng dụng vào thực tế cao.
2.4.2. Mô tả về các thành phần và chức năng
Hình 2. 1. Mô tả thành phần, chức năng trong hệ thống
Có 4 chức năng chính trong hệ thống:
- Tài khoản: hệ thống sẽ quản lý những tác vụ xử lý trên hệ thống thông qua các tài khoản mà người dùng đăng ký trên website. Những tài khoản này
21
được admin của toàn hệ thống phân quyền để thực hiện các tác vụ cần thiết theo từng chức năng mà được phép.
- Phòng ban: có các chức năng như thêm mới, tìm kiếm, xóa, chỉnh sửa thông tin phòng ban.
- Thành viên: có các chức năng như thêm mới thành viên vào trong phòng ban, tìm kiếm, tra cứu thông tin của người dùng và phân quyền để người dùng có thể thực hiện những tác vụ của mình được phép trên hệ thống.
- Thiết bị: được phân chia là 2 thành phần.(1) Quản lý thông tin thiết bị:
ởđây sẽ thêm những thông tin của các thiết bị có trong hệ thống, trong các phòng ban thuộc hệ thống, tìm kiếm và chỉnh sửa thông tin của thiết bị khi cần thiết. Hỗ
trợ việc truy suất file excel để hỗ trợ việc thống kê và tạo báo cáo khi cần thiết (2) chức năng: Tạo mã QR, phân bổ người theo dõi, sử dụng, luân chuyển qua
các phòng ban, đặt lịch bảo dưỡng, báo hỏng thông qua mã QR được gán trên các thiết bị, đặt lịch bảo dưỡng, thanh lý và đề xuất mua thiết bị mới.
Hệ thống được xây dựng trên 3 thành phần chính:
- Website: tương tác, nhận yêu cầu từngười dung
- Backend: xử lý những yêu cầu từ phía người dùng rồi trả lại kết quả như người dùng mong muốn
22
CHƯƠNG 3. GIẢI PHÁP KĨ THUẬT VÀ PHÂN TÍCH HỆ THỐNG
Chương này trình bày các phương pháp sử dụng trong hệ thống và đưa ra
các lý do khi lựa chọn sử dụng các phương pháp này.
Hệ thống xây dựng theo mô hình 3 lớp Database – Webservice – Client.
Đây là một mô hình linh hoạt cho phép sử dụng các giữ liệu phân tán và đảm bảo tốt các phần chuẩn mực về tính bảo mật của hệ thống đồng thời là mô hình cực kì phổ biến trong hệ thống lớn hiện nay. Được áp dụng rộng rãi trên các ứng dụng.
Hình 3. 1. Mô hình 3 lớp Database – Webservice - Client
Hệ thống mô hình 3 lớp:
Lớp dữ liệu database(DB): đây là lớp lưu trữ dữ liệu của hệ thống. Hệ thống xây dựng theo mô hình Database – Webservice – Client có thể kết nối và tập trung nhiều loại dữ liệu. các loại dữ liệu có thể là mySQl, SQL server, noSQL. Hiện nay có một số nhà cũng cấp database dưới dạng json như
mongoodb…
Lớp service: Đây là lớp thực hiện logic để xử lý các yêu cầu từ phía người dùng yêu cầu. Lớp service tạo ra sự linh hoạt cho hệ thống. Dữ liệu được tổng hợp và xử lý thành các định dạng khác nhau để đáp ứng yêu cầu từ phía người
dùng.
Lớp client: Đây là lớp mobile app hoặc website, lớp này thao tác trực tiếp với người dùng. Thao tác của người dùng lên app hoặc website sẽ là việcgửi các
23
yêu cầu đến lớp service. Lớp service sẽ tiếp nhận, kiểm tra và xử lý các yêu cầu mà người dùng yêu cầu. Khi xử lí xong sẽ trả lại kết quả cho người dùng.
3.1. Lựa chọn phương pháp database
Xây dựng hệ thống quản lý, tạo lịch bảo dưỡng thiết bị sử dụng cơ sở dữ liệu dưới dạng SQL là SQL Server để lưu trữ dữ liệu và thực hiện các truy vấn từ
webservice.
3.1.1. Cơ sở dữ liệu SQL server
SQL Server là một hệ thống quản trị cơ sở dữ liệu quan hệ(Relational Database Management System, viết tắt là RDBMS) sử dụng câu lệnh sql để trao đổi dữ liệu giữa client và nơi chứa database. Một RDBMS bao gồm database, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS. SQL server được phát triển bởi microsoft.
SQL Server là một trong số các phần mềm RDBMS. RDBMS và SQL Server thường được cho là một vì độ phổ biến quá lớn của SQL server. Các ứng dụng web lớn nhất như Facebook, Twitter, YouTube, Google, và Yahoo! đều dùng SQL Server cho mục đích lưu trữ dữ liệu. Ban đầu nó chỉ được dùng rất hạn
chế nhưng giờ đây nó đã đc tương thích với nhiều hạ tầng máy tính quan trọng như Linux, macOS, Microsoft Windows… trở thành một trong những hệ quản trị cơ sở số một thế giới và là một trong những lựa chọn hàng đầu trong khi phát triển hệ thống [4].
Hình 3. 2. Cách thức giao tiếp của SQL server
Hình trên đây giải thích cấu trúc cơ bản về việc giao tiếp giữa client –
server model. Một máy client sẽ liên lạc với server trong một mạng nhất định. Mỗi client gửi một yêu cầu từ giao diện người dùng và server sẽ trả về kết quả như mong muốn.
24
nhiều thành phần như Database Engine, Reporting Services, Notification
Services, Integration Services, Full Text Search Service…. Các thành phần này khi phối hợp với nhau tạo thành một giải pháp hoàn chỉnh giúp cho việc lưu trữ và phân tích dữ liệu một cách dễ dàng
Hình 3. 3. Thành phần trong hệ thống SQL Server [5]
Database Engine(Lõi của SQL Server)
- Ðây là một engine có khảnăng chứa data ở các quy mô khác nhau dưới dạng table và support tất cả các kiểu kết nối (data connection) thông dụng của
Microsoft như
- ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC).
- Ngoài ra nó còn có khảnăng tựđiều chỉnh (tune up) ví dụnhư sử dụng thêm các tài nguyên (resource) của máy khi cần và trả lại tài nguyên cho hệđiều hành khi một user log off.
Integration Services: là tập hợp các đối tượng lập trình và các công cụ đồ họa cho việc sao chép, di chuyển và chuyển đổi dữ liệu. Khi bạn làm việc trong một công ty lớn thì dữ liệu được lưu trữ ở nhiều nơi khác nhau như được chứa trong: Oracle, SQL Server, DB2, Microsoft Access,… và bạn chắc chắn sẽ
có nhu cầu di chuyển dữ liệu giữa các server này. Ngoài ra, bạn còn muốn định dạng dữ liệu trước khi lưu vào database. Chắc chắn Integration Services sẽ giúp bạn giải quyết được công việc này dễ dàng.
25
Analysis Services: Đây là một dịch vụ phân tích dữ liệu rất hay của Microsoft. Dữ liệu khi được lưu trữ vào trong database mà bạn không thể lấy
được những thông tin bổ ích thì coi như không có ý nghĩa gì. Chính vì thế, công cụnày ra đời giúp bạn trong việc phân tích dữ liệu một cách hiệu quả và dễ dàng bằng cách dùng kỹ thuật khai thác dữ liệu – datamining và khái niệm hình khối nhiều chiều – multi dimendion cubes.
Notification Services: Dịch vụ thông báo này là nền tảng cho sự phát triển và triển khai các ứng dụng soạn và gửi thông báo. Ngoài ra, dịch vụ này còn có chức năng gửi thông báo theo dịch thời đến hàng ngàn người dăng ký sử dụng trên nhiều loại thiết bị khác nhau.
Reporting Services: là một công cụ tạo, quản lý và triển khai báo cáo bao gồm: server và client. Ngoài ra, nó còn là nền tảng cho việc phát triển và xây dựng các ứng dụng báo cáo.
Full Text Search Service: là một thành phần đặc biệt trong việc truy vấn
và đánh chỉ mục dữ liệu văn bản không cấu trúc được lưu trữtrong các cơ sở dữ
liệu SQL Server.
Service Broker: là một môi trường lập trình cho việc tạo ra các ứng dụng trong việc nhảy qua các Instance.
Phân loại: Có 4 loại ngôn ngữSQL Server được sử dụng:
- Ngôn ngữđịnh nghĩa dữ liệu (data definition language).
- Ngôn ngữ truy vấn dữ liệu (structured query language).
- Ngôn ngữ thao tác dữ liệu (data manipulation language).
- Ngôn ngữđiều khiển dữ liệu (data control language).
SQL Server lưu trữ database trong các bảng tập hợp những dữ liệu liên
quan đến nhau. Một bảng gồm nhiều hàng (bản ghi của bảng) và cột(trường dữ
liệu).
SQL Server cung cấp các câu lệnh phong phú để kết nối, yêu cầu và lấy dữ liệu thực hiện các yêu cầu từ web service:
- Chỉnh sửa các hàng trong 1 quan hệ: chèn, xóa, cập nhật.
26
- Điều khiển việc truy cập tới cơ sở dữ liệu và các đối tượng của cơ sở dữ
liệu nhằm đảm bảo tính bảo mật, tính nhất quán và sự ràng buộc của cơ sở dữ
liệu.
** Ưu điểm.
- Là cơ sở dữ liệu tốc độ cao, ổn định.
- Độ bảo mật thông tin cao.
- Dễ sử dụng và có tính khả chuyển: tuy có tính năng cao nhưng SQL
Server là hệ thống cơ sở dữ liệu rất đơn giản và ít phức tạp.
- Có thể hoạt động trên nhiều hệ điều hành với lượng lớn các hàm tiện ích: SQL Server rất thích hợp cho các ứng dụng có truy cập cơ sở dữ liệu trên Internet. SQL Server có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Mac OS, Unix, FreeBSD, Net BSD, Novell NetWare, SGI Irix, Solaris, SunOS,…
- Hoàn toàn miễn phí: Là một mã nguồn mở, SQL Server sử dụng hoàn toàn miễn phí. Tuy nhiên, trong trường hợp bạn cần được hỗ trợ từ SQL Server, bạn vẫn phải trả phí.
- Cộng đồng hỗ trợ : Vì lượng người dùng SQL Server vô cùng lớn nên sự hỗ trợ từ cộng đồng này cũng lớn theo. Khi trở thành một thành viên của cộng
đồng người dùng, bạn sẽ được mọi người trong cộng đồng tư vấn giải pháp họ
biết cho vấn đề bạn gặp phải. ** Hạn chế.
- SQL Server có thể bịkhai thác để chiếm quyền điều khiển.
- SQL Server không được tích hợp để sử dụng cho các hệ thống lớn cần quản lý lượng dữ liệu khổng lồ. Ví dụ: hệ thống siêu thị trên toàn quốc, ngân hàng, quản lý thông tin dân số cảnước, …
3.1.2. Một số câu lệnh cơ bản trong SQL server
Các lệnh SQL server cơ bản để tương tác với database là CREATE, DROP, UPDATE, SELECT, INSERT và DELETE. Các câu lệnh này có thể được phân thành các nhóm sau dựa trên tính chất của chúng.
27
Bảng 3. 1. Ngôn ngữ định nghĩa dữ liệu
Câu lệnh Mô tả
- CREATE - Tạo ra 1 bảng mới, 1 view của một bảng, hoặc các đối tượng khác trong cơ sở dữ liệu.
- ALTER - Truy vấn đến 1 bảng để add, drop, update column.
- DROP - Xóa toàn bộ 1 hàng, view của bảng hoặc các đối tượng khác trong cơ sở dữ liệu
Ngôn ngữ truy vấn dữ liệu (structured query language). Bảng 3. 2. Ngôn ngữ truy vấn dữ liệu
Câu lệnh Mô tả
- SELECT - Câu lệnh này để lấy dữ liệu từ bảng mySQL. Có thể dựa theo điều kiện để truy vấn lấy dữ liệu client mong muốn
Ngôn ngữ thao tác dữ liệu (data manipulation language). Bảng 3. 3. Ngôn ngữ thao tác dữ liệu
Câu lệnh Mô tả
- INSERT - Cập nhật giá trị của các trường cho bảng - UPDATE - Chỉnh sửa bản ghi
- DELETE - Xóa bản ghi
Ngôn ngữ điều khiển dữ liệu (data control language).
Bảng 3. 4. Ngôn ngữ điều khiển dữ liệu
Câu lệnh Mô tả
- GRANT - Cấp quyền cho người dùng
- REVOKE - Lấy lại đặc quyền được cấp từ người dùng
3.2. Giải pháp thiết kế API
Trong việc thực hiện thiết kế API có rất nhiều tiêu chuẩn để thiết kế ví dụ như SOAP(Simple Object Access Protocol), WSDL(Web Service Definition Language), RESTful… Trong quá trình xây dựng hệ thống tôi lựa chọn tiêu
28
chuẩn RESTful API để thiết kế API cho hệ thống của mình.
SOAP là một giao thức truy cập webserver được sử dụng một thời gian và hướng tất cả các lợi ích của về sử dụng lâu dài. Được phát triển bởi Micrsoft. Trong khi đó, REST là một công nghệ mới hơn, được xây dựng nên để hạn chế những vấn đề mà SOAP gặp phải và cung cấp các phương thức thực sự đơn giản để truy cập webserver. Tuy rằng trong từng hệ thống thì mỗi giao thức sẽ phát huy điểm mạnh, vì vậy cần xem xét tổng quan của hệ thống rồi từ đó đưa ra những giải pháp hợp lý nhất.
SOAP là một số tổ hợp các mẫu truyền tin nghiêm ngặt hơn REST. Quy định trong SOAP là rất quan trọng bởi vì nếu thiếu 1 trong các yêu cầu của chúng, ta không thể gửi yêu cầu tới webserver được. Tuy nhiên REST sinh ra và mang đến một kiến trúc không yêu cầu quy trình và linh hoạt
3.2.1. Giới thiệu về SOAP
SOAP dựa hoàn toàn vào XML để cung cấp các services truyền tin. XML được sử dụng để tạo ra các yêu cầu và nhận kết quả trả về trong SOAP, nó có thể trở nên cực kỳ phức tạp. Trong một số ngôn ngữ lập trình, bạn cần xây dựng các yêu cầu đó bằng từ đầu và không có sự hỗ nào từ bên ngoài, điều này trở nên khó khăn bởi SOAP không dung nạp được cac lỗi trong quá trình xây dựng. Tuy nhiên trong một số các ngôn ngữ có hỗ trợ sử dụng các phím tắt, có thể hỗ trợ bạn xây dựng các yêu cầu dễ dàng hơn và hạn chế mắc phải những lỗi mà mình không mong muốn.
Một trong những tính năng quan trọng nhất của SOAP là tích hợp trong xử lý lỗi. Nếu có sự cố với yêu cầu của bạn, kết quả trả về sẽ chưa thông tin lỗi mà bạn có thể sử dụng để khắc phục sự cố.
3.2.2. Giới thiệu về RESTful API
REST(Representational State Transfer) đây không phải 1 chuẩn hay một giao thức, đây là một cách tiếp cận, một kiểu kiến trúc để viết API. Một web server là tập hợp các giao thức chuẩn được sử dụng cho mục đích trao đổi giữa hệ thống và ứng dụng. Web server dựa trên các kiến trúc REST như RESTful web server. Những web server này sử dụng phương thức HTTP để triển khai các định nghĩa kiến trúc REST. Các ứng dụng sử dụng kiểu thiết kế REST thì được gọi là RESTful. [6]
29
API(Application Programming Interface) là một tập các nguyên tắc và cơ chế mà theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác. API có thể trả về dữ liệu mà người dùng yêu cầu cho ứng dụng của mình ở dưới dạng kiểu dữ liệu phổ biến như JSON hay XML. RESTful API là một tiêu chuẩn dùng trong viêc thiết kế API cho các ứng dụng web để quản lý resource. RESTful là một trong những kiểu thiết kế API được sử dụng phổ biến nhất hiện nay. Trọng tâm của REST quy định cách sử dụng các phương thức của HTTP như GET, POST, PUT, DELETE… và cách định dạng các URL cho ứng dụng web để quản lý các resource.
Hình 3. 4. Kiến trúc RESTful
Những ràng buộc trong REST:
- Người dùng – máy chủ: Hoạt động theo mô hình người dùng – máy chủ, việc tách biệt này nhằm đơn giản hóa việc thực hiện các thành phần (kiểu chia để trị), giảm sự phức tạp của ngữ nghĩa kết nối, nâng cao hiệu quả của việc điều chỉnh hiệu năng, tăng khả năng mở rộng của máy chủ.
- Không có trạng thái: máy chủ và người dùng không lưu trạng thái của nhau. Với mỗi một yêu cầu được gửi đi đều phải được đóng gói đầy đủ thông tin để máy chủ có thể nhận và hiểu được. Điều này giúp hệ thống dễ phát triển, bảo trì, mở rộng vì không tốn công CRUD trạng thái của người dùng. Tuy nhiên có
mặt hạn chế là làm tăng lưu lượng thông tin cần truyền tải giữa người dùng và máy chủ.
- Bộ nhớ đệm: Mọi thứ trên web đều có thể được lưu trữ, do đó kết quả trả