1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(Tiểu luận) đồ án cá nhân môn học cs420 hệ phân tán (j2ee, net)

34 19 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

Tiêu đề Hệ Phân Tán
Tác giả Trần Văn Mến
Người hướng dẫn Nguyễn Hữu Phúc
Trường học Trường Đại Học Duy Tân
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Cá Nhân
Định dạng
Số trang 34
Dung lượng 3,4 MB

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

Nội dung

Dn1: Là một hệ có chức năng và dữ liệu phân tán trên các máy trạm được kết nối với nhau qua mạng máy tính Có CSDL phân tán Dn2: Là một tập các máy tính độc lập được kết nối với nhau bởi

Trang 1

TR ƯỜ NG Đ I H C DUY TÂN Ạ Ọ



ĐỒ ÁN CÁ NHÂN MÔN HỌC:

CS420: HỆ PHÂN TÁN (J2EE, NET)

GIẢNG VIÊN HƯỚNG DẪN : NGUYỄN HỮU PHÚC

Trang 2

Tran Van Men

PHẦN 1: LÝ THUYẾT Câu 1: Hệ phân tán là gì? Ví dụ về một số mô hình hoặc ứng dụng của hệ phân tán?

1 Hệ phân tán là gì?

Dn1: Là một hệ có chức năng và dữ liệu phân tán trên các máy trạm được kết nối

với nhau qua mạng máy tính (Có CSDL phân tán)

Dn2: Là một tập các máy tính độc lập được kết nối với nhau bởi mạng máy tính và

được cài đặt phần mềm phân tán

Dn3: Là một tập các máy tính độc lập giao tiếp với nhau như một hệ thống thống

nhất và toàn vẹn

2 Ví dụ về một số mô hình hoặc ứng dụng của hệ phân tán?

Mô hình client – server:

- Môi trường bao gồm các máy trạm và các máy chủ

- Dịch vụ: Là công việc, chức năng mà máy có thể thực hiện

- Server: Là máy mà thực hiện các nhiệm vụ

- Client: Là máy trạmđưa ra yêu cầu dịch vụ

Mô hình Peer to Peer

- Mỗi máy trong mạng có (chủ yếu) khả năng tương đương

- Không có máy được dành riêng chỉ để phục vụ

- Bộ sưu tập các máy tính gồm :

1

Trang 3

Tran Van Men

Câu 2: Phân biệt giữa chuyển mạch kênh và chuyển mạch gói, ưu và nhược điểm của 2 loại này?

Chuyển mạch kênh:

- Sử dụng một kênh chuyên dụng hoặc mạch riêng được thành lập trong thời

gian truyền

- Dữ liệu được truyền đi ở thời gian thực (real time)

- Độ trễ (latency) hầu như không đổi

- Tín hiệu truyền dạng xung (Analog/Digital)

Trang 4

Tran Van Men

truyền dữ liệu không liên tục như dữ liệu internet, vì chất lượng kênhđược giữ nguyên suốt cuộc gọi

Chuyển mạch gói:

- Sử dụng nhiều kênh truyền khác nhau -> thất lạc gói tin trên đường truyền.

Trường hợp gói tin mất quá nhiều -> máy nhận sẽ không thể nhận được thôngtin gởi (Checksum Err)

- Dữ liệu được truyền đi không ở thời gian thực

- Độ trễ (latency) lớn

- Tín hiệu truyền dạng số: 01010…1010100

- Ưu điểm:

hiệu quả hơn vì không cần cấp phát kênh cố định cho mỗi cuộc gọi

không liên tục như internet và email

- Nhược điểm:

khác nhau, nên trễ thời gian không đồng đều có thể xảy ra

sự cố trên đường truyền, mất mát dữ liệu có thể xảy ra

Câu 3: Nêu và cho ví dụ về các yếu tố ảnh hưởng đến sự ra đời của hệ phân tán?

Có 2 yếu tố chính:

- Sự phát triển, thay đổi của Công nghệ

- Nhu cầu của đối tượng sử dụng

Ví dụ:

- Thiết bị lưu trữ:

3

Trang 5

Tran Van Men

0.003 Đô la mỹ cho mỗi MB của RAM

- Kiến trúc mạng:

bandwidth

 Ngày nay: có thể truyền đến tốc độ 1000 Gbps (2020)

Câu 4: Middleware là gì, kể tên 3 Middleware phổ biến?

1 Middleware là gì

4

Trang 6

Tran Van Men

- Middleware trong hệ thống phân tán là một loại phần mềm hệ thống phân tán

kết nối các loại ứng dụng khác nhau và cung cấp phân tán minh bạch cho cácứng dụng của nó kết nối

2 kể tên 3 Middleware phổ biến?

- 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ụ (client) và một chương trình cung cấp dịch vụ (server)trên mạng

2 Socket hoạt động trên các giao thức nào,

- Hoạt động dựa trên giao thức TCP / IP, chúng thường được sử dụng như giao

tiếp (interface) cho các giao thức của nó,

3 Có các loại Socket nào phổ biến?

- Tùy thuộc vào các giao thức mà Socket phân thành ba loại: -

Câu 6: Giới thiệu về các giao thức TCP, UDP trong lập trình hệ phân tán?

TCP (Transmission Control Protocol) và UDP (User Datagram Protocol) làhai trong những giao thức chính được sử dụng trong lập trình hệ thống phân tán đểquản lý truyền thông giữa các máy tính và ứng dụng khác nhau trong mạng

TCP:

5

Trang 7

Recommended for you

How Available is HC Assignment

Pre-Rev French Lit

2

CH 41

-naaghrehrhDDDDDDDDDDDDDDDDDDDD Medical-Surgical Nursing

1

Trang 8

Tran Van Men

- Giao thức hướng kết nối (Connection-oriented protocols)

- 1 thiết lập kết nối (“bắt tay”)

- 2 [đàm phán giao thức]

- 3 trao đổi dữ liệu

- 4 chấm dứt kết nối

UDP:

- Giao thức hướng không kết nối (Connectionless protocols)

- 1 Không thiết lập kết nối

- 2 Gửi / nhận dữ liệu thực hiên qua gói

trên các đối tượng

thủ tục từ xa (RPC - Remote Procedure Call) thông qua các phươngpháp triệu gọi (invocation method) trên một đối tượng từ xa: Stub vàSkeleton

Câu 8: So sánh đồng hồ vật lý và đồng hồ logic?

- Độ chính xác: Đồng hồ vật lý thường có độ chính xác cao hơn so với đồng hồ

logic

6

Trang 9

Tran Van Men

- Triển khai: Đồng hồ vật lý dựa vào thiết bị vật lý cụ thể, trong khi đồng hồ

logic là một khái niệm trừu tượng và thường được triển khai trong phần mềmhoặc hệ thống máy tính

- Ổn định: Đồng hồ vật lý thường ổn định hơn và ít bị ảnh hưởng bởi thay đổi

môi trường

- Sử dụng: Đồng hồ vật lý thường được sử dụng trong các ứng dụng yêu cầu độ

chính xác cao như đo lường khoa học và viễn thông, trong khi đồng hồ logicthường được sử dụng trong các hệ thống máy tính và phần mềm để đồng bộhóa thời gian và sự kiện

Câu 9: Nêu trình tự các bước thiết kế một ứng dụng phân tán với JAVA?

8 Tài liệu và hướng dẫn

9 Kiểm tra và tối ưu hóa

Câu 10: Nêu quy trình các phương thức/hàm xử lý khi truyền dữ liệu qua kỹ thuật RMI?

1 Tạo 1 lớp giao diện.Ví dụ: HelloInterface.java

2 Tạo lớp hiện thực mô tả các phương thức của lớp giao diện

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

7

Trang 10

Tran Van Men

- tạo đối tượng RemoteObject từ lớp Implement đăng ký đối tượng với máy

JVM:

- đăng ký đối tượng với rmiregistry:

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

- tạo một đối tượng Obj tham chiếu đến đối tượng từ xa thông qua:

5 Biên dịch tạolớp Stub,Skel:

- rmic <tên lớp implement>

6 Biên dịch chương trình Client,Server,

Trang 11

Tran Van Men

PHẦN 2: THỰC HÀNH Câu 1: Client nhập lần lượt 2 số nguyên a và b từ bàn phím và gởi cho Server Yêu cầu Server tính tổng a+b Viết chương trình hiển thị kết quả này trên màn hình Client theo kỹ thuật TCP.

Trả lời: Chương trình gồm 2 file Client1.java và Server1.java

public class Client1 {

public static void main(){

String serverhost = "localhost" ;

int serverport = 12345 ;

try {

Socket client = new Socket(serverhost, serverport);

System out println ( "Ket noi voi server: " + serverhost);

BufferedReader inputfromserver = new BufferedReader( new

InputStreamReader ( client getInputStream ()));

PrintWriter outputtoserver = new PrintWriter(client getOutputStream(), true );

System out print ( "Nhap a: " );

int a Integer.parseInt (consoleinput readLine ());

System out print ( "Nhap b: " );

int b Integer.parseInt ( consoleinput readLine ());

Trang 12

Tran Van Men

public class Server1 {

public static void main(){

int port = 12345 ;

try {

ServerSocket server = new ServerSocket(port);

System out println ( "Server dang nghe ow cong: " + port);

Socket client server = accept();

System out println ( "Client da ket noi: " + client.getInetAddress());

BufferedReader inputfromclient = new BufferedReader( new

InputStreamReader ( client getInputStream ()));

PrintWriter ouputtoclient = new PrintWriter (client getOutputStream (), true );

while ( true ){

String inputA = inputfromclient readLine ();

String inputB = inputfromclient readLine ();

if (inputA ==null|| inputB ==null ){

Trang 13

Tran Van Men

Trang 14

Tran Van Men

Câu 2: Client gửi 1 đoạn ký tự (bao gồm số và chữ) cho Server Yêu cầu Server gửi trả lại các thông tin theo kỹ thuật TCP các yêu cầu sau:

a Số lượng ký tự, số lượng chữ số, số lượng chữ cái

b Số lượng ký tự trùng lặp (cho từng chữ và số)

c Hiển thị dãy ký tự đảo ngược

Trả lời: Chương trình gồm 2 file Client2.java và Server2.java

public class Client2 {

public static void main(){

String serverhost = "localhost" ;

int serverport = 12345 ;

try {

Socket client = new Socket(serverhost, serverport);

System out println ( "Ket noi voi server: " + serverport);

BufferedReader inputfromserver = new BufferedReader( new

InputStreamReader ( client getInputStream ()));

PrintWriter outputtoserver = new PrintWriter(client getOutputStream(), true );

System out print ( "Nhap chuoi chua chu voi so muon gui: " );

String text = consoleinput readLine ();

Trang 15

Tran Van Men

public class Server2 {

public static void main(){

int port = 12345 ;

try {

ServerSocket server = new ServerSocket(port);

System out println ( "Server dang nghe ow cong: " + port);

Socket client server = accept();

System out println ( "Client da ket noi: " + client.getInetAddress());

BufferedReader inputfromclient = new BufferedReader( new

InputStreamReader ( client getInputStream ()));

PrintWriter ouputtoclient = new PrintWriter (client getOutputStream (), true );

//câu a: sốố l ng ký t , sốố l ượ ự ượ ng ch sốố, sốố l ữ ượ ng ch cái ữ

int charCount = input.length();

int digitCount = ;

int letterCount = ;

for ( char i input.toCharArray()){

if (Character isDigit (i))

{

digitCount ++ ;

}

13

Trang 16

Tran Van Men

else if (Character.isLetter(i)){

letterCount ++ ;

}

}

//câu b: sốố l ượ ng ký t trùng l p ự ặ String duplicatedChars = "" ; for ( int i = ; i < input.length();i ){ ++ char currentChar = input.charAt(i); if (input.indexOf(currentChar) != input lastIndexOf (currentChar)){ if ( duplicatedChars.contains (String valueOf (currentChar))){ duplicatedChars += currentChar; }

}

}

//câu c: Hi n th dãy ký t đ o ng ể ị ự ả ượ c StringBuilder reverseinput = new StringBuilder (input) reverse (); String result = "a So luong ky tu: " + charCount + " " \t + " So luong chu so: " + digitCount + " " \t + " So luong chu cai: " + letterCount + " \t " + "b So luong ky tu trung lap: " + duplicatedChars.length() + " (" + duplicatedChars +

") " + " " \t + "c Day ky tu dao nguoc: " + reverseinput toString (); ouputtoclient.println(result); }

}

server.close(); client close (); } catch ( IOException e){ e.printStackTrace(); }

}

}

14

Trang 17

Tran Van Men

Kết quả:

15

Trang 18

Tran Van Men

Câu 3: Client nhập cho a,b,c và gửi cho Server theo kỹ thuật TCP Server xử lý và trả lại các nghiệm có thể có của phương trình bậc 2.

Trả lời: Chương trình gồm 2 file Client3.java và Server3.java

public class Client3 {

public static void main(){

String serverhost = "localhost" ;

int serverport = 12345 ;

try {

Socket socket = new Socket(serverhost, serverport);

System out println ( "Ket noi voi server: " + serverhost);

System out print ( "Nhap a: " );

double a Double parseDouble(consoleinput readLine());

System out print ( "Nhap b: " );

double b Double parseDouble ( consoleinput readLine ());

System out print ( "Nhap c: " );

double c = Double parseDouble ( consoleinput readLine ());

Trang 19

Tran Van Men

// System.out.print("Server gui den: ");

System out println ( "Server gui den: " + serverMessage);

public class Server3 {

public static void main(){

int port = 12345 ;

try {

ServerSocket server = new ServerSocket(port);

System out println ( "Server dang nghe o cong: " + port);

//châốp nh n kếốt nốối t client ậ ừ

Socket client server = accept();

System out println ( "Client da ket noi: " + client.getInetAddress());

//luốồng nh p xuâốt d li u t client ậ ữ ệ ừ

BufferedReader inputfromclient = new BufferedReader( new

InputStreamReader ( client getInputStream ()));

PrintWriter outputtoclient = new PrintWriter (client getOutputStream (), true );

Trang 20

Tran Van Men

try {

double a Double.parseDouble(parts[ ]); 0

double b Double parseDouble (parts[ ]); 1

double c = Double parseDouble (parts[ ]); 2

// gi i pt bac 2 ả double delta = b b * - 4 * c; double x1, ; x2

if (delta > ){ x1 = ( b Math.sqrt(delta)) ( / * a); x2 = ( b - - Math sqrt (delta)) / ( 2 a); outputtoclient.print( "phuong trinh co 2 nghiem phan biet: " ); outputtoclient.println( "nghiem 1: " + x1 + "; nghiem 2: " + x2); } else if (delta == 0 ){ x1 =- b ( 2 a); outputtoclient.println( "phuong trinh co nghiem kep: " + x1); } else { outputtoclient.println( "phuong trinh vo nghiem: " ); }

} catch ( NumberFormatException e){ outputtoclient.print( "du lieu khong hop le" ); }

} else { outputtoclient.print( "du lieu khong hop le" ); }

} else { break ; }

}

server.close(); client close ();

} catch ( IOException e){ e.printStackTrace(); }

}

}

18

Trang 21

Tran Van Men

Kết quả:

19

Trang 22

Tran Van Men

Câu 4: Client nhập 1 số Server hiển thị số đó có phải là số Fibonacci không? (dùng TCP)

Trả lời: Chương trình gồm 2 file Client4.java và Server4.java.

public class Client4 {

public static void main() {

try {

Socket socket = new Socket( "localhost" , 12345 );

BufferedReader input = new BufferedReader( new

InputStreamReader(socket.getInputStream()));

PrintWriter output = new PrintWriter(socket getOutputStream(), true );

// Nh p sốố t ng ậ ừ ườ i dùng

BufferedReader reader = new BufferedReader ( new InputStreamReader (System in ));

System out print ( "Nhao so: " );

String numberStr = reader.readLine();

output println (numberStr);

// Đ c kếốt qu t máy ch và hi n th ọ ả ừ ủ ể ị

String result = input.readLine();

System out println ( "Ket qua tu may chu: " + result);

Trang 23

Tran Van Men

public class Server4 {

public static void main() {

try {

ServerSocket serverSocket = new ServerSocket( 12345 );

System out println ( "May chu dang nghe " );

while ( true ) {

Socket clientSocket serverSocket = accept ();

System out println ( "Da ket noi voi mot client." );

BufferedReader input = new BufferedReader( new

InputStreamReader(clientSocket getInputStream ()));

PrintWriter output = new PrintWriter(clientSocket.getOutputStream(), true );

// Đ c sốố t client ọ ừ

String numberStr = input.readLine();

int number = Integer.parseInt(numberStr);

// Ki m tra xem sốố có ph i là sốố Fibonacci hay khống ể ả

boolean isFibonacci = isFibonacci(number);

Ngày đăng: 19/12/2023, 15:19

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