intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Báo cáo thực tập Phân tích - Thiết kế hệ thống thông tin: Xây dựng hệ thống đo lường hiệu năng giao thông Signal Performance Measurement

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:28

27
lượt xem
11
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Mục tiêu của đề tài "Xây dựng hệ thống đo lường hiệu năng giao thông Signal Performance Measurement" là xây dựng nền tảng SPM (signal performance mesurement) dựa trên đám mây cho phép các cơ quan quản lý giao thông và các chuyên gia trong ngành giao thông để cải thiện hiệu quả của các nút giao thông trọng điểm, cho phép việc quản lý các giao lộ được tối ưu hóa. Ngoài ra, hệ thống giản hóa việc quản lý giao lộ và làm nổi bật các khu vực có vấn đề chính với các khả năng nâng cao như trình tạo logic cảnh báo, giúp các chuyên gia giao thông ưu tiên hành động của họ dễ dàng hơn nhiều.

Chủ đề:
Lưu

Nội dung Text: Báo cáo thực tập Phân tích - Thiết kế hệ thống thông tin: Xây dựng hệ thống đo lường hiệu năng giao thông Signal Performance Measurement

  1. ĐẠI HỌC QUỐC GIA HÀ NỘI ****** ****** BÁO CÁO THỰC TẬP PHÂN TÍCH THIẾT KẾ HỆ THỐNG THÔNG TIN ĐỀ TÀI XÂY DỰNG HỆ THỐNG ĐO LƯỜNG HIỆU NĂNG GIAO THÔNG SIGNAL PERFORMANCE MEASUREMENT Sinh viên thực hiện: Nguyễn Thế Hợp – 18001142 Người hướng dẫn: Nguyễn Bá Sơn: Trưởng khối giải pháp phần mềm doanh nghiệp Ths. Nguyễn Tuấn Dũng: Giám đốc kỹ thuật Hà Nội, 21/05/2022
  2. [Hà Nội – 20/05/2022] Mục lục Lời mở đầu................................................................................................................................................... 4 Lời cảm ơn ................................................................................................................................................... 4 Phân tích hệ thống ...................................................................................................................................... 6 Mục đích................................................................................................................................................... 6 Phạm vi..................................................................................................................................................... 6 Chức năng nghiệp vụ .............................................................................................................................. 6 Bảng điều khiển ................................................................................................................................... 6 Trình tạo cảnh báo............................................................................................................................... 6 Trình phân tích dữ liệu ........................................................................................................................ 6 Trình tạo báo cáo.................................................................................................................................. 7 Yêu cầu hệ thống...................................................................................................................................... 7 Yêu cầu về giao diện ............................................................................................................................. 7 Yêu cầu về hệ thống ............................................................................................................................. 7 Yêu cầu bảo mật ................................................................................................................................... 7 Công nghệ sử dụng ................................................................................................................................. 8 General ................................................................................................................................................. 8 Back-End .............................................................................................................................................. 8 Front-End ............................................................................................................................................. 8 Cloud .................................................................................................................................................... 9 Thiết kế hệ thống ....................................................................................................................................... 10 Xây dựng biểu đồ Use case (Use case diagram) ................................................................................... 10 Xây dựng biểu đồ tuần tự (Sequence diagram) .................................................................................... 11 Đăng nhập và xác thực người dùng ................................................................................................... 11 Tạo cảnh báo ...................................................................................................................................... 12 Tạo báo cáo......................................................................................................................................... 13 Phân tích dữ liệu ................................................................................................................................. 14 Kiến trúc micro-service........................................................................................................................... 14 Xác thực và phân quyền ......................................................................................................................... 15 Role-Base Access Control................................................................................................................... 15 2
  3. Phân quyền cho hệ thống micro-service ........................................................................................... 16 Cấu hình tập trung .................................................................................................................................. 17 Quy trình vận hành và phát triển ............................................................................................................... 19 Agile scrum ............................................................................................................................................. 19 CI/CD ........................................................................................................................................................ 19 Tổng quan CI/CD ................................................................................................................................. 19 GitLab CI ..............................................................................................................................................20 Git Flow ............................................................................................................................................... 21 Triển khai hệ thống .................................................................................................................................... 22 Kiến trúc mạng ....................................................................................................................................... 22 Kiến trúc đám mây.................................................................................................................................. 22 Tài liệu tham khảo ......................................................................................................................................26 Công việc và kết quả .................................................................................................................................. 27 Công việc được giao............................................................................................................................... 27 Nhận xét của người hướng dẫn ............................................................................................................ 27 3
  4. [Signal Performance Measurement] Lời mở đầu Ngày nay, với sự phát triển mạnh mẽ của công nghệ thông tin, máy tính hiện đại có thế làm rất nhiều việc thay thế sức lao động của con người với độ chính xác, tin cậy cao. Các công nghệ phát triền phần mềm không ngừng được cải tiến, mở rộng ngày càng tốt hơn. Các nhà phát triển ứng dụng giờ đây có rất nhiều lựa chọn các công cụ phát triển phần mềm khác nhau để để có thế cho ra đời các sản phẩm phần mềm có tính ứng dụng trong đời sống thực tiễn. Xu hướng công nghệ tương lai, các phần mềm sẽ được di chuyển lên các dịch vụ đám mây và có thể được sử dụng ở bất kỳ đâu thông qua mạng internet. Do đó các ngôn ngữ lập trình web sẽ phát huy được thế mạnh của mình trong tương lai. Qua quá trình thực tập, em được may mắn tham gia vào dự án thực tế của công ty làm về phần mềm liên quan đến quản lí hệ thống giao thông. Vì vậy, báo cáo này nhằm tổng kết những điều em đã học được và làm được trong quá trình thực tập qua việc trình bày về phân tích kiến trúc hệ thống của dự án mà em được làm. Lời cảm ơn Với một thực tập sinh khi mới bước vào môi trường làm việc, người dẫn dắt mình đi trên những bước chân đầu tiên là những người đáng quý nhất. Em xin chân thành gửi lời cám ơn đến các anh chị: - Anh Nguyễn Bá Sơn: Trưởng khối giải pháp phần mềm doanh nghiệp 1. - Chị Nguyễn Thị Doan: Trưởng khối kiểm thử nghiệp vụ phần mềm doanh nghiệp. - Ths. Nguyễn Tuấn Dũng: Giám đốc kỹ thuật công ty cổ phần Eastgate software. đã tận tình hướng dẫn em trong suốt quá trình thực tập và làm việc tại công ty. Không chỉ là tránh nhiệm, đó còn là tình cảm và sự giúp đỡ đến từ tận đáy lòng mà các anh chị dành cho em. Em cũng xin chân thành cám ơn các thầy cô trong khoa Toán – Cơ – Tin học, cũng như các thầy cô trong trường ĐH KHTN đã giảng dạy, trang bị cho em những kiến thức nền tảng quý báu để em có kiến thức và kinh nghiệm chuẩn bị cho công việc trong tương lai. 4
  5. Trong quá trình trực tập, do còn nhiều hạn chế về kinh nghiệm và kiến thức nên có thể vẫn còn nhiều điểm thiếu sót, em mong nhận được ý kiến nhận xét và phản hồi từ các thầy cô và các bạn. 5
  6. Phân tích hệ thống Mục đích Xây dựng nền tảng SPM (signal performance mesurement) dựa trên đám mây cho phép các cơ quan quản lý giao thông và các chuyên gia trong ngành giao thông để cải thiện hiệu quả của các nút giao thông trọng điểm, cho phép việc quản lý các giao lộ được tối ưu hóa. Ngoài ra, hệ thống giản hóa việc quản lý giao lộ và làm nổi bật các khu vực có vấn đề chính với các khả năng nâng cao như trình tạo logic cảnh báo, giúp các chuyên gia giao thông ưu tiên hành động của họ dễ dàng hơn nhiều. Phạm vi Hệ thống được thiết kế trên nền tảng web và đám mây, do đó có thể sử dụng ở bất cứ đâu có mạng, và không mất thời gian cài đặt phần mềm. Chức năng nghiệp vụ Bảng điều khiển - Cung cấp cho các chuyên gia giao thông một cách nhanh chóng, tổng quan về vấn đề các giao lộ với ba thành phần chính: o Bản đồ nhiệt độ: Cung cấp cái nhìn tổng quan về các giao lộ có vấn đề o 10 nút giao thông hang đầu theo báo động: Hiển thị 10 giao lộ có nhiều cảnh báo nhất. o Mở cảnh báo theo danh mục: Các loại biểu đồ thể hiện số lượng cảnh báo, có thể tùy chỉnh theo danh mục một cách dễ dàng. Trình tạo cảnh báo - Cho phép người dùng cài đặt để tạo cảnh báo dựa trên các điều kiện logic nhất định. - Cho phép người dùng quản lí các chỉ số theo cách mà họ muốn. Trình phân tích dữ liệu - Cho phép tạo và phân tích các dữ liệu theo từng mục đích khác nhau: o Số lượng xe vượt đèn đỏ o Số lượng người qua đường 6
  7. o Số lượng xe dừng chờ đèn đỏ o … - Việc tạo các phân tích có thể chọn theo bất kỳ khoảng thời gian nào với bất kỳ giao lộ nào. - Có thể xuất dữ liệu và chia sẻ một cách đơn giản chỉ bằng một lần nhấp chuột. - Có sử dụng các thuật toán và học máy để cải thiện hiệu quả và độ chính xác của các phân tích. Trình tạo báo cáo - Cho phép người dùng tạo các mẫu và cài đặt thời gian nhận được báo cáo về tình trạng giao thông. - Hỗ trợ việc cài đặt báo cáo vào những khung thời gian nhất định một cách dễ dàng. - Tùy chỉnh nhận báo cáo trên các kênh khác nhau: Thông báo trên trang web hoặc qua hòm thư điện tử. Yêu cầu hệ thống Yêu cầu về giao diện - Giao diện dễ sử dụng, thân thiện với người dùng. - Hỗ trợ đa ngôn ngữ, nhiều chủ đề (theme). - Tương thích với nhiều kích thước màn hình của các loại thiết bị khác nhau. Yêu cầu về hệ thống - Chạy ổn đinh, tính khả dụng vụ cao (high avaibility). - Hiệu suất hoạt động tốt. - Dữ liệu phân tích hiệu quả, chính xác, sai số trong phạm vi cho phép. - Hỗ trợ tự động tăng hoặc giảm tài nguyên hệ thống tùy theo lưu lượng truy cập để tối ưu chi phí. Yêu cầu bảo mật - Hệ thống phải đảm bảo bảo mật thông tin người dùng, tránh bị lộ dữ liệu. - Tránh được các dạng tấn công cơ bản trên internet. 7
  8. Công nghệ sử dụng General - Sonarqube là một platform mã nguồn mở giúp chúng ta có thể kiểm tra chất lượng code của dự án, được viết bằng java nhưng nó hổ trợ nhiều ngôn ngữ khác nhau: PHP, Ruby, Java (bao gồm cả Android), C#, JavaScript, TypeScript, C/C++, Kotlin, Go, COBOL, PL/SQL, PL/I, ABAP, VB.NET, VB6, Python, RPG, Flex, Objective-C, Swift, CSS, HTML, và XML và hỗ trợ các database để lưu trữ kết quả: MySql, Postgresql. Các tiện ích chính: o Phát hiện bug. o Phát hiện code smell, duplicate. o Tính toán độ bao phủ của Unit test (Unit-test coverage). o Tính toán technical debt. o So sánh chất lượng code so với các lần kiểm tra trước. Back-End - Spring framework, Spring Boot, Spring Cloud, Spring Security, Spring data, làm web framework cho phía back-end. Spring cung cấp mô hình lập trình và cấu hình toàn diện cho các ứng dụng doanh nghiệp dựa trên Java hiện đại - trên bất kỳ loại nền tảng triển khai nào. Yếu tố chính của Spring là hỗ trợ cơ sở hạ tầng ở cấp ứng dụng: Spring tập trung vào "hệ thống ống nước" của các ứng dụng doanh nghiệp để các nhóm có thể tập trung vào logic nghiệp vụ cấp ứng dụng, mà không có ràng buộc không cần thiết với các môi trường triển khai cụ thể. - JWT: Sử dụng làm cơ thế xác thực người dùng. - Hibernate: ORM - Redis cache: Nguồn mở, kho lưu trữ dữ liệu trong bộ nhớ được hàng triệu nhà phát triển sử dụng làm cơ sở dữ liệu, bộ nhớ cache, công cụ phát trực tuyến và môi giới tin nhắn. - Apache Kafka: Apache Kafka là một nền tảng phát trực tuyến sự kiện phân tán mã nguồn mở được hàng nghìn công ty sử dụng cho các đường ống dữ liệu hiệu suất cao, phân tích luồng, tích hợp dữ liệu và các ứng dụng quan trọng. Front-End - ReactJS: Thư viện JavaScript để xây dựng giao diện người dùng dựa trên các thành phần. 8
  9. - MobX: Cho phép bạn quản lý trạng thái ứng dụng của mình bên ngoài bất kỳ khung giao diện người dùng nào. Điều này làm cho mã của bạn được tách rời, di động . - Open street map (OSM) là một dự án hợp tác nhằm tạo ra một cơ sở dữ liệu địa lý có thể chỉnh sửa miễn phí trên thế giới. - Bootstrap: Bộ công cụ giao diện người dùng mạnh mẽ, có thể mở rộng và đóng gói nhiều tính năng. Xây dựng và tùy chỉnh với Sass, sử dụng hệ thống lưới và thành phần dựng sẵn, đồng thời đưa các dự án vào cuộc sống với các plugin JavaScript mạnh mẽ. Cloud - Gitlab: Từ lập kế hoạch đến sản xuất, tập hợp các nhóm lại với nhau trong một ứng dụng. Gửi mã bảo mật nhanh hơn, triển khai lên bất kỳ đám mây nào và thúc đẩy kết quả kinh doanh. - Azure DevOps: Lập kế hoạch thông minh hơn, cộng tác tốt hơn và giao hàng nhanh hơn với một loạt các dịch vụ nhà phát triển hiện đại. - Docker: Loại bỏ các tác vụ cấu hình lặp đi lặp lại, thông thường và được sử dụng trong suốt vòng đời phát triển để phát triển ứng dụng nhanh chóng, dễ dàng và di động - máy tính để bàn và đám mây. Nền tảng toàn diện từ đầu đến cuối của Docker bao gồm giao diện người dùng, CLI, API và bảo mật được thiết kế để hoạt động cùng nhau trong toàn bộ vòng đời phân phối ứng dụng. - AWS: Tận dụng cơ sở hạ tầng điện toán toàn cầu có thể mở rộng, đáng tin cậy và an toàn. 9
  10. Thiết kế hệ thống Xây dựng biểu đồ Use case (Use case diagram) Hình: Biểu đồ use case của hệ thống 10
  11. Xây dựng biểu đồ tuần tự (Sequence diagram) Đăng nhập và xác thực người dùng Hình: Biểu đồ tuần tự đăng nhập 11
  12. Hình: Biểu đồ tuần tự sinh JWT token Hình: Biểu đồ tuần tự xác thực JWT token Tạo cảnh báo 12
  13. Hình: Biểu đồ tuần tự cho tính năng tạo cảnh báo Tạo báo cáo Hình: Biểu đồ tuần tự cho tính năng tạo báo cáo 13
  14. Phân tích dữ liệu Hình: Biểu đồ tuần tự cho tính năng phân tích dữ liêuk Kiến trúc micro-service - Sử dụng kiến trúc micro service cho hệ thống. - Chia các nghiệp vụ thành các phần tách biệt riêng và độc lập với nhau. 14
  15. Hình: Kiến trúc microservice Xác thực và phân quyền Role-Base Access Control - Có nhiều lựa chọn cho loại acess control: o Kiểm soát truy cập bắt buộc (MAC) o Kiểm soát truy cập tùy ý (DAC) o Kiểm soát truy cập dựa trên quyền (RBAC) o ….. - Lựa chọn Role-Base access control cho hệ thống 15
  16. Hình: Role-Base access control Phân quyền cho hệ thống micro-service - Có nhiều cách tiếp cận cho việc xác thực và phân quyền người dùng trong hệ thống microservice: o Xác thực và phân quyền tại mỗi service o Xác thực và phân quyền toàn cục (tại 1 service cho tất cả các service còn lại) o Xác thực toàn cục và phân quyền tại chỗ - Mỗi cách tiếp cận sẽ có ưu và nhược điểm riêng. Hệ thống này sẽ chọn cách thứ 3: Xác thực toàn cục và phân quyền tại chỗ. 16
  17. Hình: Xác thực và phân quyền người dùng Cấu hình tập trung - Cấu hình tập trung đề cập đến việc lưu trữ dữ liệu dạng cấu hình tại một vị trí chung mà các máy tính khác có thể truy cập được. Cấu hình tập trung đơn giản hóa việc quản lý dữ liệu cấu hình và chia sẻ cài đặt cấu hình giữa các máy chủ. - Một tính năng thú vị có trong Máy chủ cấu hình Spring Cloud là tự động làm mới. Bất cứ khi nào thay đổi được cam kết với kho lưu trữ git, cấu hình trong ứng dụng sẽ tự động được làm mới. 17
  18. Hình: Cấu hình tập trung sử dụng Spring cloud 18
  19. Quy trình vận hành và phát triển Agile scrum - Một số mô hình phát triển phần mềm như: o Mô hình thác nước (water fall) o Mô hình chữ V o Mô hình Agile Scrum - Áp dụng quy trình phát triển phần mềm agile scrum cho dự án. - Waterfall hoạt động tốt nhất đối với các dự án đã hoàn thành theo kiểu tuyến tính và không cho phép quay lại giai đoạn trước. Agile tập trung vào các quy trình làm việc thích ứng, đồng thời. Các phương pháp Agile chia các dự án thành các giai đoạn nhỏ hơn, lặp đi lặp lại. Hình: Quy trình Agile Scrum CI/CD Tổng quan CI/CD - CI/CD là một bộ đôi công việc, bao gồm CI (Continuous Integration) và CD (Continuous Delivery), ý nói là quá trình tích hợp (integration) thường xuyên, nhanh chóng hơn khi code cũng như thường xuyên cập nhật phiên bản mới (delivery). 19
  20. Hình: Quy trình CI/CD GitLab CI Hình: Gitlab CI/CD 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2