Untitled TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO MÔN HỌC ĐỀ TÀI LẬP TRÌNH MOBILE ĐỀ TÀI ỨNG DỤNG XEM PHIM Sinh viên thực hiện LÊ QUANG VINH BÙI TIẾN DŨNG Giảng viên hướng dẫn PHƯƠ[.]
Trang 1ĐỀ TÀI : ỨNG DỤNG XEM PHIM
Sinh viên thực hiện : LÊ QUANG VINH
: BÙI TIẾN DŨNG Giảng viên hướng dẫn : PHƯƠNG VĂN CẢNH
Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MỀM
Hà Nội, tháng 12 năm 2021
Trang 2LỜI NÓI ĐẦU
Lập trình đối tượng phân tán là một vấn đề nóng bỏng của công nghệ phân tán phầnmềm ngày này Java là ngôn ngữ đi tiên phong với RMI (Remote Method Invocation),một kỹ thuật cài đặt các đối tượng phân tán vô cùng hiệu vô cùng hiệu quả và linhđộng Do đó, chúng em đã chọn đề tài "Xây dựng ứng dụng mô phỏng việc đặt vé xemphim cho các rạp chiếu phim” để giúp việc quản lý rạp phim này một cách hiệu quả
Về mặt lý thuyết, các phần sẽ được trình bày gồm:
Chương 1: Tổng quan về đề tài
Chương 2: Cơ sở lý thuyết
Trang 3Chương 3: Xây dựng ứng dụng mô phỏng việc đặt vé xem phim cho các rạp chiếu phim
Chương 4: Kết luận, hướng phát triển
Về mặt thực tiễn, khi thực hiện, đề tài giúp cho chúng em có thêm kiến thức về lậptrình Java, hiểu được cách thức vận hành của một ứng dụng di động cơ bản là như thếnào Điều này góp phần nâng cao kiến thức của chúng em khi viết một ứng dụng RMItiếp theo
Mặc dù, chúng em đã cố gắng trong quá trình thực hiện nhưng chắc chắn sẽ còn mộtvài thiếu sót và hạn chế Rất mong được sự đóng góp ý kiến quý báu của quý ThầyPhương Cảnh và các bạn
Trang 4MỤC LỤC
LỜI CẢM ƠN 1
LỜI NÓI ĐẦU 2
MỤC LỤC 3
DANH MỤC HÌNH VẼ 5
Chương 1: TỔNG QUAN VỀ ĐỀ TÀI 7
1.1 Mục đích nghiên cứu 7
1.2 Nhiệm vụ nghiên cứu 8
1.3 Phương pháp nghiên cứu 8
Chương 2: CƠ SỞ LÝ THUYẾT 9
2.1 JAVA 9
2.1.1 Tổng quan về Java 9
2.1.2 Tại sao lại sử dụng Java? 10
2.2 Tổng quan về RMI 11
2.2.1 Tổng quan về RMI 11
2.2.2 RMI là gì? 11
2.3 RMI làm việc như thế nào? 11
2.4 Kiến trúc của chương trình RMI 13
2.5 Các cơ chế liên quan trong một ứng dụng RMI 14
2.6 Cơ chế thực thi của một ứng dụng RMI 15
Chương 3: XÂY DỰNG ỨNG DỤNG MÔ PHỎNG VIỆC ĐẶT VÉ XEM PHIM CHO CÁC RẠP CHIẾU PHIM 16
3.1 Phân tích thiết kế hệ thống 16
3.1.1 Mô tả ứng dụng 16
3.1.2 Sơ đồ ERD 17
Trang 53.1.3 Sơ đồ cơ sở dữ liệu 17
3.4 Giao diện ứng dụng 18
3.4.1 Giao diện “Server” 18
3.3.2 Giao diện “Client” 18
Chương 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 25
4.1 Kết luận 25
4.1.1 Đã đạt được 25
4.1.2 Hạn chế 25
4.2 Kiến nghị 25
4.2.1 Định hướng phát triển 25
4.2.2 Định hướng mở rộng và cải tiến hệ thống 26
TÀI LIỆU THAM KHẢO 27
Trang 62.6 Tiến trình thực thi của ứng dụng RMI 15
Trang 73.12 Chọn giờ xem 22
Trang 8Chương 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Mục đích nghiên cứu
Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem là mộttrong những yếu tố mang tính quyết định trong hoạt động của chính phủ, tổ chức cũngnhư các công ty, nó đóng vai trò hết sức quan trọng, có thể tạo ra những bước đột phámạnh mẽ
Cùng với sự phát triển không ngừng về kỹ thuật máy tính và mạng điện tử,công nghệ thông tin cũng được những công nghệ có đẳng cấp cao và lần lượt chinhphục hết đỉnh cao này đến đỉnh cao khác Mạng Internet là một trong những sản phẩm
có giá trị hết sức lớn lao và ngày càng trở nên một công cụ không thể thiếu, là nềntảng chính cho sự truyền tải, trao đổi thông tin trên toàn cầu
Giờ đây, công việc quản lý, tổ chức và đặt vé ở rạp chiếu phim là vấn đề đangđược quan tâm Người quản lý luôn gặp khó khăn trong quá trình hoạt động của từng
bộ phận như phim, lịch chiếu và các trang thiết bị và đặc biệt là quá trình mua bán vé.Khi muốn mua vé xem phim, người mua phải đến tận rạp, chờ đợi xếp hàng, xem còn
vé hay không, còn chỗ ngồi tốt hay không, có bộ phim mình thích hay không v.v… rấtthụ động và phiền toái và tốn thời gian Bởi đó, những ứng dụng RMI giúp người họcrất ưa chuộng và được sử dụng phổ biến vì tính tiện lợi và dể quản lý của nó
Giúp tiết kiệm chi phí phát triển về sau cho đơn vị phát triển phần mềm triểnkhai phần mềm Nâng cao khả năng tư duy lập trình, bắt kịp xu hướng công nghệ mới
Vì lẽ đó, chúng em đã thực hiện đề tài "Xây dựng ứng dụng mô phỏng việc đặt
vé xem phim cho các rạp chiếu phim" Chúng em sẽ viết một ứng dụng mà ở đó ngườiquản lý có thể tạo ra nhiều tiêu đề phim cùng với thông tin phim và cho phép kháchhàng thực hiện các giao dịch, phía khách hàng có thể đặt vé, mua vé, xem phim và trả
vé theo yêu cầu Chúng em thực hiện đề tài này với mục đích học tập là chính và ứngdụng của chúng em xây dựng một phần giúp việc quản lý rạp phim một cách tiện lợi
và nhanh chóng hơn
Trang 91.2 Nhiệm vụ nghiên cứu
So với những phương thức khác, ứng dụng quản lý việc đặt vé mang lại hiệuquả tương đối cao và tiết kiệm được chi phí Hơn thế nữa, với việc kết nối cơ sở dữliệu MySQL thì việc lưu trữ thông tin một nhanh chóng và tiện lợi hơn
Biết được nhu cầu đó, bản thân của chúng em là những sinh viên công nghệthông tin luôn thôi thúc bản thân mình phải làm gì đó Cho nên chúng em đã xây dựngnên một ứng dụng, một hệ thống đơn giản, thân thiện, dễ sử dụng, cho phép ngườidùng truy cập một cách nhanh chóng
1.3 Phương pháp nghiên cứu
Cách tiếp cận: Nghiên cứu các bài giảng trên lớp kết hợp với việc học hỏi qua một số tài liệu của NXB Giáo Dục
Sử dụng các phương pháp nghiên cứu:
- Phương pháp đọc tài liệu
- Phương pháp phân tích mẫu
- Phương pháp thực nghiệm
Trang 10Chương 2: CƠ SỞ LÝ THUYẾT 2.1 JAVA
2.1.1 Tổng quan về Java
Ngôn ngữ lập trình Java ban đầu được phát triển bởi Sun Microsystems do JamesGosling khởi xướng và phát hành vào năm 1995 (Java 1.0 [J2SE]) Tính đến thời điểmnày (tháng 2/2015) phiên bản mới nhất của Java Standard Edition (JSE) là 8 Với ưuthế về đa nền tảng (multi platform) Java càng lúc càng được ứng dụng rộng rãi trênnhiều thiết bị từ máy tính đến mobile và nhiều thiết bị phần cứng khác
Java là ngôn ngữ lập trình hướng đối tượng nên nó cũng có 4 đặc điểm chung của cácngôn ngữ hướng đối tượng:
Tính trừu tượng (Abstraction): là tiến trình xác định và nhóm các thuộc tính,các hành động liên quan đến một thực thể đặc thù, xét trong mối tương quanvới ứng dụng đang phát triển
Tính đa hình (Polymorphism): cho phép một phương thức có các tác động khácnhau trên nhiều loại đối tượng khác nhau Với tính đa hình, nếu cùng mộtphương thức ứng dụng cho các đối tượng thuộc các lớp khác nhau thì nó đưađến những kết quả khác nhau Bản chất của sự việc chính là phương thức nàybao gồm cùng một số lượng các tham số
Tính kế thừa (Inheritance): Điều này cho phép các đối tượng chia sẻ hay mởrộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại
Tính đóng gói (Encapsulation): là tiến trình che giấu việc thực thi những chitiết của một đối tượng đối với người sử dụng đối tượng ấy
Bên cạnh đó Java còn có một số đặc tính khác:
Độc lập nền (Write Once, Run Anywhere): Không giống như nhiều ngôn ngữlập trình khác như C và C ++, khi Java được biên dịch, nó không được biêndịch sang mã máy cụ thể, mà thay vào đó là mã bytecode chạy trên máy ảoJava (JVM) Điều này đồng nghĩa với việc bất cứ thiết bị nào có cài đặt JVM sẽ
có thể thực thi được các chương trình Java
Trang 11 Đơn giản: học Java thật sự dễ hơn nhiều so với C/C++, nếu bạn đã quen với cácngôn ngữ lập trình hướng đối tượng thì việc học Java sẽ dễ dàng hơn Java trởnên đơn giản hơn so với C/C++ do đã loại bỏ tính đa kế thừa và phép toán contrỏ từ C/C++.
Bảo mật: Java hỗ trợ bảo mật rất tốt bởi các thuật toán mã hóa như mã hóa mộtchiều (one way hashing) hoặc mã hóa công cộng (public key)
Đa luồng: Với tính năng đa luồng Java có thể viết chương trình có thể thực thinhiều task cùng một lúc Tính năng này thường được sử dụng rất nhiều tronglập trình game
Hiệu suất cao nhờ vào trình thu gom rác (garbage collection), giải phóng bộnhớ đối với các đối tượng không được dùng đến
Linh hoạt: Java được xem là linh hoạt hơn C/C ++ vì nó được thiết kế để thíchứng với nhiều môi trường phát triển
2.1.2 Tại sao lại sử dụng Java?
Ngôn ngữ Java có cú pháp rất giống với ngôn ngữ C/C++ (là một ngôn ngữ rấtmạnh được dùng phổ biến hiện nay), tuy nhiên nó đã được thay đổi khá nhiều để đápứng khả năng độc lập với hệ điều hành Nền tảng của ngôn ngữ Java là các class Cácclass đóng vai trò như những đối tượng, người lập trình khi xây dựng ứng dụng sẽ sửdụng một số class chuẩn của hệ thống, đồng thời có thể tự mình xây dựng class khácđáp ứng yêu cầu công việc
Java là ngôn ngữ dễ học, nó lược bớt những lệnh thừa và rườm rà của C/C++
để người lập trình chú trọng vào việc viết chương trình Đồng thời, nó còn hạn chếngười lập trình không can thiệp quá sâu vào hệ thống
Có một điểm mạnh của Java là Java có độ bảo mật cao Một điểm nữa là Java
là miễn phí, các công cụ lập trình của Java thường rất nhiều, các cộng đồng Java thìrất lớn, tạo ra được các plugin, các mã nguồn mở rất phong phú cho bạn sử dụng
2.2 Tổng quan về RMI
2.2.1 Tổng quan về RMI
Trang 12RMI (Remote Method Invocation) là một công nghệ của các hệ thống phân tán nó chophép một máy ảo Java (JVM) gọi những phương thức của đối tượng nằm trên máy ảoJava khác ở trong cùng một mạng
2.2.2 RMI là gì?
RMI là một công nghệ Java cho phép một JVM giao tiếp với một JVM khác và thihành các phương thức của đối tượng nằm trên JVM đó
Hình 2.1 Lời triệu gọi phương thức từ xa được thi hành trên máy ảo Java ở xa
2.3 RMI làm việc như thế nào?
Các hệ thống sử dụng RMI cho việc truyền thông tiêu biểu được phân thành 2loại: Clients và Servers Server cung cấp dịch vụ RMI, và Client gọi các phương thức
do Server cung cấp RMI Server phải đăng ký một dịch vụ tìm kiếm, cho phép cácClient tìm thấy thông tin Server cung cấp, hoặc chúng có thể tham chiếu tới dịch vụkhác
Một ứng dụng chạy nền cho RMI có tên là rmiregistry Ứng dụng này chạy và
xử lý độc lập với các chương trình RMI, nó cho phép các đối tượng trên Server đăng
ký tên của mình Mỗi lần một đối tượng được đăng ký xong, nó sẽ đợi sau đó thựchiện lời gọi từ phía Client
Trang 13Hình 2.2 Nhiều dịch vụ đăng ký với một bộ đăng kýCác đối tượng trên Client sẽ gửi những thông điệp tới những phương thức ở xa.Trước khi một phương thức ở xa được thực thi Client phải có tham chiếu của nó trênServer Điều đó được thực hiện bởi dịch vụ tìm kiếm trong bộ đăng ký RMI
Đối tượng trên Client yêu cầu một tên dịch vụ, và sẽ nhận được một URL Nênnhớ những URL không phải cho HTTP, hầu hết các giao thức có thể đại diện sử dụng
cú pháp của URL Định dạng được sử dụng bởi RMI để đại diện cho một đối tượngtham chiếu từ xa như sau: rmi://hostname:port/servicename
Trong đó hostname tên của của Server hoặc địa chỉ IP của Server, port số hiệucổng cung cấp dịch vụ, servicename là một chuỗi mô tả dịch vụ Những thông tin chitiết của hoạt động mạng thì luôn trong suốt với người phát triển ứng dụng khi làm việcvới các đối tượng ở xa, việc đó trở nên đơn giản như khi làm việc với đối tượng tạimáy cục bộ Điều này được thực hiện nhờ một phép chia thông minh của hệ thốngRMI thành hai thành phần, một là stub và một là skeleton
Hình 2.3 Đối tượng stub gọi đối tượng skeleton
Tại RMI Server, đối tượng skeleton có nhiệm vụ lắng nghe những yêu cầu vàchuyển các yêu cầu đó tới dịch vụ RMI Sau khi người phát triển tạo ra một giao diện
Trang 14RMI, người đó còn phải định nghĩa cụ thể giao diện đó Đối tượng được định nghĩanày sẽ được gọi là đối tượng skeleton.
2.4 Kiến trúc của chương trình RMI
Kiến trúc của một chương trình theo cơ chế RMI được mô tả như hình sau:
Hình 2.4 Kiến trúc chương trình kiểu RMITrong đó:
+ Server là chương trình cung cấp các đối tượng có thể được gọi từ xa
+ Client là chương trình có tham chiếu đến các phương thức của các đối tượng ở xatrên Server
+ Stub chứa các tham chiếu đến các phương thức ở xa trên Server
+ Skeleton đón nhận các tham chiếu từ Stub để kích hoạt phương thức tương ứng trênServer
+ Remote Reference Layer là hệ thống truyền thông của RMI
+ Transport là tầng giao vận được dựa trên giao thức TCP/IP giữa các máy trongmạng Bằng cách sử dụng kiến trúc phân tầng như trên mà mỗi tầng có thể phân cấphoặc thay thế mà không ảnh hưởng tới các tầng còn lại của hệ thống
2.5 Các cơ chế liên quan trong một ứng dụng RMI
Trong một ứng dụng phân tán cần có các cơ chế sau:
Trang 15+ Cơ chế định vị đối tượng ở xa (Locate remote objects)
+ Cơ chế giao tiếp với các đối tượng ở xa (Communicate with remote objects)
+ Tải các lớp danh bytecodes cho các lớp mà nó được chuyển tải qua lại giữa máy ảo(Load class bytecodes for objects that are passed around)
Hình 2.5 Vai trò của dịch vụ ánh xạ tênTrong đó:
+ Server đăng ký tên cho đối tượng có thể được gọi từ xa của mình với dịch vụánh xạ tên (Registry Server)
+ Client tìm đối tượng ở xa thông qua tên đã đăng ký trên Registry Server(looks up) và tiếp đó gọi các phương thức ở xa
+ Hình 2.5 cũng cho thấy cách thức mà hệ thống RMI sử dụng một Web Serversẵn có để truyền tải mã bytecodes của các lớp qua lại giữa Client và Server
2.6 Cơ chế thực thi của một ứng dụng RMI
Tiến trình thực thi của một ứng dụng RMI diễn ra như sau:
Downloaded by vu ga (vuchinhhp2@gmail.com)
Trang 16Hình 2.6 Tiến trình thực thi của ứng dụng RMI+ Bước 1: Server tạo các đối tượng cho phép gọi từ xa cùng với Stub vàSkeleton của chúng
+ Bước 2: Server sử dụng lớp Naming để đăng ký tên cho một đối tượng từ xa(1)
+ Bước 3: Naming đăng ký Stub của đối tượng từ xa với Registry Server (2) + Bước 4: Registry Server sẵn sàng cung cấp tham chiếu đến đối tượng từ xakhi có yêu cầu (3)
+ Client yêu cầu Naming định vị đối tượng ở xa thông qua tên đã được đăng ký(phương thức lookup) với dịch vụ tên (4)
+ Naming tải Stub của đối tượng ở xa từ dịch vụ tên mà đối tượng đã đăng ký
về Client (5)
+ Cài đặt đối tượng Stub và trả về tham chiếu đối tượng ở xa cho Client (6) + Client thực thi một lời gọi phương thức ở xa thông qua đối tượng Stub (7)
Downloaded by vu ga (vuchinhhp2@gmail.com)
Trang 17Chương 3: XÂY DỰNG ỨNG DỤNG MÔ PHỎNG VIỆC ĐẶT VÉ XEM PHIM
CHO CÁC RẠP CHIẾU PHIM 3.1 Phân tích thiết kế hệ thống
3.1.1 Mô tả ứng dụng
Định các tác nhân sử dụng website như sau:
Admin: Người quản lý hệ thống, bao gồm quản lí rạp chiếu phim, phòng chiếu,ghế ngồi, phim, lịch chiếu phim
Khách Hàng: Người sử dụng phần mềm để đặt vé xem phim
Dựa vào các tác nhân trên, website của chúng tôi gồm có 2 module chính:
1 module dành cho người quản lý, 1 module dành cho khách hàng
Module dành admin:
Hiển thị danh sách rạp phim
Hiển thị danh sách phòng chiếu phim theo từng rạp
Hiển thị vị trí ghế ngồi
Hiển thị danh sách phim, thông tin chi tiết của phim
Hiển thị lịch chiếu phim theo từng phim
Lưu vé đã đặt và hiển thị danh sách vé theo từng người dùng
Module dành cho khách hàng:
Xem thông tin phim và chọn phim
Chọn rạp chiếu phim và lịch chiếu
Chọn ghế ngồi
Đặt vé xem phim và xem vé đã đặt
Quản lý thông tin cá nhân
Downloaded by vu ga (vuchinhhp2@gmail.com)
Trang 183.1.2 Sơ đồ ERD
Hình 3.1 Sơ đồ ERD
3 1 3 Sơ đồ cơ sở dữ liệu
Hình 3.2 Sơ đồ cơ sở dữ liệu
Downloaded by vu ga (vuchinhhp2@gmail.com)
Trang 193.4 Giao diện ứng dụng
3.4.1 Giao diện “Server”
3.3.2 Giao diện “Client”
Downloaded by vu ga (vuchinhhp2@gmail.com)
Trang 20Downloaded by vu ga (vuchinhhp2@gmail.com)
Trang 21Chương 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 4.1 Kết luận
Giao diện còn chưa được đẹp mắt
Các chức năng còn hạn chế, chưa thực sự tạo ra nhiều chức năng để phù hợphơn với người sử dụng
Mô hình hệ thống chưa được tối ưu nhiều
4.2 Kiến nghị
4.2.1 Định hướng phát triển
Với sự tìm hiểu cơ bản về các ngôn ngữ và công cụ, chúng em sẽ tiếp tục mài
mò và tìm hiểu để nâng cao trình độ cũng như trau dồi kiến thức để xây dựng nhữngứng dụng có quy mô lớn hơn Từ đó, những ứng dụng hoàn thiện và đầy đủ tính năng
sẽ được sinh ra để phục vụ những cá nhân, đối tượng cụ thể với mục đích tốt hơn Khiviết ứng dụng chúng em cũng có cơ hội để thể hiện bản thân mình hơn, chúng em tin
là sau khi làm tốt ứng dụng này, những ứng dụng trong tương lai sẽ không quá là khókhăn với chúng em
Về phần ứng dụng của chúng em, chúng em sẽ tiếp tục hoàn thiện nó với hyvọng trong một tương lai không xa, ứng dụng của chúng em sẽ hoàn thiện và có thểthương mại hóa
Downloaded by vu ga (vuchinhhp2@gmail.com)