TÌM HIỂU VỀ WEB SERVICE
Khái niệm về Web Service
Theo IBM: "Service is a repeatable task within a business process" Theo đó, Service là một ứng dụng với người dùng, một thao tác được thực hiện một hoặc nhiều lần trong một tiến trình và được thực hiện bởi một hay nhiều người.
Service là một hệ thống có khả năng nhận một hay nhiều yêu cầu xử lý và sau đó đáp ứng lại bằng cách trả về một hay nhiều kết quả Quá trình nhận yêu cầu và trả kết quả về được thực hiện thông qua các giao diện đã được định nghĩa trước đó Thông thường việc giao tiếp này được thực hiện trên các giao diện đã được chuẩn hóa và sử dụng rộng rãi.
Một hệ thống được thiết kế theo kiểu hướng Service là một hệ thống trong đó các chức năng của hệ thống được xây dựng dựa trên các service có độ kết dính thấp Các service trong hệ thống giao tiếp với nhau thông qua việc gửi nhận các thông điệp.
Đặc điểm Web Service
Web service độc lập vì nó không đòi hỏi các tiến trình ở phía client phải cài đặt bất cứ một thành phần nào Ở phía server, yêu cầu để triển khai (deploy) Web Service chỉ là servlet engine, EJB container hoặc NET runtime Khi Web Service đã được triển khai thì phía client có thể tiêu thụ các dịch vụ mà không cần đòi hỏi phải cài đặt bất cứ một thành phần nào. Trong khi đó với các công nghệ như DCOM hay RMI, phía client phải cài đặt client stub trước khi có thể truy cập dịch vụ.
Giao diện của Web Service được xuất bản thông qua tài liệu WSDL Tài liệu WSDL định nghĩa cấu trúc thông điệp trao đổi và cấu trúc dữ liệu sử dụng trong thông điệp đó Để triệu gọi dịch vụ, client chỉ cần biết cấu trúc và nội dung của thông điệp yêu cầu và đáp ứng của Web service.
• Truy cập thông qua Web
Web được xuất bản, xác định và triệu gọi thông qua Web. Web service sử dụng giao thức chuẩn của web Mô tả dịch vụ được xuất bản bằng cách sử dụng WSDL, các dịch vụ được xác định với sự giúp đỡ của UDDI registry và triệu gọi thông qua SOAP Tất cả những giao thức này đều dựa trên web.
• Độc lập về Ngôn ngữ, Nền tảng, Giao thức
Web service có cơ sở là tiêu chuẩn mở XML Một Client được viết bằng bất cứ ngôn ngữ cũng nào có thể truy cập một trang web service được viết bằng bất cứ ngôn ngữ nào khác. Web service độc lập nền tảng, client và web service có thể chạy trên hai nền tảng độc lập khác nhau.
Những chuẩn này là XML, REST, SOAP, WSDL và UDDI.
• Web service cho phép client và server tương tác được với nhau mặc dù trong những môi trường khác nhau.
• Web service thì có dạng mở và dựa vào các tiêu chuẩn. XML và HTTP là nền tảng kỹ thuật cho web service Phần lớn kỹ thuật của web service được xây dựng là những dự án nguồn mở Bởi vậy, chúng độc lập và vận hành được với nhau.
• Web service thì rất linh động: Vì với UDDI và WSDL, thì việc mô tả và phát triển web service có thể được tự động hóa.
• Web service được xây dựng trên nền tảng những công nghệ đã được chấp nhận
• Web service có dạng mô đun.
• Web service có thể công bố (publish) và gọi thực hiện qua mạng.
Ngày nay Web services được sử dụng rất nhiều trong những lĩnh vực khác nhau của cuộc sống như:
- Tìm kiếm các thông tin về các khách sạn ở các thành phố hoặc các trung tâm để liên hệ đặt phòng theo yêu cầu của khách hàng.
- Dịch vụ chọn lọc và phân loại tin tức: Là những hệ thống thư viện kết nối đến các web portal để tìm kiếm các thông tin từ các nhà xuất bản có chứa những từ khóa muốn tìm.
- Dịch vụ hiển thị danh sách đĩa nhạc dành cho các công ty thu thanh.
- Ứng dụng đại lý du lịch có nhiều giá vé đi du lịch khác nhau do có chọn lựa phục vụ của nhiều hãng hàng không.
- Bảng tính toán chính sách bảo hiểm dùng công nghệ Excel/COM với giao diện web.
- Thông tin thương mại bao gồm nhiều nội dung, nhiều mục tin như: Dự báo thời tiết, thông tin sức khoẻ, lịch bay, tỷ giá cổ phiếu
Ưu nhược điểm của Web service
Cho phép chương trình được viết bằng các ngôn ngữ khác nhau trên các nền tảng khác nhau giao tiếp được với nhau dựa trên một nền tảng tiêu chuẩn
• Đơn giản (chỉ dùng URL)
Làm việc với các giao thức chuẩn Web như XML, HTTP và TCP/IP.
Sự an toàn của máy chủ cơ sở dữ liệu luôn được bảo mật một cách chắc chắn.
Web Service làm giảm giá thành cho việc tích hợp các hệ thống khác nhau.
• Phụ thuộc vào tốc độ đường truyền Internet.
Web Service thiếu cơ chế khôi phục đủ tin cậy để đảm bảo giao dịch được khôi phục lại trạng thái ban đầu trong trường hợp xảy ra sự cố.
Số lượng các ứng dụng cộng tác cùng hoạt động sẽ ảnh hưởng tới hiệu suất tối ưu của Web Service.
Tải trọng: ứng dụng Web Service là các ứng dụng sử dụng rất nhiều thông điệp Khả năng bùng nổ số lượng giao dịch trao đổi sẽ làm hệ thống máy chủ ứng dụng và kiến trúc hạ tầng hệ thống thông tin của doanh nghiệp trở nên ngưng trệ.
Vì Web Service đòi hỏi kết nối thông qua khá nhiều máy chủ trung gian cho nên băng thông/tốc độ của hạ tầng mạng và các yếu tố liên quan tới hệ thống rõ ràng có vai trò quan trọng góp phần cải thiện hiệu năng của toàn bộ các ứng dụng WS
Mô hình Web service
Hình1.1' Mô Hình Web Service
Nhà cung cấp đăng ký Web Service với UDDI.
Người sử dụng tìm kiếm dịch vụ trên UDDI qua một URL thích hợp.
UDDI trả lại một bản mô tả WSDL cho nhà cung cấp.Người sử dụng triệu gọi dịch vụ bằng một cuộc gọi SOAP tới nhà cung cấp Nhà cung cấp trả lại kết quả của cuộc gọi SOAP cho người sử dụng
Các thành phần chính của Web service
Hình 1.2 Các thành phần chính của webservice
XML được sử dụng để định dạng dữ liệu, SOAP được sử dụng trao đổi dữ liệu, WSDL được sử dụng để mô tả dịch vụ hiện có và UDDI được sử dụng để liệt kê các Web Service hiện có.
5.1 Giao thức giao vận HTTP
Tầng giao vận liên quan tới cơ chế sử dụng để chuyển yêu cầu dịch vụ và thông tin phản hồi từ phía nhà cung cấp dịch vụ tới người sử dụng dịch vụ Có rất nhiều tiêu chuẩn sử dụng xung quanh Web Service, nhưng phổ biến nhất vẫn là giao thức HTTP. Ưu điểm
HTTP là một giao thức phổ biến rộng rãi.
Giao thức HTTP hoàn toàn mở và khai triển trên rất nhiều loại hệ thống.
Hầu hết mọi tổ chức đều chấp nhận cho phép trao đổi thông tin dựa trên giao thức HTTP vượt qua tường lửa bảo vệ.
HTTP là một giao thức đơn giản và không có tính trạng thái, và không được thiết kế đặc biệt cho mục đích vận chuyển dữ liệu của các ứng dụng.
5.2 Giao thức truyền thông SOAP
SOAP là giao thức truyền thông giữa các ứng dụng.
SOAP được thiết kế để liên lạc qua Internet và làm việc qua tường lửa.
SOAP độc lập nền tảng, độc lập ngôn ngữ.
SOAP dựa trên XML, đơn giản và dễ mở rộng.
SOAP có những đặc trưng sau :
- SOAP được thiết kế đơn giản và dễ mở rộng.
- Tất cả các message 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ó garbage collection phân tán, và cũ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 là giao thức mà định nghĩa cái cách để chuyển một XML message từ A đến
B dựa trên giao thức chuẩn web HTTP (hoạt động trên cổng 80) qua giao thức Internet TCP/IP.
- 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.
Tại sao phải có SOAP:
Phát triển các ứng dụng cho phép các chương trình trao đổi qua Internet.
Các ứng dụng liên lạc với nhau bằng cách sử dụng các cuộc gọi thủ tục ở xa giữa các đối tượng như DCOM,CORBA SOAP cung cấp cách để liên lạc giữa các ứng dụng chạy trên các hệ điều hành khác nhau, với các công nghệ khác nhau và ngôn ngữ khác nhau.
5.2.3 Cấu trúc một message theo dạng SOAP Cấu trúc một message theo dạngo
SOAP được mô tả như hình dưới đây:
Hình 1.4 cấu trúc message soap
Message theo dạng SOAP là một văn bản XML bình thường gồm các phần tử sau: - Phần tử gốc - envelop: Phần tử bao trùm nội dung message, 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. Những đầu mục còn có thể mang những dữ liệu chứng thực, những chữ ký số hóa, và thông tin mã hóa, hoặc những cài đặt cho giao tá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à phản hồi.
- Phần tử phát sinh lỗi (Fault) cung cấp thông tin lỗi xảy ra trong quá trình xử lý thông điệp.
Trong trường hợp đơn giản nhất, phần thân của SOAP message gồm có:
Một tham khảo tới một thể hiện service.
Một hoặc nhiều tham số mang các giá trị và mang các tham chiếu Có 3 kiểu thông báo:
Request messages: Với các tham số gọi thực thi một service
Response messages: Với các tham số trả về, được sử dụng khi đáp ứng yêu cầu.
Fault messages báo tình trạng lỗi.
5.2.4 Định dạng thông điệp SOAP
Một thông điệp SOAP là một văn bản XML được mô tả bởi một thành phần Envelope, chứa một thành phần Body bắt buộc và một thành phần Header không bắt buộc.
SOAP hỗ trợ 2 kiểu truyền thông khác nhau :
5.2.6 Quá trình xử lý thông điệp SOAP
Một thông điệp SOAP giúp cho khách hàng và nơi cung cấp Web Service hoàn thành những tác vụ mà không lo lắng đến sự phức tạp của việc xử lý thông điệp SOAP.
Một processor của khách hàng chuyển các lời yêu cầu phương thức vào trong một thông điệp SOAP Thông điệp này được truyền qua tầng giao vận (HTTP và SMTP) tới processor của nơi cung cấp, tại đây thông điệp sẽ được phân tích thành lời yêu cầu phương thức Sau đó nơi cung cấp sẽ thực hiện những bước logic cần thiết và trả lại kết quả cho processor của nó,processor này sẽ phân tích thông tin trong thông điệp hồi đáp.Thông điệp này được truyền qua tầng giao vận tới khách hàng yêu cầu Processor của nó phân tích thông điệp hồi đáp thành kết quả dưới dạng một đối tượng.
Hình 1.5 Quá trình xử lý thông điệp Soap
5.3 RESTful Web Service a Mô hình kiến trúc
Hình 1.6 Mô hình kiến trúc Web Service b o Đặc tả kiến trúc
Rest API là một ứng dụng được dùng để chuyển đổi cấu trúc của dữ liệu có những phương thức giúp kết nối với các thư viện và ứng dụng khác nhau Rest Api thường không được xem là công nghệ, mà nó là giải pháp giúp tạo ra những ứng dụng web services chuyên dụng để thay thế cho nhiều kiểu khác như: SOAP, WSDL,
API là từ viết tắt của cụm từ Application Programming Interface, đây là tập hợp những quy tắc và cơ chế mà theo đó thì: Một ứng dụng hoặc một thành phần nào đó sẽ tương tác với một ứng dụng hoặc một số thành phần khác API có thể sẽ được trả về dữ liệu mà người dùng cần cho chính ứng dụng của bạn với những kiểu dữ liệu được dùng phổ biến như JSON hoặc XML.V Rest là từ viết tắt của Representational State Transfer: Nó là một trong những dạng chuyển đổi cấu trúc, với kiểu kiến trúc thường được viết API Rest thường sử dụng dụng phương thức HTTP đơn giản để có thể tạo ra giao tiếp giữa các máy.Bởi vì thế, thay vì phải sử dụng một URL cho việc xử lý một số thông tin của người dùng thì Rest sẽ yêu cầu HTTP như: GET, POST, DELETE, đến với bất kỳ một URL để được xử lý dữ liệu.V
5.4 Tầng mô tả dịch vụ XML, WSDL
5.4.1 XML (eXtensible Markup Language) a Khái niệm XML:
XML là nền tảng của Web Service và được dùng để trao đổi dữ liệu.
XML là một chuẩn nổi tiếng cho việc tổ chức, lưu trữ và trao đổi dữ liệu.
XML được hỗ trợ bởi hầu hết các ngôn ngữ lập trình hiện đại (DotNet, Java
XML được sử dụng rộng rãi trong việc trao đổi dữ liệu trên môi trường Interne
XML dùng các thẻ để tổ chức và lưu trữ dữ liệu b Đặc điểm của XML:
XML là tự do và mở rộng được.
XML rất quan trọng đối với sự phát triển của web trong tương lai.
Tầm quan trọng của XML đối với tương lai của web cũng giống như tầm quan trọng của HTML đối với nền tảng của web, và XML sẽ là công cụ xử lý và truyền dữ liệu phổ biến nhất. XML là công cụ dùng được trên mọi nền phần cứng, độc lập với phần cứng và phần mềm để truyền (trao đổi, chia sẻ) thông tin c Cấu trúc chung của XML
Chúng ta có thể sử dụng trình soạn thảo bất kỳ để soạn thảo tài liệu XML, nhưng phải tuân thủ theo nguyên tắc sau:
Hình 1.7 Cấu trúc chung XML
Theo định dạng trên, chúng ta thấy tuy tài liệu XML rất đơn giản nhưng quy định cũng rất chặt chẽ, tức là các tài liệu XML đều xuất phát từ nút gốc (root), và mỗi phần tử phải có thẻ mở và thẻ đóng “ " d XML được sử dụng như thế nào?
XML thiết kế để lưu giữ, mang, và trao đổi dữ liệu nhưng không hiển thị dữ liệu.
XML dùng cho trao đổi dữ liệu
Với XML có thể trao đổi dữ liệu giữa các hệ thống không tương thích. e Ưu điểm của XML Đơn giản, ổn định, linh hoạt và có tính mở rộng cao XML được chấp nhận rộng rãi Rất nhiều công cụ và tiện ích sẵn có đáp ứng nhu cầu phân tích và chuyển đổi dữ liệu XML hoặc hiển thị chúng. f Nhược điểm của XML
Chuẩn hoá: Trong khi đã tồn tại các định nghĩa tên thẻ của ngành, bạn vẫn có thể định nghĩa các thẻ không phải là tiêu chuẩn.
5.4.2 WSDL(Web Service Description Language) a Định nghĩa:
WSDL định nghĩa cách mô tả Web Service theo cú pháp tổng quát XML, bao gồm các thông tin:
Giao thức và kiểu mã hóa.
Loại thông tin: những thao tác, những tham số,
XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG
Bài toán ứng dụng
Làm thế nào chúng ta có thể đưa ra dự báo thời tiết chính xác và đáng tin cậy, không chỉ để phục vụ nhu cầu hàng ngày mà còn hỗ trợ trong quyết định chiến lược và lập kế hoạch cho nhiều lĩnh vực khác nhau? Bài toán này đặt ra thách thức lớn mà chúng ta đang nỗ lực giải quyết thông qua việc xây dựng một web service dự báo thời tiết độc đáo và hiệu quả
Chính Xác và Chi Tiết:
Chúng tôi cam kết mang lại thông tin dự báo thời tiết chính xác và chi tiết, cung cấp những dữ liệu không chỉ giúp người dùng chuẩn bị cho ngày của họ mà còn hỗ trợ các ngành công nghiệp như nông nghiệp, du lịch và giao thông vận tải. Đa Dạng Tính Năng:
Web service của chúng tôi không chỉ giới hạn ở việc cung cấp nhiệt độ và dự báo mưa Chúng tôi đi sâu vào chi tiết với thông tin về độ ẩm, tốc độ gió, áp suất không khí và điều kiện thời tiết khác như mây, sương mù, hay tuyết Điều này giúp người dùng và các doanh nghiệp có cái nhìn tổng thể và chính xác về môi trường xung quanh.
Hỗ Trợ Tính Năng Ngôn Ngữ và Đơn Vị:
Chúng tôi hiểu rằng người sử dụng của chúng tôi có thể đến từ nhiều quốc gia và khu vực khác nhau Do đó, web service của chúng tôi hỗ trợ nhiều ngôn ngữ và đơn vị đo khác nhau để đảm bảo mọi người dùng đều có trải nghiệm thuận tiện và chính xác.
Tích Hợp Dễ Dàng và Linh Hoạt:
Dịch vụ của chúng tôi được thiết kế để dễ tích hợp vào nhiều ứng dụng và trang web khác nhau thông qua các giao thức tiêu chuẩn như REST hoặc GraphQL Điều này giúp đơn giản hóa quá trình tích hợp và tạo ra trải nghiệm mượt mà cho người sử dụng.
Chúng tôi chấp nhận trách nhiệm về bảo mật thông tin người dùng Dữ liệu truyền tải qua web service của chúng tôi được mã hóa đảm bảo tính an toàn và riêng tư của thông tin cá nhân.
Hỗ Trợ Tìm Kiếm và Dự Báo Dài Hạn:
Ngoài việc cung cấp dự báo thời tiết hiện tại, chúng tôi cũng cung cấp khả năng tìm kiếm địa điểm linh hoạt và dự báo dài hạn để người dùng có thể lập kế hoạch cho những sự kiện tương lai.
Với sự chuyên nghiệp và cam kết của chúng tôi, web service dự báo thời tiết sẽ trở thành một nguồn thông tin đáng tin cậy và không thể thiếu cho cộng đồng người dùng đa dạng và đòi hỏi chất lượng cao."
1.2 Các chức năng của hệ thốngo
Yêu cầu của hệ thốngV
Yêu cầu của hệ thống web service dự báo thời tiết phải đáp ứng nhiều khía cạnh để đảm bảo tính chính xác, hiệu quả và linh hoạt Dưới đây là một số yêu cầu cơ bản mà một hệ thống như vậy có thể phải đối mặt:
- Yêu cầu: Hệ thống cần cung cấp thông tin thời tiết chính xác và chi tiết.
- Giải Pháp: Sử dụng nguồn dữ liệu đáng tin cậy và đội ngũ chuyên gia thời tiết để đảm bảo thông tin được cập nhật đúng đắn.
- Yêu cầu: Cung cấp thông tin thời tiết gần như thời gian thực.
- Giải Pháp: Tối ưu hóa quy trình cập nhật dữ liệu và sử dụng kỹ thuật streaming để đảm bảo thông tin được truyền đến người dùng một cách nhanh chóng. Đa Dạng Tính Năng:
- Yêu cầu: Hỗ trợ nhiều tính năng như dự báo theo giờ, dự báo hằng ngày, chất lượng không khí, và các điều kiện khác nhau.
- Giải Pháp: Xây dựng một hệ thống linh hoạt và mở rộng để tích hợp các tính năng mới theo yêu cầu. Tìm Kiếm Địa Điểm:
- Yêu cầu: Cung cấp khả năng tìm kiếm thông tin thời tiết cho nhiều địa điểm khác nhau.
- Giải Pháp: Sử dụng hệ thống tìm kiếm hiệu quả và hỗ trợ nhiều phương tiện nhập liệu như tên thành phố, mã quốc gia, tọa độ địa lý.
Tính Mở Rộng và Hiệu Suất:
- Yêu cầu: Hệ thống cần có khả năng mở rộng dễ dàng để xử lý tăng trưởng người dùng và duy trì hiệu suất cao.
- Giải Pháp: Sử dụng kiến trúc mô-đun và công nghệ mở rộng, cùng với các giải pháp đám mây khi cần thiết.
- Yêu cầu: Có khả năng tích hợp với các ứng dụng khác, trang web, và dịch vụ bản đồ.
- Giải Pháp: Cung cấp API mạnh mẽ và tài liệu chi tiết để hỗ trợ tích hợp.
Bảo Mật Thông Tin Người Dùng:
- Yêu cầu: Bảo vệ thông tin cá nhân và lịch sử tìm kiếm của người dùng.
- Giải Pháp: Sử dụng các biện pháp bảo mật như mã hóa dữ liệu và quản lý xác thực.
Thông Báo và Cảnh Báo:
- Yêu cầu: Cung cấp cảnh báo và thông báo về điều kiện thời tiết đặc biệt.
- Giải Pháp: Tích hợp hệ thống thông báo và cảnh báo để cảnh báo người dùng về điều kiện thời tiết nguy hiểm.
Lấy Dự Báo Hiện Tại:
- Cho phép người dùng xem thông tin thời tiết hiện tại của một địa điểm cụ thể, bao gồm nhiệt độ, độ ẩm, tốc độ gió, và điều kiện thời tiết.
- Cung cấp dự báo thời tiết theo giờ trong một khoảng thời gian nhất định, giúp người dùng dự đoán thay đổi thời tiết trong ngày.
- Hiển thị dự báo thời tiết hằng ngày cho một khoảng thời gian tương lai, giúp người dùng lập kế hoạch cho các sự kiện dài hạn.
- Cung cấp khả năng tìm kiếm thông tin thời tiết cho các địa điểm khác nhau, sử dụng tên thành phố, mã quốc gia, hoặc tọa độ địa lý.
- Cập nhật thông tin thời tiết thực tế liên tục để đảm bảo tính chính xác và đáp ứng nhanh chóng với biến động thời tiết.
- Bao gồm các thông tin về môi trường như chất lượng không khí, tia UV, và các yếu tố khác ảnh hưởng đến sức khỏe.
Thông Báo và Cảnh Báo:
- Cung cấp thông báo và cảnh báo về điều kiện thời tiết đặc biệt như cơn bão, lốc xoáy, hoặc mưa to.
Phân tích hệ thống
2.1 Các actor của hệ thống
Người dùng: người sử dụng hệ thốngV
2.2 Các Usecase của hệ thống Đối với actor người dùng
Xem Thông Tin Thời Tiết Hiện Tại:
- Mô Tả: Người dùng có khả năng xem thông tin thời tiết hiện tại của địa điểm họ quan tâm, bao gồm nhiệt độ, độ ẩm, tốc độ gió, và điều kiện thời tiết.
Dự Báo Thời Tiết Theo Giờ và Hằng Ngày:
- Mô Tả: Cung cấp dự báo thời tiết cho các khoảng thời gian ngắn (theo giờ) và dài hạn (hằng ngày), giúp người dùng lên lịch và chuẩn bị cho các sự kiện. Tìm Kiếm Địa Điểm:
- Mô Tả: Người dùng có khả năng tìm kiếm thông tin thời tiết cho các địa điểm khác nhau, sử dụng tên thành phố, mã quốc gia, hoặc tọa độ địa lý.
Dự Báo Dài Hạn và Tuần Tiếp Theo:
- Mô Tả: Cung cấp dự báo thời tiết cho các ngày và tuần tiếp theo, giúp người dùng lên kế hoạch cho những sự kiện dài hạn như kỳ nghỉ hoặc sự kiện quan trọng.
Thông Tin Chất Lượng Không Khí:
- Mô Tả: Hiển thị thông tin về chất lượng không khí, tia
UV, và các yếu tố khác có thể ảnh hưởng đến sức khỏe.
Cảnh Báo và Thông Báo:
- Mô Tả: Người dùng có thể nhận được thông báo và cảnh báo về các điều kiện thời tiết đặc biệt như cơn bão, lốc xoáy, mưa lớn, giúp họ đưa ra quyết định an toàn. Đo Chất Lượng Không Khí:
- Mô Tả: Cung cấp khả năng đo lường chất lượng không khí tại địa điểm người dùng và hiển thị thông tin chi tiết.
2.3 Biểu đồ Usecase a, Hệ thống Người dùng
(Gợi y cho Năng, Đợi năng vẽ vào rồi sửa hình )
|V Hệ Thống Dự Báo Thời Tiết|
| 1 Xem Thông Tin Hiện Tại |
| 7 Định vị vị trí hiện tại báo thời tiếtV
| -| b Chức năng xem thông tin thời tiết hiện tại
Người Dùng muốn xem thông tin thời tiết hiện tại của một địa điểm cụ thể.
Hệ Thống Dự Báo Thời TiếtV
Người Dùng đã mở ứng dụng hoặc trang web dự báo thời tiết.
Người Dùng mở ứng dụng hoặc trang web dự báo thời tiết.
Hệ Thống hiển thị giao diện chính của ứng dụng/trang web.
Người Dùng chọn tùy chọn "Xem Thông Tin Thời Tiết Hiện Tại."
Hệ Thống hiển thị giao diện hoặc bản tóm tắt về thông tin thời tiết hiện tại, bao gồm nhiệt độ, độ ẩm, tốc độ gió, và điều kiện thời tiết.
Người Dùng có thể xem chi tiết hơn bằng cách nhấp vào các phần thông tin cụ thể hoặc lựa chọn các đơn vị đo khác nhau nếu cần thiết.
Người Dùng đã xem được thông tin thời tiết hiện tại của địa điểm mong muốn.
Nếu Hệ Thống không thể truy xuất được dữ liệu thời tiết, thông báo lỗi sẽ được hiển thị cho Người Dùng. Mức Độ Ưu Tiên:
Cao: Chức năng quan trọng để Người Dùng có cái nhìn tổng quan về điều kiện thời tiết ngay lúc đó.
(Gợi y cho Năng, Đợi năng vẽ vào rồi sửa hình )
| Hệ Thống Dự Báo Thời Tiết|
VVV[Xem Thông Tin Thời Tiết Hiện Tại] c Chức năng Dự Báo Theo GiờV
Người Dùng muốn xem dự báo thời tiết theo giờ cho một địa điểm cụ thể.
Hệ Thống Dự Báo Thời Tiết (Secondary Actor)
Người Dùng đã mở ứng dụng hoặc trang web dự báo thời tiết.
Người Dùng mở ứng dụng hoặc trang web dự báo thời tiết.
Hệ Thống hiển thị giao diện chính của ứng dụng/trang web.
Người Dùng chọn tùy chọn "Dự Báo Theo Giờ."
Hệ Thống hiển thị dự báo thời tiết theo giờ trong khoảng thời gian ngắn tới, ví dụ như 12 hoặc 24 giờ tiếp theo. Mỗi khoảng thời gian hiển thị thông tin như nhiệt độ, điều kiện thời tiết, và có thể tốc độ gió.
Người Dùng có thể cuộn qua các giờ khác nhau để xem dự báo chi tiết hơn hoặc chọn các ngày khác nếu có.
Người Dùng đã xem được dự báo thời tiết theo giờ cho địa điểm mong muốn.
Nếu Hệ Thống không thể truy xuất được dữ liệu thời tiết theo giờ, thông báo lỗi sẽ được hiển thị cho Người Dùng. Mức Độ Ưu Tiên:
Trung bình: Cung cấp thông tin chi tiết về dự báo thời tiết trong thời gian ngắn.
| Hệ Thống Dự Báo Thời Tiết|
VVVVVVV[Dự Báo Theo Giờ] d Chức năng dự báo hằng ngày
Người Dùng muốn xem dự báo thời tiết hằng ngày cho một địa điểm cụ thể.
Hệ Thống Dự Báo Thời Tiết (Secondary Actor)
Người Dùng đã mở ứng dụng hoặc trang web dự báo thời tiết.
Người Dùng mở ứng dụng hoặc trang web dự báo thời tiết.
Hệ Thống hiển thị giao diện chính của ứng dụng/trang web.
Người Dùng chọn tùy chọn "Dự Báo Hằng Ngày."
Hệ Thống hiển thị dự báo thời tiết hằng ngày cho một khoảng thời gian nhất định, chẳng hạn 7 ngày tiếp theo. Mỗi ngày hiển thị thông tin như nhiệt độ cao nhất và thấp nhất, điều kiện thời tiết dự kiến, và có thể tốc độ gió.
Người Dùng có thể cuộn qua các ngày khác nhau để xem dự báo chi tiết hơn hoặc chọn các ngày khác nếu cần.
Người Dùng đã xem được dự báo thời tiết hằng ngày cho địa điểm mong muốn.
Nếu Hệ Thống không thể truy xuất được dữ liệu thời tiết hằng ngày, thông báo lỗi sẽ được hiển thị cho Người Dùng.
Trung bình: Cung cấp thông tin chi tiết về dự báo thời tiết trong thời gian dài hạn.
| Hệ Thống Dự Báo Thời Tiết|
VVVVVVV[Dự Báo Hằng Ngày] e Chức năng tìm kiếm địa điểm để xem thời tiết'
Người Dùng muốn tìm kiếm và xem thông tin thời tiết cho một địa điểm cụ thể.
Hệ Thống Dự Báo Thời Tiết (Secondary Actor)
Người Dùng đã mở ứng dụng hoặc trang web dự báo thời tiết.
Người Dùng mở ứng dụng hoặc trang web dự báo thời tiết.
Hệ Thống hiển thị giao diện chính của ứng dụng/trang web.
Người Dùng chọn tùy chọn "Tìm Kiếm Địa Điểm" hoặc tương tự.
Hệ Thống hiển thị hộp thoại hoặc trang tìm kiếm.Người Dùng nhập tên thành phố, địa chỉ, hoặc tọa độ địa lý của địa điểm mà họ muốn xem thông tin thời tiết.
Hệ Thống thực hiện tìm kiếm và hiển thị kết quả tìm kiếm phù hợp nhất.
Người Dùng có thể chọn một trong các kết quả hoặc chọn địa điểm khác từ danh sách.
Hệ Thống hiển thị thông tin thời tiết cho địa điểm được chọn.
Người Dùng đã xem được thông tin thời tiết cho địa điểm mà họ đã tìm kiếm.
Nếu không có kết quả tìm kiếm, hoặc có lỗi trong quá trình tìm kiếm, hệ thống sẽ hiển thị thông báo lỗi cho Người Dùng.
Cao: Chức năng quan trọng để Người Dùng có thể xem thông tin thời tiết cho địa điểm mong muốn.
| Hệ Thống Dự Báo Thời Tiết|
[Tìm Kiếm Địa Điểm để Xem Thời Tiết] f Chức năng dự báo dài hạn''
Người Dùng muốn xem dự báo thời tiết cho một khoảng thời gian dài hạn, ví dụ như 14 ngày tiếp theo.
Hệ Thống Dự Báo Thời Tiết (Secondary Actor)
Người Dùng đã mở ứng dụng hoặc trang web dự báo thời tiết.
Người Dùng mở ứng dụng hoặc trang web dự báo thời tiết.
Hệ Thống hiển thị giao diện chính của ứng dụng/trang web.
Người Dùng chọn tùy chọn "Dự Báo Dài Hạn" hoặc tương tự.
Hệ Thống hiển thị dự báo thời tiết cho một khoảng thời gian dài hạn, ví dụ như 14 ngày tiếp theo.
Mỗi ngày trong dự báo hiển thị thông tin như nhiệt độ cao nhất và thấp nhất, điều kiện thời tiết dự kiến, và có thể tốc độ gió.
Người Dùng có thể cuộn qua các ngày khác nhau để xem dự báo chi tiết hơn hoặc chọn các ngày khác nếu cần.
Người Dùng đã xem được dự báo thời tiết dài hạn cho địa điểm mong muốn.
Nếu Hệ Thống không thể truy xuất được dữ liệu dự báo thời tiết dài hạn, thông báo lỗi sẽ được hiển thị cho Người Dùng.
Trung bình: Cung cấp thông tin chi tiết về dự báo thời tiết trong thời gian dài hạn.
| Hệ Thống Dự Báo Thời Tiết|
VVVVVVVVVV[Dự Báo Dài Hạn] g Chức năng thông tin không khí'
Người Dùng muốn xem thông tin về chất lượng không khí tại một địa điểm cụ thể.
Hệ Thống Dự Báo Thời Tiết (Secondary Actor)
Người Dùng đã mở ứng dụng hoặc trang web dự báo thời tiết.
Người Dùng mở ứng dụng hoặc trang web dự báo thời tiết.
Hệ Thống hiển thị giao diện chính của ứng dụng/trang web.
Người Dùng chọn tùy chọn "Thông Tin Chất Lượng Không Khí" hoặc tương tự.
Hệ Thống hiển thị thông tin về chất lượng không khí tại địa điểm đó, bao gồm các chỉ số như PM2.5, PM10, CO, O3, NO2, SO2, và mức độ ô nhiễm không khí.
Người Dùng có thể xem giải thích về mỗi chỉ số và cách nó ảnh hưởng đến sức khỏe.
Nếu có sẵn, hệ thống cũng có thể cung cấp lời khuyên hoặc cảnh báo nếu chất lượng không khí đang ở mức độ nguy hại.
Người Dùng đã xem được thông tin chất lượng không khí cho địa điểm mong muốn.
Nếu Hệ Thống không thể truy xuất được dữ liệu chất lượng không khí, hoặc không có dữ liệu cho địa điểm được chọn, thông báo lỗi sẽ được hiển thị cho Người Dùng.
Cao: Cung cấp thông tin quan trọng về chất lượng không khí để giúp Người Dùng quyết định về các hoạt động ngoại ô và bảo vệ sức khỏe.
| Hệ Thống Dự Báo Thời Tiết|
VVV[Thông Tin Chất Lượng Không Khí] h Chức năng định vị vị trí hiện tại báo thời tiết'
Người Dùng muốn sử dụng định vị GPS hoặc vị trí hiện tại của thiết bị để xem thông tin thời tiết tại địa điểm đó.
Hệ Thống Dự Báo Thời Tiết (Secondary Actor)
Người Dùng đã mở ứng dụng hoặc trang web dự báo thời tiết.
Người Dùng mở ứng dụng hoặc trang web dự báo thời tiết.
Hệ Thống hiển thị giao diện chính của ứng dụng/trang web.
Người Dùng chọn tùy chọn "Định Vị Vị Trí Hiện Tại" hoặc tương tự.
Hệ Thống sử dụng GPS hoặc dịch vụ định vị của thiết bị để xác định vị trí hiện tại của Người Dùng.
Hệ Thống hiển thị thông tin thời tiết cho vị trí hiện tại, bao gồm nhiệt độ, điều kiện thời tiết, và các thông tin khác nếu có.
Người Dùng đã xem được thông tin thời tiết cho vị trí hiện tại của họ.
Nếu Hệ Thống không thể xác định được vị trí hiện tại hoặc không thể truy xuất dữ liệu thời tiết, thông báo lỗi sẽ được hiển thị cho Người Dùng.
Cao: Cung cấp thông tin thời tiết nhanh chóng và tự động cho vị trí hiện tại của Người Dùng.
| Hệ Thống Dự Báo Thời Tiết|
[Định Vị Vị Trí Hiện Tại để Xem Thời Tiết]
2.4 Biểu đồ tuần tựo a ) Chức năng xem thông tin thời tiết hiện tại
Người DùngV V V V Hệ Thống Dự Báo Thời Tiết
VVV| V Chọn "Xem Hiện Tại"V |
VVV| V Hiển Thị Giao Diện V |
VVV| V Gửi Yêu Cầu Thông Tin|
VVV| V Xử Lý Yêu CầuV V V V |
VVV| V Trả Kết Quả Hiện Tại|
VVV| V Hiển Thị Thông Tin V |
Người Dùng chọn tùy chọn "Xem Hiện Tại" trên giao diện ứng dụng hoặc trang web dự báo thời tiết.
Hệ Thống hiển thị giao diện cho thông tin thời tiết hiện tại.
Người Dùng gửi yêu cầu thông tin thời tiết hiện tại.
Hệ Thống xử lý yêu cầu và trả kết quả về thông tin thời tiết hiện tại.
Người Dùng xem thông tin thời tiết hiện tại được hiển thị. b )Chức năng định tìm kiếm vị trí để xem thông tin thời tiết'
Người DùngV V V V Hệ Thống Dự Báo Thời Tiết
VVV|V V Hiển thị Giao Diện V |
VVV|V V Nhập Tên Địa ĐiểmV V |
VVV|V V Gửi Yêu Cầu Tìm Kiếm|
VVV|V V Xử Lý Yêu Cầu Tìm Kiếm|
VVV|V V Trả Kết Quả Tìm Kiếm|
VVV|V V Hiển Thị Thông Tin V |
Người Dùng chọn tùy chọn "Tìm Kiếm" trên giao diện ứng dụng hoặc trang web dự báo thời tiết.
Hệ Thống hiển thị giao diện tìm kiếm.
Người Dùng nhập tên địa điểm cần tìm kiếm.
Người Dùng gửi yêu cầu tìm kiếm.
Hệ Thống xử lý yêu cầu tìm kiếm và trả kết quả. Người Dùng chọn địa điểm từ kết quả tìm kiếm.
Hệ Thống hiển thị thông tin thời tiết cho địa điểm được chọn. c ) Chức năng Dự Báo Theo Giờ
Người DùngV V V V Hệ Thống Dự Báo Thời Tiết
VVV|V Chọn "Dự Báo Theo Giờ"|
VVV|V Hiển Thị Giao DiệnV V |
VVV| Nhập Tên Địa Điểm và V |
VVV| Gửi Yêu Cầu Dự Báo Giờ|
VVV| V Xử Lý Yêu Cầu Dự Báo |
VVV|V Trả Kết Quả Dự BáoV V |
VVV|V Hiển Thị Dự Báo TheoV |
Người Dùng chọn tùy chọn "Dự Báo Theo Giờ" trên giao diện ứng dụng hoặc trang web dự báo thời tiết.
Hệ Thống hiển thị giao diện cho dự báo thời tiết theo giờ.
Người Dùng nhập tên địa điểm và chọn thời gian cụ thể.Người Dùng gửi yêu cầu dự báo thời tiết theo giờ.
Hệ Thống xử lý yêu cầu và trả kết quả dự báo thời tiết theo giờ.
Người Dùng xem thông tin dự báo thời tiết được hiển thị theo từng giờ. d) Chức năng dự báo hằng ngày
Người DùngV V V V Hệ Thống Dự Báo Thời Tiết
VVV|V Chọn "Dự Báo Hằng Ngày"|
VVV|V Hiển Thị Giao DiệnV V |
VVV| Nhập Tên Địa Điểm và V |
VVV| Gửi Yêu Cầu Dự Báo Hằng|
VVV| V Xử Lý Yêu Cầu Dự Báo |
VVV|V Trả Kết Quả Dự BáoV V |
VVV|V Hiển Thị Dự Báo HằngV |
Người Dùng chọn tùy chọn "Dự Báo Hằng Ngày" trên giao diện ứng dụng hoặc trang web dự báo thời tiết.
Hệ Thống hiển thị giao diện cho dự báo thời tiết hằng ngày.
Người Dùng nhập tên địa điểm và chọn ngày cụ thể. Người Dùng gửi yêu cầu dự báo thời tiết hằng ngày.
Hệ Thống xử lý yêu cầu và trả kết quả dự báo thời tiết hằng ngày.
Người Dùng xem thông tin dự báo thời tiết được hiển thị cho ngày đã chọn. e) Chức năng dự báo dài hạn
Người DùngV V V V Hệ Thống Dự Báo Thời Tiết
VVV|V Chọn "Dự Báo Dài Hạn"V |
VVV|V Hiển Thị Giao DiệnV V |
VVV| Nhập Tên Địa Điểm và V |
VVV| V Chọn Thời Gian Dài Hạn|
VVV| Gửi Yêu Cầu Dự Báo Dài |
VVV| V Xử Lý Yêu Cầu Dự Báo |
VVV|V Trả Kết Quả Dự BáoV V |
VVV|V Hiển Thị Dự Báo Dài V |
Người Dùng chọn tùy chọn "Dự Báo Dài Hạn" trên giao diện ứng dụng hoặc trang web dự báo thời tiết.
Hệ Thống hiển thị giao diện cho dự báo thời tiết dài hạn. Người Dùng nhập tên địa điểm và chọn thời gian dài hạn cụ thể.
Người Dùng gửi yêu cầu dự báo thời tiết dài hạn.
Hệ Thống xử lý yêu cầu và trả kết quả dự báo thời tiết dài hạn.
Người Dùng xem thông tin dự báo thời tiết dài hạn được hiển thị. h) Chức năng thông tin không khí'
Người DùngV V V V Hệ Thống Dự Báo Thời Tiết
VVV|V Chọn "Thông Tin Không Khí"|
VVV|V Hiển Thị Giao DiệnV V |
VVV| Nhập Tên Địa Điểm và V |
VVV| Gửi Yêu Cầu Thông TinV |
VVV| V Xử Lý Yêu Cầu Thông Tin|
VVV|V Trả Kết Quả Thông TinV |
VVV|V Hiển Thị Thông Tin Không|
Người Dùng chọn tùy chọn "Thông Tin Không Khí" trên giao diện ứng dụng hoặc trang web dự báo thời tiết.
Hệ Thống hiển thị giao diện cho thông tin không khí. Người Dùng nhập tên địa điểm và chọn thời gian cụ thể. Người Dùng gửi yêu cầu thông tin không khí.
Hệ Thống xử lý yêu cầu và trả kết quả thông tin không khí.
Người Dùng xem thông tin không khí được hiển thị. g) Chức năng định vị vị trí hiện tại xem thời tiết'
Người DùngV V V V Hệ Thống Dự Báo Thời Tiết
VVV| Chọn "Định Vị Vị Trí" V |
VVV|V Hiển Thị Giao DiệnV V |
VVV|V Định Vị Vị Trí Hiện Tại|
VVV|Gửi Yêu Cầu Thời Tiết Vị Trí|
VVV| V Xử Lý Yêu Cầu Thời Tiết|
VVV|V V V Vị Trí Hiện Tại V V |
VVV| Trả Kết Quả Thời Tiết Vị|
VVV|V Hiển Thị Thời Tiết VịV |
Người Dùng chọn tùy chọn "Định Vị Vị Trí" trên giao diện ứng dụng hoặc trang web dự báo thời tiết.
Hệ Thống hiển thị giao diện cho việc định vị vị trí hiện tại.
Hệ Thống định vị vị trí hiện tại của người dùng.
Hệ Thống gửi yêu cầu thời tiết cho vị trí hiện tại.
Hệ Thống xử lý yêu cầu và trả kết quả thời tiết cho vị trí hiện tại.
Người Dùng xem thông tin thời tiết được hiển thị.
Giới thiệu ngôn ngữ lập trình backend
NestJS là một framework Node.js hiện đại được xây dựng để xây dựng các ứng dụng server-side hiệu quả và có cấu trúc. a, Kiến Trúc Mô-đun:
NestJS áp dụng kiến trúc mô-đun để chia ứng dụng thành các phần nhỏ có trách nhiệm cụ thể Mỗi mô-đun là một phần tử cơ bản, bao gồm controllers, services, và modules Kiến trúc này giúp tạo ra mã nguồn có tổ chức, dễ kiểm soát và dễ mở rộng. b, Dependency Injection (DI):
NestJS sử dụng Dependency Injection để quản lý phụ thuộc giữa các thành phần Điều này giúp giảm độ phức tạp và tạo ra code dễ kiểm soát hơn. c, Decorator và Metadata:
Decorator được sử dụng để thêm metadata vào các thành phần, giúp NestJS hiểu cấu trúc ứng dụng và thực hiện các chức năng cần thiết. d, Middleware:
NestJS hỗ trợ middleware, cho phép thực hiện xử lý trước khi yêu cầu đến tới các điểm cuối (endpoints).
Cung cấp middleware có sẵn và hỗ trợ tùy chỉnh. e, Controllers và Services:
Sử dụng controllers để định nghĩa các điểm cuối và quy tắc định tuyến (routing).
Services là nơi chứa logic xử lý, được sử dụng bởi controllers. f, ORM và Database Integration:
Hỗ trợ tích hợp với nhiều loại cơ sở dữ liệu thông qua các ORM như TypeORM, Sequelize.
Tích hợp dễ dàng với MongoDB, MySQL, PostgreSQL, và nhiều loại cơ sở dữ liệu khác. g, Middleware HTTP:
Sử dụng middleware HTTP như CORS, compression, và session để kiểm soát các khía cạnh liên quan đến giao thức HTTP. h, WebSocket Support:
Hỗ trợ WebSockets để xây dựng ứng dụng thời gian thực và tương tác hai chiều. i, Testing:
Hỗ trợ một loạt các công cụ và phương pháp để kiểm thử, bao gồm Unit Testing và End-to-End Testing. k, Đa Ngôn Ngữ:
Hỗ trợ sử dụng nhiều ngôn ngữ như TypeScript và JavaScript, cho phép lựa chọn ngôn ngữ mà bạn thoải mái. l, Document Generation:
Cung cấp công cụ tạo tài liệu API tự động, giúp tạo ra API có tài liệu đầy đủ và dễ đọc.
Giới thiệu ngôn ngữ lập trình FE
HTML là ngôn ngữ đánh dấu được sử dụng để xây dựng cấu trúc của trang web Nó mô tả các phần tử trên trang và quy định cách chúng tương tác với nhau Dưới đây là một số điểm quan trọng về HTML:
CSS là ngôn ngữ dùng để mô tả cách mà các phần tử HTML sẽ được hiển thị trên màn hình Nó quy định kiểu, bố cục, màu sắc của trang web Dưới đây là một số điểm quan trọng về CSS:
JavaScript là một ngôn ngữ lập trình thông dụng được sử dụng chủ yếu để tạo ra các trang web tương tác và động Dưới đây là một số điểm quan trọng về JavaScript
Giới thiệu cơ sở dữ liệu MongoDB
MongoDB là một hệ quản trị cơ sở dữ liệu NoSQL (Not Only SQL) phổ biến, được thiết kế để lưu trữ và truy xuất dữ liệu dưới dạng tài liệu có cấu trúc linh hoạt Dưới đây là một giới thiệu cơ bản về MongoDB: Đặc Điểm Chính:
- MongoDB thuộc loại cơ sở dữ liệu không SQL, không sử dụng cấu trúc dữ liệu kiểu bảng như trong cơ sở dữ liệu SQL truyền thống Thay vào đó, nó lưu trữ dữ liệu dưới dạng JSON-like tài liệu (BSON - Binary JSON).