1. Trang chủ
  2. » Thể loại khác

BÁO CÁO ĐỒ ÁN 4ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNHHỘI THOẠI SỬ DỤNG RMI

41 10 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 41
Dung lượng 1,34 MB

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

Nội dung

Lời mở đầuTrong thế kỉ 21 này, đánh dấu một sự đột phá của kỉ nguyên mạng và Internet, ngàycàng xuất hiện càng nhiều các hệ thống mạng như LAN, WAN, INTERNET… cùngvới đó là sự phát triển

Trang 1

ĐẠI HỌC ĐÀ NẴNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT-HÀN

BÁO CÁO ĐỒ ÁN 4

HỘI THOẠI SỬ DỤNG RMI

Sinh viên thực hiện : Huỳnh Văn Niên – 18IT2

Giảng viên hướng dẫn: TS Lý Quỳnh Trân

Trang 2

Đà Nẵng, tháng 10 năm 2020

Trang 4

Đà Nẵng, tháng 11 năm 2020

Trang 5

Lời mở đầu

Trong thế kỉ 21 này, đánh dấu một sự đột phá của kỉ nguyên mạng và Internet, ngàycàng xuất hiện càng nhiều các hệ thống mạng như LAN, WAN, INTERNET… cùngvới đó là sự phát triển của các giao thức mạng hỗ trợ trong việc truyền thông, chia sẻthông tin giữa các máy tính với nhau Giữa một thế giới mà không gian mạng khôngngừng ngày càng mở rộng, thì phát triển các mô hình hệ thống mạng ngày càng phảicải thiện để đáp ứng các nhu cầu khắt khe từ phía người dùng, một trong số đó có hệthống phân tán, một hệ thống cho thấy những ưu điểm vượt trội và không ngừng đượcnâng cấp

Qua việc tìm hiểu các giao thức mạng, kĩ thuật lập trình trong các hệ thốngphân tán, em thấy tiềm năng phát triển của kĩ thuật lập trình phân tán RMI nhằm giúpphân bổ tài nguyên và có thể thực hiện cùng lúc nhiều bài toán khác nhau

Với mong muốn rút ngắn thời gian và khoảng cách trò chuyện, trao đổi thôngtin giữa các người dùng, chương trình được tạo ra dựa theo mô hình phân tán và sửcông nghệ RMI để thực hiện các dịch vụ trao đổi thông tin trực tuyến

Bắt nguồn từ ý tưởng này cùng với những gợi ý của TS Lý Quỳnh Trân, em đãthực hiện đồ án:

Cấu trúc đồ án bao gồm:

Chương 1: Cơ sở lý thuyết

Chương 2: Phân tích thiết kế hệ thống

Chương 3: Kết quả xây dựng chương trình

Trang 6

Qua đây, em xin chân thành cảm ơn ban lãnh đạo và thầy giáo hướng dẫn cùng bạn bè

đã tạo mọi điều kiện thuận lợi có được những kiến thức thực tế cần thiết

Cuối cùng em kính chúc quý thầy, cô dồi dào sức khỏe và thành công trong sự nghiệp, đạt được nhiều thành công tốt đẹp

Trang 7

MỤC LỤC

Giới thiệu 7

Mục tiêu 7

Đối tượng nghiên cứu 7

Phạm vi nghiên cứu 7

Dự đoán kết quả 7

Chương 1 Cơ sở lý thuyết 8

1.1 Tổng quan về lập trình mạng 8

1.1.1 Lập trình mạng là gì? 8

1.1.2 Phân loại mạng máy tính 8

1.1.3 Các loại kiến trúc mạng phổ thông 8

1.1.4 Mô hình mạng 9

1.2 Giao thức mạng 13

1.2.1 Giao thức TCP (Transmission Control Protocol) 13

1.2.2 Giao thức UDP (User Datagram Protocol) 13

1.3 Lập trình phân tán đối tượng với RMI 14

1.3.1 Thế nào là lập trình phân tán? 14

1.3.2 Kĩ thuật lập trình RMI 14

1.3.3 Ứng dụng của hệ thống phân tán 17

1.4 Ngôn ngữ lập trình Java 17

1.4.1 Khái niệm 17

1.4.2 Thế mạnh của ngôn ngữ Java 18

1.5 Công cụ lập trình - Eclipse IDE for Java Developers 19

1.5.1 Tổng quan về Eclipse 19

1.5.2 Tính năng ưu việt của eclipse 20

Chương 2 Phân tích thiết kế hệ thống 20

2.1 Tổng quan về bài toán 20

2.1.1 Giới thiệu bài toán 20

2.1.2 Đối tượng sử dụng 21

2.1.3 Mục tiêu của chương trình 21

2.1.4 Các chức năng của chương trình 21

2.2 Phân tích thiết kế hệ thống 21

2.2.1 Mô hình bài toán 21

2.2.2 Cách thức hoạt động 22

2.2.3 Các biểu đồ Usecase 25

2.2.4 Biểu đồ Lớp 26

2.2.5 Các biểu đồ hoạt động 27

2.2.6 Biểu đồ tuần tự 28

2.2.7 Thuật toán và quy trình thực hiện 28

Chương 3 Kết Quả Xây Dựng Chương Trình 32

3.1 Chương trình demo 32

3.2 Kết luận 35

3.2.1 Đánh giá về công nghệ 35

3.2.2 Đánh giá về ứng dụng 35

Tài liệu tham khảo 35

Trang 8

DANH MỤC CÁC BIỂU ĐỒ

Biểu đồ UseCase của người dùng 25

Biểu đồ lớp của chương trình 26

Biểu đồ hoạt động đăng nhập 27

Biểu đồ hoạt động nhắn tin 27

Biểu đồ tuần tự xử lý yêu cầu cho client 28

Trang 9

DANH MỤC HÌNH

Mô hình OSI và TCP/IP 10

Mô hình client-server và p2p 11

Khái niệm về RMI 15

Một số thuật ngữ trong RMI 15

Truyền tin trong RMI 16

Ngôn ngữ lập trình Java .18

Phần mềm lập trình eclipse .20

Mô hình bài toán RMI 22

Gửi yêu cầu và nhận phản hồi 23

Tương tác giữa stub và skeleton 24

Callback giữa client và server 24

Khởi động Server 32

Thông báo kích hoạt không thành công 32

Nhập nickname 32

Thông báo lỗi không đăng nhập được 33

Giao diện ứng dụng Nguyễn Văn A 33

Giao diện ứng dụng Nguyễn Văn B 34

Chức năng gửi tin nhắn 34

Chức năng gửi file 35

Chức năng online 36

Trang 10

DANH MỤC CỤM TỪ VIẾT TẮT

1 tạm dịch là triệu gọi phương thức từ xa Remote Method Invoke – RMI

2 Object-oriented programming (Lập trình hướng đối tượng) OOP

3 Java Virtual Machine – máy ảo java JVM

4 Graphic User (Giao diện người dùng) GUI

5 Packet InterNet Groper PING

Trang 11

Giới thiệu

Trong những năm gần đây, lập trình mạng luôn là một trong những nội dung quantrọng trong lĩnh vực công nghệ phần mềm Nhờ sự phát triển vượt bậc trong lĩnh vựcmạng máy tính, những phần mềm máy tính dùng cho doanh nghiệp hiện nay sử dụngrất nhiều trên môi trường mạng đặc biệt là Internet Mạng máy tính là nơi các kĩ thuậtliên quan tới mô hình client-server, mô hình phân tán hay mô hình hợp tác được triểnkhai Các ứng dụng mạng xử lý tập trung hoặc phân tán, tận dụng tối đa sức mạnh củacác hệ thống phần cứng để mang lại hiệu quả cao

Trong báo cáo đồ án này, em sẽ nghiên cứu và sử dụng kĩ thuật lập trình phân tánRMI để xây dựng một chương trình hội thoại trực tuyến giữa các người dùng với nhautrong một mạng LAN nhằm tìm hiểu cơ sở lý thuyết và cách thức hoạt động lập trìnhRMI

- Nắm được các kiến thức về RMI cũng như ngôn ngữ lập trình Java

- Nắm được các bước cấu hình, lập trình RMI bằng Java

- Demo thành công chương trình, hoàn thiện và phát triển một số chức năng

Trang 12

Chương 1 Cơ sở lý thuyết

1.1 Tổng quan về lập trình mạng

1.1.1 Lập trình mạng là gì?

Lập trình mạng là vấn đề liên quan đến nhiều lĩnh vực kiến thức khác nhau Từkiến thức sử dụng ngôn ngữ lập trình, phân tích thiết kế hệ thống, kiến thức hệ thốngmạng, mô hình xây dựng chương trình ứng dụng mạng, kiến thức về cơ sở dữ liệu cho đến kiến thức truyền thông, các kiến thức các lĩnh vực liên quan khác như mạngđiện thoại di động, hệ thống GPS, các mạng BlueTooth, …

Cụ thể lập trình mạng liên quan trực tiếp đến việc các chương trình giao tiếpvới các chương trình khác trong mạng máy tính

Ngoài ra lập trình mạng còn có thể được định nghĩa bằng công thức sau:

dù chúng được cài đặt trên mạng LAN, WAN hay mạng toàn cầu Internet, đây là điềucăn bản đối với sự thành công của nhiều hệ thống

1.1.2 Phân loại mạng máy tính

Dựa theo phạm vi phân bố của mạng, người ta có thể phân ra các loại mạng nhưsau:

- GAN (Globa Area Network)

- WAN (Wide Area Network)

- MAN (Metropolitan Area Network)

- LAN (Local Area Network)

1.1.3 Các loại kiến trúc mạng phổ thông

• Ring Topology:

Trang 13

Mô hình tham chiếu

Kiến trúc mạng phân lớp được tổ chức trong các mô hình tham chiếu, trong sốnày, được biết đến nhiều nhất là mô hình tham chiếu Open System Interconnection(OSI) và mô hình tham chiếu TCP / IP

Trang 14

Mô hình OSI là một mô hình lý thuyết và các giao thức liên kết với các lớp của

nó hiếm khi được sử dụng Tuy nhiên, bản thân mô hình được sử dụng rộng rãi đểtrình bày các khái niệm được sử dụng trong mạng

Trái ngược với OSI, mô hình TCP / IP ít được sử dụng hơn cho các mục đích lýthuyết, nhưng các giao thức liên quan đến nó được sử dụng rộng rãi trong thực tế

Mô hình OSI và TCP/IP

Mô hình tham chiếu OSI bao gồm bảy tầng: Vật lý, Liên kết dữ liệu, Mạng, Truyềntải, Phiên, Trình bày và Ứng dụng

• Tầng vật lý (Physical) chịu trách nhiệm truyền các bit thô qua kênh truyềnthông

• Tầng liên kết dữ liệu (Data Link) phụ trách một số nhiệm vụ như độ tin cậy,kiểm soát luồng và kiểm soát truy cập phương tiện để truyền dữ liệu điểm-điểm

• Tầng mạng (Network) chủ yếu phụ trách việc định tuyến các gói thông qua cácmạng con

• Tầng giao vận (Transport) cung cấp các dịch vụ truyền thông dữ liệu cho cáctầng trên

• Tầng phiên (Session) cho phép người dùng thiết lập các phiên giữa chúng, mỗiphiên cung cấp các dịch vụ như điều khiển hộp thoại và đồng bộ hóa

• Tầng trình bày (Presentation) liên quan đến cú pháp và ngữ nghĩa của thông tin(dữ liệu) được trao đổi

• Tầng ứng dụng (Application) chứa nhiều giao thức dành riêng cho các ứngdụng của người dùng

Trang 15

Không giống như OSI, mô hình tham chiếu TCP / IP chỉ có bốn tầng: Network, Internet, Transport và Application.

Host-to-• Tầng Host-to-Network tương ứng với tầng Liên kết dữ liệu và tầng Vật lý từ

mô hình OSI Các giao thức được sử dụng ở tầng này là dành riêng cho côngnghệ mạng được sử dụng để kết nối thiết bị người dùng vật lý và thiết bị mạng

• Tầng Internet tương ứng với tầng mạng của mô hình tham chiếu OSI và tương

tự như tầng này, nó chịu trách nhiệm định tuyến các gói dữ liệu thông qua cácmạng con để định ra điểm đến Giao thức được sử dụng rộng rãi nhất ở tầngnày là Giao thức Internet (IP)

• Tầng Giao vận của mô hình tham chiếu TCP / IP tương ứng với cùng tầng của

mô hình OSI và cung cấp các dịch vụ tương tự Các giao thức nằm ở tầng này

là Giao thức điều khiển truyền (TCP) và Giao thức sơ đồ người dùng (UDP)

• Tầng Ứng dụng của mô hình TCP / IP tương tự như tầng ứng dụng của mô hìnhOSI Các giao thức nằm ở tầng này bao gồm nhưng không giới hạn ở Giaothức truyền tải tệp (FTP), giao thức thư điện tử (SMTP, IMAP, POP), Giaothức truyền siêu văn bản (HTTP), Hệ thống tên miền (DNS), Secure Shell(SSH)…

Mô hình ứng dụng

Mô hình ứng dụng mạng là mô hình thể hiện sự thoả thuận về mặt nhiệm vụgiữa các thành phần, ở đây chúng ta sẽ bàn về 2 mô hình được sử dụng nhiều là client-server, peer to peer (p2p)

Mô hình client-server và p2p

Trang 16

Mô hình chủ-khách (client-server):

Trong mô hình chủ-khách ứng dụng được chia làm hai thành phần: một thànhphần chuyên phục vụ các yêu cầu gửi đến từ các thành phần khác, gọi là thành phầnserver; một hoặc nhiều thành phần đưa ra yêu cầu sử dụng dịch vụ, gọi là thành phầnclient

Việc giao tiếp giữa client và server được thực hiện dưới hình thức trao đổi cácthông điệp (message):

• Client gửi thông điệp yêu cầu (request message) cho server để mô tả công việccần thực hiện

• Khi nhận được thông điệp này, server sẽ phân tích và xác định công việc phảithực hiện

• Nếu quá trình xử lý sinh ra kết quả cần trả cho client thì server sẽ gửi cho clientthông điệp trả lời (reply message)

• Định dạng và ý nghĩa của các thông điệp trao đổi giữa client và server đượcquy định bởi giao thức dùng trong ứng dụng

Mô hình peer to peer:

Trong kiến trúc ngang hàng (còn gọi là kiến trúc peer-to-peer hay viết tắt làP2P), tất cả các thành phần của hệ thống đều thực hiện các nhiệm vụ giống nhau,không có người phục vụ (server) chuyên biệt

Mỗi ứng dụng chạy trên một máy gọi là peer Ứng dụng trên mỗi đôi máy (cácpeer) trực tiếp tiến hành truyền thông với nhau mà không phải thông qua một servertrung gian nào

Hiện nay các ứng dụng đòi hỏi lưu lượng dữ liệu lớn thường hoạt động theo môhình P2P: ứng dụng phân phối file (BitTorrent, µTorrent), ứng dụng chia sẻ file(eMule, LimeWire), điện thoại Internet (Skype), truyền hình IP (PPLive)

Trang 17

1.2 Giao thức mạng

Các giao thức mạng (protocol) là tập hợp các quy tắc được thiết lập nhằm xácđịnh cách để định dạng, truyền và nhận dữ liệu sao cho các thiết bị mạng máy tính - từserver và router tới endpoint - có thể giao tiếp với nhau, bất kể sự khác biệt về cơ sở

hạ tầng, thiết kế hay các tiêu chuẩn cơ bản giữa chúng

Để gửi và nhận thông tin thành công, các thiết bị ở cả hai phía của một trao đổiliên lạc phải chấp nhận và tuân theo các quy ước giao thức Hỗ trợ cho các giao thứcmạng có thể được tích hợp vào phần mềm, phần cứng hoặc cả hai

1.2.1 Giao thức TCP (Transmission Control Protocol)

TCP là một trong các giao thức cốt lõi của bộ giao thức TCP/IP Sử dụng TCP,các ứng dụng trên các máy chủ được nối mạng có thể tạo các "kết nối" với nhau, màqua đó chúng có thể trao đổi dữ liệu hoặc các gói tin Giao thức này đảm bảo chuyểngiao dữ liệu tới nơi nhận một cách đáng tin cậy và đúng thứ tự TCP còn phân biệtgiữa dữ liệu của nhiều ứng dụng (chẳng hạn, dịch vụ Web và dịch vụ thư điện tử)đồng thời chạy trên cùng một máy chủ

TCP hoạt động ở tầng vận tải (Transport) của mô hình OSI 7 tầng

1.2.2 Giao thức UDP (User Datagram Protocol)

UDP cũng là một trong các giao thức cốt lõi của bộ giao thức TCP/IP, nó làmột giao thức truyền tải không kết nối Không như giao thức TCP (yêu cầu kết nốitrước khi truyền thông) nó cung cấp chức năng cơ bản cần thiết cho các ứng dụng đểgửi các biểu đồ IP đóng gói mà không cần phải thiết lập kết nối

UDP không cung cấp sự tin cậy và thứ tự truyền nhận như giao thức TCP, cácgói dữ liệu có thể đến không đúng thứ tự hoặc bị mất mà không có thông báo Tuynhiên UDP nhanh và hiệu quả hơn đối với các mục tiêu như kích thước nhỏ và yêu cầukhắt khe về thời gian Do bản chất không trạng thái của nó nên nó hữu dụng đối vớiviệc trả lời các truy vấn nhỏ với số lượng lớn người yêu cầu

Nhiều ứng dụng Internet quan trọng sử dụng UDP, bao gồm: Hệ thống tênmiền (DNS), nơi các truy vấn phải nhanh chóng và chỉ bao gồm một yêu cầu duy nhấttheo sau một gói trả lời duy nhất, các ứng dụng Chat Voice, video…

UDP hoạt động ở tầng vận tải (Transport) của mô hình OSI 7 tầng

Trang 18

1.3 Lập trình phân tán đối tượng với RMI

1.3.1 Thế nào là lập trình phân tán?

Thông thường mã lệnh của một chương trình khi thực thi được tập trung trên cùng mộtmáy, đây là cách lập trình truyền thống Sự phát triển như vũ bão của mạng máy tínhđặc biệt là mạng Internet toàn cầu, đã khiến các chương trình truyền thống này khôngcòn đáp ứng được yêu cầu nữa Các chương trình bây giờ yêu cầu phải có sự hợp tác

xử lý, tức là mã lệnh của nó đã không tập trung trên một máy mà được phân tán trênnhiều máy Khi một ứng dụng có mã lệnh thực thi được phân tán trên nhiều máy thìchương trình đó được gọi là chương trình phân tán và việc lập trình để tạo ra cácchương trình này được gọi là lập trình phân tán Có rất nhiều công nghệ lập trình phântán như: DCOM, CORBA, RMI, EJB trong đó RMI là công nghệ thuần Java và dễlập trình nhất

1.3.2 Kĩ thuật lập trình RMI

Khái niệm

RMI là một cơ chế cho phép một đối tượng đang chạy trên một máy ảo Javanày (Java Virtual Machine) gọi các phương thức của một đối tượng đang tồn tại trênmột máy ảo Java khác (JVM)

Hay nói cách khác RMI là cách thức giao tiếp giữa các đối tượng Java có mãlệnh cài đặt (bao gồm cả phương thức và thuộc tính) nằm trên các máy khác nhau cóthể triệu gọi lẫn nhau

Hình sau mô hình triệu gọi đối tượng phân tán Trên máy A các đối tượng A1,A2 gọi các phương thức của nhau được gọi là triệu gọi phương thức cục bộ (localmethod invoke) đây là cách lập trình hướng đối tượng truyền thống vẫn sử dụng,tương tự các đối tượng C1, C2, C3 là các đối tượng cục bộ

Tuy nhiên các đối tượng Java có thể triệu gọi phương thức của một đối tượngnằm trên một máy khác dựa vào giao thức triệu gọi từ xa RMI Trong mô hình dướiđây thì lời triệu gọi phương thức của đối tượng C2 (nằm trên máy C) từ đối tượng A1(nằm trên máy A) là lời gọi phương thức từ xa

Trang 19

Khái niệm về RMI 1 Một số thuật ngữ trong RMI

 Giao tiếp Remote: Một giao tiếp khai báo các phương thức cho phép gọi từ xa.Trong Java giao tiếp Remote có các đặc điểm sau:

• Thừa kế giao tiếp có sẵn: java.rmi.Remote

• Mỗi phương thức trong giao tiếp Remote phải được khai báo để đưa rangoại lệ RemoteException nhờ mệnh đề throwsjava.rmi.RemoteException và có thể có các ngoại lệ khác

 Đối tượng Remote: một đối tượng được tạo ra để cho phép những đối tượngkhác trên một máy JVM khác gọi tới nó

 Phương thức Remote: Đối tượng Remote chứa một số các phương thức, nhữngphương thức này có thể được gọi từ xa bởi các đối tượng trong JVM khác

Một số thuật ngữ trong RMI 1 Các đặc tính của RMI

• RMI là mô hình đối tượng phân tán của Java, nó giúp cho việc truyền thônggiữa các đối tượng phân tán được dễ dàng hơn

• RMI là API bậc cao được xây dựng dựa trên việc lập trình socket

Trang 20

• RMI không những cho phép chúng ta truyền dữ liệu giữa các đối tượng trên các

hệ thống máy tính khác nhau và còn gọi được các phương thức trong các đốitượng ở xa

• Việc truyền dữ liệu giữa các máy khác nhau được sử lý một cách trong suốt bởimáy ảo Java (Java virtual machine)

• RMI cung cấp cơ chế callback, nó cho phép Server triệu gọi các phương thức ởClient

Truyền tin trong RMI

• Java sử dụng rmic.exe để tạo ra các lớp trung gian

• RMI sử dụng lớp trung gian để truyền tin là Skeleton và Stub

• Lớp Stub dùng ở client

• Lớp Skeleton dùng ở Server

• Truyền thông giữa stub và skeleton sử dụng TCP socket

• Cập nhật thông tin tại các client thông qua cơ chế callback của RMI

Truyền tin trong RMI 1

Ngày đăng: 20/04/2021, 22:18

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Bogdan Ciubotaru Gabriel-Miro Muntean (2013) - Network Application Programming with Java. Advanced Network Programming Principles and Techniques Sách, tạp chí
Tiêu đề: Bogdan Ciubotaru Gabriel-Miro Muntean (2013) - Network ApplicationProgramming with Java
2. Paul Krzyzanowski – Distributed Systems. Programming with java RMI An Brief Introduction Sách, tạp chí
Tiêu đề: Paul Krzyzanowski – Distributed Systems
4. Patrick Neubauer, Tenzin Dakpa - Free University of Bolzano. Distributed Systems – Java RMI Chat System. Project documentation Sách, tạp chí
Tiêu đề: Patrick Neubauer, Tenzin Dakpa - Free University of Bolzano. Distributed Systems – Java RMI Chat System
5. Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ - RPC và RMI Sách, tạp chí
Tiêu đề: Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ -
3. Khoa CNTT ĐHSP KT Hưng Yên - Phát triển Hệ thống phân tán Khác

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