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ƯƠ[.]
lOMoARcPSD|18034504 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 : 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 Lớp : D14CNPM2 Khóa : 2019-2023 Hà Nội, tháng 12 năm 2021 lOMoARcPSD|18034504 Sinh viên thực hiện: ST T Họ tên Nội dung thực Điểm Chữ ký Gíao viên chấấm điểm: Họ tên Chữ ký Ghi Giáo viên 1: Giáo viên 2: LỜI NĨI ĐẦU Lập trình đối tượng phân tán vấn đề nóng bỏng cơng nghệ phân tán phần mềm ngày Java ngôn ngữ tiên phong với RMI (Remote Method Invocation), kỹ thuật cài đặt đối tượng phân tán vô hiệu vô hiệu linh động Do đó, chúng em chọn đề tài "Xây dựng ứng dụng mô việc đặt vé xem phim cho rạp chiếu phim” để giúp việc quản lý rạp phim cách hiệu Về mặt lý thuyết, phần trình bày gồm: Chương 1: Tổng quan đề tài Chương 2: Cơ sở lý thuyết lOMoARcPSD|18034504 Chương 3: Xây dựng ứng dụng mô việc đặt vé xem phim cho 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, thực hiện, đề tài giúp cho chúng em có thêm kiến thức lập trình Java, hiểu cách thức vận hành ứng dụng di động Điều góp phần nâng cao kiến thức chúng em viết ứng dụng RMI Mặc dù, chúng em cố gắng trình thực chắn cịn vài thiếu sót hạn chế Rất mong đóng góp ý kiến quý báu quý Thầy Phương Cảnh bạn lOMoARcPSD|18034504 MỤC LỤC LỜI CẢM ƠN LỜI NÓI ĐẦU MỤC LỤC DANH MỤC HÌNH VẼ .5 Chương 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Mục đích nghiên cứu 1.2 Nhiệm vụ nghiên cứu 1.3 Phương pháp nghiên cứu Chương 2: CƠ SỞ LÝ THUYẾT 2.1 JAVA 2.1.1 Tổng quan Java .9 2.1.2 Tại lại sử dụng Java? 10 2.2 Tổng quan RMI 11 2.2.1 Tổng quan RMI .11 2.2.2 RMI gì? 11 2.3 RMI làm việc nào? 11 2.4 Kiến trúc chương trình RMI 13 2.5 Các chế liên quan ứng dụng RMI 14 2.6 Cơ chế thực thi ứ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 lOMoARcPSD|18034504 3.1.3 Sơ đồ sở 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 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 cải tiến hệ thống 26 TÀI LIỆU THAM KHẢO 27 lOMoARcPSD|18034504 DANH MỤC HÌNH VẼ Số hiệu hình vẽ Tên hình vẽ Trang 2.1 Lời triệu gọi phương thức từ xa thi hành máy ảo Java xa 11 2.2 Nhiều dịch vụ đăng ký với đăng ký 12 2.3 Đối tượng stub gọi đối tượng skeleton 12 2.4 Kiến trúc chương trình kiểu RMI 13 2.5 Vai trò dịch vụ ánh xạ tên 14 2.6 Tiến trình thực thi ứng dụng RMI 15 3.1 Sơ đồ ERD 17 3.2 Sơ đồ sở liệu 17 3.3 Giao diện đăng nhập admin 18 3.4 Giao diện quản lý vé xem phim 18 3.5 Giao diện đăng nhập người dùng 19 3.6 Cập nhật thông tin cá nhân 19 3.7 Giao diện quên mật 20 3.8 Giao diện quản lý vé xem phim 20 3.9 Chọn phim 21 3.10 Đặt vé 21 3.11 Chọn rạp 22 lOMoARcPSD|18034504 3.12 Chọn xem 22 3.13 Chọn ghế 23 3.14 Thanh toán vé 23 3.15 Vé mua 24 lOMoARcPSD|18034504 Chươ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 việc tin học hóa xem yếu tố mang tính định hoạt động phủ, tổ chức cơng ty, đóng vai trị quan trọng, tạo bước đột phá mạnh mẽ Cùng với phát triển không ngừng kỹ thuật máy tính mạng điện tử, cơng nghệ thơng tin cơng nghệ có đẳng cấp cao chinh phục hết đỉnh cao đến đỉnh cao khác Mạng Internet sản phẩm có giá trị lớn lao ngày trở nên công cụ thiếu, tảng cho truyền tải, trao đổi thơng tin tồn cầu Giờ đây, cơng việc quản lý, tổ chức đặt vé rạp chiếu phim vấn đề quan tâm Người quản lý ln gặp khó khăn q trình hoạt động phận phim, lịch chiếu trang thiết bị đặc biệt 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ó phim thích hay khơng v.v… thụ động phiền tối tốn thời gian Bởi đó, ứng dụng RMI giúp người học ưa chuộng sử dụng phổ biến tính tiện lợi dể quản lý Giúp tiết kiệm chi phí phát triển sau cho đơn vị phát triển phần mềm triển khai phần mềm Nâng cao khả tư lập trình, bắt kịp xu hướng cơng nghệ Vì lẽ đó, chúng em thực đề tài "Xây dựng ứng dụng mô việc đặt vé xem phim cho rạp chiếu phim" Chúng em viết ứng dụng mà người quản lý tạo nhiều tiêu đề phim với thông tin phim cho phép khách hàng thực giao dịch, phía khách hàng đặt vé, mua vé, xem phim trả vé theo yêu cầu Chúng em thực đề tài với mục đích học tập ứng dụng chúng em xây dựng phần giúp việc quản lý rạp phim cách tiện lợi nhanh chóng lOMoARcPSD|18034504 1.2 Nhiệm vụ nghiên cứu So với phương thức khác, ứng dụng quản lý việc đặt vé mang lại hiệu tương đối cao tiết kiệm chi phí Hơn nữa, với việc kết nối sở liệu MySQL việc lưu trữ thơng tin nhanh chóng tiện lợi Biết nhu cầu đó, thân chúng em sinh viên công nghệ thơng tin ln thơi thúc thân phải làm Cho nên chúng em xây dựng nên ứng dụng, hệ thống đơn giản, thân thiện, dễ sử dụng, cho phép người dùng truy cập 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 giảng lớp kết hợp với việc học hỏi qua số tài liệu NXB Giáo Dục Sử dụng 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 lOMoARcPSD|18034504 Chương 2: CƠ SỞ LÝ THUYẾT 2.1 JAVA 2.1.1 Tổng quan Java Ngơn ngữ lập trình Java ban đầu phát triển Sun Microsystems James Gosling khởi xướng phát hành vào năm 1995 (Java 1.0 [J2SE]) Tính đến thời điểm (tháng 2/2015) phiên Java Standard Edition (JSE) Với ưu đa tảng (multi platform) Java lúc ứng dụng rộng rãi nhiều thiết bị từ máy tính đến mobile nhiều thiết bị phần cứng khác Java ngơn ngữ lập trình hướng đối tượng nên có đặc điểm chung ngơn ngữ hướng đối tượng: Tính trừu tượng (Abstraction): tiến trình xác định nhóm thuộc tính, hành động liên quan đến thực thể đặc thù, xét mối tương quan với ứng dụng phát triển Tính đa hình (Polymorphism): cho phép phương thức có tác động khác nhiều loại đối tượng khác Với tính đa hình, phương thức ứng dụng cho đối tượng thuộc lớp khác đưa đến kết khác Bản chất việc phương thức bao gồm số lượng tham số Tính kế thừa (Inheritance): Điều cho phép đối tượng chia sẻ hay mở rộng đặ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): tiến trình che giấu việc thực thi chi tiết đối tượng người sử dụng đối tượng Bên cạnh Java cịn có số đặc tính khác: Độc lập (Write Once, Run Anywhere): Khơng giống nhiều ngơn ngữ lập trình khác C C ++, Java biên dịch, khơng biên dịch sang mã máy cụ thể, mà thay vào mã bytecode chạy máy ảo Java (JVM) Điều đồng nghĩa với việc thiết bị có cài đặt JVM thực thi chương trình Java lOMoARcPSD|18034504 Đơn giản: học Java thật dễ nhiều so với C/C++, bạn quen với ngôn ngữ lập trình hướng đối tượng việc học Java dễ dàng Java trở nên đơn giản so với C/C++ loại bỏ tính đa kế thừa phép toán trỏ từ C/C++ Bảo mật: Java hỗ trợ bảo mật tốt thuật tốn mã hóa mã hóa chiều (one way hashing) mã hóa cơng cộng (public key) Đa luồng: Với tính đa luồng Java viết chương trình thực thi nhiều task lúc Tính thường sử dụng nhiều lập trình game Hiệu suất cao nhờ vào trình thu gom rác (garbage collection), giải phóng nhớ đối tượng không dùng đến Linh hoạt: Java xem linh hoạt C/C ++ thiết kế để thích ứng với nhiều môi trường phát triển 2.1.2 Tại lại sử dụng Java? Ngơn ngữ Java có cú pháp giống với ngôn ngữ C/C++ (là ngôn ngữ mạnh dùng phổ biến nay), nhiên thay đổi nhiều để đáp ứng khả độc lập với hệ điều hành Nền tảng ngơn ngữ Java class Các class đóng vai trị đối tượng, người lập trình xây dựng ứng dụng sử dụng số class chuẩn hệ thống, đồng thời tự xây dựng class khác đáp ứng yêu cầu công việc Java ngơn ngữ dễ học, lược bớt lệnh thừa rườm rà C/C++ để người lập trình trọng vào việc viết chương trình Đồng thời, cịn hạn chế người lập trình khơng can thiệp q sâu vào hệ thống Có điểm mạnh Java Java có độ bảo mật cao Một điểm Java miễn phí, cơng cụ lập trình Java thường nhiều, cộng đồng Java lớn, tạo plugin, mã nguồn mở phong phú cho bạn sử dụng 2.2 Tổng quan RMI 2.2.1 Tổng quan RMI lOMoARcPSD|18034504 RMI (Remote Method Invocation) công nghệ hệ thống phân tán cho phép máy ảo Java (JVM) gọi phương thức đối tượng nằm máy ảo Java khác mạng 2.2.2 RMI gì? RMI cơng nghệ Java cho phép JVM giao tiếp với JVM khác thi hành phương thức đối tượng nằm JVM Hình 2.1 Lời triệu gọi phương thức từ xa thi hành máy ảo Java xa 2.3 RMI làm việc nào? Các hệ thống sử dụng RMI cho việc truyền thông tiêu biểu phân thành loại: Clients Servers Server cung cấp dịch vụ RMI, Client gọi phương thức Server cung cấp RMI Server phải đăng ký dịch vụ tìm kiếm, cho phép Client tìm thấy thơng tin Server cung cấp, chúng tham chiếu tới dịch vụ khác Một ứng dụng chạy cho RMI có tên rmiregistry Ứng dụng chạy xử lý độc lập với chương trình RMI, cho phép đối tượng Server đăng ký tên Mỗi lần đối tượng đăng ký xong, đợi sau thực lời gọi từ phía Client lOMoARcPSD|18034504 Hình 2.2 Nhiều dịch vụ đăng ký với đăng ký Các đối tượng Client gửi thông điệp tới phương thức xa Trước phương thức xa thực thi Client phải có tham chiếu Server Điều thực dịch vụ tìm kiếm đăng ký RMI Đối tượng Client yêu cầu tên dịch vụ, nhận URL Nên nhớ URL cho HTTP, hầu hết giao thức đại diện sử dụng cú pháp URL Định dạng sử dụng RMI để đại diện cho đối tượng tham chiếu từ xa sau: rmi://hostname:port/servicename Trong hostname tên của Server địa IP Server, port số hiệu cổng cung cấp dịch vụ, servicename chuỗi mô tả dịch vụ Những thông tin chi tiết hoạt động mạng ln suốt với người phát triển ứng dụng làm việc với đối tượng xa, việc trở nên đơn giản làm việc với đối tượng máy cục Điều thực nhờ phép chia thông minh hệ thống RMI thành hai thành phần, stub 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 yêu cầu chuyển yêu cầu tới dịch vụ RMI Sau người phát triển tạo giao diện lOMoARcPSD|18034504 RMI, người cịn phải định nghĩa cụ thể giao diện Đối tượng định nghĩa gọi đối tượng skeleton 2.4 Kiến trúc chương trình RMI Kiến trúc chương trình theo chế RMI mơ tả hình sau: Hình 2.4 Kiến trúc chương trình kiểu RMI Trong đó: + Server chương trình cung cấp đối tượng gọi từ xa + Client chương trình có tham chiếu đến phương thức đối tượng xa Server + Stub chứa tham chiếu đến phương thức xa Server + Skeleton đón nhận tham chiếu từ Stub để kích hoạt phương thức tương ứng Server + Remote Reference Layer hệ thống truyền thông RMI + Transport tầng giao vận dựa giao thức TCP/IP máy mạng Bằng cách sử dụng kiến trúc phân tầng mà tầng phân cấp thay mà không ảnh hưởng tới tầng lại hệ thống 2.5 Các chế liên quan ứng dụng RMI Trong ứng dụng phân tán cần có chế sau: lOMoARcPSD|18034504 + Cơ chế định vị đối tượng xa (Locate remote objects) + Cơ chế giao tiếp với đối tượng xa (Communicate with remote objects) + Tải lớp danh bytecodes cho lớp mà chuyển tải qua lại máy ảo (Load class bytecodes for objects that are passed around) Hình 2.5 Vai trị dịch vụ ánh xạ tên Trong đó: + Server đăng ký tên cho đối tượng gọi từ xa 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ý Registry Server (looks up) tiếp gọi phương thức xa + Hình 2.5 cho thấy cách thức mà hệ thống RMI sử dụng Web Server sẵn có để truyền tải mã bytecodes lớp qua lại Client Server 2.6 Cơ chế thực thi ứng dụng RMI Tiến trình thực thi ứng dụng RMI diễn sau: Downloaded by vu ga (vuchinhhp2@gmail.com) lOMoARcPSD|18034504 Hình 2.6 Tiến trình thực thi ứng dụng RMI + Bước 1: Server tạo đối tượng cho phép gọi từ xa với Stub Skeleton chúng + Bước 2: Server sử dụng lớp Naming để đăng ký tên cho đối tượng từ xa (1) + Bước 3: Naming đăng ký Stub đố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ừ xa có yêu cầu (3) + Client yêu cầu Naming định vị đối tượng xa thông qua tên đăng ký (phương thức lookup) với dịch vụ tên (4) + Naming tải Stub đối tượng xa từ dịch vụ tên mà đối tượng đăng ký Client (5) + Cài đặt đối tượng Stub trả tham chiếu đối tượng xa cho Client (6) + Client thực thi lời gọi phương thức xa thông qua đối tượng Stub (7) Downloaded by vu ga (vuchinhhp2@gmail.com) lOMoARcPSD|18034504 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 3.1 Phân tích thiết kế hệ thống 3.1.1 Mô tả ứng dụng Định tác nhân sử dụng website 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 tác nhân trên, website gồm có module chính: module dành cho người quản lý, 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 rạp Hiển thị vị trí ghế ngồi Hiển thị danh sách phim, thông tin chi tiết phim Hiển thị lịch chiếu phim theo phim Lưu vé đặt hiển thị danh sách vé theo người dùng Module dành cho khách hàng: Xem thông tin phim chọn phim Chọn rạp chiếu phim lịch chiếu Chọn ghế ngồi Đặt vé xem phim xem vé đặt Quản lý thông tin cá nhân Downloaded by vu ga (vuchinhhp2@gmail.com) lOMoARcPSD|18034504 3.1.2 Sơ đồ ERD Hình 3.1 Sơ đồ ERD 3.1.3 Sơ đồ sở liệu Hình 3.2 Sơ đồ sở liệu Downloaded by vu ga (vuchinhhp2@gmail.com) lOMoARcPSD|18034504 3.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) lOMoARcPSD|18034504 Downloaded by vu ga (vuchinhhp2@gmail.com) ... tin việc tin học hóa xem yếu tố mang tính định hoạt động phủ, tổ chức cơng ty, đóng vai trị quan trọng, tạo bước đột phá mạnh mẽ Cùng với phát triển không ngừng kỹ thuật máy tính mạng điện tử, cơng... chương trình Java lOMoARcPSD|18034504 Đơn giản: học Java thật dễ nhiều so với C/C++, bạn quen với ngơn ngữ lập trình hướng đối tượng việc học Java dễ dàng Java trở nên đơn giản so với C/C++... yêu cầu tên dịch vụ, nhận URL Nên nhớ URL cho HTTP, hầu hết giao thức đại diện sử dụng cú pháp URL Định dạng sử dụng RMI để đại diện cho đối tượng tham chiếu từ xa sau: rmi://hostname:port/servicename