mỞ ĐẦudaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · web viewvới ngôn ngữ...

31
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN KHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN CƠ SỞ 4 ĐỀ TÀI : XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN MÁY TÍNH TỪ XA QUICKVIEW Sinh viên : Hà Thanh Vinh Lê Thị Minh Châu GVHD: ThS. Phạm Hồ Trọng Nguyên Lớp : 18IT1

Upload: others

Post on 09-May-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

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

KHOA KHOA HỌC MÁY TÍNH

ĐỒ ÁN CƠ SỞ 4ĐỀ TÀI : XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN

MÁY TÍNH TỪ XA QUICKVIEW

Sinh viên : Hà Thanh Vinh

Lê Thị Minh Châu

GVHD: ThS. Phạm Hồ Trọng Nguyên

Lớp : 18IT1

Đà nẵng, tháng 12 năm 2020

Page 2: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

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

KHOA KHOA HỌC MÁY TÍNH

ĐỒ ÁN CƠ SỞ 4

ĐỀ TÀI : XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN MÁY TÍNH TỪ XA QUICKVIEW

Đà nẵng, tháng 12 năm 2020

Page 3: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

3

MỞ ĐẦUThế giới ngày nay đã có nhiều phát triển mạnh mẽ về công nghệ thông tin

(CNTT) . Từ một tiềm năng thông tin đang trở thành một tài nguyên thật sự, trở thành một hàng hóa trong xã hội tạo ra sự thay đổi to lớn trong lực lượng sản xuất, cơ sở hạ tầng, cấu trúc kinh tế, tính chất lao động và cả cách thức quản lý trong các lĩnh vực xã hội.

Sự phát triển của internet đã đưa con người vao kỷ nguyên xa lộ thông tin mạng. Thông qua mạng internet con người có thể mua bán hàng hóa, trao đổi thông tin một các rộng rãi trên toàn cầu. Máy tính càng trở nên gần gũi hơn với cuộc sống của chúng ta, nó tăng khả năng tiếp cận và hỗ trợ những công việc khó khăn và phức tạp trong mọi lĩnh vực của cuộc sống nói chung và công tác quản lí trong các doanh nghiệp, cơ quan nói riêng như bảo mật thông tin, xem và công tác quản lí trong doanh nghiệp. Đã có nhiều phần mềm được xây dựng để phục vụ cho tính chất phức tạp của cuộc sống nói chung và công tác quản lí trong các doanh nghiệp, cơ quan.

Trong suốt quá trình học tập, chúng em đã được các thầy cô cung cấp và truyền đạt những kiến thức cần thiết trong lĩnh vực công nghệ thông tin. Trong khuôn khổ một đồ án môn học dưới sự hướng dẫn của thây cô giáo, cùng sự tích lũy kiến thức nhóm em đã xây dựng đề tài “ Phần mềm điều khiển máy tính từ xa “ bằng ngôn ngữ Java sử dụng giao thức TCP/IP.

Page 4: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

4

LỜI CẢM ƠNChúng em xin gửi lời cảm ơn chân thành và sâu sắc đến các thầy cô đặc biệt là

giảng viên ThS. Phạm Hồ Trọng Nguyên trong thời gian qua đã giúp đỡ chúng em trong việc hoàn thành bài báo cáo đồ án cơ sở.

Mặc dù gặp nhiều khó khăn trong việc hoàn thành bài đồ án này, tuy nhiên chúng em vẫn cố gắng để thực hiện hoàn chỉnh nhất bài báo cáo. Tuy nhiên, vì chưa có đầy đủ kỹ năng cũng như kinh nghiệm để hoàn thành bài báo cáo đồ án nên em vẫn còn nhiều thiếu sót. Rất mong được sự đóng góp ý kiến của thầy cô để bài báo cáo đồ án được hoàn thiện hơn, chúng em xin chân thành cảm ơn.

Page 5: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

5

NHẬN XÉT(Của giảng viên hướng dẫn)

………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………

Chữ ký của giáo viên hướng dẫn

Page 6: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

6

MỤC LỤC

MỞ ĐẦU.................................................................................................................- 3 -

LỜI CẢM ƠN..........................................................................................................- 4 -

NHẬN XÉT.............................................................................................................- 5 -

MỤC LỤC...............................................................................................................- 6 -

CHƯƠNG 1 : GIỚI THIỆU....................................................................................- 7 -

1.1 Tổng quan..........................................................................................................- 7 -

1.2 Phương pháp, kết quả........................................................................................- 7 -

1.3 Cấu trúc đồ án....................................................................................................- 7 -

CHƯƠNG 2: NGHIÊN CỨU TỔNG QUAN.........................................................- 8 -

2.1 Các ứng dụng đã có...........................................................................................- 8 -

2.2 Hạn chế còn tồn tại............................................................................................- 9 -

2.4.6 Lập trình với chương trình đa luồng (Multi-threading)................................- 15 -

CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH....................................................- 17 -

1. Phân tích thiết kế hệ thống...............................................................................- 17 -

2. Demo kết quả...................................................................................................- 20 -

KẾT LUẬN...........................................................................................................- 22 -

1. Kết quả đạt được................................................................................................- 22 -

2. Chưa đạt được....................................................................................................- 22 -

Page 7: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

7

CHƯƠNG 1 : GIỚI THIỆU1.1 Tổng quan

Hiện nay, việc sử dụng máy tính không còn xa lạ gì với thế hệ trẻ, các công ty, trường học, tập đoàn…. Máy tính và việc sử dụng nó khá là phổ biến cả trong nước và quốc tế.

Cùng với sự gia tăng ứng dụng của máy tính trong các lĩnh vực như đào tạo, kinh doanh hay thương mại,.. thì những ứng dụng dựa trên mô hình client/server là không thể thiếu được đặc biệt là những ứng dụng multi client/server. Vấn đề chia sẻ tài nguyên hệ thống và đặc biệt là desktop (màn hình) và các input (đầu vào) có ý nghĩa quan trọng trong việc phát triển ứng dụng trên mô hình client/server thông qua mạng LAN cũng như internet.

1.2 Phương pháp, kết quả

Phương pháp : Xây dựng chương trình gồm 2 phần chính - Server :

o Chức năng làm nguồn, hiện lên các client mới kết nối được và chat được với nhau

o Nhận và gửi thông tin, tin nhắn cho các client.o Theo dõi màn hình với máy Cliento Chức năng để kết thúc chương trình.

- Client :o Nhận và gửi các thông tin, tin nhắn cho server và các client khác.

Kết quả : Có được một phần mềm điều khiển máy tính từ xa cơ bản có đủ yêu cầu và phát triển thêm.

1.3 Cấu trúc đồ án

Chương 1: Giới thiệu chung

Chương 2: Nghiên cứu tổng quan

Chương 3: Triển khai xây dựng hệ thống

Kết luận và hướng phát triển

Page 8: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

8

CHƯƠNG 2: NGHIÊN CỨU TỔNG QUAN

2.1 Các ứng dụng đã có

- Các ứng dụng hiện có: Hiện nay, các ứng dụng du lịch xuất hiện khá nhiểu. Khi bạn tìm kiếm từ khóa “Ứng dụng điều khiển máy tính từ xa” trên Google sẽ xuất hiện nhiều ứng dụng như : Teamview, UtraViewer,..

-

Hình 1 Teamview

Hình 1 UtraViewer

Page 9: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

9

2.2 Hạn chế còn tồn tại

- Hiện nay có rất nhiều phần mềm điều khiển máy tính, đa dạng về chức năng, thuận tiện cho người sử dụng vì mới mẻ nên vẫn đang trên đường hoàn thiện, những hạn chế của các phần mềm hiện nay là :+ Giao diện chưa đẹp + Truyền file còn chưa ổn định

2.3 Kết luận- Chúng ta.

2.4 Cơ sở lý thuyết 2.4.1 Sử dụng phần mềm Eclipse a. Khái niệm

- Eclipse là một môi trường phát triển tích hợp (IDE) được sử dụng trong lập trình máy tính . Nó chứa không gian làm việc cơ sở và hệ thống plug-in có thể mở rộng để tùy chỉnh môi trường. Eclipse được viết chủ yếu bằng Java và mục đích sử dụng chính của nó là để phát triển các ứng dụng Java, nhưng nó cũng có thể được sử dụng để phát triển các ứng dụng bằng các ngôn ngữ lập trình khác bao gồm C, C++, C # , JavaScript, PHP, Python, Ruby. Môi trường phát triển bao gồm các công cụ phát triển Eclipse Java (JDT) cho Java và Scala, Eclipse CDT cho C / C++ và Eclipse PDT cho PHP, trong số những môi trường khác.

Hình 3 Eclipse b. Ưu điểm

- Eclipse hỗ trợ việc xây dựng nhiều công cụ và một tập hợp các nhà cung cấp công cụ trên nhiều hệ điều hành, bao gồm cả Windows và Linux.

- Tích hợp liền mạch các công cụ

- Hỗ trợ công cụ thao tác với các kiểu nội dung bất kỳ, trong đó có Java, C, HTML, XML, GIF, EJB và JSP.

Page 10: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

10

- Tốc độ load khá nhanh do sử dụng SWT/Jface. Đây là một ưu điểm được người dùng đánh giá khá cao và đang ngày càng được cải thiện hơn nữa.

- Ngoài ra, Eclipse còn hỗ trợ cả môi trường phát triển ứng dụng GUI lẫn không dựa trên GUI.

c. Nhược điểm

- Cài đặt khá phức tạp và tốn bộ nhớ máy, đây là điểm trừ chính cho Eclipse.

- Do chứa quá nhiều plugins nên sẽ dẫn đến tình trạng thiếu tính nhất quán.

- Dung lượng của XAMPP cũng tương đối nặng.

2.4.2 Lập trình với Java Giới thiệu khái quát về ngôn ngữ Java

Java là một ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP). Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mãnguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode. Bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy. Bằng cách này, Java thường chạy nhanh hơn những ngôn ngữ lập trình thông dịch khác như Python, Perl, PHP,…Cú pháp Java được vay mượn nhiều từ C & C++ nhưng có cú pháp hướng đối tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn.

Một số đặc điểm của ngôn ngữ Java

- Tất cả các chương trình muốn thực thi được thì phải được biên dịch ra mã máy. Mã máycủa từng kiến trúc CPU của mỗi máy tính là khác nhau (tập lệnh mã máy của CPUIntel, CPU Solarix, CPU Macintosh … là khác nhau), vì vậy trước đây một sau khi được biên dịch xong chỉ có thể chạy được trên một kiến CPU cụ thể nào đó. Đối với CPU Intel chúng ta có thể chạy các hệ điều hành như Microsoft Windows, Unix, Linux, OS/2.

- Chương trình thực thi được trên Windows được biên dịch dưới dạng file có đuôi .EXE còn trên Linux thì được biên dịch dưới dạng file có đuôi .ELF, vì vậy trước đây một chương trình chạy được trên Windows muốn chạy được trên hệ điều hành khác như Linux chẳng hạn thì phải chỉnh sửa và biên dịch lại.

- Ngôn ngữ lập trình Java ra đời, nhờ vào máy ảo Java mà khó khăn nêu trên đã được khắc phục. Một chương trình viết bằng ngôn ngữ lập trình Java sẽ được biên dịch ra mã của máy ảo java (mã java bytecode). Sau đó máy ảo Java chịu trách nhiệm chuyển mã java bytecode thành mã máy tương ứng.Sun Microsystem chịu trách nhiệm phát triển các máy ảo Java chạy trên các hệ điều hành trên các kiến trúc CPU khác nhau.

- Hướng đối tượng trong Java không có tính đa kế thừa (multi inheritance) như trong C++ nhưng Java là một ngôn ngữ lập trình hướng đối tượng hoàn toàn. Tất cả mọi thứ đề

Page 11: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

11

cập đến trong Java đều liên quan đến các đối tượng được định nghĩa trước, thậm chí hàm chính của một chương trình viết bằng Java (đó là hàm main) cũng phải đặt bên trong một lớp. Hướng đối tượng trong Java không có tính đa kế thừa (multi inheritance) như trong C++ mà thay vào đó Java đưa ra khái niệm interface để hỗ trợ tính đa kế thừa. 

2.4.3 Giao thức TCP, UDP và các socket a. Khái niệm

Hình 4 Mô hình TCP/IP

- TCP/IP viết tắt của Transmission Control Protocol (TCP) và Internet Protocol (IP) là giao thức cài đặt truyền thông, chồng giao thức mà hầu hết các mạng máy tính ngày nay đều sử dụng để kết nối. TCP/IP được đặt theo tên của 2 giao thức là giao thức điều khiển giao vận và giao thức liên mạng. Đây là 2 giao thức đầu tiên trên thế giới được định nghĩa. TCP/IP được phát triển vào năm 1978 bởi Bob Kahn và Vint Cerf.

- TCP (Ttransmission Control Protocol) và UDP (User Datagram Protocol) đi kèm với nó là 2 loại socket Stream Socket sử dụng TCP truyền dòng bytes và Datagram Socket dử dụng UDP truyền gói tin. Với ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

+ Stream Socket (TCP) : Tạo luồng dữ liệu hai chiều, đáng tin cậy, có trình tự và không trùng lặp, dữ liệu chỉ được gửi/nhận khi có đã có liên kết. Dùng với Socket Class của java.

+ Datagram Socket (UDP): Có thể nhận dữ liệu không theo tình tự, trùng lặp. Dùng với DatagramSocket Class.

Page 12: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

12

+ Multicast Socket : cho phép dữ liệu được gửi đến nhiều bên nhận một lúc. Dùng với DatagramSocket Class.

b. Ưu điểm

- Không chịu sự kiểm soát của bất kỳ tổ chức nào. Vì vậy có thể tự do trong việc sử dụng.

- Có khả năng tương thích cao với tất cả các hệ điều hành, phần cứng máy tính và mạng. Vì vậy, giao thức này hoạt động hiệu quả với nhiều hệ thống khác nhau.

- Có khả năng mở rộng cao. Giao thức này có thể định tuyến và thông qua mạng có thể xác định được đường dẫn hiệu quả nhất.

2.4.4 Kiến trúc Server/Client

a. Khái niệm

Hình 5 Mô hình Server/Client

Kiến trúc Server/Client được sử dụng trong các hệ thống phân tán và bao gồm 2 thành phần riêng biệt: Server đóng vai trò phục vụ cung cấp chức năng và Client đóng vai trò người tiêu thụ sử dụng các chức năng đó. Thông thường 2 thành phần này kết nối với nhau qua mạng. Với Client là bên chủ động tạo kết nối và gửi yêu cầu đến Server, trong khi Server thụ động lắng nghe và hồi đáp yêu cầu đó.

b. Ưu điểm

- Với mô hình client server thì mọi thứ dường như đều nằm trên bàn của người sử dụng, nó có thể truy cập dữ liệu từ xa (bao gồm các công việc như gửi và nhận file, tìm kiếm thông tin,…) với nhiều dịch vụ đa dạng mà mô hình cũ không thể làm được. Mô hình

Page 13: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

13

client/server cung cấp một nền tảng lý tưởng cho phép tích hợp các kỹ thuật hiện đại như mô hình thiết kế hướng đối tượng, hệ chuyên gia, hệ thông tin địa lý (GIS)… Quản lý tập trung: dữ liệu được lưu trữ tập trung trên Server thay vì nằm rải rác trên nhiều máy, giúp đơn giản hóa việc truy xuất và cập nhật dữ liệu. - Dễ bảo trì: nhờ khả năng quản lý tập trung mà công việc bảo trì cũng trở nên nhẹ nhang

hơn vì phần lớn việc bảo trì chỉ cần thực hiện trên Server. Trong trường hợp hệ thống có nhiều Server với thiết bị dự phòng, quá trình bảo trì (như sửa chữa, thay thế Server) có thể diễn ra hoàn toàn trong suốt với phía Client.

2.3.5 Phương pháp hoạt động của bộ giao thức TCP/IP

Hình 6: Quá trình đóng mở gói dữ liệu trong TCP/IP

Cũng tương tự như trong mô hình OSI, khi truyền dữ liệu, quá trình tiến hành từ tầng trên xuống tầng dưới, qua mỗi tầng dữ liệu được them vào thông tin điều khiển gọi là Header. Khi nhận dữ liệu thì quá trình xảy ra ngược lại. dữ liệu được truyền từ tấng dưới lên và qua mỗi tầng

Page 14: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

14

thì phần header tương ứng sẽ được lấy đi và khi đến tầng trên cùng thì dữ liệu không còn phần header nữa.

Hình 7: Cấu trúc dữ liệu trong TCP/IP

Hình trên cho ta thấy lược đồ dữ liệu qua các tầng. Trong hình ta thấy tại các tầng khác nhau dữ liệu được mang những thuật ngữ khác nhau. - Trong tầng ứng dụng: dữ liệu là các luồng được gọi là stream.- Trong tầng giao vận: đơn vị dữ liệu mà TCP gửi xuống gọi là TCP segment.- Trong tầng mạng, dữ liệu mà IP gửi xuống tầng dưới gọi là IP Datagram.- Trong tầng liên kết, dữ liệu được truyền đi gọi là frame.2.4.6 Lập trình TCP Socket

Có hai lớp của gói java.net được sử dụng để tạo những chương trình server và client. Một chương trình server tạo một socket cụ thể được sử dụng để chờ lắng nghe kết nối từ yêu cầu của client (server socket). Trong một yêu cầu kết nối, chương trình tạo ra một socket mới mà thông qua đó nó sẽ trao đổi dữ liệu với client sử dụng các luồng input và output. Người lập trình phải mở một socket, thực hiên các việc tạovà biểu diễn các luồng I/O và sau đó là đóng socket.

Page 15: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

15

Hình 8 Quy trình tạo dựng một chương trình Client/Server

- Các bước để tạo một chương trình server đơn giản: 1) Mở cổng: ServerSocket server = new ServerSocket(PORT); 2) Chờ kết nối từ Client:Socket client = server.accept(); 3) Tạo các luồng I/O cho sự kết nối với Client DataInputStream dis = new DataInputStream(client.getInputStream()); DataOutputStream dos = new DataOutputStream(client.getOutputStream()); 4) Biểu diễn việc kết nối với Client 5) Nhận từ client: String line = dis.readLine(); 6) Gửi tới client: dos.writeBytes(“Hello\n”); 7) Đóng socket client.close();

- Các bước tạo một chương trình client đơn giản: 1) Tạo một đối tượng socket Socket client = new Socket(server, port_id);

- Tạo các luồng I/O cho sự kết nối với server dis = new DataInputStream(client.getInputStream()); dos = new DataOutputStream(client.getOutputStream()); 3) Thực hiện nhận và truyền dữ liệu qua luồng I/O 4) Nhận dữ liệu từ server: String line = dis.readLine(); 5) Gửi dữ liệu đến server: dos.writeBytes(“Hellon”); 6) Đóng socket khi hoàn thành client.close();

2.4.6 Lập trình với chương trình đa luồng (Multi-threading)

Thread (luồng) về cơ bản là một tiến trình con (sub-process). Một đơn vị xử lý nhỏ nhất của máy tính có thể thực hiện một công việc riêng biệt. Trong Java, các luồng được quản lý bởi máy ảo Java (JVM).

Page 16: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

16

Multi-thread (đa luồng) là một tiến trình thực hiện nhiều luồng đồng thời. Một ứng dụng Java ngoài luồng chính có thể có các luồng khác thực thi đồng thời làm ứng dụng chạy nhanh và hiệu quả hơn.

Đa nhiệm (multitasking)

Multitasking: Là khả năng chạy đồng thời một hoặc nhiều chương trình cùng một lúc trên một hệ điều hành. Hệ điều hành quản lý việc này và sắp xếp lịch phù hợp cho các chương trình đó. Ví dụ, trên hệ điều hành Windows chúng ta có làm việc đồng thời với các chương trình khác nhau như: Microsoft Word, Excel, Media Player, …

Chúng ta sử dụng đa nhiệm để tận dụng tính năng của CPU.

Đa nhiệm có thể đạt được bằng hai cách:

1. Đa nhiệm dựa trên đơn tiến trình (Process) – Đa tiến trình (Multiprocessing).

Mỗi tiến trình có địa chỉ riêng trong bộ nhớ, tức là mỗi tiến trình phân bổ vùng nhớ riêng biệt.

Tiến trình là nặng. Sự giao tiếp giữa các tiến trình có chi phí cao. Chuyển đổi từ tiến trình này sang tiến trình khác đòi hỏi thời gian để đăng ký

việc lưu và tải các bản đồ bộ nhớ, các danh sách cập nhật, …2. Đa nhiệm dựa trên luồng (Thread) – Đa luồng (MultiThreading).

Các luồng chia sẻ không gian địa chỉ ô nhớ giống nhau. Luồng là nhẹ. Sự giao tiếp giữa các luồng có chi phí thấp.

Đa tiến trình (multiprocessing) và đa luồng (multithreading) cả hai được sử dụng để tạo ra hệ thống đa nhiệm (multitasking). Nhưng chúng ta sử dụng đa luồng nhiều hơn đa tiến trình bởi vì các luồng chia sẻ một vùng bộ nhớ chung. Chúng không phân bổ vùng bộ nhớ riêng biệt để tiết kiệm bộ nhớ, và chuyển đổi ngữ cảnh giữa các luồng mất ít thời gian hơn tiến trình.

Page 17: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

17

CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH

1. Phân tích thiết kế hệ thống

i) Xác định đối tượng sử dụng+ Người dùng (User)

ii) Chức năng chính + Điều khiển máy tính từ xa+ Truyền - nhận file+ Trò chuyện trực tuyến

iii) Sơ đồ usecase

Page 18: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

18

Đặc tả usecase Usecase Điều khiển máy tính từ xa

Tên usecase Điều khiển máy tính từ xa

Đối tượng sử dụng Người dùng

Mô tả usecase 1.Người dùng cho phép người khác điều khiển máy tính thông qua phần mềm

2.Kết nối tới phần mềm để điều khiển

Page 19: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

19

3. Đóng chương trình

Usecase Truyền – nhận file

Tên usecase Truyền -nhận file

Đối tượng sử dụng Người dùng

Mô tả usecase 1.Người dùng cho phép người khác truyền file thông qua phần mềm

2.Kết nối tới phần mềm để truyền file

3. Đóng chương trình

Usecase Trò chuyện

Tên usecase Trò chuyện

Đối tượng sử dụng Người dùng

Mô tả usecase Trò chuyện với người khác trong lúc điều khiển máy tính

iv) Sơ đồ tuần tự

Page 20: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

20

Hình 6: Biểu đồ tuần tự điều khiển Desktop

Hình 7: Biểu đồ tuần tự nhắn tín

Page 21: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

21

Hình 8: Biểu đồ tuần tự kết nối

Hình 8: Biểu đồ tuần tự kết nối

2. Demo kết quả

Page 22: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

22

Hình 9: Giao diện chính

Hình 10: Giao diện điều khiển máy tính từ xa

Page 23: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

23

Hình 11. Màn hình truyền nhận file

Page 24: MỞ ĐẦUdaotao.vku.udn.vn/.../1609255874-bao-cao-do-an-co-so-4.docx · Web viewVới ngôn ngữ lập trình Java, chúng ta được cung cấp 3 loại khác nhau của sockets:

24

KẾT LUẬN1. Kết quả đạt được

- Xây dựng được chương trình QuickView

- Áp dụng , củng cố kiến thức học được trong chương trình

- Cải thiện khả năng làm việc nhóm.

2. Chưa đạt được

- Chương trình chưa tối ưu

- Tiến độ không đạt được như mong đợi