1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài tập lớn hệ phân tán- Quản lý xe máy

11 536 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 240 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài tập lớn hệ phân tán- Quản lý xe máy

Trang 1

BÀI TẬP LỚN HỆ PHÂN TÁN

Đề tài:

QUẢN LÝ XE MÁY

Nhóm 2

I Giới thiệu đề tài:

- Ngôn ngữ lập trinh sử dụng: JaVa

- Môi trường phát triển: NetBeans IDE 6.0.1

- Cơ sở dữ liệu: Microsoft Access

- Cách thức lập trình: sử dụng socket, giao thức TCP.

- Mô hình: Client-Server Nhiều client có thể kết nối tới 1 server

- Kiến trúc: 3 tầng (3-tier architecture)

II Tìm hiểu giao thức TCP:

TCP ( Transmission Control Protocol) là một giao thức hướng kết

nối, nó cung cấp một đường truyền dữ liệu tin cậy giữa hai máy tính Tính tin cậy thể hiện ở việc nó đảm bảo dữ liệu được gửi sẽ đến được đích và theo đúng thứ tự như khi nó được gửi.

Tính tin cậy của đường truyền được thể hiện ở hai đặc điểm sau:

• Mọi gói tin cần gửi sẽ đến được đích Để làm điều này thì mỗi lần phía gửi gửi xong một gói tin nó sẽ chờ nhận một xác nhận từ bên nhận rằng đã nhận được gói tin Nếu sau một khoảng thời gian mà phía gửi không nhận được thông tin xác nhận phản hồi thì nó sẽ phát lại gói tin Việc phát lại

sẽ được tiến hành cho đến khi việc truyền tin thành công, tuy nhiên sau một

số lần phát lại max nào đó mà vẫn chưa thành công thì phía gửi có thể suy ra

là không thể truyền tin được và sẽ dừng việc phát tin

• Các gói tin sẽ được trình ứng dụng nhận được theo đúng thứ tự như chúng được gửi Bởi các gói tin có thể được dẫn đi trên mạng theo nhiều con đường khác nhau trước khi tới đích nên thứ tự khi tới đích của chúng có thể không giống như khi chúng được phát Do đó để đảm bảo có thể sắp xếp lại các gói tin ở phía nhận theo đúng thứ tự như khi chúng được gửi, giao thức TCP sẽ gắn vào mỗi gói tin một thông tin cho biết thứ tự của chúng trong cả khối tin chung được phát nhờ vậy bên nhận có thể sắp xếp lại các gói tin theo đúng thứ tự của chúng

Như vậy có thể thấy TCP cung cấp cho chúng ta một kênh truyền thông điểm - điểm phục vụ cho các ứng dụng đòi hỏi giao tiếp tin cậy như HTTP ( HyperText Tranfer Protocol), FTP ( File Tranfer Protocol), Telnet…

Trang 2

Các ứng dụng này đòi hỏi một kênh giao tiếp tin cậy bởi thứ tự của dữ liệu được gửi và nhận là yếu tố quyết định đến sự thành công hay thất bại của chúng Hãy lấy ví dụng khi HTTP được sử dụng để đọc thông tin từ một điạ chỉ URL, dữ liệu phải được nhận theo đúng thứ tự mà chúng được gửi nếu không thứ mà bạn nhận được có thể là một trang HTML với nội dung lộn xộn hoặc một file zip bị lỗi và không thể giải nén

III Tìm hiểu về các Cổng giao tiếp:

Cổng là một cơ chế cho phép dữ liệu được truyền đến đúng ứng dụng đang chạy trên máy tính.

Chúng ta biết rằng mỗi máy tính chỉ có một kết nối vật lý với mạng, tất cả các dữ liệu cần truyền cho máy tính khác sẽ được mang đi bởi kết nối này Tuy nhiên chúng ta cũng lại thấy rằng trên mỗi máy tính không chỉ có một mà có thể có nhiều ứng dụng ( chương trình) cùng chạy và cùng có nhu cầu giao tiếp qua mạng do đó dữ liệu máy tính nhận được thông qua kết nối với mạng cần phải được chuyển đến đúng ứng dụng cần nó vì vậy máy tính cần phải biết dữ liệu mà nó nhận được được phía gửi hi vọng chuyển đến ứng dung nào Việc này được thực hiện thông qua việc sử dụng các cổng:

• Mỗi ứng dụng chạy trên máy tính sẽ được gắn với một cổng logic, đó là một số 16 bit Các cổng có giá trị từ 0 đến 65 535 ( 216-1), trong

đó các cổng từ 0 tới 1023 bị hạn chế, chúng chủ yếu được sử dụng cho các dịch vụ phổ biến như HTTP, FTP… , các cổng còn lại được sử dụng cho các ứng dụng của người dùng

• Dữ liệu truyền qua mạng Internet chứa trong nó thông tin để xác định định danh và cổng trên máy tính mà nó cần đến Định danh của mỗi máy tính được xác định bằng một địa chia IP có chiều dài 32 bit

Việc gán một ứng dụng với một cổng có thể được thực hiện bởi chương trình hoặc bởi hệ điều hành tùy theo mục đích sử dụng của ứng dụng Điều này ta sẽ xem xét cụ thể trong phần lập trình socket sau

IV Tìm hiểu về Socket:

Một Socket là một điểm cuối trong một kết nối giữa hai chương trình

đang chạy trên mạng.

Lập trình với Socket là một phương pháp để thiết lập kết nối truyền

thông giữa một chương trình yêu cầu dịch vụ ( được gán nhãn là Client) và một chương trình cung cấp dịch vụ ( được gán nhãn là Server) trên mạng hoặc trên cùng một máy tính.

1 Nguyên lý hoạt động

Trước hết chúng ta hãy xem làm thế nào các socket có thể xác định đựợc nhau

Khi một chương trình tạo ra một socket, một định danh dạng số sẽ được gán cho socket, định danh này chính là cổng mà chúng ta đã tìm hiểu ở trên Việc gán số cổng này cho socket có thể được thực hiện bởi chương trình

Trang 3

hoặc bởi hệ điều hành tùy theo cách socket được sử dụng như thế nào Trong mỗi gói tin mà socket gửi đi có chứa hai thông tin để xác định đích đến của gói tin:

+ Một địa chỉ mạng để xác định hệ thống sẽ nhận gói tin

+ Một số định danh cổng để nói cho hệ thống đích biết socket nào trên nó sẽ nhận dữ liệu

Nhờ hai thông tin này mà gói tin có thể đến được đúng máy tính chứa socket mà nó cần đến ( nhờ địa chỉ mạng) và được phân phối đến đúng socket đích ( nhờ địa chỉ cổng của socket đích)

Bởi dưới góc độ lập trình các socket thường làm việc theo cặp, một socket đóng vai trò làm client còn các socket khác đóng vai trò như một server Socket phía server xác định một cổng cho giao tiếp mạng, sau đó chờ nghe dữ liệu mà client gửi tới nó bằng client socket Do đó các cổng cho server socket phải được biết bởi các chương trình client Ví dụ server FTP sử dụng một socket để nghe tại cổng 21 do đó nếu một chương trình client muốn giao tiếp với server FTP nó cần phải kết nối đến socket đang nghe tại cổng 21

Như vậy cổng của socket phía server được xác định bởi chương trình, ngược lại cổng cho client socket được xác định bởi hệ điều hành Khi một socket phía client gửi một gói tin tới socket phía server thì trong gói tin đã có chứa thông tin về địa chỉ của hệ thống client và cổng của socket phía client nên server hoàn toàn có thể gửi thông tin phản hồi cho client

Chúng ta có thể khái quát quá trình trao đổi dữ liệu thông qua các socket như sau:

1 Chương trình phía Server tạo ra một socket, socket này được chương trìnhgắn với một cổng trên server Sau khi đựợc tạo ra socket này ( mà từ nay ta sẽ gọi là socket phía server) sẽ chờ nghe yêu cầu từ phía client

2 Khi chương trình phía Client cần kết nối với một Server, nó cũng tạo ra một socket, socket này cũng được hệ điều hành gắn với một cổng Chương trình Client sẽ cung cấp cho Socket của nó ( mà từ nay ta sẽ gọi là Socket phía Client) điạ chỉ mạng và cổng của Socket phía Server và yêu cầu thực hiện kết nối ( nếu chương trình định sử dụng giao thức hướng kết nối) hoặc truyền dữ liệu ( nếu chương trình sử dụng giao thức không hướng kết nối)

3 Chương trình phía Server và chương trình phía Client trao đổi dữ liệu vớinhau bằng cách đọc từ Socket hoặc ghi vào Socket của minh Các socket ở hai phía nhận dữ liệu từ ứng dụng và đóng gói để gửi đi hoặc nhận các dữ liệu được gửi đến và chuyển cho chương trình ứng dụng bởi socket ở

cả hai phía đều biết được địa chỉ mạng và điạ chỉ cổng của nhau

Ở bước thứ hai chúng ta thấy chương trình ứng dụng phải lựa chọn giao thức mà nó định sử dụng để trao đổi dữ liệu Tùy theo việc chúng ta sử dụng giao thức nào ( TCP hay UDP) mà cách thức xử lý trước yêu cầu của client có thể khác Sau đây chúng ta sẽ xem xét chi tiết các thức trao đổi dữ liệu của Socket ứng với từng loại giao thức

Trang 4

2 Socket hỗ trợ TCP

a Ở phía Server: Khi một ứng dụng trên server hoạt động nó sẽ tạo

ra một socket và đăng ký với server một cổng ứng dụng và chờ đợi yêu cầu kết nối từphía client qua cổng này

Hình 4-2: Client gửi yêu cầu đến Server

b Phía client: Nó biết địa chỉ của máy trên đó server đang chạy và cổng và server đang chờ nghe yêu cầu Do đó khi muốn kết nối đến Server,

nó cũng tạo ra một socket chứa địa chỉ máy client và cổng của ứng dụng trên máy client đồng thời client sẽ cung cấp cho socket của nó địa chỉ và cổng của Server mà nó cần kết nối và yêu cầu Socket thực hiện kết nối

KhiServer nhận được yêu cầu kết nối từ Client, nếu nó chấp nhận thì server sẽ sinh ra một socket mới được gắn với một cổng khác với cổng mà

nó đang nghe yêu cầu Sở dĩ server làm như vậy bởi nó cần cổng cũ để tiếp tục nghe yêu cầu từ phía client trong khi vẫn cần một kết nối với client

Hình 4-2: Server chấp nhận yêu cầu và tạo một socket để phục vụ client

Sau đó chương trình ứng dụng phía Server sẽ gửi thông báo chấp nhận kết nối cho Client cùng thông tin về địa chỉ cổng mới của socket mà nó dành cho Client

c Quay lại phía client, nếu kết nối được chấp nhận nghĩa là socket của nó đã được tạo ra thành công và nó có thể sử dụng socket để giao tiếp với server bằng cách viết và ghi tới socket theo cách giao tiếp với một tài nguyên trên máy tính thông thường

3 Socket hỗ trợ UDP

a Ở phía Server: Khi một ứng dụng trên server hoạt động nó sẽ tạo

ra một socket và đăng ký với server một cổng ứng dụng và chờ đợi yêu cầu kết nối từ phía client qua cổng này

Trang 5

b Phía client: Nó biết địa chỉ của máy trên đó server đang chạy và cổng và server đang chờ nghe yêu cầu Do đó khi muốn giao tiếp với Server,

nó cũng tạo ra một socket chứa địa chỉ máy client và cổng của ứng dụng trên máy client đồng thời client sẽ cung cấp cho socket của nó địa chỉ và cổng của Server mà nó cần kết nối Khi client muốn gửi tin đến Server nó sẽ chuyển

dữ liệu cho socket của minh, socket này sẽ chuyển thẳng gói tin mà client muốn gửi tới server dưới dạng một datagram có chứa địa chỉ máy server và cổng mà server đang chờ nghe yêu cầu Như vậy không hề có môt kết nối nào được thực hiện giữa client với server và server cũng không cần tạo ra một socket khác để kết nối với client thay vào đó server dùng ngay cổng ban đầu

để trao đổi dữ liệu

V Xây dựng chương trình:

1 Cơ sở dữ liệu:

gồm 1 table Xe:

+ xeID(nvarchar): id xe

+ xeName(nvarchar): tên xe

+ xeColor(nvarchar): màu xe

+ xePrice(double): giá xe

+ xeMark(nvarchar): hiệu xe

+ xeQuantity(int): số lượng xe

2 Chương trình: gồm 2 phần: Client và Server.

+ Server: có nhiệm vụ lắng nghe các kết nối từ các client, nhận yêu cầu

từ các client, xử lý các yêu cầu đó (thao tác với dữ liệu), sau đó gửi kết quả ngược lại cho client

Hình 2-1 : Giao diện Server

Trang 6

+ Client: kết nối tới server, gửi yêu cầu (tìm, thêm, xóa, cập nhật thông tin xe máy) đến server, sau đó nhận kết quả từ server trả về và hiện thị lên màn hình

Hình 2-2: Giao diện Client

VI Mô tả hoạt động:

+ Khởi động Server:

Hình 3-1: Khởi động Server

Trang 7

+ Client thực hiện kết nối đến Server:

Hình 3-2: Client thực hiện kết nối đến Server.

+ Mỗi lần có 1 Client kết nối đến hoặc ngắt kết nối, Server sẽ ghi lại các hoạt động đó cũng như địa chỉ IP của IP

Trang 8

Hình 3-3: Server thông báo có 1 Client kết nối đến

Hình 3-4: Server thông báo có 3 Client kết nối đến

Hình 3-5: Server thông báo vừa có 1 Client ngắt kết nối

+ Thêm 1 loại xe máy:

Trang 9

Hình 3-6: Thêm vào 1 loại xe máy

+ Tìm xe máy (theo id):

Hình 3-7: Tìm 1 loại xe máy

Trang 10

+ Xóa 1 loại xe máy:

Hình 3-8: Xóa 1 loại xe máy

+ Sửa, cập nhật thông tin 1 loại xe máy:

Trang 11

Hình 3-9: Cập nhật thông tin 1 loại xe máy

VII Phụ lục:

 Chạy chương trình từ source code:

- Sử dụng NetBeans IDE import project

- Chạy 2 file:

+ServerSide.java (package com.socket.server): Run > Run File > Run “ServerSide.java”

+ClientSide.java (package com.socket.client): Run > Run File > Run “ClientSide.java”

 Chạy chương trình trực tiếp từ file jar đã đóng gói:

- Chạy 2 file ServerSide.jar và ClientSide.jar ở thư mục dist.

Ngày đăng: 17/07/2015, 12:31

HÌNH ẢNH LIÊN QUAN

Hình 2-1  :    Giao diện Server - Bài tập lớn hệ phân tán- Quản lý xe máy
Hình 2 1 : Giao diện Server (Trang 5)
Hình 2-2: Giao diện Client - Bài tập lớn hệ phân tán- Quản lý xe máy
Hình 2 2: Giao diện Client (Trang 6)
Hình 3-1: Khởi động Server - Bài tập lớn hệ phân tán- Quản lý xe máy
Hình 3 1: Khởi động Server (Trang 6)
Hình 3-2: Client thực hiện kết nối đến Server. - Bài tập lớn hệ phân tán- Quản lý xe máy
Hình 3 2: Client thực hiện kết nối đến Server (Trang 7)
Hình 3-3: Server thông báo có 1 Client kết nối đến - Bài tập lớn hệ phân tán- Quản lý xe máy
Hình 3 3: Server thông báo có 1 Client kết nối đến (Trang 8)
Hình 3-4: Server thông báo có 3 Client kết nối đến - Bài tập lớn hệ phân tán- Quản lý xe máy
Hình 3 4: Server thông báo có 3 Client kết nối đến (Trang 8)
Hình 3-7: Tìm 1 loại xe máy - Bài tập lớn hệ phân tán- Quản lý xe máy
Hình 3 7: Tìm 1 loại xe máy (Trang 9)
Hình 3-6: Thêm vào 1 loại xe máy - Bài tập lớn hệ phân tán- Quản lý xe máy
Hình 3 6: Thêm vào 1 loại xe máy (Trang 9)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w