Ứng dụng công nghệ thông tin vào cuộc sống sẽ giúp con người cảithiện một cách đáng kể sức người sức của hiệu quả công việc được nângcao hơn rất nhiều, thêm vào đó chi phí cũng được giảm
Công nghệ áp dụng
SignalR – web thời gian thực NET
Năm 2005, AJAX ra đời, cho phép trình duyệt sử dụng JavaScript gửi yêu cầu đến máy chủ mà không cần tải lại toàn bộ trang web Điều này giúp cập nhật nội dung tự động, rất hữu ích cho các trang web cần hiển thị thông tin theo thời gian thực, như biểu đồ biến động giá cổ phiếu Các lập trình viên thường sử dụng cơ chế pooling để trình duyệt liên tục gửi yêu cầu lấy giá cổ phiếu mới nhất từ máy chủ.
Khi hàng nghìn trình duyệt truy cập đồng thời, web server phải làm việc rất vất vả để phục vụ, ngay cả khi chỉ có một vài mã cổ phiếu thay đổi Thay vì để client liên tục hỏi server (pooling), chúng ta nên để server thông báo cho client và chỉ gửi dữ liệu cần thiết để client xử lý (notification) Cơ chế này ngày càng trở nên quan trọng trong nhiều ứng dụng web như Twitter, LiveScore, giao dịch chứng khoán và chat.
SignalR là thư viện lập trình được phát triển bởi hai thành viên của đội ngũ ASP.NET Microsoft, cho phép lập trình viên thiết lập kênh liên lạc giữa server và client thông qua cơ chế thông báo Trong dự án ASP.NET, chỉ cần thêm thư viện SignalR server và lập trình bằng C#, trong khi phía trình duyệt sử dụng thư viện JavaScript SignalR client.
Giới thiệu về SignalR
SignalR là thư viện cho ASP.NET giúp xây dựng ứng dụng web thời gian thực dễ dàng hơn Thời gian thực ở đây có nghĩa là máy chủ có thể tự động gửi dữ liệu đến client khi client kết nối, thay vì yêu cầu client phải gửi yêu cầu làm mới dữ liệu.
Mô hình truyền thống của website yêu cầu client gửi request đến server để nhận kết quả, nhưng hiện nay có một phương thức mới cho phép server "push" dữ liệu trực tiếp đến client theo thời gian thực Mô hình này không chỉ cải thiện khả năng tương tác mà còn hỗ trợ xây dựng ứng dụng bất đồng bộ với hàng nghìn kết nối đồng thời đến máy chủ.
SignalR tự động quản lý kết nối, cho phép gửi thông báo đồng thời đến tất cả các client hoặc đến từng client riêng lẻ Kết nối giữa client và server được duy trì liên tục, khác với phương thức HTTP truyền thống.
SignalR cung cấp chức năng "server push", cho phép mã trên server gọi mã trên trình duyệt thông qua lời gọi thủ tục từ xa, thay vì chỉ dựa vào mô hình yêu cầu - phản hồi truyền thống Ứng dụng sử dụng SignalR có khả năng mở rộng cho hàng ngàn kết nối nhờ vào Service Bus, SQL Server hoặc Redis.
Phương thức vận chuyển
SignalR sử dụng nhiều cơ chế khác nhau để gửi dữ liệu đến client Tùy thuộc vào điều kiện của nền tảng máy chủ và client, SignalR sẽ tự động chọn phương thức phù hợp nhất để đảm bảo hiệu suất tối ưu.
Kết nối SignalR bắt đầu bằng giao thức HTTP và sau đó chuyển sang kết nối WebSocket nếu được hỗ trợ, được chia thành hai loại.
Websocket là phương thức duy nhất cho phép kết nối liên tục và hai chiều giữa client và server Tuy nhiên, để sử dụng Websocket, cần đảm bảo các điều kiện nghiêm ngặt về môi trường máy chủ và trình duyệt, bao gồm Windows Server 2012 hoặc Windows 8, cùng với NET Framework 4.5.
- Server Send Event: hay còn được gọi là EventSource hỗ trợ tất cả các trình duyệt trừ IE.
The Forever Frame technique, designed exclusively for Internet Explorer, utilizes a hidden Iframe element within a webpage This Iframe has a src attribute that points to a servlet path, which writes and injects a script tag containing JavaScript code The content from the Iframe is then added to this script tag and executed.
Kỹ thuật Ajax long polling không duy trì một kết nối liên tục, mà thay vào đó mở kết nối cho đến khi nhận được dữ liệu từ server Khi dữ liệu được trả về, kết nối cũ sẽ được đóng lại và một kết nối mới sẽ được thiết lập, điều này có thể gây ra một độ trễ nhất định.
Quá trình lựa chọn các cách thức kết nối cho SignalR
- IE 8 hoặc nhỏ hơn thì sử dụng Long Polling
- Nếu JSONP được cấu hình thì sử dụng Long Polling
Web Sockets are utilized when the following conditions are met: the client supports CORS (Cross-Origin Resource Sharing), the client supports Web Sockets, and the server supports Web Sockets If any of these three criteria are not satisfied, Long Polling will be employed instead.
If JSONP is not configured and the connection does not support cross-domain requests, Web Sockets will be utilized, provided that both the server and client support Web Sockets.
- Nếu client hoặc server không hỗ trợ Web Sockets, Server Send Events sẽ được sử dụng nếu nó có sẵn.
- Nếu Server Send Events không có thì Forever Frame sẽ được sử dụng.
- Nếu Forever Frame không có thì Long Polling sẽ được sử dụng.
Giao diện SinalR
Giao diện SignalR được thiết kế để giới thiệu công nghệ SignalR, cho phép ba người dùng trên ba trình duyệt khác nhau giao tiếp ngay lập tức Khi một người gửi tin nhắn, tất cả những người tham gia cuộc trò chuyện sẽ nhận được tin nhắn cùng với tên của người gửi.
Mọi người trong cùng phòng chat có thể chat riêng và nói chuyện riêng với nhau mà không ai biết tới.
Thiết kế hệ thống
Mục tiêu xây dựng website
Ngày nay, ứng dụng công nghệ thông tin vào tin học hóa là yếu tố quyết định trong các hoạt động kinh tế và xã hội Nó đóng vai trò quan trọng trong các tổ chức và công ty, giúp tạo ra những bước đột phá mạnh mẽ.
Sự phát triển không ngừng của công nghệ máy tính và mạng điện tử đã đưa công nghệ thông tin lên những tầm cao mới Internet, một sản phẩm có giá trị to lớn, ngày càng trở thành phần không thể thiếu trong cuộc sống con người, đóng vai trò là nền tảng chính cho việc truyền tải, trao đổi và giao lưu thông tin toàn cầu.
Hiện nay, việc truy cập thông tin trở nên dễ dàng hơn bao giờ hết Chỉ cần một máy tính kết nối internet và một từ khóa tìm kiếm, người dùng có thể nhanh chóng nhận được hàng loạt thông tin, hình ảnh và video liên quan đến vấn đề mình quan tâm.
Internet cho phép thực hiện nhiều công việc nhanh chóng và tiết kiệm chi phí hơn so với phương pháp truyền thống Điều này đã thúc đẩy sự phát triển của thương mại điện tử toàn cầu và hình thành các cộng đồng nghiên cứu với sự tham gia của các thành viên từ khắp nơi trên thế giới.
Mặc dù các website nghiên cứu của các nhà khoa học có tiềm năng lớn, nhưng nhiều yếu tố khác nhau đã khiến chúng chưa phát huy hết hiệu quả Để khắc phục tình trạng này, nhóm chúng tôi đã phát triển một website cộng tác, nhằm hỗ trợ các nhà nghiên cứu trong việc giải quyết những vấn đề cần thiết khi thực hiện cộng tác nghiên cứu.
Chức năng của website
Website được phát triển để đáp ứng nhu cầu công nghệ Internet trong nghiên cứu khoa học, giúp cải thiện giao tiếp giữa các nhà khoa học và nâng cao chất lượng cũng như hiệu quả của các công trình nghiên cứu.
Các chức năng của website:
Người dùng có thể tham gia nghiên cứu trên website cùng với các thành viên khác, kết bạn và tìm kiếm đồng nghiệp để mời họ tham gia nghiên cứu Họ có thể làm việc chung trên giao diện của website, nhắn tin và gửi email để liên lạc với bạn bè Ngoài ra, người dùng còn được cập nhật tin tức hàng ngày, lưu trữ và chia sẻ dữ liệu nghiên cứu với các thành viên khác Hệ thống hỗ trợ trò chuyện nhóm, tạo cuộc họp trực tuyến và diễn đàn để thảo luận Người dùng cũng có thể xem lịch hiện tại và tìm kiếm thông tin dễ dàng.
Tìm kiếm nhang: Gõ thông tin tìm kiếm nhanh vào hội thoại và ấn tìm kiếm, các từ kháo trùng sẽ được hiển thị ra cho người dùng
Chức năng này cho phép người dùng tuỳ chọn cách thức tìm kiếm của mình, các tuỳ chọn gồm:
Tìm trong: o Tất cả o Tiêu đề o Bài viết o Đề tài o Người dùng
Tìm theo o Chính xác cả cụm từ o Bất kì từ nào có kí tự giống o Ngày đăng o Người đăng
Thứ tự sắp xếp o Mới nhất o Cũ nhất o Từ ngày đến ngày
Quản trị viên có trách nhiệm quản lý diễn đàn và các bài viết, bao gồm việc thêm, sửa và xóa bài viết Họ cũng quản lý các nhóm bằng cách xóa hoặc sửa đổi nhóm, cũng như quản lý trang tin tức Ngoài ra, quản trị viên còn quản lý thông tin thành viên, bao gồm việc xóa, sửa và truy cập thông tin của các thành viên Cuối cùng, họ đảm bảo hoạt động của website diễn ra suôn sẻ.
Thiết kế giao diện website
3.1 Giao diện đăng kí tài khoản
Giao diện đăng ký cho phép người dùng, bao gồm cả thành viên và khách, tạo tài khoản để trở thành thành viên và truy cập vào các dịch vụ của website.
Giao diện này cho phép các thành viên có tài khoản đăng nhập vào trang web chính thức, từ đó truy cập thông tin cá nhân và các công cụ tài liệu liên quan đến từng người.
3.3 Giao diện index Đây là giao diện đầu tiền khi người dùng đăng nhập vào hệ thống nó như một trang chào hỏi người dùng đăng nhập vào và chọn các chức năng khác nhau trong web.
Là nơi mà các sản phẩm công nghệ, nghiên cứu được đem ra giới thiệu và quảng bá cho tất cả mọi người.
3.5 Giao diện tin tức Đây là nơi mà các tin tức về công nghệ, chính trị, các thông tin xã hội… được cập nhật giúp cho việc cập nhật thông tin của các thành viên của website trở nên dễ dàng thuận tiện hơn.
Các cộng tác viên của website sẽ tìm kiếm và chọn lọc tin tức để đăng tải, đồng thời ghi rõ nguồn gốc và đảm bảo tính trung thực của thông tin.
Giao diện thư viện là không gian lưu trữ tài liệu nghiên cứu và học tập cá nhân của các thành viên, được xem như một thư mục tài liệu riêng tư.
Thư viện là không gian cho các nhà nghiên cứu chia sẻ tài liệu nghiên cứu của họ, đồng thời cho phép người dùng khác truy cập và chỉnh sửa các tài liệu này.
Giao diện này là nơi giao lưu cho các thành viên, cho phép họ tạo bài viết trong các mục của diễn đàn Các bài viết được sắp xếp và phân cấp theo từng lĩnh vực, giúp người dùng dễ dàng tìm kiếm, trao đổi và chia sẻ thông tin liên quan.
Theo các thư mục riêng mà các thành viên có thể vào và viết các bài viết hoặc xem xét các bài viết đã được đăng lên.
Giao diện Docs là nơi lưu trữ các tài liệu được chia sẻ, cho phép người dùng khác xem và thao tác nếu được quyền từ quản trị viên tài liệu.
- Giao diện làm việc: là nơi mà các người dùng làm việc cùng nhau trên một tài liệu
Nền tảng cho phép các thành viên trong hệ thống trao đổi tin nhắn với nhau, tạo điều kiện cho việc giao tiếp hiệu quả Tất cả các cuộc trò chuyện sẽ được lưu trữ, giúp người dùng dễ dàng xem lại lịch sử nhắn tin bất cứ khi nào cần thiết.
3.10 Giao diện thông tin cá nhân
Là nơi hiển thị các thông tin cá nhân của từng người bao gồm các thông tin riêng và công khai.
Danh sách bạn bè là nơi hiển thị các mối quan hệ cá nhân của từng thành viên, cho phép người dùng thấy ai là bạn bè của họ sau khi đã kết bạn.
3.12 Giao diện công việc, nhắc nhở
Giao diện cho phép người dùng tạo công việc trên thời gian biểu của hệ thống, đồng thời hệ thống sẽ gửi thông báo nhắc nhở đến người dùng khi thời gian nhắc nhở trùng với thời điểm hiện tại.
- Thống tin nhóm: Là danh sách các nhóm và thông tin các nhóm mình đã tham gia và các chức năng nhóm như tạo nhóm, tìm nhóm
- Thành viên trong nhóm: Là danh sách các thành viên tham gia nhóm và các thông tin của từng thành viên.
- Thông tin nhóm: Là nơi ghi chép các thông tin của nhóm.
Trang quản lý thông tin của website chỉ dành cho người quản trị Để sử dụng các chức năng quản trị, người quản trị cần nhập thông tin tài khoản admin.
Sau khi website được cài đặt, thông tin tài khoản sẽ được cung cấp cho người quản trị Người quản trị có thể sử dụng các chức năng trong trang quản trị để thay đổi thông tin tài khoản theo quy định của website.
Đối tượng sử dụng
Website được phát triển dành cho các nhà khoa học, hỗ trợ họ trong việc nghiên cứu các công trình và thực hiện các tính năng hữu ích cho quá trình nghiên cứu.
- Khách: Đối tượng khách có thể truy cập vào web xem các tin tức, các bài viết trên diễn đàn.
- Thành viên website: Là đối tượng chính của website hướng tới, có thể thực hiện các chức năng về nghiên cứu mà website hỗ trợ cho các thành viên.
- Quản trị viên: Là ngừoi quản trị của website và chịu trách nhiệm đảm nhận và duy trì hoạt động của website.
Thiết kế Cơ sở dữ liệu
CSDL, hay cơ sở dữ liệu, được định nghĩa là một tập hợp thông tin có cấu trúc, thường được hiểu là một tập hợp liên kết các dữ liệu lớn đủ để lưu trữ trên thiết bị như đĩa hoặc băng Dữ liệu trong CSDL được duy trì dưới dạng các tập tin trong hệ điều hành hoặc trong các hệ quản trị cơ sở dữ liệu Ưu điểm của CSDL bao gồm việc giảm thiểu sự trùng lặp thông tin, đảm bảo tính nhất quán và toàn vẹn dữ liệu, cho phép truy xuất dữ liệu theo nhiều cách khác nhau, và hỗ trợ nhiều người cùng sử dụng một CSDL.
Những vấn đề mà CSDL cần phải giải quyết: o Tính chủ quyền của dữ liệu:
Thể hiện ở phương diẹn an toàn dữ liệu
Khả năng biểu diễn mối liên hệ ngữ nghĩa của dữ liệu và tính chính xác của dữ liệu
Người khai thác CSDL phải cập nhật cho CSDL những thông tin mới nhất o Tính bảo mật và quyền khai thác thông tin của người sử dụng:
Do ưu điểm CSDL có thể cho nhiều người khai thác đồng thời,nên cần phải có một cơ chế bảo mật phân quyền khai thácCSDL.
Các hệ điều hành nhiều người sử dụng hay cục bộ đề cung cấp cơ chế này. o Tranh chấp dữ liệu:
Khi nhiều người cùng truy cập CSDL với các mục đích khác nhau Rất có thể sẽ xảy ra hiện tượng tranh chấp dữ liệu.
Cần có cơ chế ưu tiên khi truy cập CSDL.
Câp quyền ưu tiên cho từng người khai thác. o Đảm bảo an toàn dữ liệu khi có sự cố:
Khi cơ sở dữ liệu (CSDL) được quản lý tập trung và có khối lượng lớn, nguy cơ mất dữ liệu trở nên cao Nguyên nhân chủ yếu dẫn đến tình trạng này là do mất điện đột ngột hoặc hỏng hóc thiết bị lưu trữ.
Hiện tại có một số hệ điều hành đã có cơ chế tự động sao lưu ổ cứng và fix lỗi khi có sự cố xảy ra.
Tuy nhiên Chúng ta nên sao lưu cho dữ liệu đề phòng trường hợp xấu xảy ra.
Cơ sở dữ liệu được phân loại thành nhiều loại khác nhau, bao gồm cơ sở dữ liệu quan hệ, nơi dữ liệu được lưu trữ trong các bảng gọi là thực thể, có mối liên hệ với nhau thông qua các quan hệ và mỗi quan hệ có thuộc tính, trong đó có khóa chính Các hệ quản trị như MS SQL Server, Oracle và MySQL hỗ trợ loại cơ sở dữ liệu này Tiếp theo là cơ sở dữ liệu hướng đối tượng, trong đó dữ liệu cũng được lưu trữ trong bảng nhưng bổ sung các tính năng hướng đối tượng, cho phép lưu trữ hành vi của đối tượng, với mỗi bảng tương ứng với một lớp dữ liệu và mỗi dòng là một đối tượng Các hệ quản trị như MS SQL Server, Oracle và Postgres hỗ trợ loại cơ sở dữ liệu này Cuối cùng, cơ sở dữ liệu bán cấu trúc lưu trữ dữ liệu dưới dạng XML, với thông tin mô tả đối tượng được thể hiện qua các tag, mang lại nhiều ưu điểm nhờ khả năng lưu trữ đa dạng các loại dữ liệu, trở thành xu hướng mới trong nghiên cứu và ứng dụng.
5.2 Thiết kế cơ sở dữ liệu
Lưu trữ thông tin tài khoản của quản trị viên và các thành viên trên website là rất quan trọng Chỉ có một tài khoản được ghi trong cơ sở dữ liệu cùng với mật khẩu, và tất cả thông tin tài khoản đều được mã hóa để đảm bảo an toàn.
Trường Kiểu dữ liệu Ràng buộc
Rỗng ID của thành viên (tự tăng)
Số điện thoại người dùng ngaysinh Date Khôn g
Ngày sinh gioitinh Varchar(4) Khôn g
Giới tính diachi Varchar(200) không Địa chỉ
Trường Kiểu dữ liệu Ràng buộc Rỗng Mô tả
ID Int(11) Khoá chính Không ID bạn bè để lien kết tới bạn bè
IDbanbe Int(11) Khoá phụ Không ID bảng danh sách bạn bè
Date Date Không Ngày thêm
- Bảng bài viết trên diễn đàn
Là nơi lưu trữ các bài viết và địa chỉ bài viết trên diễn đàn.
Trường Kiểu dữ liệu Ràng buộc Rỗng Mô tả
IDchude Int(11) Không Id của chủ đề
IDnoidung Int(11) Không Nội dụng nói tới
IDbaiviet Int(11) Khóa chính Không ID bài viết
ID Int(11) Không Người viết
Link Varchar(200) Không Link đính kèm
Date Date Không Ngày khởi tạo
Soluotxem Int(11) Không Số lượt xem
Soluotthich Int(11) Không Số lượt chia sẻ
Name Int(11) Không ID bình luận cuối cùng
Là nơi mà người dùng upload dữ liệu lên website.
Trường Kiểu dữ liệu Ràng buộc Rỗng Mô tả
IDtailieu Int(11) Khoá chính Không ID tài liệu
ID Int(11) Kháo phụ Không ID người dùng
Name Varchar(30) Không Tên tài liệu
Date Datetime Không Ngày upload tài liệu
Link Varchar(200) Không Địa chỉ tệp tin
Trường Kiểu dữ liệu Ràng buộc Rỗng Mô tả
IDchiase Int(11) Khoá chính Không ID bảng chia sẻ
IDtailieu Int(11) Khoá phụ Không ID tài liệu được chia sẻ
ID Int(11) Không Người được chia sẻ
Là nơi chứa các ID của những người được chia sẻ tài liệu
Là nơi lưu danh sách các nhóm mà người dùng tham gia
Trường Kiểu dữ liệu Ràng buộc Rỗng Mô tả
IDds Int(11) Khoá chính Không ID bảng ds nhóm
IDnhom Int(11) Khoá chính Không ID nhóm
ID Int(11) Khoá phụ Không ID người dùng
Là nơi lưu trữ các thông tin về cơ sở dữ liệu của nhóm
Trường Kiểu dữ liệu Ràng buộc Rỗng Mô tả
IDnhom Int(11) Khoá chính Không Mã từng nhóm
Name Varchar(200) Không Tên nhóm
Datetime Datetime Không Ngày tạo nhóm
Number Int(11) Không Số thành viên
Text Varchar(200) Không Thông báo của nhóm