Đồ án Xây dựng hệ thống hỗ trợ quản lý cung cấp phim theo yêu cầu - Nguyễn Trịnh Đông

pdf 78 trang huongle 1970
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Xây dựng hệ thống hỗ trợ quản lý cung cấp phim theo yêu cầu - Nguyễn Trịnh Đông", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfdo_an_xay_dung_he_thong_ho_tro_quan_ly_cung_cap_phim_theo_ye.pdf

Nội dung text: Đồ án Xây dựng hệ thống hỗ trợ quản lý cung cấp phim theo yêu cầu - Nguyễn Trịnh Đông

  1. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG o0o XÂY DỰNG HỆ THỐNG HỖ TRỢ QUẢN LÝ CUNG CẤP PHIM THEO YÊU CẦU ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY NGÀNH CÔNG NGHỆ THÔNG TIN Giáo viên hƣớng dẫn: Ths. Nguyễn Trịnh Đông Sinh viên: Trần Thị Hồng Nhật Lớp: CTL401 Hải Phòng, 7-2012 1
  2. MỤC LỤC LỜI CẢM ƠN 1 MỤC LỤC 2 DANH MỤC CÁC TỪ VIẾT TẮT 4 DANH MỤC CÁC HÌNH 5 GIỚI THIỆU 7 CHƢƠNG 1: CƠ SỞ LÝ THUYẾT 8 1.1. CÁC KHÁI NIỆM CƠ BẢN 8 1.1.1. Một số khái niệm cơ bản về Internet 8 1.1.2. Dịch vụ thông tin World Wide Web 11 1.2. PHƢƠNG THỨC KẾT NỐI 14 1.2.1. Một số phương pháp cũ khai thác dữ liệu dựa trên Web 14 1.2.2. Phương pháp khai thác dữ liệu dựa trên Web service 19 1.3. TỔNG QUAN VỀ THƢƠNG MẠI ĐIỆN TỬ 23 1.3.1. Giới thiệu Thương mại điện tử 23 1.3.2. Cơ sở của thương mại điện tử 24 1.3.3. Thanh toán điện tử 25 1.3.4. Lược đồ bảo mật trong các hệ thống thanh toán điện tử 27 1.4. KIẾN THỨC TỔNG QUAN VỀ LẬP TRÌNH PHP 31 1.4.1. Giới thiệu về ngôn ngữ PHP 31 1.4.2. Xuất giá trị ra trình duyệt 33 1.4.3 Giới thiệu MySQL 42 1.4.4. Câu lệnh SQL 46 CHƢƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 49 2.1. MÔ TẢ HỆ THỐNG CUNG CẤP PHIM THEO YÊU CẦU 49 2.2. MỤC ĐÍCH XÂY DỰNG WEBSITE 50 2.3. PHÂN TÍCH HỆ THỐNG 50 2.3.1. Các kiểu người dùng 50 2.3.2. Đặc tả quy trình nghiệp vụ của hệ thống 50 2
  3. 2.3.3 Bảng phân tích yếu tố bài toán: 53 2.3.4. Mô hình hóa nghiệp vụ 54 2.3.5. Mô hình liên kết thực thể ER 61 2.3.6. Thiết kế các bảng dữ liệu 66 2.3.7.Mô hình cơ sở dữ liệu vật lý 70 CHƢƠNG 3: HỆ THỐNG THỬ NGHIỆM 70 3.1. YÊU CẦU HỆ THỐNG 70 3.2. GIAO DIỆN CỦA WEBSITE 71 3.3. CHỨC NĂNG CỦA KHÁCH HÀNG 71 3.4. CHỨC NĂNG QUẢN TRỊ 74 KẾT LUẬN 77 TÀI LIỆU THAM KHẢO 78 3
  4. DANH MỤC CÁC TỪ VIẾT TẮT Tên viết tắt Tiếng Anh LAN Local Area Networks WAN Wide Area Networks TCP/IP Transmission Control Protocol Internet Protocol WWW World Wide Web FTP File Transfer Protocol HTML Hyper Text Markup Language HTTP Hyper Text Transfer Protocol URL Universal Resourse Locator RMI Remote Method Invocation CORBA Common Object Request Broker Architecture ORB Object Request Broker IIOP Internet Inter ORB Protocol WSDL Webservice Decription Language B2B Business To Business B2C Business To Consumer C2C Consumer To Consumer C2B Consumer To Business SSL Secure Socket Layer SET Secure Electronic Transaction DES Data Encryption Standard RSA Rivest, Shamir, Adelman CA Certificate Authority PHP Hyper Text Preprocessor 4
  5. DANH MỤC CÁC HÌNH Hình 1:Mô hình truy nhập cơ sở dữ liệu web bằng Java Socket 14 Hình 2: Mô hình truy nhập cơ sở dữ liệu bằng Servlet 16 Hình 3: Mô hình truy nhập cơ sở dữ liệu web bằng RMI 17 Hình 4: Mô hình truy nhập cơ sở dữ web bằng Java CORBA 18 Hình 5: Web service nhìn từ trong 20 Hình 6: Hoạt động của Proxy 23 Hình 7: Bảng phân tích biểu đồ hoạt động 52 Hình 8: Biểu đồ ngữ cảnh của hệ thống 54 Hình 9: Biểu đồ phân rã chức năng 55 Hình 10: Ma trận thực thể chức năng 56 Hình 11: Biểu đồ luồng dữ liệu mức 0 57 Hình 12: Biểu đồ luồng dữ liệu vật lý mức 1: 1.0 Tìm kiếm 58 Hình 13: Biểu đồ luồng dữ liệu vật lý mức 1: 2.0 Đặt hàng 59 Hình 14: Biểu đồ luồng dữ liệu vật lý mức 1: 3.0 Quản trị Hệ thống 60 Hình 15: Mô hình ER 62 Hình 16: Mô hình quan hệ 66 Hình 17:Cơ Sở dữ liệu vật lý 70 Hình 18: Giao diện chính của chƣơng trình 71 Hình 19: Giao diện tìm kiếm 72 Hình 20: Thông tin phim đã chọn 72 Hình 21: Danh sách phim đã chọn 73 Hình 22: Nhập thông tin khách hàng 73 5
  6. Hình 23: Giao diện đăng nhập 74 Hình 24: Giao diện quản lý ngƣời dùng 74 Hình 25: Danh sách phim 75 Hình 26: Danh sách khách hàng 76 Hình 27: Tạo hóa đơn 76 6
  7. GIỚI THIỆU Phát triển các ứng dụng phân tán là xu hƣớng tất yếu của các ngành ứng dụng Công nghệ Thông tin. Đặc biệt là các ứng dụng dựa trên nền Web. Với toàn bộ ƣu thế về công nghệ cũng nhƣ sự thuận tiện trong triển khai các dự án. Các ứng dụng Web trở nên phổ biến và đem lại nhiều lợi ích trong một số lĩnh vực nhƣ: truyền thông, kinh doanh, giáo dục, giải trí, Từ các ƣu điểm của các ứng dụng triển khai dựa trên nền Web,Em chọn đề tài:“Xây dựng hệ thống hỗ trợ quản lýcung cấp phim theo yêu cầu”,với mục đích xây dựng một hệ thống hỗ trợ quản lý bán phim trực tuyến, emsử dụng công nghệ dựa trên Web để xây dựng mộtWebsite cho phép ngƣời dùng có thể truy cập vào để đăng ký mua phim trực tiếp thông qua mạng Internet. Hệ thống đƣợc xây dựng bằng ngôn ngữ PHP, hệ quản trị cơ sở dữ liệu MySQL với những tính năng cơ bản nhƣ tìm kiếm phim, đặt hàng, và các phản hồi ý kiến liên quan. Đồ án đƣợc tổ chức nhƣ sau: Giới thiệu: Giới thiệu chung về ứng dụng phát triển trên nền Web và lí do chọn đề tài. Chƣơng 1: Trình bày cơ sở lý thuyết, một số khái niệm và kiến thức cơ bản. Chƣơng 2:Nội dung phân tích thiết kế hệ thốnghỗ trợ quản lý cung cấp phim. Chƣơng 3:Trình bày một số kết quả thực nghiệm. Kết luận:Tổng kết và đánh giá ưu nhược điểm và hướng phát triển trong tương lai. 7
  8. CHƢƠNG 1: CƠ SỞ LÝ THUYẾT 1.1. CÁC KHÁI NIỆM CƠ BẢN 1.1.1. Một số khái niệm cơ bản về Internet 1.1.1.1 Internet và xuất xứ của nó Internet là một mạng máy tính nối hàng triệu máy tính với nhau trên phạm vi toàn thế giới. Internet có nguồn gốc từ một dự án xây dựng của Bộ Quốc Phòng Mỹ có tên là ARPANET vào năm 1969, dự án nhằm thực nghiệm xây dựng một mạng nối các trung tâm nghiên cứu khoa học và quân sự với nhau. Đến năm 1970 đã có thêm 2 mạng: Store-and-forward và ALOHAnet, đến năm 1972 hai mạng này đã đƣợc kết nối với ARPANET. Cũng trong năm 1972 Ray Tomlinson phát minh ra chƣơng trình thƣ tín điện tử E-mail. Chƣơng trình này đã nhanh chóng đƣợc ứng dụng rộng rãi để gửi các thông điệp trên mạng phân tán. Cho đến thời điểm hiện tại, Internet đã trở thành một phần không thể tách rời của cuộc sống hiện đại. Các loại hình dịch vụ đƣợc sử dụng nhiều trên Internet là: Giáo dục, mua bán, giải trí, công việc thƣờng ngày tại công sở, truyền đạt thông tin, các loại dịch vụ có liên quan đến thông tin cá nhân. Trong đó, các dịch vụ liên quan đến thông tin cá nhân chiếm nhiều nhất, sau đó là công việc, giáo dục, giải trí và mua bán. 1.1.1.2 Cách thức truyền thông trên Internet Trong những năm 60 và 70, nhiều công nghệ mạng máy tính đã ra đời nhƣng mỗi kiểu lại dựa trên các phần cứng riêng biệt. Một trong những kiểu này đƣợc gọi là mạng cục bộ (LAN), nối các máy tính với nhau trong phạm vi hẹp bằng dây dẫn và một thiết bị đƣợc cài đặt trong mỗi máy. Các mạng lớn hơn đƣợc gọi là mạng diện rộng ( WAN), nối nhiều máy tính với nhau trong phạm vi rộng thông qua một hệ thống dây truyền dẫn kiểu nhƣ trong các hệ thống điện thoại. 8
  9. Mặc dù LAN và WAN đã cho phép chia sẻ thông tin trong các tổ chức một cách dễ dàng hơn nhƣng vẫn bị hạn chế chỉ trong phạm vi cụ thể. Mỗi một công nghệ mạng có một cách thức truyền tin riêng dựa trên thiết kế phần cứng của nó. Internet đƣợc thiết kế để liên kết các kiểu mạng khác nhau và cho phép thông tin đƣợc truyền thông một cách tự do giữa những ngƣời sử dụng mà không cần biết họ sử dụng loại máy nào và kiểu mạng gì. Các máy tính đƣợc nối với nhau nhƣ vậy cần phải sử dụng chung một giao thức,tức là tập hợp các luật quy định về cách thức truyền tin. Với sự phát triển nhƣ hiện nay thì có rất nhiều giao thức ra đời nhằm đáp ứng nhu cầu đó. Các chuẩn giao thức đƣợc sử dụng rộng rãi nhất hiện nay nhƣ giao thức TCP/IP, Giao thức đƣợc sử dụng rộng rãi nhất hiện nay trên mạng là TCP/IP. Giao thức này cho phép dữ liệu đƣợc gửi dƣới dạng các "gói" (packet) thông tin. Nóchứa hai thành phần, Internet Protocol (IP) và Transmission Control Protocol (TCP). Giao thức TCP/IP đảm bảo sự thông suốt việc trao đổi thông tin giữa các máy tính. Internet hiện nay đang liên kết hàng triệu máy tính thuộc các công ty, cơ quan nhà nƣớc, các trung tâm nghiên cứu khoa học, trƣờng đại học. Không phân biệt khoảng cách địa lý trên toàn thế giới. Đó là ngân hàng dữ liệu khổng lồ của nhân loại. Một máy tính khi đƣợc kết nối với Internet sẽ là một trong số hàng chục triệu thành viên của mạng khổng lồ này. Vì vậy Internet là mạng máy tính lớn nhất thế giới hay nó là mạng của các mạng. 1.1.1.3 Các dịch vụ trên Internet Internet tác động sâu sắc vào xã hội, vào cuộc sống của con ngƣời ở mức độ khá bao quát. Tạo nền tảng cho nhiều ngành phát triển nhƣ: Giáo dục, báo chí,giải trívà hiện nay các công ty có thể kinh doanh thông qua Internet, dịch vụ thƣơng mại điện tử hiện nay đang phát triển khá mạnh mẽ. Dƣới đây là một số dịch vụ trên Internet: Thƣ điện tử (E-mail): Dịch vụ E-mail có thể dùng để trao đổi thông tin giữa các cá nhân với nhau, các cá nhân với tổ chức và giữa các tổ chức với nhau. Dịch vụ 9
  10. này còn cho phép tự động gửi nội dung thông tin đến từng địa chỉ hoặc tự động gửi đến tất cả các địa chỉ cần gửi theo danh sách địa chỉ cho trƣớc (gọi là mailing list). Nội dung thông tin gửi đi dùng trong thƣ điện tử không chỉ có văn bản (text) mà còn có thể ghép thêm (attach) các văn bản đã đƣợc định dạng, đồ họa, âm thanh, phim. Các dạng thông tin này có thể hòa trộn, kết hợp với nhau thành một tài liệu phức tạp. Lợi ích chính của dịch vụ thƣ điện tử là thông tin gửi đi nhanh và rẻ. Dịch vụ World Wide Web: Tuy ra đời muộn hơn so với các dịch vụ khác của Internet nhƣng WWW lại có tốc độ phát triển nhƣ vũ bão và làm cho Internet hấp dẫn hơn, lôi cuốn nhiều ngƣời quan tâm hơn. Giao diện đồ họa của Web cho phép ngƣời sử dụng không có hiểubiết sâu sắc về tin học cũng có thể sử dụng đƣợc. Nhờ có liên kết, họ có thể đi từ thông tin này đến thông tin khác mà không cần biết nó nằm ở đâu trên mạng. Web xóa nhòa khoảng cách về địa lý, ranh giới giữa các quốc gia, giúp con ngƣời có thể tiếp xúc với những thông tin mới nhất trên toàn thế giới. Các khả năng của Internet ngày nay chủ yếu dựa vào World Wide Web. Dịch vụ World WideWeb (WWW) là dịch vụ thông tin mạnh nhất trên Internet. Điểm mạnh của nó là có khả năng tích hợp các dịch vụ thông tin khác nghĩa là ta có thể sử dụng FTP, Gopher, E-mail thông qua WWW. Hơn nữa, WWW cung cấp các dịch vụ này theo một cách dễ hiểu và dễ sử dụng. Web cho phép hiển thị thông tin cần truy tìm theo chế độ đồ họa, hơn hẳn những dòng văn bản buồn tẻ của Internet trƣớc đây. Web giúp cho ngày dịch vụ, giải trí một phƣơng tiện tuyệt vời, tạo điều kiện cho việc mọi ngƣời kết nối với nhau không giới hạn về mặt địa lý. Web ngày nay hỗ trợ đắc lực cho các công ty trong công việc kinh doanh nhƣ quảng cáo tiếp thị, nghiên cứu thị trƣờng, bán hàng, . . . Dịch vụ truyền file (FTP — File Transfer Protocol): là dịch vụ dùng để trao đổi các tệp tin từ máy chủ xuống máy tính cá nhân và ngƣợc lại. Gopher: Dịch vụ này có thể đƣợc sử dụng để tìm kiếm thông tin trên các FTPsite. 10
  11. Telnet: Dịch vụ này cho phép truy cập vào các máy tính từ xa. Khi thâm nhập vào các hệ thống từ xa ngƣời dùng không những có thể truy cập các tài nguyênmà còn tận dụng đƣợc tài nguyên bộ nhớ và khả năng của bộ vi xử lý trên hệ thống ở xa đó. 1.1.2. Dịch vụ thông tin World Wide Web Nhƣ đã trình bày ở trên WWW là dịch vụ mới ra đời đã nhanh chóng trở thành một trong những dịch vụ hấp dẫn nhất, quan trọng nhất và phát triển nhanh nhất trên Internet. Trong phần này em sẽ tìm hiểu sâu hơn về dịch vụ này. 1.1.2.1. Nguồn gốc của World Wide Web Năm 1989 nhóm nghiên cứu do Tim Berners-Lee lãnh đạo làm việc tại phòng thí nghiệm vật lý hạt nhân châu Âu đã đƣa ra một bộ giao thức mới phục vụ cho việc truyền và nhận tệp siêu văn bản (Hypertext) trên mạng Internet. Bộ giao thức này chủ yếu dựa trên giao thức HTML (Hypertext Markup Language) để liên kết, trao đổi thông tin và gọi tắt là HTTP (Hypertext Tranfer Protocol). Ngay sau đó các tổ chức và tập đoàn đã công nhận bộ giao thức HTTP và thành lập một tổ chức gọi là W3 Consortium để tiếp tục phát triển và chuẩn hóa bộ giao thức này. W3 Consortium đã phát triển thêm các tính năng mới của HTTP và các cấp bậc cũng nhƣ các chuẩn để thực hiện các phần mềm đi kèm. Từ đó thuật ngữ World Wide Web ra đời và đƣợc công bố rộng rãi trên Internet. 1.1.2.2 Các khái niệm cơ bản Web Browser Web browser là trình duyệt internet, có khả năng yêu cầu thông tin từ máy chủ Web và các dịch vụ khác nhau theo yêu cầu của ngƣời sử dụng. Sau đó Web Browser sẽ đợi thông tin từ Web Server hay các máy phục vụ của các dịch vụ thông tin khác và hiển thị thông tin cho ngƣời sử dụng. Thông tin hiển thị có thể đƣợc lƣu trữ trên những Web riêng, đƣợc tạo ra trƣớc khi có yêu cầu đó (trang Web tĩnh) hoặc các thông tin có thể đƣợc tạo ra từ trong cơ sở dữ liệu dựa trên yêu cầu từ 11
  12. ngƣời dùng (trang Web động). Một số Web Browser tiêu biểu nhƣ: Chrome, Firefox, IE, Web Server Web Server là một phần mềm phục vụ Web. Khi đƣợc khởi động, nó đƣợc nạp vào bộ nhớ và đợi các yêu cầu từ nơi khác đến. Các yêu cầu có thể đến từ một ngƣời sử dụng phần mềm Web Browser hoặc có thể đến từ một Web Server khác. HTTP HTTP (Hyper Text Tranfer Protocol) là giao thức dùng trong việc trao đổi thông tin giữa trình duyệt Web và Web Server. Giao thức này hỗ trợ và truyền các thông tin dƣới nhiều dạng khác nhau nhƣ văn bản, hình ảnh, âm thanh, v. v. Mọi giao thức truyền thông đều phải yêu cầu có một chƣơng trình trên Server để "nghe" các yêu cầu trên mạng do các Client truyền đến. Ví dụ nhƣ FTP có một FTP Daemon, HTTP có một HTTP Daemon. . . mỗi một Daemon nghe trên một cổng mặc định khác nhau. Có một sự khác biệt quan trọng giữa HTTP và các giao thức khác đó là HTTP không duy trì sự kết nối cố định. Sau khi Server hoàn thành việc phục vụ yêu cầu lấy thông tin của Client, nó chấm dứt kết nối với Client. Khi Web Browser từ Client yêu cầu thông tin mới thì một kết nối mới sẽ đƣợc thiết lập. URL URL (Universal Resource Locator) là một phƣơng thức để tham chiếu tới một tài nguyên bất kỳ trên Internet. URL đƣợc sử dụng trong các dịch vụ thông tin trên Internet nhƣ Gopher, FTP, WWW, . . . Hyperlink Hyperlink là các siêu liên kết giúp ta di chuyểngiữa các trang Web. Mỗi hyperlink trỏ tới một URL của một trang Web, nếu ta nhấn con trỏ của chuột vào hyperlink này thì trang Web đó sẽ đƣợc hiển thị. 12
  13. Web page Web page là trang web trên đó thông tin có thể đƣợc biểu diễn dƣới dạng văn bản, hình ảnh, âm thanh, hoặc các đoạn phim. Trang Web đƣợc lƣu trữ dƣới dạng file có phần mở rộng là htm hoặc html. Trên mỗi trang Web có thể chứa các liên kết tới các trang Web khác, điều này giúp cho ngƣời dùng có thể truy cập đƣợc thông tin từ rất nhiều trang Web khác nhau. HTML (Hypertext Markup Language) là ngôn ngữ để tạo các trang Web, HTML dùng các thẻ (tag) để mô tả cấu trúc của một trang Web. Mô hình Web Client-Server World Wide Web đƣợc xây dựng và hoạt động theo mô hình Client/Server. Các Client dùng một phần mềm gọi là Web Browser. Web Browser tiếp nhận thông tin yêu cầu từ ngƣời dùng sau đó gửi các yêu cầu tới máy Server xử lý. Web Server là một phần mềm chạy trên máy phục vụ, nhận Request thực hiện theo yêu cầu rồi phản hồi thông tin (Response) tới ngƣời sử dụng. 1.1.2.3. Phân loại Web Một cách tổng quát có thể phân loại Web thành 2 loại là: Web tĩnh và Webđộng. Web tĩnh (Static Web) Trang Web tĩnh là tài liệu đƣợc phân phát rất đơn giản từ hệ thống file của Server. Phần mềm Web Server sẽ tiến hành tìm kiếm và xác định đúng vị trí file và sau đó gửi kết quả cho Client (Web Browser). Việc sử dụng trang Web tĩnh có những ƣu, nhƣợc điểm nhƣ sau: Ưu điểm: khi cơ sở dữ liệu là nhỏ thì việc phân phát dữ liệu có hiệu quả, Server có thể đáp ứng nhu cầu của Client một cách nhanh chóng. Kiểu Web tĩnh sẽ là tốt nhất để sử dụng khi thông tin có sẵn trên ổ đĩa cứng, và không thay đổi. 13
  14. Nhược điểm: Không linh hoạt vì vậy không đáp ứng đƣợc các nhu cầu thông tin phức tạp của ngƣời sử dụng. Web động (Dynamic Web) Đặc điểm nổi bật của Web động là có khả năng tƣơng tác với cơ sở dữ liệu đặt trên Server. Với những trang Web động ngƣời dùng có thể xem, cập nhật thông tin một cách trực tiếp. Ưu điểm:Đáp ứng đƣợc các nhu cầu thông tin phức tạp từ phía ngƣời dùng, quản lý tài nguyên một cách hệ thống. Nhược điểm: Việc tạo ra các trang web động cần phải sử dụng các ngôn ngữ lập trình Web chuyên dụng, ngƣời phát triển các trang nhƣ thế này đòi hỏi phải có kiến thức chuyên môn về lập trình. 1.2. PHƢƠNG THỨC KẾT NỐI 1.2.1. Một số phƣơng pháp cũ khai thác dữ liệu dựa trên Web 1.2.1.1. Phƣơng pháp Java Socket Hình 1:Mô hình truy nhập cơ sở dữ liệu web bằng Java Socket Ngôn ngữ lập trình Java hỗ trợ hai dạng chƣơng trình ứng dụng chính là ứng dụng độc lập (Java application) và ứng dụng nhúng (Java applet). Các Java applet có thể đƣợc máy khách tải xuống từ một máy ở xa thông qua trình duyệt Web và thực thi tại máy khách, do tính bảo mật của ngôn ngữ Java nên máy ảo Java sẽ không cho phép các Java applet đƣợc quyền truy nhập tài nguyên cục bộ nhƣ cơ sở dữ liệu Web đặt trên máy server, vì vậy để bảo đảm đƣợc hai yếu tố của phƣơng pháp Java socket là truy nhập cơ sở dữ liệu từ xa thông qua trình duyệt Web và 14
  15. nhận đƣợc kết quả trả về cần có thêm thành phần trung gian đứng giữa máy khách và cơ sở dữ liệu do web trả về. Thành phần trung gian trong phƣơng pháp Java socket là một chƣơng trình ứng dụng độc lập. Hoạt động của mô hình truy nhập cơ sở dữ liệu thông qua web bằng phƣơngpháp Java socket thực hiện qua những bƣớc sau: Máy khách truy nhập vào máy chủ Web thông qua trình duyệt Web, trang web và ứng dụng Java applet có chức năng truy nhập cơ sở dữ liệu từ máy chủ Web được tải về máy khách. Ứng dụng Java applet truy cập cơ sở dữ liệu được khởi động tại máy khách bởi người dùng và kết nối tới thành phần trung gian trên máy chủ Web, khi kết nối thành công thì máy khách gửi yêu cầu truy cập dữ liệu cho thành phần trung gian trên máy chủ web. Kết nối được chấp nhận thì chương trình trung gian sẽ truy cập vào cơ sở dữ liệu đặt trên máy chủ Web lấy dữ liệu theo yêu cầu của máy khách. Thành phần trung gian trả dữ liệu kết quả về cho ứng dụng Java applet ở phía máy khách, sau đó applet chuyển dữ liệu kết quả cho trình duyệt Web để nó hiển thị dữ liệu kết quả lên cho người dùng. 1.2.1.2. Phƣơng pháp servlets Java Phƣơng pháp servlets thƣờng đƣợc dùng để tạo ra các trang Web động, mọi thao tác xử lý theo yêu cầu của máy khách đƣợc thực hiện tại server nhƣ viết mã lệnh để tạo ra trang Web, truy nhập cơ sở dữ liệu, điều này rất có ý nghĩa trong trƣờng hợp các máy khách có năng lực xử lý hạn chế. Một ƣu điểm nổi bật của phƣơng pháp servlet là giúp giảm tải mạng, do không cần phải duy trì một kết nối mạng thƣờng xuyên giữa máy khách và máy chủ trong quá trình máy khách truy cập cơ sở dữ liệu. 15
  16. Hình 2: Mô hình truy nhập cơ sở dữ liệu bằng Servlet Thành phần trung gian trong phƣơng pháp này là một servlet, nó là một chƣơng trình Java đƣợc thực hiện nhƣ là một tiến trình con trong môi trƣờng của một trình chủ Web có hỗ trợ Java. Trình chủ Web có nhiệm vụ định tuyến cho các yêu cầu từ phía máy khách đến đƣợc servlet có nhiệm vụ thực thi yêu cầu đó, ngoài ra trình chủ Web còn đảm nhiệm các công việc: nạp, khởi động, chạy và kết thúc các servlet. Hoạt động của mô hình truy nhập cơ sở dữ liệu bằng Servlet thực hiện theo các bƣớc nhƣ sau Máy khách truy nhập Web trên máy chủ bằng trình duyệt Web. Máy chủ Web gọi servlet tương ứng thực thi yêu cầu từ phía máy khách. Chương trình servlet truy nhập vào cơ sở dữ liệu cục bộ lấy dữ liệu theo yêu cầu của máy khách. Chương trình servlet chuyển dữ liệu kết quả cho trình chủ Web Trình chủ Web trả dữ liệu kết quả cho máy khách. Trình duyệt Web tại máy khách sẽ hiển thị dữ liệu đã yêu cầu lên cho người dùng. 1.2.1.3. Phƣơng pháp RMI RMI là một giao diện ứng dụng cho phép thực thi các lời gọi phƣơng thức từ xa giữa các đối tƣợng Java phân tán. 16
  17. Hình 3: Mô hình truy nhập cơ sở dữ liệu web bằng RMI Thành phần trung gian trong phƣơng pháp RMI bao gồm hai đối tƣợng: Chương trình ứng dụng độc lập Java, làm nhiệm vụ cài đặt và thực hiện các phương thức được máy khách triệu gọi từ xa. Ứng dụng nền rmiregistry. exe đi kèm trong bộ JDK từ phiên bản 1. 3 trở lên làm hai nhiệm vụ: Khởi động ứng dụng của máy chủ và đăng ký tên duy nhất cho ứng dụng máy chủ với máy ảo Java chạy trên trình chủ Web. Hoạt động của mô hình truy nhập cơ sở dữ liệu Web bằng phƣơng pháp RMI thực hiện qua những bƣớc sau: Máy khách truy nhập vào máy chủ Web thông quan trình duyệt Web. Java applet có nhiệm vụ truy nhập cơ sở dữ liệu Web bằng lời gọi phương thức từ xa được tải từ máy chủ về máy khách cùng với trang Web của máy chủ Web. Applet truy nhập cơ sở dữ liệu Web được người dùng kích hoạt sẽ thực hiện tìm kiếm đối tượng từ xa trên máy chủ Web dựa vào trình đăng ký tên dịch vụ duy nhất rmiregistry. exe chạy trên máy chủ Web, nếu tìm thấy applet thực hiện lời gọi phương thức từ xa để lấy dữ liệu. Ứng dụng của máy chủ đáp ứng yêu cầu được trình đăng ký tên dịch vụ duy nhất chạy trên máy chủ Web khởi động và thực hiện truy nhập cơ sở dữ liệu để lấy dữ liệu theo yêu cầu của máy khách. Ứng dụng server trả dữ liệu kết quả về cho máy khách bằng phương thức được gọi từ xa của nó. 17
  18. 1.2.1.3. Phƣơng pháp CORBA CORBA là một chuẩn đối tƣợng phân tán, định nghĩa các mối quan hệ khách/chủ (client/server) giữa các đối tƣợng trong một ngôn ngữ giao diện chung (common interface language). Chƣơng trình RMI chỉ cài đặt có thể thực thi bằng ngôn ngữ lập trình Java nhƣng chƣơng trình CORBA có thể đƣợc cài đặt và thực thi bằng một ngôn ngữ lập trình bất kỳ. Hình 4: Mô hình truy nhập cơ sở dữ web bằng Java CORBA Đối tƣợng ứng dụng máy khách CORBA muốn gọi đúng đƣợc đối tƣợng ứng dụng máy chủ CORBA cần có một đối tƣợng thứ ba có thể cung cấp phƣơng tiện giao tiếp giữa các ứng dụng, dịch vụ và các tiện ích mạng gọi là ORB (Object Request Broker). ORB đƣợc quan niệm nhƣ là một loại bus mềm hay đƣờng trục sống, cung cấp các giao diện chung giữa nhiều loại đối tƣợng khác nhau để có thể giao tiếp đƣợc với nhau theo mô hình bình đẳng. Đối tƣợng máy khách gửi yêu cầu đến ORB, nhiệm vụ của ORB là tìm đối tƣợng máy chủ hay tìm đối tƣợng có thể biết các máy chủ, sau đó thiết lập quá trình truyền thông giữa máy khách và máy chủ này. Đối tƣợng máy chủ gửi đáp ứng cho ORB, nó định dạng lại và chuyển tiếp đáp ứng về cho nơi phát ra yêu cầu. ORB phải đƣợc nạp trên cả máy chủ và máy khách. Về vấn đề bảo mật, CORBA chỉ cho phép một applet kết nối trực tiếp từ xa vào đối tƣợng máy chủ CORBA qua tƣờng lửa gọi là IIOP (Internet Inter ORB Protocol). IIOP là một phần của CORBA, nó cung cấp phƣơng tiện để các đối tƣợng CORBA có thể tƣơng tác với mạng TCP/IP, bao gồm cả mạng Internet. IIOP kết hợp hoặc thay thế cho HTTP, một giao thức cơ bản trên Internet. 18
  19. Ngoại trừ giao thức IIOP, thành phần trung gian trong cách tiếp cận CORBA giống nhƣ thành phần trung gian trong cách tiếp cận RMI. Hoạt động của mô hình truy cập cơ sở dữ liệu web bằng cách tiếp cận CORBA thực hiện theo các bƣớc sau: Máy khách truy nhập vào máy chủ web, applet có chức năng truy nhập cơ sở dữ liệu web được tải về máy máy khách từ máy chủ. Applet được khởi động từ phía máy khách. Sau khi nạp xong ORB nó kết nối với ứng dụng của máy chủ CORBA thông qua Gatekeeper bằng cách gọi một phương thức đặc biệt và chuyển tên dịch vụ duy nhất của ứng dụng máy chủ đi giống như tham số của phương thức. Ứng dụng CORBA Server thực hiện truy nhập cơ sở dữ liệu webcục bộ, lấy dữ liệu theo yêu cầu của phía máy khách. Ứng dụng máy chủ CORBA gửi dữ liệu kết quả về cho phía máy khách giống như giá trị trả về của lời gọi phương thức. 1.2.2. Phƣơng pháp khai thác dữ liệu dựa trên Web service Web service là phƣơng pháp cho phép trao đổi thông tin giữa các hệ thống dựa trên giao thức HTTP và SOAP, hoàn toàn độc lập với hệ điều hành hoặc ngôn ngữ lập trình đƣợc sử dụng hoặc phía máy chủ hoặc phía máy khách. Không nhƣ các công nghệ trƣớc kia, Web service không nhất thiết bắt buộc hai đầu kết nối phải cùng hệ điều hành hoặc cùng ngôn ngữ lập trình. Thí dụ, chƣơng trình phía máy chủ có thể viết bằng ngôn ngữ VB. NET cài đặt trên hệ điều hành Window 2000 trong khi chƣơng trình phía máy khách viết bằng ngôn ngữ lập trình khác chạy trên hệ điều hành Unix, hay ngƣợc lại. Nói cách khác, công nghệ cũ yêu cầu các kết nối là kết nối chặt chẽ, thì Web service cho phép máy khách và máy chủ kết nối lỏng lẻo. Máy khách và máy chủ đều nhận đƣợc sự hỗ trợ của giao thức chuẩn HTTP, SOAP và XML. HTTP là giao thức đƣợc dùng bởi web, còn SOAP là giao thức hƣớng đối tƣợng dựa trên XML lại trở thành chuẩn cho việc định dạng và tổ chức thông tin. 19
  20. Web service cho phép một đối tƣợng nằm trên máy chủ có thể đƣa ra phần logic chƣơng trình cho các máy khách trên Internet. Các máy khách gọi các phƣơng thức đã trƣng ra trên Web service thông qua việc sử dụng các giao thức chuẩn của Internet. Nền tảng Web service có một vài đặc trƣng định nghĩa nhƣ sau: Cả Web service lẫn ứng dụng khách được kết nối trên Internet. Dạng dữ liệu mà hai phía liên lạc với nhau cùng tuân theo một chuẩn mở. Chuẩn này thường là giao thức SOAP, các thông điệp SOAP gồm các tài liệu XML dạng văn bản và tự mô tả. Tuy nhiên nó là kỹ thuật có khả năng liên lạc theo các yêu cầu HTTP-GET và HTTP-POST. Hệ thống hai đầu kết nối sẽ được gắn kết một cách lỏng lẻo. Hay Web service không cần quan tâm mô hình đối tượng, ngôn ngữ lập trình được dùng đến ở hai đầu kết nối là gì, miễn là Web service và ứng dụng tiêu thụ (Consummer Application) có khả năng nhận và gửi các thông điệp tuân thủ theo giao thức chuẩn thích ứng. Hình 5: Web service nhìn từ trong 20
  21. Trên hình 17, vị trí , một chƣơng trình khai thác Web service (Web service consumer) đƣa ra một lời gọi (vị trí ), phía khai thác tƣởng rằng mình nói chuyện trực tiếp với Web service thông qua Internet. Thực ra, đây là một lời gọi phƣơng thức từ Proxy (vị trí ) nằm ngay trên máy khách, Proxy điều khiển ngay tất cả các cấu trúc phức tạp của việc chuyển các yêu cầu về máy chủ qua Internet, cũng nhƣ nhận kết quả từ máy chủ trả về cho máy tiêu thụ. Tất cả việc này có thể thực hiện đƣợc là nhờ Proxy trƣớc đó đã đăng ký với ứng dụng tiêu thụ (vị trí ), đƣợc thực hiện bởi lập trình viên viết ứng dụng tiêu thụ. Ngoài việc tạo các Web service cũng nhƣ ứng dụng tiêu thụ Web service, còn một số vấn đề cần quan tâm: Protocol Web service phải liên lạc với máy khách và ngược lại theo một giao thức nào đó mà cả hai phía đều hiểu nhau. Directories Các Web service được phát triển bởi hàng ngàn các công ty khác nhau trên thế giới. Directories được tạo ra để liệt kê các dịch vụ này và hiện sẵn dành cho lập trình viên triển khai. Tuy nhiên, muốn cho các thư mục này hữu ích phải có những quy ước liên quan đến khám phá (discovery) và mô tả (description). Discovery Các máy khách cần sẽ biết tìm ở đâu những tài liệu mô tả Web service. Như vậy, Web service thường sẽ cung cấp những tài liệu khám phá những tập tin XML chứa thông tin cho phép những khách hàng tiềm năng tìm ra các tập tin khác mô tả Web service. 21
  22. Description Một khi Web service được nhận diện, thông qua khám phá hay những phương tiện nào đó, nó phải làm sẵn một tài liệu mô tả những giao thức hỗ trợ và giao diện lập trình cho việc sử dụng Web service. WSDL (Web service Description Language) sẽ được dùng để mô tả Web service, tất cả các phương thức và thuộc tính được trưng ra, bao gồm các kiểu và tham số của phương thức đó. Security Phần lớn các máy chủ được kết nối Internet thì sự quan tâm về mặt an toàn lúc nào cũng được đề cập như một phần quan trọng trong hệ thống. Web service phải sống chung với ràng buộc về mặt an toàn. Web service không phải là các cổng thông tin cho mọi loại phần mềm và người dùng hỗn độn. Nó chỉ cho phép một số người dùng có quyền truy cập để gọi các phương thức. State Giống như trang web, Web service sử dụng HTTP, là một giao thức không trạng thái. Do vậy, . NET framework cung cấp các công cụ cho phép duy trì tình trạng nếu các ứng dụng này yêu cầu. Proxy Trước khi ứng dụng máy khách có thể dùng được Web service, proxy phải được tạo. Proxy đóng vai trò thay thế cho các phương thức được gọi. Nó chịu trách nhiệm sắp xếp, dẫn dắt các lời gọi phương thức vượt qua ranh giới các máy tính. Các yêu cầu gọi tới Web service trên máy chủ phải phù hợp với giao thức và định dạng tương ứng, thường là SOAP kết hợp với HTTP. 22
  23. Proxy phải được đăng ký với ứng dụng máy khách, ứng dụng máy khách tạo các phương thức gọi như gọi các phương thức đó là đối tượng nội bộ. Proxy làm tất cả công việc khi máy khách có lời gọi vàđược gói trong định dạng thích hợp và gửi đi như một yêu cầu SOAP tới máy chủ. Khi máy chủ trả về máy khách gói tin SOAP, proxy giải mã tất cả và hiển thị chúng trong ứng dụng máy khách như nó được lấy từ đối tượng cục bộ. Tiến trình này được mô tả trong hình sau: Hình 6: Hoạt động của Proxy 1.3. TỔNG QUAN VỀ THƢƠNG MẠI ĐIỆN TỬ 1.3.1. Giới thiệu Thƣơng mại điện tử Thƣơng mại điện tử (E-Commerce) là hình thức hoạt động kinh doanh dựa trên Internet,là việc trao đổi "thông tin" kinh doanh thông qua các phƣơng tiện công nghệ điện tử. Trên thực tế, Thƣơng mại điện tử không chỉ là bán hàng trên mạng hay bán hàng trên Internet mà là hình thức hoạt động kinh doanh bằng các phƣơng pháp điện tử. Hoạt động kinh doanh bao gồm tất cả các hoạt động nhƣ giao dịch, mua bán, thanh toán, đặt hàng, quảng cáo và kể cả thời gian giao hàng. Các phƣơng pháp điện tử ở đây không chỉ có Internet mà bao gồm việc sử dụng các phƣơng tiện công nghệ điện tử nhƣ điện thoại, máy FAX, truyền hình và mạng máy tính (trong đó có 23
  24. Internet). Nói chung, thƣơng mại điện tử bao hàm cả việc trao đổi thông tin kinh doanh thông qua các phƣơng tiện viễn thông. Ngày nay, Thƣơng mại điện tử đã trở thành ngành kinh tế mũi nhọn trong nền kinh tế tri thức. Nhờ vào sự phát triển của các phƣơng tiện truyền thông, đặc biệt là sự phát triển của Công nghệ Thông tin đã tạo điều kiện cho mọi ngƣời có thể giao tiếp với nhau một cách nhanh chóng và dễ dàng hơn thông qua các dịch vụ viễn thông. Vì là môi trƣờng truyền thông rộng khắp thế giới nên thông tin có thể giới thiệu tới từng thành viên của các tổ chức một cách nhanh chóng và thuận tiện. Chính những điều này đã tạo điều kiện thuận lợi cho Thƣơng mại điện tử hoạt động dựa trên Internet. Thƣơng mại điện tử nhanh chóng trở nên phổ biến trên thế giới, trở thành công cụ rất mạnh mẽ để bán hàng và quảng cáo hàng hóa của nhà cung cấp. Các doanh nghiệp có thể dễ dàng thực hiện và triển khai các ý tƣởng kinh doanh trên môi trƣờng Internet. Chính vì vậy, yêu cầu quan trọng nhất hiện nay đối với doanh nghiệp là thế nào để thâm nhập vào thị trƣờng này nhanh và hiệu quả nhất. 1.3.2. Cơ sở của thƣơng mại điện tử Song song với những lợi ích to lớn có thể mang lại, thƣơng mại điện tử đòi hỏi một cơ sở hạ tầng đa dạng, vững chắc bao gồm các mặt: Pháp lý:Thừa nhận tính pháp lý của các thông điệp điện tử, các chữ ký số hóa và chữ ký điện tử, các thủ tục pháp lý cần thiết để thực thi sự thừa nhận đó. Công nghệ:Máy tính, truyền thông và bảo mật. Giáo dục:Kỹ năng cho các chuyên gia và cho đông đảo dân chúng. Công nghiệp:Tiêu chuẩn hóa, thanh toán tự động. . . Xã hội:Bảo vệ sở hữu trí tuệ, bảo vệ ngƣời tiêu dùng. Văn hóa:Thay đổi tập quán, lối sống, bảo vệ các đặc trƣng văn hóa dân tộc, chống ảnh hƣởng tiêu cực của các dữ liệu không mong muốn. 24
  25. Các loại hình thƣơng mại điện tử: B2B (Business To Business): Hoạt động thƣơng mại điện tử trực tiếp hỗ trợ các nhà cung cấp qua Internet. Doanh nghiệp mua hàng sẽ xem xét catalog hàng hóa của bên bán và đặt mua hàng với giá rẻ nhất với những điều kiện tốt nhất. Sự hấp dẫn ở đây là chi phí mua hàng đƣợc giảm, việc mua bán có hiệu quả hơn (các doanh nghiệp muốn mua hàng có thể nhanh chóng tìm đƣợc đơn giá của rất nhiều nhà cung cấp), đồng thời thị trƣờng cung cấp hàng hóa cũng linh động hơn (vì các doanh nghiệp bán có thể nắm bắt đƣợc nhu cầu thị trƣờng của từng mặt hàng). B2C (Business To Consumer): Với loại hình thƣơng mại điện tử này các nhà sản xuất sẽ bán hàng trực tiếp cho khách hàng thông qua mạng. Ngƣời dùng có thể theo dõi và mua các mặt hàng mà mình muốn một cách nhanh chóng. Đối với doanh nghiệp bán hàng này, họ sẽ giảm đƣợc nhiều chi phí so với cách bán hàng thông thƣờng, đồng thời việc tiếp cận quảng cáo tới khách hàng trở nên dễ dàng hơn bao giờ hết. C2C (Consumer To Consumer):Cho phép cá nhân trực tiếp tham gia kinh doanh với nhau thông qua mạng Internet. Quảng cáo qua Internet rẽ và dễ tiếp cận. C2B (Consumer To Business): Trong hoạt động thƣơng mại điện tử này, khách hàng thông báo mức giá mà họ sẵn sàng mua (ví dụ nhƣ giá cả trong các vụ đấu thầu). Loại hình này giúp giảm chi phí cho việc mời thầu và chào thầu so với cách tổ chức đấu thầu thƣờng thấy trong thực tế. 1.3.3. Thanh toán điện tử Khái niệm thanh toán điện tử Thanh toán điện tử là hình thức thanh toán qua mạng với lƣợng thông tin trao đổi là tiền tệ. Thanh toán trực tuyến là một trong những vấn đề cốt yếu của thƣơng mại điện tử. Thiếu hạ tầng thanh toán, chƣa thể có thƣơng mại điện tử theo đúng nghĩa của nó. 25
  26. Giao thức truyền thông bảo mật sử dụng cho thƣơng mại điện tử Phƣơng pháp thanh toán trên Internet cho Thƣơng mại điện tử phổ biến nhất là thẻ tín dụng. Tuy nhiên, một mối lo ngại cho khách hàng là vấn đề an ninh khi gửi qua Internet những thông tin về thẻ tín dụng. Ngƣời mua còn lo ngại về vấn đề bảo vệ sự riêng tƣ. Họ không muốn ngƣời khác biết họ là ai, hay họ mua gì. Họ cũng muốn tin chắc rằng không ai thay đổi đơn đặt hàng của họ và rằng họ đang liên hệ với ngƣời bán hàng thực sự và không phải với một ngƣời giả danh. Một vấn đề cơ bản là sự mã hoá có đủ an toàn để bảo vệ thông tin mật và sự xác thực? Các kỹ thuật mã hoá thích hợp là sự bảo vệ an toàn nhất chống lại việc "nghe trộm" trong quá trình truyền thông tin. Không chỉ vấn đề bảo mật trong quá trình truyền thông tin là cần đƣợc giải quyết mà còn cả vấn đề chứng thực ngƣời chủ sở hữu thẻ. Thậm chí một mật khẩu cũng không thể loại trừ đƣợc hoàn toàn nguy cơ. Ngƣời tiêu dùng cần phải trình một chứng thực xác nhận, chứng thực này có thể đƣợc lƣu giữ ở một thẻ thông minh sao cho những kẻ giả mạo không thể sử dụng thông tin của thẻ ngay cả khi thông tin có thể bị lộ ra. Hiện nay, nhiều công ty sử dụng giao thức SSL (Secure Socket Layer) để cung cấp sự bảo mật và bảo vệ sự riêng tƣ. Giao thức này cho phép khách hàng mã hoá đơn đặt hàng của họ tại máy tính cá nhân của họ. Tuy nhiên, giao thức này không cung cấp cho khách hàng mọi sự bảo vệ mà họ có thể có. Visa và MasterCard đã cùng nhau phát triển một giao thức an toàn hơn, đƣợc gọi là SET (Secure Electronic Transaction). Về lý thuyết, đó là một giao thức hoàn hảo. Ví dụ, một sự khác biệt điển hình giữa SET và SSL đƣợc sử dụng rộng rãi là SSL không bao gồm một chứng thực khách hàng yêu cầu phần mềm đặc biệt (đƣợc gọi là ví số - digital wallet) tại máy tính cá nhân của họ. SSL đƣợc thiết lập trong trình duyệt, do đó không cần một phần mềm đặc biệt nào. Kế hoạch Visa và MasterCard phải chấp nhận các thông điệp chỉ khi chúng tuân thủ giao thức SET. 26
  27. Tuy nhiên, SET không phổ biến nhanh nhƣ nhiều ngƣời mong đợi do tính phức tạp, thời gian phản hồi chậm, và sự cần thiết phải cài đặt ví số ở máy tính của khách hàng. Nhiều ngân hàng ảo và cửa hàng điện tử duy trì giao thức SSL, thậm chí một số cửa hàng điện tử, nhƣ Wal-Mart Online, đi theo cả hai giao thức SSL và SET. Ngoài ra, theo một cuộc khảo sát do Forrest Research thực hiện, chỉ có 1% kế hoạch kinh doanh điện tử di chuyển sang SET. MasterCard cho biết ví số có thể sẽ đƣợc phân phối nhƣ là phần mềm đƣợc gắn thêm vào phiên bản Windows tiếp theo. Tuy nhiên, Visa quyết định không chờ đợi. Visa đồng ý cung cấp một cổng nối xử lý thẻ tín dụng đƣợc gắn vào giao thức mã hoá SSL cơ bản. Một trong những ngân hàng Web lớn nhất sử dụng một dịch vụ xử lý thanh toán không SET (SET-free) là Wells Fargo, dịch vụ bổ sung các chứng thực cho việc mã hoá dữ liệu SSL. Các chứng thực đƣợc lƣu giữ ở các thẻ thông minh và những thẻ này cho thể đƣợc đọc từ một bàn phím đặc biệt có thêm khe cắm. 1.3.4. Lƣợc đồ bảo mật trong các hệ thống thanh toán điện tử 1.3.4.1. Các yêu cầu về bảo mật đối với việc thanh toán điện tử Bốn yêu cầu chủ yếu về bảo mật cho việc thanh toán điện tử an toàn bao gồm: Xác thực (Authentication): một phương pháp kiểm tra nhân thân của người mua trước khi việc thanh toán được chứng thực. Mã hoá (Encryption): một quá trình làm cho các thông điệp không thể giải đoán được ngoại trừ bởi những người có một khoá giải mã được cho phép sử dụng. Tính toàn vẹn (Integrity): bảo đảm rằng thông tin sẽ không bị vô tình hay ác ý thay đổi hay phá hỏng trong quá trình truyền đi. Tính không thoái thác (Nonrepudiation): bảo vệ chống lại sự từ chối của khách hàng đối với những đơn hàng đã đặt và sự từ chối của người bán hàng đối với những khoản thanh toán đã được trả. 27
  28. 1.3.4.2. Các lƣợc đồ bảo mật Các lƣợc đồ bảo mật cơ bản đƣợc thực hiện cho các hệ thống thanh toán điện tử là mã hoá, chữ ký điện tử, tóm tắt thông tin, và sử dụng các chứng thực và cơ quan chứng thực (CA). Có hai loại mã hoá: mã hoá khoá bí mật và mã hoá khoá công khai. Mã hoá Khoá bí mật (Secret Key Cryptography) Trong nhiều năm, ngƣời ta đã sử dụng một hệ thống bảo mật dựa trên một khoá bí mật đơn. Trong thiết kế mã hoá khoá bí mật này, còn đƣợc biết đến nhƣ là mã hoá đối xứng, hay mã hoá khoá riêng, cùng một khoá đƣợc sử dụng bởi một ngƣời gửi (cho việc mã hoá) và một ngƣời nhận (cho việc giải mã). Thuật toán đƣợc chấp nhận rộng rãi nhất cho việc mã hoá khoá bí mật là Chuẩn Mã hoá Dữ liệu (Data Encryption Standard - DES) (Schneier 1996). Một số chuyên gia mã hoá tin rằng thuật toán DES có thể phá mã đƣợc. Tuy nhiên, DES đƣợc đánh giá là đủ an toàn bởi vì việc phá mã phải mất nhiều năm với chi phí hàng triệu đô la. Giao thức SET chấp nhận thuật toán DES với chìa khoá 64 bit của nó. Lƣu ý rằng vấn đề với một khoá đơn là ở chỗ khoá cần đƣợc chuyển đến phía tƣơng ứng. Hệ thống mã hoá khoá công khai đƣợc mô tả tiếp theo đây sẽ giải quyết đƣợc vấn đề trao đổi khoá riêng. Mã hoá khoá công khai Mã hoá khoá công khai, còn đƣợc biết đến nhƣ là mã hoá không đối xứng, sử dụng hai khoá khác nhau: một khoá công khai và một khoá riêng. Khoá công khai thì tất cả ngƣời sử dụng đƣợc phép đều biết, song khoá riêng thì chỉ có một ngƣời sở hữu đƣợc biết. Chìa khoá riêng đƣợc cài đặt ở máy tính của chủ sở hữu và không đƣợc gửi cho bất cứ ai. Để gửi một thông điệp an toàn có sử dụng mã hoá khoá công khai, ngƣời gửi mã hoá thông điệp với chìa khoá công khai của ngƣời nhận. Việc này yêu cầu khoá công khai của ngƣời nhận đƣợc giao từ trƣớc. Thông điệp đƣợc mã hoá bằng cách này chỉ có thể đƣợc giải mã với chìa khoá riêng của ngƣời nhận. Thuật toán phổ biến nhất với mã hoá khoá công khai là thuật toán 28
  29. RSA(Rivest, Shamir và Adelman) với nhiều kích cỡ khoá khác nhau, nhƣ 1024 bit. Thuật toán này rất khó bị phá, do đó nó đƣợc coi là phƣơng pháp mã hoá an toàn nhất đƣợc biết cho đến nay. Mã hoá khoá công khai, RSA, thƣờng đƣợc sử dụng để truyền khoá bí mật của thuật toán DES bởi vì thuật toán DES hiệu quả và nhanh hơn trong việc thực hiện mã hóa và giải mã. Chữ ký số (Digital Signature) Chữ ký số đƣợc sử dụng cho việc xác thực ngƣời gửi bằng việc áp dụng mã hoá khoá công khai ngƣợc lại. Để tạo một chữ ký số, một ngƣời gửimã hoá một thông điệp với chìa khoá riêng. Trong trƣờng hợp này, bất cứ ngƣời nhận nào có chìa khoá công khai đều có thể đọc nó, song ngƣời nhận có thể tin chắc rằng ngƣời gửi thực sự là tác giả của thông điệp. Một chữ ký số thƣờng đƣợc gắn kèm với thông điệp đƣợc gửi, cũng giống nhƣ chữ ký viết tay. Tóm tắt thông điệp (Message Digest) Để tạo một chữ ký số, thông điệp cơ sở cần phải đƣợc chuẩn hoá với một độ dài 160bits đƣợc ấn định trƣớc, bất kể độ dài của thông điệp gốc là bao nhiêu. Quá trình chuẩn hoá này có thể đạt đƣợc bằng việc biến đổi thông điệp gốc. Thông điệp đã bị biến đổi này đƣợc gọi là một bản tóm tắt thông điệp. Các chứng thực (Certificates) Một chứng thực thƣờng ngụ ý nói đến một chứng thực về nhân thân đƣợc phát hành bởi một cơ quan chứng thực bên thứ ba (third-party certificate authority - (CA) đáng tin cậy. Một chứng thực bao gồm các bản ghi nhƣ số sêri, tên ngƣời chủ sở hữu, các chìa khoá công khai của ngƣời chủ sở hữu, một thuật toán sử dụng những khoá này, loại hình chứng thực (ngƣời chủ sở hữu thẻ, ngƣời kinh doanh, hay một cổng nối thanh toán), tên của CA, và chữ ký số của CA 29
  30. Cơ quan chứng thực (Certificate Authority-CA) Một cơ quan chứng thực là một tổ chức, công cộng hay tƣ nhân, tổ chức này cố gắng đáp ứng nhu cầu về các dịch vụ bên thứ ba đáng tin cậy trong thƣơng mại điện tử. Một CA hoàn thành tốt việc này bằng việc phát hành các chứng thực số xác nhận cho một số dữ kiện nào đó về đối tƣợng của chứng thực. VeriSign là một CA tiên phong (VeriSign 1999). Phong bì số (Digital Envelope) Tạo lập phong bì số là quá trình mã hoá một chìa khoá bí mật (nhƣ là chìa khoá cho DES) với chìa khoá công khai của ngƣời nhận. Chìa khoá DES đƣợc mã hóa bằng cách này đƣợc gọi là một phong bì số, bởi vì chìa khoá DES phải đƣợc mở trƣớc hết để giải mã nội dung thông điệp với chìa khoá. Chứng thực giao dịch và Đóng dấu thời gian Một chứng thực giao dịch xác nhận cho dữ kiện nào đó về việc tiến hành một giao dịch, nó có thể đƣợc sử dụng để phòng tránh việc từ chối thi hành nghĩa vụ. Tƣơng tự, một dấu thời gian (time stamp) là một xác nhận số không thể giả mạo bằng cách mã hoá có nội dung là một văn bản đang tồn tại ở một thời gian cụ thể. Một CA có thể giữ những bằng chứng này tại máy tính của CA tuỳ theo yêu cầu của các khách hàng. 1.3.4.3. Kết hợp sử dụng các lƣợc đồ bảo mật Năm lƣợc đồ trên thƣờng đƣợc sử dụng kết hợp với nhau nhƣ sau: Một chữ ký số bảo đảm sự xác nhận của người gửi và không từ chối thi hành nghĩa vụ. Tại site của người nhận, thông điệp nhận được bị biến đổi để xuất hiện một bản tóm tắt thông điệp và chữ ký số bị biến đổi để xuất hiện bản tóm tắt thông điệp khác nữa. Bằng việc so sánh hai bản tóm tắt thông điệp này, tính chân thực có thể được đảm bảo. 30
  31. Thuật toán DES thêm vào phong bì số sử dụng thuật toán RSA có thể bảo đảm sự mã hóa an toàn. Chứng thực của người nhận, chứng thực bao gồm chìa khoá trao đổi khóa bí mật, có thể bảo đảm sự xác thực và không từ chối thi hành nghĩa vụ của người nhận. 1.4. KIẾN THỨC TỔNG QUAN VỀ LẬP TRÌNH PHP 1.4.1. Giới thiệu về ngôn ngữ PHP 1.4.1.1. Giới thiệu PHP (HyperText Preprocessor) là ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu đƣợc dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thich hợp với web và có thể dễ dàng nhúng vào trang HTML. Do đƣợc tối ƣu hóa cho các ứng dụng trong web, tốc độ thực thi nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tƣơng đối ngắn hơn so với các ngôn ngữ khác, nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất trên thế giới. 1.4.1.2. Lịch sử ra đời của PHP PHP đƣợc giới thiệu năm 1994 nhƣ một bộ sƣ tập của một ngôn ngữ lập trình chƣa chặt chẽ và dựa vào Perl và các dụng cụ của trang chủ. Tác giả của cuốn ngôn ngữ lập trình này, ông R. Lerdoft đã làm cho tất cả mọi ngƣời phải ngạc nhiên bởi đã sáng tạo ra nó. Tới năm 1998 việc công bố phiên bản 3 thì PHP mới chình thức phát triển theo hƣớng tách riêng. Giống nhƣ C và Perl, PHP là một ngôn ngữ lập trình có cấu trúc và tính năng đa dạng. Chính vì những điểm giống nhau này đã khuyến khích các nhà thiết kế Web chuyên nghiệp chuyển qua sử dụng PHP. Với phiên bản 3 này PHP cũng cung cấp một số lƣợng cơ sở dữ liệu khá đồ sộ gồm cả MySQL, mSQL, OPBC và Oracle. 31
  32. Cho đến nay thì PHP đã đƣợc công bố tới phiên bản 5 và càng ngày càng hoàn hảo và dễ sử dụng. Đến nay PHP vẫn là một dịch vụ hàng đâu miễn phí. Tuy nhiên không giống nhƣ một số ngôn ngữ lập trình Web khác càng ngày nó càng trở thành một xu hƣớng vì rất nhiều các trang Web hiện nay đƣợc làm bằng PHP. 1. 4. 1. 3 Cấu trúc cơ bản PHP cũng có thẻ bắt đầu và kết thúc giống với ngôn ngữ HTML. 1.Cấu trúc chính: 2. Cú pháp ngắn gọn: 3. Cú pháp bắt đầu bằng script . . . Trong PHP để kết thúc một dòng lệnh sử dụng dấu chấm phẩy “;” Để chú thích một đoạn dữ liệu nào đó trong PHP ta dùng dấu “//” cho từng dòng hoặc dùng cặp thẻ “/* . . */” cho từng cụm mã lệnh. Ví dụ: <?php Echo “hello word” 32
  33. ?> 1.4.2.Xuất giá trị ra trình duyệt Để xuất giá trị ra trình duyệt dùng cú pháp sau: Echo “thông tin”; printf “thông tin”; Thông tin bao gồm biến, chuỗi, hoặc lệnh HTML Nếu giữa hai chuỗi muốn liên kết với nhau ta sử dụng dấu “. ” 1.42.1 Khái niệm biến, hằng, chuỗi, và các kiểu dữ liệu a) Biến trong PHP Biến đƣợc xem là vùng dữ liệu tạm thời và giá trị có thể thay đổi đƣợc. Biếnđƣợc bắt đầu bằng ký hiệu “$”, theo sau là 1 từ, 1 cụm từ nhƣng phải viết liền hoặcgạch dƣới. Một biến đƣợc xem là hợp lệ nếu nó thỏa mãn các yếu tố: Tên của biến phải bắt đầu bằng gạch dưới và theo sau là các ký tự, số hay dấu gạch dưới. Tên của biến không được phép trùng với các từ khóa của PHP Trong PHP để sử dụng một biến thƣờng phải khai báo trƣớc, tuy nhiên đối với các lập trình viên khi sử dụng họ thƣờng xử lý cùng một lúc các công việc, nghĩa là vừa khai báo vừa gán dữ liệu cho biến. Ví dụ: 33
  34. b)Khái niệm về hằng trong PHP Hằng không thể thay đổi giá trị trong quá trình thực thi. Hằng trong PHP đƣợc định nghĩa bởi hàm define theo cú pháp: Define ( string tên hằng, giá trị hằng) Cũng giống với biến, hằng đƣợc xem là hợp lệ khi đáp ứng một số yếu tố: Hằng không có dấu”$” ở trước tên. Hằng có thể truy cập bất cứ vị trí nào trong mã lệnh Hằng chỉ được phép gán giá trị duy nhất 1 lần. Hằng thường viết bằng chữ in để phân biệt với biến c) Khái niệm về chuỗi: Chuỗi là một nhóm các ký tự, số, khoảng trắng, dấu ngắt đƣợc đặt trong dấu nháy. Ví dụ: „Ngọc‟ “Chào bạn” Để tạo một biến chuỗi vàgán giá trị chuỗi cho một biến hợp lệ Ví dụ: $fisrt_name=”Trần”; $last_name=”Ngọc Lan”; Để liên kết 1 chuỗi và 1 biến chúng ta thƣờng sử dụng dấu”. ” d)Kiểu dữ liệu trong PHP Các kiểu dữ liệu khác nhau chiếm các lƣợng bộ nhớ khác nhau và có thể đƣợc xử lý theo cách khác nhau khi đƣợc thao tác trong một script. 34
  35. Trong PHP có 6 kiểu dữ liệu chính nhƣ sau: Kiểu dữ liệu Mô tả Ví dụ Integer Số nguyên 10, 50, 42 Double Số thực 5. 24 String Tập hợp các ký tự “hello” Boolean Giá trị true hoặc false True or false Object Hƣớng đối tƣợng trong php Array Mảng trong php Dùng hàm gettype () của PHP để kiểm tra kiểu của bất kỳ biến. e) Toán tử trong PHP Các phép toán số học Toán tử Tên Ví dụ + Cộng $a+$b; - Trừ $a-$b; * Nhân $a*$b / Chia $a/$b % Modulo $a%$b 35
  36. Các toán tử: Toán Tử Sử dụng Tƣơng tự += $a+=$b $a=$a+$b; ++ $a++ $a=$a+1; -= $a-=$b $a=$a-$b; $a $a=$a-1; *= $a*=$b $a=$a*$b; /= $a/=$b $a=$a/$b; %= $a%=$b $a=$a%$b; . = $a. =$b $a=$a. $b; Các phép toán logic: Phép Ký hiệu Sử dụng Ý nghĩa toán ! NOT !$a Phéo toán phủ định Trả về true nếu cả hai biến có giá trị true && AND $a && $b và ngƣợc lại là false Trả về true nếu $a hay $b hay cả hai biến || OR $a||$b có giá trị true 36
  37. Trả về true nếu cả hai biến có giá trị true and AND $a and $b và ngƣợc lại là false or OR $a or $b Trả về true nếu $a hay $b hay cả hai biến có giá trị true Các phép toán so sánh: Phép toán Sử dụng Ý nghĩa so sánh == $a==$b $a bằng $b === $a===$b $a bằng và cùng kiểu dữ liệu với $b != $a!=$b $a không bằng $b $b $a không bằng $b $a>$b $a lớn hơn $b >= $a>=$b $a lớn hơn hoặc bằng $b Kiểm tra biến trong PHP: -is-array ():Kiểm tra biến là array hay không. -is-double ():Kiểm tra biến là double hay không. -is-float ():Kiểm tra biến là float hay không. -is-real ():Kiểm tra biến là real hay không. -is-long ():Kiểm tra biến là long hay không. 37
  38. -is-int ():Kiểm tra biến là int hay không. -is-interger ():Kiểm tra biến là interger hay không. -is-string ():Kiểm tra biến là string hay không. -is-object ():Kiểm tra biến là object hay không. -empty ():Cho phép kiểm tra biến tồn tại và không rỗng, có chiều dài khác 0 trả về true, ngƣợc lại false. Để sử dụng tất cả các hàm trên, cần phải truyền vào hàm biến PHP dƣới dạng tham số. f) Câu lệnh có điều kiện Câu lệnhif:Câu lệnh if với một điều kiện, nếu điều kiện là true thì khối lệnh trong câu lệnh if sẽ đƣợc thực hiện, điều kiện đƣợc khai báo trong dấu () Vidụ:$a = 10; $b=6; If ($a>$b) Echo $a+$b; Khối lệnh trong bất kỳ câu lệnh điều kiện nào cũng có thể sử dụng dấu “{}”. Có ý nghĩa là nếu khối lệnh trong câu lệnh lớn hơn 1thì phải sử dụng hai dấu trên. Câu lệnhelse:câu lệnh else luôn là trƣờng hợp ngƣợc lại của câu lệnh if với một điều kiện, nếu điều kiện là true thì khối lệnh trong câu lệnh if sẽ đƣợc thực hiện, ngƣợc lại khối lệnh trong câu lệnh else sẽ đƣợc thực hiện. Ví dụ: $a = 10; $b=6; if ($a>$b) echo $a+$b; else 38
  39. $b=$a+1; Tƣơng tự nhƣ trong trƣờng hợp câu lệnh if, nếu khối lệnh trong câu lệnh điều kiện else có hơn 1 dòng lệnh thì sẽ phải khai báo sử dụng dấu { và }. Câu lệnhswitch: Tƣơng tự nhƣ câu lệnh if, nhƣng trong trƣờng hợp có nhiều hơn hai tùy chọn cụ thể cho phép quyết định. Ví dụ:switch ($diem) { case “5”:echo “Điểm trung bình”;break; case “7”:echo “Điểm khá”;break; case “9”:echo “Điểm giỏi”;break; deafault:echo “nhập lại”; } Nếu đúng điều kiện case, cần khai báo lệnh break để thoát ra khỏi câu lệnh switch. Trong trƣờng hợp không khai báo break trong mỗi câu lệnh case, nếu thỏa mãn điều kiện trong case nhƣng PHP vẫn tiếp tục thực hiện tiếp các câu lệnh case sau đó. Câu lệnhwhile:câu lệnh vòng lặp đơn giản nhất trong PHP là vòng lặp while cho phép bạn thực thi khối lệnh trong while cho đến khi điều kiện của while là true nhƣ cú pháp: While (điều kiện) { Câu lệnh thực hiện } While (điều kiện) 39
  40. Câu lệnh vòng lặp for: Tƣơng tự nhƣ trong câu lệnh while, có thể sử dụng vòng lặp for voeí 1 giới hạn chỉ định. For (giá trị khởi đầu;điều kiện giới hạn;giá trị lặp của vòng lặp for) { Khối lệnh thực hiện; } g) Lưu trữ và truy vấn dữ liệu bằng PHP Mở file bằng PHP: fopen (tên file, chế độ mở):mở file fputs (), fwrite ():ghi file fclose (): Đóng file feof ():Nhận giá trị true nếu con trỏ ở cuối file file_exists ():Kiểm tra file có tồn tại filesize ():Kiểm tra dung lƣợng của file unlink ():xóa file Chế độ mở file: Mode Diễn giải R Mở dƣới dạng Read-Only r+ Mở dƣới dạng Read-Write w Mở dƣới dạng Read-Only Mở dƣới dạng Write-Read. Nếu file này tồn tại, nội dung w+ sẽ bị xóa, nếu không tồn tại sẽ đƣợc tạo ra. 40
  41. Mở dƣới dạng append dữ liệu (write), nếu nội dung tồn tại, bắt đầu cuối cùng của nội dung, dữ liệu sẽ đƣợc ghi tiếp a phần cuối, trong trƣờng hợp file không tồn tại sẽ đƣợc tạo ra. Mở dƣới dạng append dữ liệu (write & read), nếu nội dung tồn tại, bắt đầu phần đầu của nội dung, dữ liệu sẽ đƣợc ghi a+ tiếp phần đầu, trong trƣờng hợp file không tồn tại sẽ đƣợc tạo ra. Thiết lập kết nối cơ sở dữ liệu Để kết nối cơ sở dữ liệu MySQL, cần cung cấp tên Server hay IP (có thể là localhost) của máy chứa cơ sở dữ liệu MySQL, Username và Password để đăng nhập làm việc trên cơ sở dữ liệu đƣợc mở. Thiết lập kết nối: Int mysql_pcconnect (“serverbname”, ”username”, ”password”); If (!$db) { Echo”Không kết nối đƣợc cơ sở dữ liệu”; } Hoặc $link = mysql_connect (“serverbname”, ”username”, ”password”); Or die (“Không kết nối đƣợc cơ sở dữ liệu”) Mở một CSDL: Mysql_select_db (“database name”); 41
  42. Hoặc Mysql_select_db (“database name”, $link); Đóng kết nối cơ sở dữ liệu: mysql_close (database_connection) Truy vấn CSDL: Int mysql_query (string sql); Int mysql_query (string sql, [int db_connect]); Int mysql_query (string database, string sql, [int db_connect]); Số lƣợng mẩu tin: Mysql_num_rows ();Cho biết số lƣợng mẩu tin câu truy vấn trả về. Truy vấn dữ liệu: Int mysql_fetch_array ($result); Mysql_fetch_object ($result); Dung lƣợng của tập mẩu tin:Int mysql_free_result (int $result); 1.4.3 Giới thiệu MySQL MySQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở dành cho máy tính cá nhân. MySQL còn đang trên đà phát triển, nhƣng các lệnh của SQL có thể thử nghiệm đƣợc trên cơ sở dữ liệu MySQL. MySQL là cơ sở dữ liệu đƣợc sử dụng cho các ứng dụng web có quy mô vừa và nhỏ. Tuy không phải là một cơ sở dữ liệu lớn nhƣng chúng cũng có trình giao diện trên Windows hay Linux, cho phép ngƣời dùng có thể thao tác các hành động liên quan đến cơ sở dữ liệu. Cũng giống nhƣ các hệ cơ sở dữ liệu khác, khi làm việc với cơ sở dữ liệu MySQL bạn đăng ký kết nối, tạo cơ sở dữ liệu, quản lý ngƣời dùng, phân quyền sử dụng, thiết kế đối tƣợng table của cơ sở dữ liệu và xử lý dữ liệu. 42
  43. Có thể dowload tại website www. mysql. com qua mạng internet phần mềm hệ quản trị cơ sở dữ liệu server/client đến các phần mềm tiện nghi và các phần mềm giao diện đẹp mắt và tiện dụng. 1.4.3.1. Loại dữ liệu numeric Kích Loại Miền giá trị Diễn giải thƣớc Tinyint -127->128 hay 0. . 255 1 Số nguyên rất nhỏ -32768->32767 hay Số nguyên nhỏ Smallint 2 0. . 65535 -8388608->838860 Số nguyên vừa Mediumint 3 hay 0. . 16777215 Int -231->231 hay 0. . 232-1 4 Số nguyên Bigint -263->263 hay 0. . 264-1 8 Số nguyên lớn Phụ thuộc số thập phân Số thập phân dạng Float Single hay Double ±1. 175494351E-38 Số thập phân dạng Float (M, D) 4 ±4. 40282346638 Single ±1. 7976931348623157308 Số thập phân dạng Double(M,D) 8 ±2. 2250738585072014E-308 double Số chấm động lƣu Float(M,D) dƣới dạng char 43
  44. 1.4.3.2. Loại dữ liệu dạng Date and Time Loại Miền giá trị Diễn giải Date 1000-01-01 Date trình bày dƣới dạng YYYY-mm-dd Time 00:00:00 Time trình bày dƣới dnagj hh:mm:ss 23:59:59 DateTime 1000-01-01 Date và time trình bày dƣới dạng 00:00:00 YYY-mm-dd 9999-12-31 hh:mm:ss 23:59:59 TimeStamp[ 1970-01-01 TimeStamp trình bày dƣới dạng (M)] 00:00:00 YYYY-mm-dd hh:mm:ss Year[ (2|4)] 1970-2069 Year trình bày dƣới dạng 2 số hay 4 số 1901-2155 1.4.3.3. Trình bày đại diện của timeStamp Loại Hiển thị TimeStamp YYYYMMDDHHMMSS TimeStamp (14) YYYYMMDDHHMMSS TimeStamp (12) YYMMDDHHMMSS TimeStamp (10) YYMMDDHHMM TimeStamp (8) YYYYMMDD 44
  45. TimeStamp (6) YYMMDD TimeStamp (4) YYMM TimeStamp (2) YY (y = năm, m = tháng, d = ngày) 1.4.3.4. Loại dữ liệu Loại Miền giá trị Diễn giải Char 1-255 Chiều dài của chuỗi lớn nhất 255 ký tự Varchar 1-255 Chiều dài của chuỗi lớn nhất 255 ký tự Tinyblob 28-1 Khai báo cho Field chứa kiểu đối tƣợng nhị phân cỡ 255 ký tự Tinytext 28-1 Khai báo cho Field chứa kiểu chuỗi cỡ 255 ký tự Blob 216-1 Khai báo cho Field chứa kiểu bolb cỡ 65535 ký tự Text 216-1 Khai báo cho Field chứa kiểu chuỗi dạng văn bản 65535 ký tự Mediumblob 224-1 Khai báo cho Field chứa kiểu bolb vừa khoảng 16777215 ký tự Mediumtext 224-1 Khai báo cho Field chứa kiểu chuỗi dạng văn bản vừa khoảng 16777215 ký tự 45
  46. Longblob 232-1 Khai báo cho Field chứa kiểu bolb lớn khoảng 4294967295 ký tự Longtext 232-1 Khai báo cho Field chứa kiểu bolb vừa khoảng 4294967295 ký tự 1.4.4. Câu lệnh SQL 1.4.4.1. Tạo CSDL Creat Database Create 1.4.4.2 Các câu lệnh SQL thao tác dữ liệu SELECT (truy vấn mẩu tin) INSERT (thêm mẩu tin) UPDATE (cập nhật dữ liệu) DELETE (xóa mẩu tin) a) Câu lệnh SELECT Select From Where [Group by ] [Having ] [Order by ] [Limit fromNumber| To Number] 46
  47. b) Câu lệnh INSERT insert into [ ] values (data_values) c) Câu lệnh UPDATE Update Set = , [ = ] [where ] d) Câu lệnh DELETE Delete from Where Một số hàm thông dụng trong MySQL Hàm AVG: Hàm trả về giá trị bình quân của cột hay trƣờng trong câu truy vẫn Ví dụ:select AVG (Amount) From tblOrder Hàm MIN: Hàm trả về giá trị nhỏ nhất của cột hay trƣờng trong câu truy vấn Ví dụ:select MIN (Amount) From tblOrder Hàm MAX: Hàm trả về giá trị lớn nhất của cột hay trƣờng trong câu truy vấn Ví dụ:select MAX (Amount) From tblOrder Hàm Count:Hàm trả về số lƣợng mẩu tin trong câu truy vấn Ví dụ:select Count (*) 47
  48. From tblOrder Hàm Sum: Hàm trả về tổng các giá trị của trƣờng, cột trong câu truy vấn Ví dụ:select SUMAmount) From tblOrder Hàm Curdate (): Hàm trả về ngày tháng năm hiện hànhcủa hệ thống Ví dụ: Select curdate () as‟ngày hiện tại‟ Hàm curtime (): Hàm trả về giờ phút giây hiện hành của hệ thống Ví dụ: Select curtime () as‟thời gian‟. 48
  49. CHƢƠNG2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.1. MÔ TẢ HỆ THỐNG CUNG CẤP PHIM THEO YÊU CẦU Của hàng có một hệ thống cho phép sao chép phim HD, Cửa hàng cần xây dựng một hệ thống trên website để giới thiệu phim và bán hàng. Khách hàng truy cập vào website có thể xem đƣợc thông tin phim và đặt hàng trực tiếp trên website. Sau đó cửa hàng sẽ liên hệ và cung cấp phim theo yêu cầu của khách hàngmột cách nhanh chóng nhất. Khách hàng truy cập vào website:Khách hàng có thể biết đƣợc thông tin, địa chỉ của cửa hàng, xem đƣợc cái thể loại phim, các phim, các thông tin về phim. Các thông tin về phim gồm:Mã Phim, Tên Tiếng Anh, Tên Tiếng Việt, Dung Lƣợng, ThểLoại, Giá Tiền, thông tin phim đƣợc lƣu trên một tệpExcel và đƣợc lƣu trên một ảnh của mỗi phim. Khách hàng có thể tìm kiếm theo thể loại phim, theo tên phim, mã phim. Khi đó hệ thống sẽ hiển thị ra tất cả các phim thỏa mãn yêu cầu tìm kiếm của khách hàng. Khách hàng đặt hàng trên website:Khi khách hàng xem thông tin phim và ƣng ý một số phim, khách hàng có thể chọn phim, thêm phim vào danh sách phim đã chọn, kết thúc quá trình lựa chọn khách hàng có thể xem chi tiết danh sách phim mình đã chọn nhƣ số lƣợng, tên phim, giá của từng phim, tổng giá của danh sách phim đã chọn, có thể xóa hoặc bỏ một vài lựa chọn đã chọn. Sau khi đã hài lòng về danh sách phim đã chọn, khách hàng sẽ gửi danh sách phim đã chọnvà điền đầy đủ các thông tin khách hàng để gửi về hệ thống để hệ thống xử lý yêu cầu của khách hàng một cách nhanh nhất. Hệ thống có thể cập nhật dữ liệu từ dữ liệuExcel vào cơ sở dữ liệu, các ảnh của phim đƣợc tải lên một thƣ mục của hệ thống. Ban quản trị có thể xem đƣợc danh sách yêu cầu của khách hàng và tạo đơn hàng cũng nhƣ sửa đổi đƣợc thông tin phim. 49
  50. 2.2. MỤC ĐÍCH XÂY DỰNG WEBSITE Một cửa hàng có hệ thống sao chép phim có nhu cầu xây dựng website giới thiệu và bán hàng. Xây dựng website cho phép khách hàng có thể xem thông tin về phim và đặt hàng phim mà mình lựa chọn để cửa hàng có thể liên hệ và cung cấp phim cho khách hàng nhanh gọn, thuận tiện. 2.3. PHÂN TÍCH HỆ THỐNG 2.3.1. Các kiểu ngƣời dùng - Khách hàng:Xem thông tin phim, sử dụng chức năng tìm kiếm, và đặt hàng phim. - Ban quản trị: Cập nhật, sửa đổi, thông tin phim trên Website, tiếp nhận yêu cầu của khách hàng, tạo đơn đặt hàng cho khách và giao cho nhân viên. 2.3.2. Đặc tả quy trình nghiệp vụ của hệ thống 2.3.2.1. Ngƣời dùng vào website Do nhu cầu của cửa hàng là giới thiệu phim và nhận đặt hàng của khách nên chúng ta không chia ngƣời dùng là khách hàng ra làm 2 nhóm có tài khoản và không có tài khoản, hệ thống website cũng không cung cấp tính năng đăng ký và đăng nhập tài khoản ngƣời dùng. Đối với ngƣời dùng là khách hàng truy cập vào website sẽ đƣợc cung cấp các tính năng nhƣ sau: Chức năng hiển thị và tìm kiếm: Đƣợc xem hiển thị thông tin website, cửa hàng, tất cả các danh mục phim, tất cả các phim, và thông tin liên quan đến phim nhƣ tên phim, dung lƣợng phim, mã phim, và giá phim. Có thể lựa chọn từ khóa tìm kiếm liên quan đến tên phim, và mã của phim, lựa chọn giới hạn tìm kiếm trong một danh mục,hoặc tìm kiếm tất cả các phim nằm trong một nhóm, danh mục. Sau đó hệ thống sẽ hiển thị tất cả các phim trong cơ sở dữ liệuthỏa mãn yêu cầu tìm kiếm. 50
  51. Chức năng đặt hàng:Khi xem thông tin và ƣng ý một số phim, khách hàng có thế thêm phim đó vào giỏ hàng, kết thúc quá trình lựa chọn phim, khách hàng có thể xem chi tiết về giỏ hàng mà mình đã lựa chọn nhƣ số lƣợng phim đã chọn, tên, giá của từng phim, giá của cả giỏ hàng, có thể xóa hết hoặc bỏ một vài lựa chọn đã chọn và gửi thông tin phim cần sao chép cho cửa hàng thông qua trang web. 2.3.2.2.Ban quản trị website Ngƣời quản trị (Admin): Quản lý thông tin website, Thông tin ngƣời dùng, cập nhật, đăng và chỉnh sửa thông tin về phim. Tiếp nhận yêu cầu của khách, tạo hóa đơn và giao cho nhân viên liên hệ và cung cấp cho khách hàng. 2.3.2.3. Biểu đồ hoạt động KHÁCH QUẢN LÝ NHÂN VIÊN HỒ SƠ DỮ LIỆU 51
  52. DS phim Xem và tìm kiếm t.t phim DS loại phim Chọn Đặt hàng DS Khách Lấyt.t khách và ds phim khách DS phim đã đã chọn chọn Tạo hóa đơn DS Hóa đơn Liên hệ và giao hàng cho khách Hình 7 : Bảng phân tích biểu đồ hoạt động 52
  53. 2.3.3Bảng phân tích yếu tố bài toán: Động từ+Bổ ngữ Danh từ Nhận xét Hiển thị phim Cửa hàng = Xem thông tin loại phim Loại phim = Xem thông tin phim Phim = Tìm kiếm phim Khách Tác nhân Lựa chọn phim Thông tin loại phim HSDL Gửi danh sách phim đã chọn Thông tin phim HSDL Gửi thông tin khách hàng Danh sách phim HSDL Update dữ liệu HT Thông tin khách hàng HSDL Tạo hóa đơn Ngƣời quản lý, nhân viên Tác nhân Sửa, đổi thông tin phim Thông tin hóa đơn HSDL Thông tin ngƣời dùng HSDL 53
  54. 2.3.4. Mô hình hóa nghiệp vụ 2.3.4.1. Biểu đồ ngữ cảnh hệ thống Dang nhap Xem và tìm kiếm T.T phim 0 Đăng nhập hệ thống BAN KHÁCH Gửi T.T tìm kiếm HỆ THỐNG CUNG CẤP Gửi T.T phản hồi QUẢN TRỊ PHIM THEO YÊU CẦU Chọn phim Quản lý T.T Gửi D.S phim đã chọn T.T phản hồi Gửi T.T khách Gửi T.T Phản hồi khách hàng Hình 8: Biểu đồ ngữ cảnh của hệ thống 54
  55. 2.3.4.2. Biểu đồ phân rã chức năng HỆ THỐNG CUNG CẤP PHIM THEO YÊU CẦU 1. TÌM KIẾM 2. ĐẶT HÀNG 3. QUẢN TRỊ HT 1.1 Theo mã phim 2.1 Lựa chọn phim 3.1 Cập nhật dữ liệu HT 1.2 Theo tên phim 2.2 Gửi DS phim đã chọn 3.2 Tạo hóa đơn 1.3 Theo danh mục, Thể 2.3 Gửi T.T về khách hàng 3.3 Sửa đổi T.T phim loại phim. Hình 9: Biểu đồ phân rã chức năng 55
  56. 2.3.4.3. Ma trận thực thể chức năng Các thực thể dữ liệu A:Thông tin loại phim B:Thông tin phim C:Danh sách phimcủa khách D:Thông tin khách hàng E:Thông tin hóa đơn F: Thông tin ngƣời dùng Các chức năng nghiệp vụ A B C D E F Tìm kiếm R R Đặt hàng U U Quản trị Hệ thống U U R R C U Hình 10: Ma trận thực thể chức năng 56
  57. 2.3.4.4. Biểu đồ luồng dữ liệu mức 0 Thông báo đặt hàng KHÁCH Đặt hàng i T.T i m m T.T ồ ế A T.T Loại phim n h n ả Tìm ki Tìm Ph B T.T Phim 1.0 2.0 TÌM ĐẶT KIẾM HÀNG C D.S Phim đã chọn D T.T Khách m ế m E Hóa đơn ế F T.T Ngƣời dùng Tìm ki Tìm T.T tìm ki tìm T.T Đăng nhập 3.0 T.T Phản hồi QUẢN TRỊ BAN QUẢN TRỊ HỆ THỐNG QLngƣời dùng QL Phim T.T Phản hồi QL Khách T.T Phản hồi 57 Hình 11: Biểu đồ luồng dữ liệu mức 0
  58. 2.3.4.5. Biểu đồ luồng dữ liệu vật lý mức 1: 1.0 Tìm kiếm 1.1 Y/C tìm kiếm KHÁCH HÀNG /C tìm T.Tk Phản Hồi TÌMKIẾM THEO MÃ PHIM B T.T Phim Y/C tìm kiếm 1.2 /C tìm k T.T Phản Hồi TÌMKIẾM THEO TÊN PHIM B T.T Phim Y/C tìm kiếm 1.3 /C tìm k TÌM KIẾM THEO THỂ T.T Phản Hồi LOẠI A T.T Loại Phim Hình 12: Biểu đồ luồng dữ liệu vật lý mức 1: 1.0 Tìm kiếm 58
  59. 2.3.4.6. Biểu đồ luồng dữ liệu vật lý mức 1: 2.0 Đặt hàng Y/C Chọn 2.1 KHÁCH HÀNG /C tìm k Kết quả LỰA CHỌN PHIM Gửi yêu cầu 2.2 GỬI DANH SÁCH PHIM ĐÃ CHỌN C Danh sách phim của khách Gửi yêu cầu /C tìm k 2.3 TÌM KIẾM THEO THỂ LOẠI D T.T Khách hàng Hình 13: Biểu đồ luồng dữ liệu vật lý mức 1: 2.0 Đặt hàng 59
  60. 2.3.4.7. Biểu đồ luồng dữ liệu vật lý mức 1: 3.0 Quản trị Hệ thống Y/C Cập nhậtìm k 3.1 QUẢN LÝ HỆ THỐNG CẬP NHẬT DỮ LIỆU H.T T.T Phản Hồi F D.S Ngƣời dùng Gửi yêu cầu /C tìm k 3.2 TẠO HÓA ĐƠN T.T Phản Hồi E Hóa đơn Y/C Sửa 3.3 /C tìm k SỬA THÔNG TIN PHIM T.T Phản Hồi B T.T Phim Hình 14: Biểu đồ luồng dữ liệu vật lý mức 1: 3.0 Quản trị Hệ thống 60
  61. 2.3.5. Mô hình liên kết thực thể ER a) Các kiểu thực thể Kiểu Thực thể Thuộc Tính Thuộc Tính Khóa Mã khách,Tên khách,địa Khách hàng Mã khách hàng chỉ,thƣ điện tử,số điện thoại. Mã phim,tên tiếng Anh,tên Phim tiếng Việt,dung lƣợng,Mã Mã phim loại phim,giá tiền. Loại phim Mã loại phim,tên loại phim. Mã loại phim Mã nhân viên,tên nhân viên,chức danh,địa chỉ,ngày Nhân viên Mã nhân viên sinh,giới tính,thƣ điện tử,số điện thoại. b) Xác định các kiểu liên kết: n 1 PHIM Thuộc LOẠI PHIM 1 n NHÂN VIÊN Quản lý PHIM 1 n NHÂN VIÊN Giao hàng KHÁCH 61
  62. 1 p KHÁCH Mua PHIM 1 NHÂN VIÊN Tên khách Thƣ điện tử Mã kkhách Mã loại phim Tên loại phim Địa chỉ KHÁCH LOẠI PHIM 1 n 1 Sđt Mã HĐ Mã giao hàng Ngày đặt Giao Mua Ngày giao Thành Tiền Số lƣợng Mã HĐ Thuộc Chức danh Mã NV Mã phim 1 1 p n Tên Tên TA NHÂN VIÊN Quản lý PHIM 1 n Địa chỉ Tên TV sđt Giátiền Giới tính Dung Lƣợng Thƣ điện Mã loại phim tử Ngày sinh Hình 15: Môhình ER 62
  63. c) Chuyển từ mô hình ER sang mô hình quan hệ Biểu diễn các thực thể: KHÁCHGFH FGH => KHÁCH (Mã khách,Tên khách,Thƣ điện tử,Địa chỉ,Số điện thoại) LOẠI PHIM =>LOẠI PHIM (Mã loại phim,Tên loại phim) PHIMFHFGH =>PHIM (Mã phim,Tên tiếng Anh,Tên tiếng Việt,Dung lƣợng,Mã loại phim,Giá tiền) NHÂN VIÊNGH =>NHÂN VIÊN(Mã Nhân Viên,Tên Nhân viên,Chức danh,Địa chỉ,Giới tính,Ngày sinh,Số Điện Thoại) Các mối quan hệ: Mua PHIẾU MUA HÀNG(Mã Hóa đơn, Ngày mua,Số lƣợng,Mã khách,Mã phim,Mã nhân viên,Thành tiền) 63
  64. Giao =>PHIẾU GIAO HÀNG (Mã giao hàng, Mã Hóa đơn, Ngày giao, Mã khách, Mã nhân viên) Các bảng: KHÁCH HÀNG Mã Khách Tên Khách Thƣ Điện Tử Địa Chỉ Số Điện Thoại LOẠI PHIM Mã Loại Phim Tên Loại Phim PHIM Mã phim Tên TA Tên TV Dung Mã loại Giá tiền lƣợng phim NHÂN VIÊN Mã NV Tên Chức Địa chỉ Giới Ngày Sđt NV Danh tính Sinh 64
  65. PHIẾU MUA HÀNG Mã hóa Mã Mã Phim Số lƣợng Thành Ngày Mã NV đơn Khách Tiền mua PHIẾU GIAO HÀNG Mã giao Mã hóa Mã Ngày giao Mã NV hàng đơn Khách 65
  66. d) Mô hình quan hệ: Hình 16:Mô hình quan hệ 2.3.6. Thiết kế các bảng dữ liệu Để thiết kế các bảng dữ liệu dƣới đây ta dung hệ quản trị cơ sở dữ liệu MySQL. 2.3.6.1 Bảng Khách hàng Là bảng lƣu thông tin của khách hàng, thông tin lƣu trữ bao gồm: Tên Trƣờng Kiểu Dữ Liệu Ghi Chú MaKH INT (11) Mã Khách hàng 66
  67. TenKH VARCHAR (50) Tên Khách Hàng ThuDT VARCHAR (80) Thƣ Điện Tử DiaChi VARCHAR (80) Địa Chỉ SoDT VARCHAR (13) Số Điện Thoại 2.3.6.2. Bảng Loại Phim Là bảng lƣu thông tin về kiểu phim, thông tin lƣu trữ bao gồm: Tên Trƣờng Kiểu Dữ Liệu Ghi Chú MaLoaiPhim INT (11) Mã Loại Phim TenLoaiPhim VARCHAR (150) Tên Loại Phim 2.3.6.3. Bảng Phim Là bảng lƣu thông tin về phim, thông tin lƣu trữ bao gồm: Tên Trƣờng Kiểu Dữ Liệu Ghi Chú MaPhim INT (11) Mã Phim TenTA VARCHAR (150) Tên Tiếng Anh TenTV VARCHAR (150) Tên Tiếng Việt DungLuong FLOAT(5) Dung Lƣợng MaLoaiPhim INT(11) Mã Loại Phim GiaTien INT(11) Giá Tiền 67
  68. 2.3.6.4. Bảng Nhân Viên Là bảng lƣu thông tin về phim, thông tin lƣu trữ bao gồm: Tên Trƣờng Kiểu Dữ Liệu Ghi Chú MaNV INT (11) Mã Nhân Viên TenNV VARCHAR (150) Tên Nhân Viên Chucdanh VARCHAR (150) Chức Danh DiaChi VARCHAR (150) Địa chỉ GioiTinh VARCHAR(3) Giới Tính NgaySinh DATE Ngày Sinh Sodt VARCHAR(13) Số Điện Thoại 2.3.6.5. Bảng Phiếu Mua Hàng -Chi tiết cấu trúc bảng đƣợc chỉ trong bảng dƣới đây Tên Trƣờng Kiểu Dữ Liệu Ghi Chú MaHD INT (11) Mã Hóa Đơn MaKH INT(11) Mã Khách Hàng MaPhim INT(11) Mã Phim SoLuong INT(3) Số Lƣợng ThanhTien FLOAT(12) Thành Tiền MaNV INT(11) Mã Nhân Viên 68
  69. 2.3.6.6. Bảng Phiếu Giao Hàng - Chi tiết cấu trúc bảng đƣợc chỉ trong bảng dƣới đây Tên Trƣờng Kiểu Dữ Liệu Ghi Chú MaGiaohang INT (11) Mã Giao Hàng MaHD INT(11) Mã Hóa Đơn MaKH INT (11) Mã Khách Hàng NgayGiao DATE Ngày Giao MaNV INT (11) Mã Nhân Viên 69
  70. 2.3.7.Mô hình cơ sở dữ liệu vật lý Hình 17:Cơ Sở dữ liệu vật lý CHƢƠNG 3: HỆ THỐNG THỬ NGHIỆM Trong chƣơng này là hệ thống thử nghiệm. hệ thông sử dụng ngôn ngữ lập trình PHP, hệ quản trị cơ sở dữ liệu My SQL và có sử dụng một số đoạn mã nguồn mở đƣợc chia sẻ trên mạng. 3.1. YÊU CẦU HỆ THỐNG Để thử nghiệm chƣơng trình trong khóa luận này em thực hiện trên hệ thống máy tính có cấu hình nhƣ sau: 3.1.1. Phần cứng - Pentium(R) Dual-Core CPU E5300 @2. 60GHz (2 CPUs)2048MB RAM. - Mainboard: GIGABYTE - HDD: Samsung 520 GB 70
  71. 3.1.2. Phần mềm - Hệ điều hành Window XP Professional. (5. 1 Build 2600) SP3 - XAMPP2.5 gồm PHP, MySQL, Apache, 3.2. GIAO DIỆN CỦA WEBSITE Khi truy cập vào website, giao diện sẽ hiện ra nhƣ sau: Hình 18: Giao diện chính của chƣơng trình 71
  72. 3.3. CHỨC NĂNG CỦA KHÁCH HÀNG Chức năng tìm kiếm: Hình 19:Giao diện tìm kiếm Chức năng chọn phim: Hình 20: Thông tin phim đã chọn 72
  73. Khi khách hàng muốn xem chi tiết về các phim mình đã chọn, khi bấm vào nút chi tiết thì sẽ hiện thông tin lên nhƣ sau: Hình 21: Danh sách phim đã chọn Khi khách hàng muốn đặt hàng thì khách hàng sẽ phải điền thông tin vào bảng sau: Hình 22: Nhập thông tin khách hàng 73
  74. 3.4. CHỨC NĂNG QUẢN TRỊ Chức năng đăng nhập hệ thống Hình 23: Giao diện đăng nhập Quản lý hệ thống: Hình 24: Giao diện quản lý ngƣời dùng 74
  75. Quản lý danh sách phim: Hình 25:Danh sách phim 75
  76. Quản lý khách hàng: Hình 26: Danh sách khách hàng Tạo hóa đơn hàng: Hình 27: Tạo hóa đơn 76
  77. KẾT LUẬN Xây dựng ứng dụng dựa trên nền Web là định hƣớng đúng đắn đã đƣợc thực tế kiểm nghiệm. Hiện nay, phần lớn các ứng dụng đƣợc triển khai trên nền Web với kết nối Internet làm nền tảng nhƣ: Hệ thống chia sẻ File, các mạng xã hội, các hệ thống tính toán đám mây,. . . Trên xu hƣớng đó, khóa luận đã chọn cách xây dựng ứng dụng hỗ trợ cung cấp phim theo yêu cầu dựa trên nền Web và đã đạt đƣợc một số kết quả sau: Hệ thống đƣợc các khái niệm về công nghệ cần thiết cho việc phát triển ứng dụng dựa trên Web. Phân tích thiết kế hệ thống hỗ trợ cung cấp phim theo yêu cầu. Xây dựng ứng dụng thực nghiệm. Hạn chế: Ứng dụng còn một số hạn chế: Giao diện chƣa thân thiện Một số chức năng phụ trợ cần xây dựng thêm. Vấn đề an toàn và bảo mật ở mức trung bình. 77
  78. TÀI LIỆU THAM KHẢO [1]. Nguyễn văn Vỵ,Phân tích và thiết kế hệ thống thông tin quản lý, Nhà xuất bản Khoa học Tự nhiên và Công nghệ, 2007. [2]. Vũ Anh Hùng,Bải giảng Cơ sở dữ liệu. [3]. NguyễnTrƣờng Sinh,Sổtay PHP& MySQL,Nhà xuất bảnPhƣơng Đông,2010. [4]. NguyễnTấnTrƣờng,HướngdẫnthựchànhPHPvàMySQL,Nhà xuất bản ThanhNiên,2008. 78