Bài giảng Thiết kế trang web

doc 129 trang huongle 4791
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Thiết kế trang web", để 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:

  • docbai_giang_thiet_ke_trang_web.doc

Nội dung text: Bài giảng Thiết kế trang web

  1.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Thiết kế trang web
  2.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Mục lục Mục lục1 Các thuật ngữ dùng trong đồ án 4 phần 1 Thiết kế một Web site10 Phần giới thiệu 11 Chương 1. Các khái niệm cơ bản. 12 I. Một trang Web là gì? 12 II. Một trang Home Page là gì? 13 III.Một Web site là gì? 14 IV. Ngôn ngữ HTML 16 V. Các Scripts là gì? 17 VI. Trình duyệt Web (Web Browser) 18 VII. Các URL (Uniform Resource Locator) 18 Chương 2 Các công cụ cần có 20 I. Phía Server 20 I.1. Netscdeape Server 20 I.2. Internet Information Server Web Server 22 II. Phía client 22 II.1. Netscape Navigator 22 II.2. Microsoft Internet Explorer 26 Chương 3 Thiết kế một Web site 28 Lời giới thiệu 28
  3.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Các yếu tố cơ bản và mục đích của việc thiết kế một Web site 31 I. Cấu trúc một trang Web 32 II. Liên kết các trang lại với nhau 33 III. Các phương pháp thiết kế một Web site 35 III.1. Phương pháp từ trên xuống dưới 35 III.2. Phương pháp thiết kế từ dưới lên 36 III.3. Phương pháp thiết kế lớn dần/khi cần thiết 36 IV. Các kỹ thuật thiết kế 37 IV.1. Tổ chức thông tin thành từng nhóm có kích thước hợp lý 37 V. Các vấn đề khi thiết kế một Web site 38 V.1. Trang đến từ bên ngoài (page from outer space) 38 V.2. Trang Web khổng lồ (Monster Page) 40 V.3. Dùng các công cụ đa phương tiện quá mức cần thiết 40 V.4. Trang Web không có cấu trúc 41 V.5. Các liên kết vô nghĩa 41 Chương 4 Các ứng dụng cơ bản của Web 42 I. Web với thương mại 42 I.1. Quảng cáo trên Web 42 I.2. Mua bán hàng hoá trên Web 42
  4.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o I.3. Thanh toán và mở tài khoản với ngân hàng qua Web 42 II. Web với vui chơi và giải trí và nghệ thuật 43 III. Web với giáo dục và nghiên cứu43 III.1. Web thúc đẩy học sinh học tập tốt hơn 43 III.2. Các trường học trên Web 43 IV. Web với khoa học và công nghệ 43 Phần II: Giới thiệu Java và cơ sở dữ liệu 44 Giới thiệu về Java truy cập vào các cơ sở dữ liệu 45 Các Java Enterprise API 46 JDBC 47 Sự áp dụng JDBC 49 Giới thiệu cụ thể về các class của JDBC 52 java.sql.DriverManager 54 java.sql.Driver 55 java.sql.Connection 56 java.sql.Statement 58 java.sql.PreparedStatement 58 java.sql.CallableSatement 58 java.sql.ResultSet 58 MetaData 61
  5.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Java RMI và sắp xếp đối tượng (Object Serialization) 62 Java IDL64 Nhà cung cấp/ Các giải pháp thành viên thứ ba 65 Oracle 65 Cấu trúc Web Server của Oracle 65 Java cartridge 66 Các class Java của riêng Oracle 66 Visigenic 67 Visigenic OpenChannel Client cho Java 67 Trình giao tiếp giữa JDBC và ODBC của Visigenic 68 Tương lai 68 phần III: Xây dựng dịch vụ hội nghị từ xa trên Web 70 Phần giới thiệu 70 I. Mục đích thiết kế 71 II. Cơ sở lý thuyết và công cụ để thiết kế 72 II.1. Giới thiệu giao thức IRC 72 II.1.1. Các máy chủ (servers) 72 II.1.2. Các máy khách (clients)73 II.1.1.1. Người điều hành (operator)73 II.1.3. Các kênh (Channels) 74
  6.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o II.1.3.1. Người điều hành kênh75 II.2. Các đặc điểm kỹ thuật của IRC 75 II.2.1. Tổng quan 75 II.2.2. Các m• ký tự 76 II.2.3. Các thông điệp IRC (messages) 76 II.4. Giới thiệu công cụ thiết kế dịch vụ hội nghị từ xa trên Web 77 II.4.1. Java hỗ trợ cơ chế đa luồng (Multi-threads) 77 II.4.1.1. Giới thiệu về các Thread 77 II.4.1.2. Thread làm việc ra sao? 78 Tạo và chạy một Thread 78 Các method điều khiển Thread 79 Chu trình của một thread 80 Độ ưu tiên và lập lịch (Priorities and Scheduling) 82 Các thread chạy ngầm 84 II.4.2. Java cho phép tạo các ứng dụng trên môi trường client/server 84 Viết các ứng dụng phía server bằng Java dùng ServerSocket 88 Xây dựng các ứng dụng phía client dùng Java 90 Xây dựng các ứng dụng phía client ở cấp thấp dùng giao thức UDP 90
  7.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Xây dựng các ứng dụng phía client dùng giao thức TCP 91 Kết luận 92 III. Nội dung thiết kế 93 III.1. Đặt vấn đề 93 III.2. Lưu đồ thuật toán 94 III.2.1. Sơ đồ khối các khối cơ bản 94 II.2.2. Lưu đồ thuật toán của từng khối 94 II.2.2.1. Khối nhận lệnh từ Server 94 II.2.2.2. Khối phân tích và xử lý lệnh từ hàng đợi 96 II.2.2.3. Khối giao tiếp với và nhận lệnh của người sử dụng97 III.3. Hướng dẫn sử dụng chương trình 98 IV. Hướng phát triển và hạn chế 102 IV.1. Hạn chế 102 IV.2. Hướng phát triển 102 Tài liệu tham khảo 104 Các thuật ngữ dùng trong đồ án Thuật ngữ Mô tả
  8.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Active X Là một bộ phần mềm có liên quan đến các công nghệ về Internet mà có thể được dùng để mở rộng các khả năng của các ứng dụng và nội dung của Internet. APIGiao diện lập trình ứng dụng; nó cung cấp một tập các chức năng cho các nhà phát triển phần mềm dùng để thực hiện một nhiệm vụ cụ thể nào đó. authentication Là một quá trình mà một máy tính phê chuẩn định danh của một người sử dụng hoặc một máy tính khác mà truy cập vào một số tập tin trong máy tính này. Authentication thường được thực hiện qua quá trình kiểm tra tên người sử dụng và mật khẩu tương ứng với người sử dụng đó. backbone Là một mạng với tốc độ cao, dải động lớn để nối các mạng cục bộ và các máy tính riêng biệt trên một khoảng cách dài. backdoorLà một mật khẩu bí mật hoặc một phương thức chung không xác định để truy cập đến một hệ thống máy tính bỏ qua việc kiểm tra an ninh. back up Đó là quá trình người sử dụng cất các dữ liệu quan trọng của mình từ đĩa cứng của người sử dụng sang các công cụ chứa dữ liệu (chẳng hạn như đĩa mềm hoặc một ổ cứng khác). bandwidth Trong các khái niệm về lĩnh vực máy tính, nó là lượng dữ liệu có thể được truyền trên một kết nối mạng trong một khoảng thời gian. baud Là số mức chuyển tiếp trong một giây của một thiết bị truyền thông (chẳng hạn như một MODEM).
  9.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Thông thường nó được dùng như một từ đồng nghĩa với từ bps (Số bit truyền được trong một giây). bps Số bit trong một giây; để chỉ sự truyền dữ liệu trên một đường truyền thông hoặc trên mạng. CGI Giao diện cổng vào thông dụng; là một phương thức cho phép một Web Server có thể giao tiếp với các ứng dụng khác trên server đó. class Là một sự mô tả của một loại đối tượng xác định của một ngôn ngữ lập trình hướng đối tượng, bao gồm cả các lệnh của riêng class đó. client Là một máy tính dùng các tài nguyên được cung cấp bởi máy tính khác (hay được máy tính khác phục vụ). client/server technology Là một phương thức để thực hiện một nhiệm vụ và chia nhỏ chức năng của nó trên nhiều máy tính khác nhau. client-side extentionM• để giúp cho một trình Internet browser trên máy client có thêm các chức năng. dial-up networking Cho phép một máy tính ở xa dùng một MODEM để truy cập đến một mạng cục bộ như là máy tính đó truy cập vào mạng thông qua một máy tính được nối trực tiếp với mạng này. DNS Hệ thống tên vùng; là một dịch vụ của Internet để chuyển đổi từ các tên máy chủ (tên ở dạng văn bản dễ nhớ) thông thường thành các địa chỉ IP dưới dạng số mà máy tính có thể hiểu được. Các cơ sở dữ liệu của DNS là các cơ sở dữ liệu phân tán điều này có nghĩa các cơ sở dữ liệu này được đặt trên các server khác nhau trên toàn mạng Internet.
  10.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o domain Trong thuật ngữ của Windows NT server, một nhóm logic các máy tính tất cả đều chạy trên Windows NT. Một Internet domain hoàn toàn khác với một Windows NT domain, mặc dù chúng có thể được đặt cho cùng một nhóm máy tính. domain name Trong thế giới của Internet, một tên mà được dùng cho một nhóm máy tính là một phần của một tổ chức nào đó. ở đây, các máy tính này không nhất thiết phải là cùng trên một mạng. e-mail Thư tín điện tử, cho phép mọi người có thể trao đổi các thông điệp tới bất kỳ người sử dụng nào có thể truy cập vào dịch vụ này. encryption Một quá trình dùng để cho phép quá trình truyền dữ liệu trên mạng an toàn bằng cách làm cho dữ liệu khi được truyền trên mạng được đặt ở chế độ không thể đọc được (ureadable). Ethernet Là một công nghệ thường được dùng để kết nối các mạng LAN với nhau. FTP Dịch vụ truyền tập tin, cho phép các máy tình có thể nạp về máy mình các phần mềm trền FTP server hoặc có thể nạp lên mạng các phần mềm ở trên máy của mình. firewall Đó là một thiết bị để ngăn cách mạng này với mạng khác. frame relay Là một dịch vụ truyền thông có ở các công ty điện thoại cho phép các kết nối với tốc độ cao giữa các máy tính. Gopher Là một dịch vụ dựa trên văn bản, cho phép làm việc với các tài liệu trên Internet. HTML Là ngôn ngữ để viết các trang Web.
  11.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o HTTP Là giao thức truyền siêu văn bản, được dùng để truyền các tập tin HTML từ server đến client. IDCKết nối cơ sở dữ liệu trên Internet; là một hệ thống được dùng để cho phép các trang Web có thể truy cập vào các cơ sở dữ liệu trên Internet. IIS Là một bộ phần mềm server bao gồm: Web server, FTP server và Gopher server được thiết kế để sử dụng các thuận (điểm mạnh) lợi của Windows NT server. Internet address Địa chỉ IP. là một địa chỉ đặc trưng 32 bit được ấn định cho từng máy trên Internet. Nếu như các máy trên Internet không được ấn định địa chỉ IP theo cùng một hệ thống thì không thể truyền dữ liệu trên Internet được. IPP Là một tổ chức cho phép bất kỳ một sự kết hợp nào giữa các dịch vụ trên Internet, chẳng hạn như Web site hosting, phân tích tên vùng, tạo nội dung và các dịch vụ có liên quan đến Internet trừ dịch vụ dial-up truy cập vào Internet. ISP Là một tổ chức cho phép truy cập vào Internet thông qua dịch vụ dial-up networking cho các khách hàng và các dịch vụ khác mà được các nhà cung cấp dịch vụ Internet cung cấp. InterNICLà tổ chức quản lý địa chỉ IP và các tên vùng cho các tổ chức chính phủ, quân sự, các tổ chức khác, các tổ chức về mạng, các tổ chức giáo dục và các tổ chức thương mại. interoperability Là khả năng của phần mềm và phần cứng cho phép giao tiếp giữa các máy tính có platform khác nhau và từ các nhà cung cấp khác nhau.
  12.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o IRCLà một hệ thống hội nghị mang tính toàn cầu cho phép người sử dụng trên Internet có thể có các cuộc hội thoại thời gian thực trên Internet. ISAPI Là Internet server API; cung cấp cho các nhà phát triển phần mềm một phương thức để có thể mở rộng các chức năng của hệ thống IIS bằng cách dùng chính phần mềm của họ. ISDN Các dịch vụ tập trung trên mạng số; một đường điện thoại với tốc độ cao mà có thể dùng cho dịch vụ dial-up networking. Java Là một ngôn ngữ script được dùng để có thể nâng cao các chức năng của các máy tính server cũng như client. LAN Là mạng cục bộ; là một mạng với tốc độ cao mà giới hạn trong một khu vực địa lý nhất định. leased line Là một đường tốc độ cao được giàng riêng để nối trực tiếp giữa hai địa điểm. modem Là một thiết bị dùng để kết nối một máy tính với mạng điện thoại và cho phép truyền dữ liệu qua mạng đối tượng này. name resolution Là một quá trình để hướng các tên tới các địa chỉ tương ứng. Đặc biệt là trên mạng Internet, name revolution tam chiếu đến DNS, tại đó các tên vùng được khớp với các địa chỉ IP tương ứng. newsgroups Là một một cuộc thảo luận cụ thể trên hệ thống NNTP. NNTP Giao thức NNTP cho phép một client có thể tah gia vào các cuộc thảo luận trên một cuộc thảo luận công cộng tuương tự như các hệ thống phát tin.
  13.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o ODBC Cơ sở dữ liệu kết nối mở; cho phép một sự giao tiếp thông dụng để truy cập đến các cơ sở dữ liệu khác nhau. package Là một nhóm các lớp (class). packet Là một đơn vị dữ liệu được truyền trên một đường truyền dữ liệu. PCT Công nghệ truyền thông riêng ; là một phiên bản nâng cao của công nghệ SSL. Nó cho phép độ bảo mật cao hơn chuẩn SSL và đ• được chính phủ Mĩ đưa ra. PERL Là một ngôn ngữ lập trình cho phép có thể nâng cao được các tính năng của client hay server. Ping Là một chương trình truyền một gói tin đến một máy tính ở xa để xác định các vấn đề về giao tiếp giữa hai máy và xác đinh khoảng thời gian truyền gói đó đến và nhận về. platform protocol Là một tậo các quy định về định dạng cho việc truyền dữ liệu, chp phép các máy tính có thể trao đối thông tin. PPPLà giao thức Điểm-Điểm; cung cấp một phương tiện có hiệu quả để cho phép một máy tính có thể kết nối đến một mạng và có thể dùng rất nhiều các giao thức từ xa. RAS Dịch vụ truy cập từ xa. router Là một phần mềm hoặc một máy chuyên dụng để kết nối hai hay nhiều mạng và dẫn thông tin từ mạng này đến các mạng khác. Các router sẽ quyết định đường đi của một gói tin trên Internet để gói tin có thể đến được nơi nhận. Các router trên Internet thường là các gateway IP.
  14.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o scripting Dùng một ngôn ngữ lập trình để mở rộng c•c chức năng của mộy máy tính client hay server. SCSI Là một hệ thống máy tính giao tiếp nhỏ; một cấu trúc với tốc độ cao để kết nối các thiết bị ngoại vi với máy tính. search engine Là một hệ thống cho phép một người sử dụng có thể tìm được các tài nguyên cụ thể nào đó trên mạng dựa trên tiêu chẩn mà người sử dụng đưa vào. serial port Cho phép giao tiếp với tốc độ thấp (mỗi lần một bit) để kết nối một thiết bị ngoại vi với một máy tính. server Là một máy tính mà những người sử dụng có thể truy cập vào thông qua một mạng, trên máy tính này có chứa các tài nguyên để phục vụ cho người sử dụng. server extension Một script hoặc một ứng dụng mà mở rộng khả năng của một server. SLIP Giao thức Internet đường truyền nối tiếp; là một phương thức cũ để cho phép các máy tính ở xa có thể truy cập vào mạng chỉ dùng giao thức IP. Hiện nay SLIP đang được thay thế bởi PPP. subnet mask Được TCP/IP dùng để điều khiển các gói tin lưư thông trên mạng để đến đúng nơi nhận chúng. Subnet mask được dùng để xác định xem địa chỉ nhận một gói tin nào dó hiện ở trong hay ngoài một mạng cục bộ nào đó. T1 connection Là một dịch vụ giao tiếp cho phép kết nối với tốc độ rất cao giữa hai điểm. Tốc độ của kết nối này là 1.5 Mbps. (tức là 1.5 mega bit trong một giây). T3 connection Là một dịch vụ với tốc độ cao nhất hiện nay, cho phép kết nối với tốc độ 45 Mbps.
  15.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o TCP/IP Là một bộ các giao thức trên Internet làm việc kết hợp với nhau cho phép dữ liệu có thể được truyền trên Internet. Telnet Là một giao thức mà một ứng dụng dùng để truy cập đến một máy tính ở xa dùng giao thức TCP/IP. Một phiên làm việc Telnet cho phép một người sử dụng có thể đưa ra các lệnh trên máy tính ở xa mặc dù máy tính của người sử dụng là máy tính địa phương. Telnet dùng giao tiếp kiểu dòng lệnh, không hề có giao tiếp đồ hoạ. UNIX Được công ty X/Open đưa ra. UNIX là để chỉ một trong những hệ điều hành thông dụng hiện nay. virtual directory Là một con trỏ trỏ đến một thư mục vật lý cho phép IIS có thể dùng đến các thư mục vật lý mặc dù nó đang ở mổ vị trí khác. virtual server Một phương thức qua đó một Web server như là nhiều Web server. WAN Mạng diện rộng Web browser Là phần mềm được dùng trên một máy client để xem các tài nguyên trên Internet. Webmaster Là người chịu trách nhiệm bảo dưỡng một Web server. WWW Là toàn bộ các server tạo nên nội dung của dịch vụ Web trên Internet.
  16.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Phần 1 Thiết kế một Web site Phần giới thiệu Dịch vụ World Wide Web (WWW), cũng thường được gọi là Web là một một dịch vụ rất lớn của Internet và từ năm 1993 Web đ• trở thành một dịch vụ thông dụng nhất
  17.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o trên Internet. Trên thực tế, rất nhiều người nghĩ Internet và WWW là một, và một số người không nhận ra rằng Web thực ra là một dịch vụ (entry) chạy trên Internet. Phần lớn trong số các bạn sẽ thấy rằng Web là một công cụ rất tốt để bạn trình diễn về Internet. Hiện tại, theo đánh giá, 85% lượng dữ liệu lưu thông qua lại trên Internet là của dịch vụ Web. Web chứa một khối lượng rất lớn các tài liệu mà các tài liệu này được biểu diễn bằng rất nhiều các các công cụ (media), từ các tài liệu dưới dạng văn bản thường đến các tài liệu có sự hỗ trợ của kỹ thuật đa phương tiện (multimedia). Một đặc điểm của Web là các trang Web được liên kết với các trang Web khác thông qua một phương tiện được gọi là siêu liên kết (hyperLink). Siêu liên kết cho phép bạn có thể lấy một tài liệu có liên quan đến các tài liệu khác chỉ bằng cách đơn giản là nháy chuột của bạn vào một đoạn văn bản hoặc một hình ảnh nào đó mà có liên kết đến các tài liệu đó. Thông thường, một liên kết được chỉ ra bởi một hoặc một số từ hoặc một hình ảnh nào đó được thiết lập từ trang tài liệu thông thường và có thêm các đặc tính khác như khác mầu hoặc có gạch chân hoặc kiểu chữ đậm chẳng hạn. Thông thường, tài liệu có liên kết với các tài liệu khác mà bạn gọi lên màn hình được chỉ rõ tên đề mục nào đó hoặc một hình ảnh nào đó có liên kết đến các tài liệu khác. Ví dụ, một bản catalog có thể có các liên kết đến các danh mục cụ thể của từng sản phẩm, điều này cho phép người sử dụng có thể tìm đến các thông tin cụ thể mà họ quan tâm một cách dễ dàng. Siêu văn bản (hypertext) làm cho các trang Web thực sự trở nên sống động và gây được ấn tượng của người sử dụng. Khi bạn duyệt các tài nguyên của Web, bạn hoàn toàn có thể chọn để khám phá nó theo các trang cụ thể nào đó. Điều này có nghĩa là bạn không hề phải xem một Web site theo kiểu xem các quyển sách tức là từ trang này qua trang khác một cách lần lượt mà bạn có thể chọn các chủ đề cụ thể và có thể nhảy ngay đến đó để xem mà không phải đi qua những trang mà bạn không muốn xem.
  18.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Bạn có thể hoàn toàn nhảy từ một vị trí này sang bất kỳ một ví trí khác để tìm đến các trang mà bạn thực sự muốn xem. Ngoài ra, Web cũng hỗ trợ các dịch vụ khác như FTP, Gopher, e-mail và NNTP. Dự án WWW đ• được phát triển tại CERN (the European Laboratory for Nuclear Physics) ở Thuỵ Sĩ. Giao thức HTTP (Hypertext Transfer Protocol) là giao thức được dùng để thiết kế Web. Chương 1. Các khái niệm cơ bản. I. Một trang Web là gì? Xét về khía cạnh nào đó thì một trang Web rất giống một trang văn bản mà hàng ngày ta vẫn in ra để dùng. Nếu như bạn muốn mô tả nó theo các yếu tố thô thiển nhất của nó thì một trang Web là một bộ sưu tập gồm các từ văn bản, các hình ảnh, và các đối tượng khác được tổ chức một cách liên tục từ đầu trang đến cuối trang. Sự khác nhau lớn nhất giữa một trang Web và một trang văn bản in là độ dài của một trang Web không có giới hạn về mặt vật lý. Hơn nữa, các trang Web còn có một khả năng rất mạnh mẽ đó là có khả năng liên kết trực tiếp đến một số các trang Web khác. Điều này có nghĩa là bạn không phải xem các trang Web theo một quy định nào đó hoặc theo một kiểu hẹp như khi bạn xem các cuốn sách, mà bạn có thể xem các trang Web hoàn toàn theo ý bạn. Sau đây xin giới thiệu một trang Web ví dụ (Hình 1.1): Hình 1.1. Giới thiệu một trang Web.
  19.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Trang Web trên đây được đọc bởi trình duyệt Web có tên là Netscape Navigator. Bạn có thể thấy rằng trong một trang web có cả văn bản và các hình ảnh. Đây chính là điểm mạnh của Web. Trong trang Web trên đây, đoạn văn bản \IMAGES\BACKGRND\ chính là một siêu liên kết đến một trang Web khác. II. Một trang Home Page là gì? Một trang Web Home Page là một trang Web đặc biệt, nó là một điểm vào của một Web site; thông thường, nó là một trang Web giới thiệu về Web site của bạn. Trang Home Page thường là một trang chào đón bạn đến với Web site nào đó và chỉ ra các liên kết đến tất cả các trang Web cấp hai (tức là các trang ngay sau trang Home Page) có trong Web site đó. Các trang Home Page tạo ra một ấn tượng đầu tiên với người sử dụng về Web site của bạn và công ty của bạn. Một vài Web site nhỏ, chẳng hạn các trang Web riêng, chỉ bao gồm một trang Home Page và một vài site gồm một hoặc vài trang Web. Sau đây xin giới thiệu một trang Home Page của EduNet: Hình 1.2. Giới thiệu trang Home Page. Trong trang Home Page dưới đây, bạn có thể thấy dòng chào mừng bạn đến EduNet, tiếp theo là các liên kết đến các trang cấp hai kế tiếp (chẳng hạn, trang văn hoá x• hội, kinh tế, giải trí, vv ).
  20.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o III.Một Web site là gì? Một Web site là một tập các trang Web được kết nối với nhau bằng các siêu liên kết (Hyperlink) do đó mỗi một trang đều liên quan đến các trang khác. Sau đây tôi xin giới thiệu mô hình một Web site đơn giản: rang Hình 1.3. Giới thiệu mô hình một Web site. Nếu bạn tưởng tượng ra được tất cả các liên kết có thể có giữa các trang Web và tất cả các các mà bạn có thể truy cập đến được các tài nguyên trong Web site của bạn thì bạn có thể sẽ hiểu được khái niệm Web một cách dễ dàng. Web nguyên nghĩa tiếng Anh của nó là một cái mạng nhện, bởi lẽ các trang Web trong một Web site cũng liên kết với nhau giống như một cái mạng nhện. Sau đây xin giới thiệu các liên kết được mô tả bằng một trình soạn Web. Dưới đây là các liên kết giữa các trang Web của EduNet được xem bởi trình soạn Web FrontPage của công ty Microsoft.
  21.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Hình 1.4. Mô tả sự liên kết của các trang Web. Với hình 1.4 trên đây, bạn có thể hiểu được khái niệm Web một cách dễ dàng. IV. Ngôn ngữ HTML HTML (Hypertext Markup Language) là một ngôn ngữ dùng để tạo các trang Web có thể được đọc bởi các trình duyệt Web (Web browser). Nó là một ngôn ngữ dựa trên script (nếu như bạn đ• làm quen với các tập tin như autoxexec.bat trên DOS thì bạn có thể hiểu được khái niệm script. Tập tin autoxexec.bat chính là một script), điều này có nghĩa là nó dùng một chuỗi liên tục các ký tự được gọi là các tag (Chẳng hạn như lệnh đổi kiểu văn bản thành kiểu đậm được viết là: Đoạn văn bản sẽ được hiển thị kiểu đậm thì ở đây là một tag) là các lệnh. Nếu như bạn đ• sử dụng máy tính trong thời kỳ đầu của kỹ thuật soạn thảo văn bản thì có thể bạn đ• làm quen với khái niệm script trước đây. Về cơ bản, các tag bạn gắn vào một đoạn văn bản nào đó sẽ quy định kiểu của đoạn văn bản sẽ được hiển thị. Các tag cũng có thể ra lệnh cho trình duyệt Web lấy về các hình ảnh và đặt nó lên một vị trí nào đó (Ví dụ như tag: , ở đây tag là tag để nạp tập tin hình ảnh edunet.gif lên trang Web ), và các tag khác có thể tạo các liên kết đến các trang Web khác (ví dụ như tag: thì ở đây tag là tag tạo liên kết đến trang Home page của EduNet.). Khi một trình duyệt Web kết nối tới một trang Web, các script HTML sẽ được truyền về trình duyệt Web, tại đó nó được trả lại trang Web được mô tả bằng các script HTML đó. Việc trình bày lại văn bản và hình ảnh được
  22.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o thực hiện phía client. Phía server truyền ngầm tập tin HTML đến client thông qua việc dùng giao thức http (Hypertext Transport Protocol). Web server không duyệt các tập tin đó mà gửi về cho client duyệt các tập tin đó. Chính điều này cho phép một Web server của có thể giải quyết được yêu cầu của một số lượng lớn các client cùng một lúc. V. Các Script là gì? Đối với một người diễn viên thì các script cho người diễn viên này biết phải biểu diễn như thế nào, phải làm gì, và phải nói gì trong các tình huống đ• được định trước, máy tính cũng tương tự như vậy. Các script trong máy tính của bạn sẽ cho nó biết phải làm gì khi các điều kiện nào đó được thoả m•n. Trên Internet, các script cho phép bạn có thể cung cấp các tính năng cao đối với những người sử dụng mạng của bạn. Một chương trình script thông thường thực hiện khi một hành động nào đó được thực hiện từ phía client gửi về server, chẳng hạn như phía client gửi dữ liệu trực tiếp đến server hoặc phía client bấm một phím của chuột. Một trong những chức năng thông dụng và có ích nhất mà một script có thể thực hiện là liên kết Web Server của bạn với các ứng dụng khác, chẳng hạn như cơ sở dữ liệu. Hình 1.5 dưới đây mô tả điều này làm việc như thế nào.
  23.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Hình 1.5. Server gửi một form đến client, phía client sau đó sẽ gửi lại form yêu cầu đến server. Server gửi yêu cầu đến một script mà script này có giao tiếp với một cơ sở dữ liệu. Sau đó script gửi kết quả lại cho client thông qua IIS. Việc đòi hỏi các kỹ năng để có thể tạo một script phụ thuộc vào các công cụ mà bạn dùng để tạo nó. Các script có thể được tạo ra bằng bất cứ ngôn ngữ lập trình nào mà bạn đ• biết, hoặc bạn cũng có thể dùng một trong rất nhiều các ngôn ngữ dạng script đ• được tạo ra để dùng vào mục đích tạo các script. Bạn cũng có thể tìm thấy rất nhiều các script trên Internet mà có thể đáp ứng được yêu cầu của bạn, mặc dù nếu bạn lựa chọn cách này thì bạn phải sửa đổi các script đó để nó có thể làm việc với các trang HTML của chính bạn. VI. Trình duyệt Web (Web Browser) Một trình duyệt Web là một chương trình cung cấp một giao tiếp để truy cập đến và xem các tập tin trên Internet. Trước khi có các trình duyệt Web, người sử dụng
  24.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o cần phải biết một tập các lệnh rất phức tạp để xem các tài nguyên trên Internet. Nhưng khi có trình duyệt Web thì người sử dụng không cần phải biết các lệnh phức tạp đó khi xem và dùng các tài nguyên trên Internet nữa. Các trình duyệt Web làm cho Internet trở nên thân thiện và dễ dùng hơn nhiều. Để có thể xem được các tài nguyên của WWW, người sử dụng cần có một trình duyệt Web trên máy tính của họ. Khi người sử dụng biết một địa chỉ đến một trang Web cụ thể nào đó, họ có thể đánh địa chỉ đó (URL) vào trình duyệt Web và trình duyệt Web đó sẽ gọi đến các tài nguyên đó và hiển thị trên màn hình của người sử dụng. Ngoài ra, các trình duyệt Web còn có thể cho phép bạn duyệt các trang Web khác nhau, trở lại hoặc đi tiếp giữa các trang Web. VII. Các URL (Uniform Resource Locator) Một URL là để chỉ một địa chỉ đến một trang Web hoặc một tập tin (hoặc một tài nguyên) cụ thể nào đó trên Internet. Một trong những đặc điểm mà làm cho Internet có thể làm việc với các mạng nhỏ hơn nhưng có cùng đặc điểm đó là các URL cung cấp một phương pháp chuẩn để trỏ đến các dữ liệu cụ thể. Đối với tất cả các trang Web và các tập tin trên Internet thì các URL có thể được so sánh với các địa chỉ trên các đường phố. Sau khi bạn đ• có một cái nhìn tổng quan về các URL rồi thì bạn nên bắt đầu chú ý đến một số mẫu về các URL. Nếu như bạn đ• có kinh nghiệm với Internet thì bạn có thể thấy rằng là tất cả các địa chỉ đến các trang Web hay đến các tập tin trên Internet đều được bắt đầu với Đây là phần thứ nhất của một URL, nó cho biết tài nguyên mà bạn làm việc với đó dùng giao thức nào. Nếu như bạn làm việc với một FTP site thì phần bắt đầu của một URL sẽ là Phần thứ hai của URL là phần địa chỉ của máy chủ, nơi các tài nguyên được lưu trữ. Có thể bạn sẽ nhìn thấy một URL tương tự như: www.some-random-company.com hoặc
  25.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o some-random-university.edu. Phần thứ ba của một URL chỉ bạn đến cấu trúc thư mục chứa tài nguyên mà bạn đang làm việc với và cuối cùng, một URL được kết thúc với tên của tập tin hoặc của trang Web mà bạn đang làm việc với. Cấu trúc thư mục và tên tập tin thường có dạng như sau: thư-mục/thư-mục-con/thư-mục-con-của-thư-mục- con/ /tên-tập-tin.htm. Hình sau đây mô tả cấu trúc của một URL. ư-mục/tên-tập-tin.htm Chương 2 Các công cụ cần có I. Phía Server Để tổ chức một Web site, phía server bạn cần phải có một phần mềm Web Server. Hiện nay có rất nhiều phần mềm Web Server. Sau đây xin giới thiệu một số phần mềm Web Server hiện đang được dùng rất thông dụng. I.1. Netscape Server Phần mềm Web Server này hiện nay cũng đang được sử dụng rất rộng r•i. Một trong những khả năng rất mạnh
  26.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o mẽ là cho phép quản trị Netscape Server này từ xa thông qua dịch vụ Web. Nếu bạn có tên và mật khẩu để vào được phần quản trị mạng này thì bạn hoàn toàn có thể ngồi ở rất xa mà vẫn có thể đặt các thông số cho Server một cách đơn giản. Hình sau đây (hình 2.1) mô tả việc điều khiển server từ xa thông qua dịch vụ Web: Hình 2.1. Sơ đồ mô tả việc điều khiển Netscape Server từ xa thông qua dịch vụ Web. Ngoài khả năng điều khiển từ xa, Netscape Server có thể quản lý Web site của người sử dụng một cách hết sức chặt chẽ. Bạn hoàn toàn có thể đặt an ninh cho từng trang Web. Đây là một vấn đề quan trọng trong việc quản lý Web site khi bạn không muốn tất cả những người truy cập vào Web site của bạn mà bạn muốn rằng chỉ có những người có
  27.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o tên và mật khẩu mà bạn đ• quản lý được tên và mật khẩu đó mới có quyền truy cập vào một trang Web nào đó. Một khả năng nữa là khả năng an toàn khi các trang Web được truyền trên mạng. Đó là đặt lựa chọn về độ an toàn (Encryption). Nếu bạn bật chức năng Encryption lên thì toàn bộ dữ liệu được truyền trên mạng sẽ được đặt ở chế độ không thể đọc được (Unreadable). Chỉ khi nào dữ liệu đó được truyền đến máy tính nhận thì dữ liệu mới có thể đọc được. Vì hiện nay trên mạng có rất nhiều kẻ thâm nhập vào dữ liệu một cách trái phép nên chức năng này rất thuận lợi khi bạn muốn gửi dữ liệu bí mật trên mạng. I.2. Internet Information Server Web Server Đây là một phân mềm Web Server của h•ng Microsoft, đây cũng là một phần mềm hiện nay được sử dụng rất rộng r•i. Nó cũng có khả năng quản lý từ xa như Netscape Server. II. Phía client Phía client cần có một trình duyệt Web để duyệt và xem các trang Web. Hiện nay có rất nhiều trình duyệt Web rất thông dụng như Netscape Navigator, Microsoft Internet Explorer, Hot dog, Thông dụng nhất hiện nay là hai phần mềm duyệt Web Netscape Navigator và Microsoft Internet Explorer. Dưới đây xin giới thiệu các đặc điểm cơ bản của hai trình duyệt Web này. II.1. Netscape Navigator Dưới đây là hình ảnh của trình duyệt Web Netscape Navigator khi chạy lên: Hình 2.2. Trình duyệt Web Netscape Navigator.
  28.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Netscape Navigator là một trình duyệt Web đ• được công ty Netscape phát triển từ rất lâu. Trên thị trường của trình duyệt Web hiện nay có đến 70%-80% người sử dụng dùng Netscape Navigator. Netscape cũng không trở nên mạnh như hiện nay nếu như nó không có các đặc điểm để phân biệt nó và các trình duyệt Web khác. Rất nhiều trong số các đặc điểm này đang được xây dựng trên các phần mềm Web client khác. Nhưng Netscape càng ngày càng tỏ ra mạnh mẽ hơn khi mà mỗi một phiên bản mới ra đời lại có các tính năng mới được thêm vào. Dưới đây là các đặc điểm quan trọng nhất của Netscape mà nó có thể đem đến cho người sử dụng. • Lưu các trang Web đ• được duyệt vào đĩa cứng Mặc dù đây là một đặc điểm đ• sớm trở thành một chuẩn ở các trình Web client khác, nhưng khả năng lưu một cách có hiệu quả các trang Web đ• được duyệt này đ• được làm đầu tiên với Netscape. Điều này có nghĩa là Netscape lưu một khối lượng xác định các trang Web mà người sử dụng đ• nạp về trong các phiên làm việc trước, sau đó lần sau người sử dụng truy cập vào Web site đó thì Netscape sẽ lấy các trang đó lên từ đĩa cứng thay vì phải truy cập trực tiếp vào Web site đó thông qua Internet. Điều này làm cho thời gian nạp các trang Web mà người sử dụng đ• nạp về lần trước sẽ nhanh hơn nhiều. Việc dùng bộ chứa tạm thời trên đĩa là một ý tưởng mới. Các phiên bản của X Windows đ• dùng ý tưởng này trước đây để phục vụ cho các dịch vụ như America Online và Prodigy. Nhờ có việc dùng bộ chứa tạm thời trên đĩa đ• làm cho việc truy cập vào các Web site đ• được truy cập đến trong những lần trước thì lần sau truy cập vào gần như là tức thời. Nó không những làm cho việc nạp các trang Web trở nên nhanh chóng mà còn làm cho lượng dữ liệu lưu thông trên mạng giảm đi đáng kể. Việc dùng bộ chứa trên đĩa cho phép chứa được
  29.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o rất nhiều kilô byte các trang Web trên đĩa cứng của bạn, nó hoạt động như là bộ nhớ vĩnh cửu. Thuận lợi của việc này là nạp các trang Web đ• nạp từ trước nhanh hơn nhiều và giảm được lượng dữ liệu lưu thông trên mạng. Nhưng cũng có một điểm không thuận lợi là bộ chứa này chiếm mất một phần đĩa cứng của bạn. Nhưng hiện nay giá đĩa cứng đ• giảm rất nhiều cho nên nhược điểm này không có gì đáng ngại lắm. • Có thể dùng ngay các liên kết khi mà các trang Web đang được nạp về: Lại một lần nữa đây cũng là một đặc tính chuẩn của các trình duyệt Web, nhưng Netscape đ• đưa đặc tính này vào hoạt động đầu tiên. Trước kia các trình duyệt Web cũ nạp các trang Web về từ một máy tính ở xa, thì các trang Web đó chỉ được hiển thị khi toàn bộ trang Web đó đ• được nạp về hết. Kể cả với tốc độ 14.4 kbs thì bất kỳ một trang Web nào có kích thước lớn hơn 50 KB thì đều mất rất nhiều thời gian để nạp về và nếu như trong trang Web lại có hình ảnh thì thời gian nạp trang Web đó về lại còn lâu hơn nhiều. Netscape hiển thị các trang Web khi chúng đang được nạp về (tức là nạp về đến đâu hiển thị luôn đến đó) và tất cả các liên kết và các hình ảnh cũng có tác dụng ngay khi bạn nhìn thấy chúng. Điều này có nghĩa là bạn không phải chờ cho đến khi trang Web đươc nạp hết về thì bạn mới có thể kích vào các liên kết để nhảy đến các trang Web khác. Khi bạn kích vào một liên kết nào đó thì Netscape sẽ dừng việc nạp tiếp trang Web hiện thời và chuyển sang nạp trang Web liên quan đến liên kết bạn mới kích (chọn). Một đặc tính có liên quan nữa của Netscape là cho phép hiển thị hình ảnh theo từng lớp khi nạp về. Điều này có nghĩa là người sử dụng không phải đợi khi hình ảnh được nạp về hết mới nhìn thấy mà Netscape sẽ hiển thị hình ảnh trong khi nạp nó về.
  30.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o • Hỗ trợ các lệnh (tag) không phải là chuẩn của Netscape Ngay từ phiên bản đầu tiên của Netscape, Netscape đ• được thiết kế để hiển thị các trang HTML chuẩn, nhưng nó cũng cho phép hiển thị các lệnh nâng cao của HTML và các đặc tính khác mà cho đến nay vẫn chưa được công nhận là các chuẩn của các nhóm Internet. Điều này gây nên rất nhiều sự phản đối của các nhà phát triển Internet đặc biệt là những người thường tuân theo các chuẩn của Internet một cách chặt chẽ. Tuy nhiên nó cũng tạo ra một sự thú vị nhất định đối với những người sử dụng Web và những nhà thiết kế HTML bởi lẽ tự nhiên các trang Web lại có thể trình bày các hình ảnh một cách rất đẹp và đơn giản. Bây giờ thì cả hình ảnh và văn bản đều có thể được căn giữa, căn phải, căn trái. Các đường thẳng nằm ngang có thể điều chỉnh được độ dầy, màu mè để tương phản với các hình ảnh trong trang Web. Việc thay đổi phông chữ theo từng đoạn văn bản cũng là điều có thể làm được Nói chung đ• có khá nhiều các chức năng cho phép trang trí các trang Web một cách rất đẹp. Với phiên bản Netscape 1.1 beta đ• có thêm các chức năng mới được thêm vào. Hiện nay đ• có Netscape 4.0 (phiên bản mới nhất) với rất nhiều các tính năng mới được thêm vào. • Các đặc tính vững chắc và có khả năng giao tiếp không phụ thuộc vào phần cứng và hệ điều hành. Có một sự khác nhau rất ít trong các trình giao tiếp cho X Windows, Microsoft Windows và Macintosh đối với các phiên bản khác nhau của Netscape. Khi bạn biết một trong số chúng thì bạn cũng có thể dùng các trình giao tiếp còn lại một cách dễ dàng.
  31.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o • Hoàn toàn có khả năng đọc các nhóm tin (newsgroup) và có khả năng gửi thư tín điện tử Hầu hết các trình duyệt Web hiện nay có khả năng truy cập vào các nhóm tin (newsgroup) nhưng ngay từ khi mới ra đời, Netscape đ• hỗ trợ việc đọc các nhóm tin rất mạnh. Bạn có thể dùng Netscape để đọc các nhóm tin, theo các luồng, gửi các bài báo mới, liệt kê tất cả các nhóm tin, gửi thư tín điện tử. Mặc dù Netscape không hỗ trợ mạnh mẽ như một trình đọc các nhóm tin chuyên dụng nhưng trên thực tế Netscape có khả năng đáp ứng được tất cả các nhu cầu của phần lớn người đọc. • Có khả năng hỗ trợ chức năng an ninh Ngay từ khi Web mới ra đời thì vấn đề an ninh trên dịch vụ Web đ• là một vấn đề rất quan trọng. Đặc biệt là trong việc truyền các dữ liệu đặc biệt, chẳng hạn như số thẻ tín dụng cho các hoạt động tài chính, bản thân Web không hề cung cấp một khả năng an ninh nào cả. Không phải các nhà thiết kế Netscape là những người đầu tiên nghĩ đến vấn đề an ninh trên Web, nhưng Netscape thì lại là một trình duyệt Web đầu tiên dùng sự thể hiện (apprearance) của nó để phân biệt các trang Web an toàn và các trang Web không an toàn. Khi kết hợp với các Web Server có hỗ trợ an ninh ở mức cao thì trình duyệt Web Netscape có thể thông báo cho bạn biết là bạn sắp gửi dữ liệu thông qua một liên kết không an toàn hay an toàn hoặc nó cũng có thể thông báo cho bạn biết là bạn đang truy cập vào một Web site có độ bảo mật rất cao chẳng hạn. Trong một khu vực an toàn, các đường biên giới của Netscape có thể được đổi màu và có một nút đặc trưng để thông báo cho bạn biết là bạn đang làm việc với một khu vực an toàn.
  32.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Trên đây là các đặc điểm cơ bản và rất quan trọng của Netscape khiến cho Netscape trở thành một trình duyệt Web mạnh nhất hiện nay. II.2. Trình duyệt Web Microsoft Internet Explorer Sau đây xin trình bày các đặc điểm chính của Microsoft Internet Explorer: • Nói chung, hầu hết các chức năng mà Netscape hỗ trợ thì đến các phiên bản gần đây của Microsoft Internet Explorer cũng đ• có hỗ trợ các chức năng đó. Nhưng do Microsoft Internet Explorer phát triển sau cho nên chưa hoàn thiện. Cụ thể là trong quá trình sử dụng, em thấy có những nhược điểm sau đây: 1. Tốc độ vẫn còn chậm. 2. Rất hay bị treo khi phải nạp các trang Web lớn về. • Ngoài ra Microsoft Internet Explorer không có khả năng chạy trên nhiều hệ điều hành và phần cứng khác nhau. Đây là một điểm không thuận lợi so với Netscape. • Microsoft Internet Explorer của các phiên bản trước phiên bản 3.0 beta 2 không có khả năng hỗ trợ Java. Chúng ta đều biết là Java hiện này đang được ứng dụng rất phổ biến nên đây là một điểm hạn chế rất lớn. III. Phần mềm soạn các trang Web Để có thể thực hiện việc viết các trang Web thì phải có một chương trình soạn các trang Web. Hiện nay cũng có khá nhiều chương trình để soạn các trang Web. Các chương trình hiện nay được dùng rất thông dụng là Microsoft FrontPage và Microsoft Assistance. Ngoài ra cũng có một số
  33.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o ít hiện nay dùng HotDog và một số chương trình khác. Đây là các công cụ rất mạnh Chương 3 Thiết kế một Web site Lời giới thiệu Là một người sử dụng Web, có thể bạn đ• dùng các Web site và bạn thấy là gường như các Web thật sự là cụ thể và là sự sắp xếp của các trang Web khác nhau và các liên kết khác nhau đưa bạn đến với các thông tin cụ thể mà bạn cần một cách thuận tiện, nhanh chóng và lý thú. Bởi vì nhu cầu và sở thích của người sử dụng rất khác nhau nên ta không thể tạo một Web site có thể đáp ứng được nhu cầu của tất cả người sử dụng. Chính vì vậy, việc nghiên cứu để có thể tạo ra một Web site có hiệu của là một vấn đề rất quan trọng và khó khăn. Dùng quá trình thiết kế một Web site theo kiểu dệt (weaving) và các yếu tố, kết hợp với một sự hiểu biết về kinh nghiệm của người sử dụng Web, một người dệt một Web site có thể tạo ra được một Web site có hiệu quả, có thể đáp ứng được một số đông người sử dụng và các mục đích cụ thể nào đó. Quá trình thiết kế một Web site bao gồm quan sát, cảm nhận và kết hợp được toàn bộ các yếu tố của quá trình dệt Web và các thông tin về người sử dụng, mục đích và đối tượng, các đặc điểm kỹ thuật của Web và kết hợp tất cả các yếu tố trên đây để đưa ra được sự mô tả về việc một Web site sẽ được thực hiện như thế nào. Sau đó, người tạo Web site sẽ căn cứ vào các mô tả này để có thể tạo ra được một Web site có thể làm việc được một cách thực sự. Một người thiết kế một Web site sẽ tạo ra rất nhiều các sự lựa chọn về việc làm sao để thực hiện có hiệu quả các đặc điểm kỹ thuật của Web. Người thiết kế cũng phải đưa ra được kỹ thuật sắp xếp các thông tin (packaging information), liên kết các trang ra sao, các thông tin về chú thích và phải phân tích được một hay nhiều phương pháp
  34.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o thiết kế một Web site. Có các vấn đề rất thực tế có liên quan đến quá trình thiết kế chẳng hạn như việc quyết định xem bạn sẽ đưa bao nhiêu ảnh vào một trang Web. Điều này là rất quan trọng trong khâu thiết kế bởi lẽ nếu như bạn muốn trang trí một trang Web thật đẹp thì phải có nhiều hình ảnh nhưng do kích thước của một tập tin ảnh thường là rất lớn do đó khi người sử dụng nạp trang Web của bạn về phải mất khá nhiều thời gian. Một vấn đề nữa là bạn phải quyết định xem cái gì nên liên kết với trang Web khác và cái gì thì không nên. Trải qua quá trình thiết kế như vậy, người thiết kế một Web site sẽ có được kinh nghiệm về sự điều chỉnh hợp lý và kinh nghiệm trong việc thiết kế một Web site. Quá trình thiết kế chỉ là một quá trình nhỏ trong các quá trình dệt Web. Một Web site thành công đòi hỏi tất cả các quá trình trên và tất cả các yếu tố phải được tổ chức ăn khớp với nhau. Trong phần này, chúng ta sẽ thấy việc thiết kế một Web site được thiết kế dựa trên các yếu tố được cung cấp bởi các quá trình khác trong quá trình dệt Web. Hình vẽ dưới đây mô tả quá trình thiết kế một Web site dựa trên các yếu tố của quá trình dệt Web và kết hợp chúng lại để tạo ra một bản thiết kế theo kiểu "quan sát và cảm nhận" để từ đó nó được quá trình thực hiện việc thiết kế dùng để tạo ra một Web site thực sự làm việc có hiệu quả.
  35.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Hình vẽ mô tả quá trình thiết kế một Web site. Thông qua việc phân tách các quá trình thiết kế thành các quá trình nhỏ hơn: quá trình thực hiện, thông tin về cấu trúc của Web, và sự hoạt động được gộp lại trong một form HTML độc lập. Điều này có nghĩa là, trong khi quá trình thiết kế thì bị ảnh hưởng bởi sự hiểu biết về ngôn ngữ có thể thực hiện mục tiêu thiết kế thì sản phẩm của nó lại được thực hiện bằng bất cứ ngôn ngữ nào mà có thể thực
  36.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o hiện được các ý tưởng trong bản thiết kế. Bằng cách này, quá trình thiết kế có thể được thực hiện một cách dễ dàng bằng ngôn ngữ HTML. Phần này trước hết xin đề cập đến kinh nghiệm của người sử dụng Web. Việc nhìn lại kinh nghiệm của người sử dụng để xem quá trình thiết kế quan trọng và cần thiết thế nào, đó là nó cho biết các thông tin về người sử dụng (audience) và hiểu biết của người thiết kế về người sủ dụng dùng và tìm hiểu trong các Web site như thế nào. Sau khi nhìn nhận lại các kinh nghiệm của người sử dụng về một Web, một vài phương pháp thiết kế được mô tả - trên/xuống, dưới/lên và phương pháp bổ xung khi cần thiết. Các khái niệm này cũng nên hiểu tương tự như như đối với một người phát triển phần mềm, như họ đ• có cảm nghĩ từ kỹ thuật phần mềm vậy (điều này có nghĩa là đối với một người thiết kế Web thì họ hiểu các khái niệm về các phương pháp thiết kế Web nêu trên cũng giống như một người thiết kế phần mềm hiểu các khái niệm từ kỹ thuật phần mềm). Trong việc thiết các Web, không cần thiết là phải sử dụng một phương pháp thiết kế trong xuốt quá trình thiết kế hoặc trong quá trình thực hiện, đặc biệt là quá trình thiết kế - cũng giống như mọi quá trình trong việc dệt Web - có thể vẫn được tiếp tục thực hiện thậm trí ngay cả khi Web đó đ• được phát triển và đem ra sử dụng. Thay vào đó, người thiết kế nên nhận thức được sự khác nhau giữa các phương pháp thiết kế và phải chuẩn bị để dùng bất cứ một phương pháp nào một cách mềm dẻo trong quá trình thiết kế một Web site. Ngoài việc có một số các phương pháp thiết kế để có thể thiết kế một cách linh hoạt, người thiết kế cũng nên có một số các kỹ thuật về nhóm các thông tin ra sao, liên kết các trang như thế nào, và các thông tin gợi ý để hướng dẫn cho người sử dụng. Bản thân các Hypermedia đòi hỏi phải tập trung vào kinh nghiệm của người sử dụng, tổ chức
  37.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o thông tin, các thông tin hướng dẫn. Một cách tốt nhất để vận dụng kinh nghiệm của người sử dụng là tổ chức một cách sáng suốt khối lượng thông tin trên các trang và các phần trên một trang, liên kết các trang đó với nhau ra sao để đáp ứng được yêu cầu của người sử dụng, và tổ chức các thông tin chú thích để hỗ trợ việc tìm kiếm và khám phá Web site của bạn một cách nhanh và có hiệu quả nhất. Thông qua phần này, bạn sẽ thấy là bản thân quá trình thiết kế sẽ làm việc với các phần tử của quá trình tổ chức một Web site để tạo ra được một cái gọi là quan sát và cảm nhận (look and feel) cho Web site đó. Phần này giới thiệu về việc khảo sát hơn là về học tập để tạo một Web site, bạn sẽ thấy quá trình thiết kế một cách liên tục. Các yếu tố cơ bản và mục đích của việc thiết kế một Web site Thông qua quá trình thiết kế, bạn cần nắm được các thông tin sau: • Đáp ứng được nhu cầu của người sử dụng Một Web site không phải thiết kế ra để thoả m•n sự cảm nhận của riêng của người thiết kế, các quy ước của người thực hiện hay theo ý thích của người vạch kế hoạch. Thay vào đó, Web site được thiết kế ra để phục vụ cho yêu cầu của độc giả mà nó được thiết kế. Việc đáp ứng nhu cầu của người sử dụng là một sự ưu tiên hàng đầu của việc thiết kế một Web site. • Dùng các tài nguyên một cách có hiệu quả Trong việc thiết kế và thực hiện một Web site, việc lựa chọn các đặc điểm để đáp ứng được yêu cầu của người sử dụng mà lại chiếm ít tài nguyên nhất, thời gian truy cập, các hình ảnh, và việc duy trì và bảo quản trong một thời gian dài là các vấn đề hết sức quan trọng. Nếu
  38.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o thực hiện tốt các phần này thì bạn sẽ tạo được một Web site mà có các tính năng dễ khai thác, sử dụng dễ dàng, và dễ bảo dưỡng. • Tạo được tính nhất quáng, sự hài lòng và tính quan sát và cảm nhận có hiệu quả. Việc thiết kế một Web site nên có mục đích để làm cho người sử dụng có một ấn tượng tốt về tất cả các trang, nó phản ánh cách tổ chức các thông tin trên trang Web của bạn, các thông tin về chú thích nên rõ ràng và nhất quáng. Mỗi trang của Web site nên có các thông tin chỉ dẫn cụ thể cho người sử dụng về mục đích của từng trang. Cách tổ chức thông tin trên một trang Web phải làm sao để có thể giúp người sử dụng có thể đạt được mục đích của họ và họ cảm thấy hài lòng khi dùng trang Web đó. I. Cấu trúc một trang Web Cấu trúc của một trang Web không tuân theo một chuẩn cố định nào đó mà bạn hoàn toàn có thể định ra được đó. Nhưng sau đây xin giới thiệu cấu trúc chung của một trang Web: Hình vẽ mô tả cấu trúc của một trang Web
  39.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o • Phần header của trang Web Trong phần này bạn có thể đặt các thông tin như tiêu đề của trang Web • Phần mục đích của trang Web Trong phần này bạn đặt thông tin về mục đích của trang Web này. Phần này rất quan trọng vì khi một người sử dụng nào đó vào một trang Web thì đầu tiên người sử dụng quan tâm đến là mục đích của trang Web họ đang xem. • Phần nội dung của trang Web Đây là phần chính của một trang Web, phần này là phần sẽ chứa toàn bộ thông tin bạn muốn trình bày. Cách thức tổ chức phần nội dung này là rất quan trọng. • Phần footer của trang Web Phần thông tin kết thúc một trang Web. Thông thường phần này chứa các thông tin như cảm ơn người sử dụng đ• thăm trang Web của bạn chẳng hạn (thông tin này cũng rất quan trọng vì nó làm cho người sử dụng rất hài lòng). Ngoài ra bạn cũng có thể đặt các thông tin như tên cơ quan, địa chỉ liên hệ
  40.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o II. Liên kết các trang lại với nhau Khi bạn đ• có các trang Web được thiết kế rồi thì vấn đề bây giờ là làm sao để liên kết chúng lại thành một Web site. Sơ đồ kiểu chùm mô tả các nhóm và các trang là một mô hình rất tốt để xem xét các trang được liên kết với nhau như thế nào. Dưới đây là một số phương pháp liên kết cho phép bạn có thể tạo các liên kết ban đầu. Để có được một mô hình về liên kết bạn đầu, bạn làm các bước sau: 1. Liên kết các trang theo mô hình hệ thống cấp bậc được xác định bởi mô hình lồng nhau của các nhóm được mô tả trên mô hình kiểu chùm. Liên kết các trang trong cùng nhóm lại với nhau. Hình vẽ dưới đây mô tả một sơ đồ liên kết dùng phương pháp này. Một điểm thuận lợi của phương pháp này là mô hình cấp bậc của các trang sẽ giúp cho người sử dụng có thể dễ dàng tìm đến các thông tin họ cần một cách nhanh chóng và thuận tiện.
  41.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o 2. Phương pháp thứ hai là không liên kết theo kiểu cấp bậc. Điều này có nghĩa là tất cả các trang đều có cấp bậc như nhau và từ một trang bất kỳ nào đó ta cũng có thể nhảy đến bất kỳ một trang nào khác trong Web site. Đối với một Web site với số trang nhỏ thì phương pháp này làm việc khá tốt; nhưng đối với các Web site có số trang lớn thì số liên kết sẽ tăng lên rất nhiều. Hình vẽ dưới đây mô tả phương pháp liên kết thứ hai này. Với mô hình liên kết này chúng ta thấy là từ một trang chúng ta có thể trỏ đến bất kỳ một trang nào trong Web site. Nhưng rõ ràng là số liên kết trong Web site tăng lên đáng kể. Tất nhiên là có rất nhiều phương pháp để thực hiện việc liên kết các trang lại với nhau nhưng hai phương pháp nêu trên hay được dùng nhất. Ngoài hai phương pháp trên đây, bạn có thể dùng các phương pháp sau đây tuỳ theo yêu cầu của bạn.
  42.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o • Theo yêu cầu thực tế: Bạn có thể làm một cuộc thử nghiệm như sau: bạn đặt ra một câu hỏi cho một số người sử dụng đại diện nào đó và quan sát xem cách giải quyết câu hỏi của họ bằng cách tìm kiếm thông tin trong Web site như thế nào. Sau đó căn cứ vào các liên kết mà người sử dụng đó hay dùng đến nhất, bạn có thể đưa ra được một kiểu liên kết với số liên kết trong Web site là tối ưu nhất để một người sử dụng có thể giải quyết các yêu cầu của mình một cách nhanh nhất. • Tổ chức các liên kết một cách ngẫu nhiên: Bạn tổ chức các lien kết trong Web site một cách hoàn toàn theo ý bạn. III. Các phương pháp thiết kế một Web site Thực ra thì không có một phương pháp cụ thể để thiết kế một Web site, bạn có thể chọn một trong số rất nhiều phương pháp đó. Không có một phương pháp nào có thể là một phương pháp tốt nhất ở mọi thời điểm; do đó bạn có thể chọn rất nhiều phương pháp trong khi chỉ thiết kế một Web site. Sau đây xin giới thiệu các phương pháp thiết kế hay được dùng nhất. III.1. Phương pháp từ trên xuống dưới Nếu bạn có thể hình dung được là toàn bộ Web site của bạn sẽ bao gồm những gì thì phương pháp thiết kế tù trên xuống dưới sẽ là phương pháp tốt nhất để bạn thiết kế một Web site. Trong phương pháp này, bạn bắt đầu thiết kế từ trang cao nhất (thông thường, nó được gọi là trang home page) và từ trang đầu tiên này bạn lại thiết kế các trang nhánh theo các chủ đề bạn chọn. Mỗi một chủ đề bạn chọn lại là một Web site nhỏ trong toàn bộ Web site của bạn, ở mỗi nhánh này lại có một trang cao nhất và từ đó các nhánh nhỏ hơn lại được thiết kế. Đối với phương pháp này, bạn thậm trí có thể tạo ra các trang chỉ chứa rất ít thông tin,
  43.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o thực chất trang này chỉ chiếm một vị trí trong Web site để bạn có thể phát triển thêm về sau thôi. Điểm thuận lợi của phương pháp này là bạn có thể thiết kế các trang Web theo một ý tưởng tập trung của bạn. Do đó bạn có cơ hội để làm cho tính quan sát và cảm nhận của Web site trở nên rất mạnh mẽ bởi lẽ tất cả các trang Web trong Web site được thiết kế theo tính quan sát và cảm nhận của trang cáo nhất (hay là home page). Một cách rất tốt là tạo một số các mẫu các trang Web trong Web site và dùng các mẫu này trong quá trình thiết kế Web site. III.2. Phương pháp thiết kế từ dưới lên Nếu như bạn vẫn chưa có được sự hình dung là Web site của bạn cuối cùng sẽ ra sao (và thậm trí bạn cũng không biết là sẽ phải làm gì), nhưng bạn biết là một số trang Web cụ thể nào đó sẽ được tổ chức như thế nào và nó sẽ làm việc như thế nào, thì một phương pháp thiết kế rất tốt là hay xuất phát từ các trang Web mà bạn có thể biết được nó sẽ ra sao này lên trang cao nhất (trang home page). Đây cũng là một phương pháp tốt nếu như bạn đ• có một số trang Web mà bạn đ• thiết kế sẵn hoặc bạn lấy được các trang Web đó từ một dịch vụ nào đó chẳng hạn. Nếu như bạn không biết là phải bắt đầu từ trang nào, bạn có thể bắt đầu với việc thiết kế các leaf - một leaf là một trang Web để phục vụ cho một mục đích hay một đối tượng cụ thể nào đó - và sau đó liên kết chúng lại thông qua các trang Web trung gian và cuối cùng là đến trang cao nhất. Điểm thuận lợi của phương pháp này là bạn không bị ép vào cái khuôn mẫu của một trang đầu tiên (home page) nào đó. Thay vào đó, bạn có thể thiết kế từng trang theo đúng kiểu của mục đích của trang đó. Sau đó bạn có thể điều chỉnh các trang để làm cho toàn bộ Web site của bạn có được một vẻ hài hoà, trang nh• làm cho người sử dụng khi xem các trang Web của bạn có được một ấn tượng tốt để họ còn xem tiếp trong những lần tiếp theo.
  44.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o III.3. Phương pháp thiết kế lớn dần/khi cần thiết Cũng tương tự như sự kết hợp của hai phương pháp từ trên xuống và từ dưới lên, phương pháp tăng dần/khi cần thiết là phương pháp thiết kế các trang Web chỉ khi cần đến chúng. Phương pháp này có thể dơi vào trường hợp là có một trang đầu tiên (home page) và có một số trang theo nhánh cây nào đó là có mục đích và đ• được thiết kế. Các trang này sẽ được tạo ra và liên kết lại về sau và có thể sẽ có các trang trung gian sẽ được thêm vào. Phương pháp sẽ rất thích hợp nếu như bạn muốn nhanh chóng có được một Web site hoạt động và sau đó sẽ được bổ xung dần dần chứ không phải là thiết kế toàn bộ Web site sau đó mới đưa vào hoạt động. Trên đây trình bày ba phương pháp thiết kế một Web site rất hay được dùng. Tuỳ vào điều kiện cụ thể và mục đích cụ thể ta có thể áp dụng một trang ba phương pháp hoặc áp dụng từng phương pháp cho từng nhánh cây nào đó. Ví dụ, bạn muốn thiết kế một Web site trong đó chỉ có một vài nhánh chính là bạn đ• hình dung được nội dung cụ thể của nhánh đó sẽ ra sao thì các nhánh đó bạn có thể áp dụng phương pháp từ trên xuống còn các nhánh khác bạn có thể áp dụng các phương pháp còn lại. IV. Các kỹ thuật thiết kế Việc thiết kế một Web site và giải quyết các vấn đề nảy sinh trong các công đoạn cuối cùng về kinh nghiệm của người sử dụng và các các phương pháp thiết kế yêu cầu nhà thiết kế Web site phải có rất nhiều kỹ thuật thiết kế để có thể tạo ra được một hiệu quả nhất định nào đó. Các kỹ thuật này phải giải quyết các thông tin về nhu cầu và khả năng của người sử dụng và tạo được một ấn tượng tốt trong toàn bộ Web site. Cũng giống như rất nhiều khía cạnh của quá trình thiết kế một Web site, các kỹ thuật thiết kế cũng là một nghệ thuật.
  45.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o IV.1. Tổ chức thông tin thành từng nhóm có kích thước hợp lý Con người có thể xử lý được một khối lượng thông tin lớn một lúc. Việc giúp đỡ người sử dụng của bạn có thể xử lý các thông tin là một khó khăn lớn của người thiết kế Web site và một nhiệm vụ cụ thể của người thiết kế Web site là nhóm các thông tin lại thành những "mẩu" thông tin để không làm cho người sử dụng của bạn bị tràn ngậm trong rất nhiều thông tin mà bạn đem đến cho họ. Thông thường, đối với người sử dụng thì số lượng "mẩu" thông tin mà một người sử dụng có thể chiếm được sự chú ý của người sử dụng là 5, có thể thêm hoặc bớt một hoặc hai tuỳ vào người sử dụng. Trong khi bạn phải điều chỉnh để quyết định là một mẩu thông tin sẽ được cấu thành từ những thông tin nào và phải quyết định một cách chính xác là sự chú ý của người sử dụng được cấu thành nên như thế nào. Sau đây là cách để nhóm các thông tin lại thành một nhóm (mẩu): • Để lượng thông tin trên từng trang Web không làm cho người sử dụng bị cảm giác tràn ngậm thông tin. • Để tạo các trang Web có thể dùng lại được; có nghĩa là mỗi một trang Web mà bạn tạo ra sẽ đáp ứng một mục đích cụ thể nào đó thì một điều rất có ích là bạn tạo các liên kết trong toàn bộ Web site đến trang đó. Bằng cách này, bạn có thể tạo được một trang thông tin mà ở rất nhiều vị trí khác nhau trong Web site có thể dùng được nhưng thực tế thì trang thông tin đó chỉ được tạo một lần. • Để bạn có thể tập trung được sự chú ý của người sử dụng. Các nhóm thông tin, khi chúng được tạo ra từ các ý tưởng, các khái niệm và các cách suy nghĩ và đặt vấn đề giống như người sử dụng sẽ giúp cho người sử dụng tập trung vào một chủ đề nào đó tại một thời điểm nào đó để giúp họ có thể đạt được mục đích của họ khi sử dụng Web site của bạn.
  46.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Vậy làm để một người thiết kế có thể nhóm các thông tin lại được? Có một số kỹ thuật để làm điều đó. Bước thứ nhất của tất cả các kỹ thuật đó là người thiết kế phải tập hợp được các thông tin sẽ được trình bày trong Web site. Thông tin phải được liệt kê cụ thể trong phần các đặc điểm của Web (được tạo ra trong bản thiết kế Web site) V. Các vấn đề khi thiết kế một Web site Mặc dù các kỹ thuật thiết kế trên đây có thể giúp bạn tạo được một sự quan sát và cảm nhận nhất quáng cho Web site của bạn nhưng vẫn có một số vấn đề cụ thể mà chúng có thể làm cho bản thiết kế của bạn giảm giá trị đi. Trong đó có cả các vấn đề về thiếu các thông tin chỉ dẫn cho người sử dụng (nó được gọi là một trang đến từ bên ngoài - the page from outer space), một trang nào đó mà đòi hỏi thời gian truy cập quá dài hoặc có các cấu trúc thông tin quá phức tạp (được gọi là trang Web monster), một trang với thông tin không hề có cấu trúc (được gọi là một trang Web unevent) và các vấn đề về các liên kết trong một trang Web (chẳng hạn như các liên kết vô nghĩa). Tất cả các vấn đề về thiết kế trên đây có thể gây ra các vấn đề cho Web site của bạn; cũng có những trường hợp ngoại lệ đó là tất cả các vấn đề đ• đề cập trên đây lại có thể đóng một vai trò có hiệu quả trong việc hoàn thành một mục đích cụ thể nào đó. Nhưng vấn đề chủ yếu ở đây là người thiết kế một Web site phải để ý đến các vấn đề này- không phải là các công thức cứng nhắc hoặc các luật lệ cứng nhắc. Hơn nữa, tất cả những người thiết kế đều tạo ra một trong các vấn đề trên đây trong quá trình thiết kế, không phải lúc này thì là lúc khác, chẳng hạn như một trang mới phát sinh ra, các liên kết chồng lên nhau dần dần cho đến khi trang Web đó trở thành một trang monster. Tốt nhất, đây là các vấn đề cần phải quan tâm đến khi thiết kế hoặc phân tích một Web site. V.1. Trang đến từ bên ngoài (page from outer space)
  47.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Có thể có một trang Web nào đó được viết một cách rất cẩn thận, chẳng hạn như trang Web dưới đây: Khi người sử dụng vào trang Web này sẽ có rất nhiều câu hỏi được đặt ra như: Ai viết trang Web này? Tại sao lại viết nó? Nó là một phần của Web site nào vậy? ở đây, Internet là gì vậy? Trang Web trên đây không hề có một thông tin nào về hướng dẫn người sử dụng, thậm trí không có thông tin về tiêu đề để hướng dẫn người sử dụng về mục đích của trang Web. Và như các bạn thấy là không hề có một liên kết nào trên trang Web, do đó để có thể về được trang home page của Web site này là rất khó khăn. Khi đó người sử dụng chỉ còn một cách là cắt gỏ các phần sau của địa chỉ URL và chỉ lấy phần đầu của địa chỉ URL đó thôi. Trong trang Web trên đây - giới thiệu về Kermit và chúng ta có thể làm gì với Kermit - về cấu trúc thông tin không có gì phức tạp lắm, do đó cũng ít khi được dùng. Hơn nữa khi một người sử dụng Web vào trang này cũng không dễ gì tìm ra được câu trả lời cho các câu hỏi trên; trang Web không có một liên kết nào, không có một ngữ cảnh nào, không có một thông tin hướng dẫn. Do đó nó được gọi là một trang Web đến từ bên ngoài (trang Web lạ). Trong thiết kế nên tránh tối đa việc tạo ra một trang Web mà không hề có thông tin chỉ dẫn. Nhưng đôi khi bạn đưa ra một chút thông tin nhưng cũng không rõ ràng thì cũng không ổn, ví dụ như một trang Web với tiên đề: "Trang home page của khoa Công Nghệ Thông Tin" Thì người sử dụng sẽ đặt câu hỏi: Khoa Công Nghệ Thông Tin của trường nào vậy? Của nước nào vậy? Đây cũng có thể dơi vào trường hợp người thiết kế không nghĩ rằng người sử dụng lại là một người ở nước khác mà chỉ
  48.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o đơn thuần nghĩ rằng chỉ có những người trong một khu vực nhỏ dùng Web site này thôi. Thông thường, cũng không cần phải đưa ra các thông tin chi tiết cụ thể quá mà chỉ cần đưa thông tin ở cấp một nước là đủ. Chẳng hạn như: "Trang home page của khoa Công Nghệ Thông Tin- Đại học Bách Khoa Hà Nội-Việt Nam" V.2. Trang Web khổng lồ (Monster Page) Nếu như một trang Web từ nơi khác đến có quá ít các thông tin hướng dẫn người sử dụng có thể tìm đến với các thông tin mà họ cần thì một trang Web khổng lồ là một trang Web hỗn độn với quá nhiều các liên kết, các hình ảnh, các danh sách và các ảnh hưởng khác. Có hai vấn đề chính đối với các trang Web khổng lồ, đó là: 1. Thời gian truy cập: Nếu như có rất nhiều các hình ảnh được gắn vào hoặc có một số lượng tương đối lớn các văn bản trong trang Web đó thì thời gian truy cập để nạp trang Web đó về có thể lâu đến mức không thể tưởng tượng được. 2. Quá tải thông tin: Nếu như bạn đưa quá nhiều thông tin trên một trang Web thì người sử dụng không thể đối phó với trang Web đó được. Giới hạn vật lý của trình duyệt Web hiển thị sẽ mặc định chia thông tin trên trang Web đó thành các khoanh thông tin để có thể dùng các thanh trượt trên màn hình để xem được. Thay vì phải để cho trình duyệt Web làm điều này thì tốt hơn là người thiết kế Web site nên tính toán để tổ chức thông tin cho hợp lý. V.3. Dùng các công cụ đa phương tiện quá mức cần thiết
  49.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Đối với những người mới thiết kế dùng các trình duyệt Web có nhiều đặc điểm thuận lợi như Mosaic thường thường dùng rất nhiều hình ảnh và liên kết đến các hình ảnh, âm thanh, các bộ phim và các tập tin đa phương tiện khác. Khi không cần thiết thì các trang dùng các công cụ đa phương tiện quá mức này cũng dẫn đến một tác hại giống như một trang khổng lồ vậy. Các công cụ đa phương tiện được dùng trong một trang Web phải đóng một vai trò chủ đạo trong việc hoàn thành một mục đích nào đó hoặc đáp ứng trực tiếp nhu cầu của người sử dụng. Việc khoanh vùng các liên kết đến các tài nguyên này cũng giống như việc khoanh vùng các liên kết giữa các trang có thể được tiến hành bằng cách dùng sơ đồ kiểu nhóm (cluster) và kỹ thuật nhóm thông tin. Một vấn đề nữa đối với việc dùng các công cụ đa phương tiện quá mức cần thiết đó là bạn dùng một hình ảnh ở rất nhiều trang khác nhau mà lại không dùng một liên kết đến cùng một tập tin, điều này làm cho trình duyệt Web cư phải nạp đi nạp lại mỗi khi duyệt các trang Web đó. Nếu như bạn dùng các liên kết đến cùng một tập tin (cùng một URL) thì trình duyệt Web chỉ phải nạp tập tin hình ảnh đó có một lần nhưng có thể hiển thị trên rất nhiều trang Web khác nhau trong Web site. V.4. Trang Web không có cấu trúc Một trang Web không có cấu trúc là một trang chứa các thông tin rất khác nhau trong một trang hoặc các mức thông tin không hợp nhau. Đối với các trang Web loại này thường tạo ấn tượng không hay khi người sử dụng xem đến chúng. V.5. Các liên kết vô nghĩa Đây lại thuộc vấn đề câu chữ trong một liên kết, chẳng hạn bạn xét hai liên kết sau:
  50.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Để có thêm thông tin, b•n bấm Thì ở đây từ "Vào đây" không có ý nghĩa gì và bạn nên dùng câu: Bạn có thể có Ngoài ra cũng có các liên kết vô nghĩa như các liên kết tầm thường chẳng hạn như các liên kết đến các tài nguyên mà các tài nguyên này đ• được các trang trước đó dùng rồi. Một loại liên kết vô nghĩa nữa là các liên kết đến một nhóm thông tin nhỏ quá, điều này làm cho người sử dụng phải qua rất nhiều trang để có thể hiểu được nội dụng thông tin. Chương 4 Các ứng dụng cơ bản của Web I. Web với thương mại Bạn có thể nhìn vào dịch vụ WWW ngày nay và một điều khó có thể tin được là chỉ trong vòng mấy năm gần đây các hoạt động thương mại trên Internet là gần như không có. Nhưng hiện nay thì vấn đề thương mại trên Web không còn lạ lẫm nữa. Hầu hết các công ty lớn đều có trang home page để quảng cáo về sản phẩm của công ty họ. Sau đây là các lĩnh vực cơ bản trong thương mại mà Web có thể thực hiện được:
  51.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o I.1. Quảng cáo trên Web Với sự hỗ trợ của công cụ đa phương tiện, Web cho phép các dịch vụ quảng cáo có thể được phát triển rất mạnh mẽ. Hầu hết các công ty đều có dịch vụ quảng cáo về các sản phẩm của mình. Trên Web, bạn có thể đưa các mô hình sản phẩm bạn định quảng cáo lên các trang Web kèm theo với cả âm thanh sống động rất rễ thu hút được sự chú ý của người sử dụng Web. I.2. Mua bán hàng hoá trên Web Kèm theo dịch vụ quảng cáo là dịch vụ mua hàng hoá qua Web. Điều này được thực hiện như sau: Khi bạn tìm đến một loạt sản phẩm mà bạn ưa thích sẽ có lựa chọn để bạn chọn sản phẩm mình cần mua, bạn chọn xong sản phẩm cần mua thì gửi yêu cầu mua hàng về máy chủ. Sau một thời gian nhất định, sẽ có nhân viên của công ty đó đem hàng hoá đến tận nhà cho bạn. Thậm trí nếu bạn có đăng ký dịch vụ thanh toán qua một ngân hàng nào đó thì bạn phải đưa vào số thẻ tín dụng của bạn ở ngân hàng nào đó và khi học đem hàng đến bạn cũng không phải thanh toán tiền tại nhà. Với sự phát của Web, trong tương lai bạn sẽ không cần phải giữ tiền mà mọi dịch vụ tiêu dùng hàng ngày đều có thể thanh toán qua Web. I.3. Thanh toán và mở tài khoản với ngân hàng qua Web Dùng Web, bạn hoàn toàn có thể ngồi tại nhà cũng có thể thanh toán với ngân hàng hàng tháng, hàng quý một cách hết sức thuận tiện và nhanh chóng. Ngoài ra bạn cũng có thể mở tài khoản với ngân hàng cũng qua Web. II. Web với vui chơi và giải trí và nghệ thuật Web không chỉ là nơi để bạn tham gia các hoạt động thương mại mà bạn còn có thể tham gia các hoạt động vui
  52.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o chơi giải trí như: Nghe nhạc, xem phim, xem các bức tranh nghệ thuật III. Web với giáo dục và nghiên cứu III.1. Web thúc đẩy học sinh học tập tốt hơn Trong các lớp học truyền thống thường dựa trên một thầy giáo để truyền đạt kiến thức cho các học sinh, Web cho phép kết nối trực tiếp giữa các học sinh với các nhà cung cấp kiến thức. Hơn nữa qua Web các học sinh có thể truy cập đến một khối lượng kiến thức vô cùng rộng lớn trên Internet. III.2. Các trường học trên Web Nếu như trước đây vấn đề về tài liệu của các trường học là một vấn đề hết sức khó khăn thì nay với Web trên Internet, một trường có thể kết nối với một thế giới rộng lớn hơn để có thể nạp về các tài liệu cần thiết cũng như học tập và trao đổi kinh nghiệm với các trường bạn. IV. Web với khoa học và công nghệ Web thực sự là một kho tàng thông tin trên mọi lĩnh vực của khoa học và công nghệ. Với Web, các nhà khoa học có thể tra cứu thông tin cũng như tao đổi kinh nghiệm với các bạn đồng nghiệp trên toàn cầu. Web thực sự là một môi trường tốt cho khoa học và công nghệ phát triển. Phần 2
  53.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Giới thiệu Java và cơ sở dữ liệu Giới thiệu về Java truy cập vào các cơ sở dữ liệu Sau khi gia đời, Java đ• được hưởng ứng một cách nhiệt tình và làn sóng đầu tiên về các ứng dụng viết bằng Java Applet đ• phát triển rất mạnh mẽ, các nhà sáng tạo ra Java ở JavaSoft đ• bắt đầu nghĩ đến phát triển Java thành một platform theo kiểu khách/chủ (client/server). Các nhà phát triển Internet và các nhà tư vấn về vấn đề này đ• đưa ra các khái niệm về Intranet và nhận ra rằng Java có rất nhiều điểm thuận lợi trên thị trường client/server trong có cả các client không quản lý (zero administration client), phần mềm tập trung cập nhật và quản trị, các phần mềm không có phiên bản và mẫu tập trung vào Web. Một trong những tập Java API (một API là một chương trình ứng dụng giao tiếp - Application Programming Interfaces) quan trọng và cần thiết nhất là một trình giao tiếp với các cơ sở dữ liệu do đó dữ liệu có thể được tạo ra, được truy cập đến, được chia sẻ, cập nhật và tham chiếu thông qua Internet và Intranet không có dây nối như các cơ sở dữ liệu trên các mạng hiện nay. Chú ý:
  54.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Các Java API là các class và các method cho phép các chương trình Java tương tác với các hệ thống trên một thế giới thực (real-world). Ví dụ, API java.net cho phép một chương trình Java có thể giao tiếp dùng giao thức TCP/IP và API java.awt cho các chương trình Java khả năng hiển thị các menu, các nút và các hộp danh sách. Có một số các core API ( chẳng hạn như các class java.lang, java.net, java.net, java.awt, java.applet), là một phần của bất kỳ một hệ thống Java nào. Sau đó có các phần mở rộng chuẩn của Java như Java Server API và Java Management API. Theo thời gian, rất nhiều trong số các chuẩn này sẽ trở nên một phần không thể thiếu được của ngôn ngữ Java và sẽ trở thành các core API. Cùng một lúc, các nhà cung cấp các cơ sở dữ liệu, như Oracle và Informix, muốn các chương trình Java applet truy cập vào được cơ sở dữ liệu của họ thông qua Internet và Intranet, do đó họ đ• bắt đầu xây dựng các các class và các method bằng Java để truy cập vào dữ liệu trong các cơ sở dữ liệu của họ. Điều này tạo ra rất nhiều cách truy cập vào các cơ sở dữ liệu từ các chương trình ứng dụng viết bằng Java. Trong một cuộc hội nghị về Java (vào tháng 5 năm 1996), h•ng Sun đưa ra một loạt các Java API hướng trực tiếp đến các ứng dụng theo kiểu client/server, Internet/Intranet. Có rất nhiều các API trong đó có cả các Java Enterprise API, Java Commerce API, Java Security API và Java Servlet/Jeeves API, tất cả các API này đ• nâng ngôn ngữ Java lên một mức platform và có mục đích là phát triển các ứng dụng kiểu client/server có thể chạy trên Internet. Phần này đề cập chủ yếu đến các Java enterprise API: JDBC API, RMI (Java Remote Invocation), Object Serialization và hệ thống IDL. Trong các API trên đây thì API IDBC là API chính (JDBC tức là Java Database
  55.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Connectivity - tức là cơ sở dữ liệu kết nối qua lại), API này đ• sớm được sử dụng trong rất nhiều các chương trình Java. Hiện tại, việc truy cập vào cơ sở dữ liệu được thực hiện bằng 3 cách sau: thông qua JDBC của các Java enterprise API; các phương pháp truy cập riêng của các nhà cung cấp cơ sở dữ liệu; các class kiểu "thành viên thứ ba" (the third-party class), kiểu này được áp dụng đối với rất nhiều cơ sở dữ liệu. Các phần tiếp theo sẽ giới thiệu các cách truy cập vào các cơ sở dữ liệu của các nhà cung cấp và phương pháp thông qua thành viên thứ ba và và sơ qua về phương pháp JDBC. Các Java Enterprise API Các Java Enterprise API nhanh chóng trở thành một phần rất có giá trị của ngôn ngữ lập trình Java và của mô hình Java máy ảo (Java Virtual Machine). Tất cả các những người được cấp giấy phép sẽ thực hiên các API này như một phần của hệ thống của họ. Do đó, Java Enterprise API là các API vặn năng và không phụ thuộc vào platform (cross- platform; ở đây platform là gồm cả phần cứng và hệ điều hành của máy tính). Như đ• đề cập trên đây, các Java Enterprise API bao gồm JDBC, RMI, Object Serialization và IDL. JDBC là một tập các class truy cập vào cơ sở dữ liệu; các RMI API cho phép các chương trình Java có khả năng gọi các method của các đối tượng (object) với các khoảng tên khác nhau (name- space); các method và các đối tượng của Object Serialization API cho phép một chương trình có thể cất giữ (store) và xử lý trực tiếp các đối tượng này, thay vì cất giữ và xử lý nó dưới dạng dữ liệu; hệ thống ngôn ngữ định nghĩa giao tiếp IDL (Interface Definition Language) cho phép các chương trình Java giao tiếp với nhóm quản lý đối tượng OMG (Object Management Group). Tập các API trên đây cho phép phát triển các ứng dụng ở mức enterprise theo kiểu client/server dùng các đối
  56.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o tượng, các applet và các servlet của Java. Khái niệm các ứng dụng ở mức enterprise là chỉ hệ thống tiện ích quảng cáo, việc đặt trước vé máy bay trong hàng không, các hệ thống quảng cáo bằng catalog, các hệ thống thị trường, quảng cáo các sản phẩm và các hệ thống sản xuất, các hệ thống ngân hàng (từ các máy ATM để cho phép thanh toán với ngân hàng trực tiếp qua một mạng lớn trên phạm vi trong một nước hay qua nhiều nước), các hệ thống môi giới, vân vân Tất cả các hệ thống này đều dùng đến một cấu trúc logic ba lớp (three-tier) (cơ sở dữ liệu kiểu đầu cuôi (back- end), lớp các quy định trung gian, lớp front end chính là lớp giao diện đồ hoạ với người sử dụng (GUI - Graphical User Interface). Mở rộng cấu trúc này, rất nhiều tổ chức đ• sử dụng một cấu trúc gọi là cấu trúc N-Tier (tức là N lớp). N-Tier logic là gì? ở đây có lẽ hơi lệch về yếu tố lịch sử một chút. Các ứng dụng client/server được bắt đầu với một server cơ sở dữ liệu và một client với lớp trình diễn (các menu, các màn hình dữ liệu, vân vân ). Các hệ thống truyền thống này có một chương trình client chứa tất cả các ứng dụng logic. Cấu trúc này sau đó đ• được sửa đổi thành cấu trúc ba lớp (đ• đề cập trên đây), và phần logic business đ• được tách rời từ client và được tạo thành một lớp riêng biệt. Lớp này hoặc ở phía các client hoặc ở phía server. Cùng với sự phát triển cực nhanh của Internet và các platform như Java, các hệ thống này đang trải qua một sự tiến hoá. Với các chương trình Java applet và các servlet, các nhà phát triển có thể tạo ra các chương trình Java mà các chương trình này bao gồm nhiều chức năng (encapsulate function) và dữ liệu. Các applet này được gửi qua mạng (Internet/Intranet) vào một thời điểm thích hợp và khi đến được client nó thực hiện các chức năng của nó.
  57.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Để có được một cái nhìn toàn cảnh về các Java Enterprise API, bạn có thể xem JDBC như là một component làm cho một cơ sở dữ liệu có thể truy cập được, trong khi đó thì RMI và IDL lại có thể được coi là phương tiện để giao tiếp giữa các platform và các hệ thống. JDBC JDBC (Java Database Connectivity- Tức là cơ sở dữ liệu liên kết) là các class API liên quan đến cơ sở dữ liệu cho các Java applet và các ứng dụng. JDBC đ• được SunSoft phát triển và là một phần của Java 1.1 JDBC, cũng giống như ngôn ngữ lập trình Java, nó cũng không phụ thuộc vào platform và cơ sở dữ liệu. Để có thể chạy được JDBC trên một platform, thì Java máy ảo phải có một trình quản lý trình điều khiển địa phương (native driver manager); đối với các cơ sở dữ liệu cụ thể, trình điều khiển cho cơ sở dữ liệu đó cũng cần thiết. Chú ý: Việc thiết kế JDBC đ• được hoàn thiện bởi mức gọi giao tiếp (Call Lavel Interface hay CLI) XOPEN SQL và cơ sở dữ liệu kết nối mở của Microsoft (Microsoft's Open Database Connectivity hay gọi là ODBC). ODBC dựa trên sự truy cập nhóm qua SQL (SQL Access Group hay SAG) CLI. Do đó, JDBC và ODBC có cùng một nguồn gốc (common root). Điểm căn bản ở đây là đối với những người biết và thực hiện được ODBC thì JDBC cũng sẽ rất dễ hiểu và áp dụng cũng dễ. Các nhà thiết kế JDBC dùng cách thiết kế là chắt lọc các các khái niệm từ ODBC. Hai nguyên nhận chính dẫn đến sự cải tiến JDBC từ ODBC là: ODBC được dùng rất rộng r•i, điều này giúp cho các nhà thiết kế giảm được quá trình nghiên cứu của họ.
  58.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Vì có các sự thực hiện có hiệu quả trên tất cả các platform và trên hầu hết các cơ sở dữ liệu. Điều này có nghĩa là không cần phải phát triển các trình điều khiển và các trình giao tiếp mới cho Java; h•ng Sun có thể là đối tác với các nhà cung cấp có sản phẩm về ODBC để có thể thiết lập nhiều các trình điều khiển, các công cụ, và sự áp dụng chúng. Chú ý: Một sự khác nhau quan trọng giữa JDBC và ODBC là ODBC dùng rất nhiều các phương tiện của ngôn ngữ lập trình C, chẳng hạn như các con trỏ và kiểu trả về void - điều này là không có trong ngôn ngữ Java. Trong môi trường C, bạn có thể định nghĩa hàm trả về void để báo cho trình dịch và thời gian chạy rằng bạn muỗn trả về kiểu con trỏ với kiểu không xác định. Sau khi bạn nhận được con trỏ từ hàm đó, con trỏ đó đó sẽ được chuyển thành một kiểu đặc biệt. Các nhà thiết kế Java mong muốn rằng sẽ tránh được điều này và các thao tác trên các kiểu con trỏ khác , do đó họ đ• thiết kế Java là một ngôn ngữ có các kiểu trả về rất nghiêm khắc. Các method trả về các đối tượng mà đ• được biết trước. Java không hề có con trỏ. Các nhà thiết kế ở JavaSoft thực hiện JDBC bằng những khái niệm rất trừu tượng từ ODBC, chẳng hạn như kết nối (Connection) và tập kết quả (ResultSet) Chú ý: Các hoạt động thông dụng trên một cơ sở dữ liệu đòi hỏi phải trả về các hàng (rows) và các hàng dữ liệu, các cột này bao gồm rất nhiều các cột, hoặc các trường, được gọi là tập kết quả (ResultSet). Nhìn vào các đặc điểm của JDBC, chúng rất thành công trong việc cung cấp khả năng truy cập vào cơ sở dữ
  59.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o liệu SQL. Đối với JDBC, các thao tác đơn giản trên cơ sở dữ liệu, chẳng hạn như hỏi đáp, tạo, cập nhật, có thể được thực hiện bằng các method đơn giản. Đối với các thao tác phức tạp hơn, chẳng hạn như các tập kết quả phức tạp và cất các thủ tục các tham số IN và OUT, JDBC có các lệnh riêng biệt. Đối với các chương trình tự động và các công cụ của các nhà thiết kế, JDBC có các class và các method MetaData, các class và các method này cung cấp các thông tin về rất nhiều các đặc điểm mà cơ sở dữ liệu hỗ trợ, cấu trúc bảng, và các đặc điểm khác. Chú ý: Khái niệm các stored procedure là các hàm và thủ tục bao gồm các lệnh dựa trên cơ sở dữ liệu được cất trên server cơ sở dữ liệu. Khi các chương trình phía client muốn thực hiện một hàm thì thay vì phải dùng các lệnh cơ sở dữ liệu, thì chũng gọi các stored procedure. Điểm thuận lợi của việc gọi này là stored procedure ở trên server, điều này cho phép tính đồng nhất, vấn đề an ninh và có hiệu quả. Cũng giống như các thử tục thông thường, các stored procedure cũng lấy các tham số. Các tham số IN được truyền cào các stored procedure và chũng không được trả lại; Các tham số OUT là các giá trị được các stored procedure trả về. Khi làm việc với các stored procedure, hệ thống phải làm việc với các tham số này cũng với bất kỳ một tập kết quả nào (ResultSet). Các phần sau này sẽ đề cập cụ thể hơn về các class và các method về JDBC. Sự áp dụng JDBC JDBC được thực hiện giống như gói (package) java.sql. Bạn dùng gói này bằng cách khai báo import
  60.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o java.sql.* trong các chương trình Java của bạn. Hình vẽ sau đây mô tả chiến lược thực hiện JDBC. Phần bên dưới lớp API là trình quản lý trình điều khiển JDBC cho rất nhiều loại cơ sở dữ liệu viết cho sự kết hợp giữa phần cứng và hệ điều hành, điều này là một phần của mô hình Java máy ảo. Trình quản lý trình điều khiển JDBC có thể được viết cho một cơ sở dữ liệu cụ thể nào đó hoặc nó có thể là một trình quản lý trình điều khiển chung cho nhiều cơ sở dữ liệu. H•ng Sun có trình quản lý trình điều khiển cho các cơ sở dữ liệu chung JDBC và co cả trình quản lý trình điều khiển cho cơ sở dữ liệu ODBC. Cầu nối JDBC/ODBC (Bridge JDBC/ODBC) là một lớp mỏng bên trên JDBC để hướng các lời gọi đến JDBC xang các lời gọi cho ODBC. Trình cầu nối này được cung cấp miễn phí với JDBC, và đ• được Intersolv phát triển. Cầu nối JDBC/ODBC là một lớp rất mỏng bởi vì JDBC rất giống với ODBC về mặt thiết kế các class và các method ( do vậy không cần một lớp với nhiều chương trình để chuyển đổi bởi lẽ bản thân JDBC và ODBC cũng đ• có rất nhiều điểm giống nhau) và JDBC cho phép truy cập vào tất cả các cơ sở dữ liệu chính thông qua các trình điều khiển của ODBC. Vì JDBC rất gần gũi với ODBC h•ng Sun đ• làm cho nó trở nên dễ dàng đối với các nhà phát triển và các nhà cung cấp phần mềm độc lập có thể bắt đầu phát triển các ứng dụng về cơ sở dữ liệu bằng Java. Nếu như họ đ• phát triển một trình giao tiếp cơ sở dữ liệu hoàn toàn khác thì sẽ mất rất nhiều thời gian và công sức để có thể giao tiếp Java với các cơ sở dữ liệu chính. Các nhà cung cấp như Oracle và Borland có các trình điều khiển cho JDBC để truy cập trực tiếp vào các cơ sở dữ liệu của họ chẳng hạn như cơ sở dữ liệu Oracle 7 của Oracle và Interbase của Borland. Các trình điều khiển này cũng có giá trị tương tự trong việc phát triển các ứng dụng về cơ sở dữ liệu dùng Java.
  61.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Nếu ta nhìn sâu hơn một chút về các đặc điểm của JDBC, chúng ta sẽ thấy là JDBC có sự lựa chọn và load các trình điều khiển hoàn toàn động, các trình giao tiếp cho các kết nối, các lệnh và các tập kết quả. JDBC được thực hiện như một dữ liệu ống trong ngữ cảnh các tập kết quả có chứa các dòng dữ liệu và cả sự mô tả về các dòng dữ liệu. Sự mô tả về các dòng dữ liệu được gọi là tập kết quả MetaData. Dùng các method trong java.sql, một chương trình có thể yêu cầu loại của tập kết quả chẳng hạn như các tên của các cột và các kiểu dữ liệu. JDBC đ• chuẩn bị các lệnh và các đối tượng lệng có thể gọi được cho các cơ sở dữ liệu địa phương xử lý dùng các thủ tục đ• được biên dịch và các stored procedure.
  62.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Hình 1. JDBC Implementation components. Giới thiệu cụ thể về các class của JDBC Khi bạn nhìn vào hệ thống cấp bậc của các class JDBC, như mô tả trên hình dưới đây, bạn sẽ thấy các đối tượng được đặt trong một cấu trúc tăng dần. Trình quản lý trình điều khiển kết nối với cơ sở dữ liệu và trả về một đối tượng kết nối. Bạn dùng các method có liên quan đến các lệnh trong một đối tượng kết nối đẻe thực hiện các lệnh của SQL, và nó sẽ trả về đối tượng tập kết quả mỗi khi cần thiết. Sau đó bạn lấy dữ liệu từ tập kết quả ra bằng từng hàng một và từng cột một.
  63.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Hình 2. Cấu trúc phân lớp của class JDBC Các loại class chính là implementation, kết nối cơ sở dữ liệu, các lệnh, dữ liệu và các lỗi. Bảng 1.1 cho biết các loại và các class JDBC cho các loại đó. Loại Class JDBC Implementation java.sql.Driver java.sql. DriverManager java.sql.DriverPropertyInfo Cơ sở dữ liệu kết nối java.sql.Connection Các lệnh SQL java.sql.Statement java.sql.PreparedSatement
  64.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o java.sql.CallableSatement Dữ liệu java.sql.ResultSet Các lỗi java.sql.SQLWarning Bảng 1.1: Các loại Class chính và các Class có liên quan Khi bạn qua mỗi class, bạn sẽ thực hiện một dự án nhỏ (mini-project). Dự án nhỏ (mini-project) này là truy cập vào một số ít các trường trong cơ sở dữ liệu ORDERS.MDB như là một ví dụ với truy cập cơ sở dữ liệu của Microsoft. Hình 3 dưới đây mô tả một lược đồ đơn giản gồm 4 bảng cho hệ thống order entry.
  65.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Hình 3. Lược đồ Cơ sở dữ liệu dự án nhỏ về đơn đặt hàng. Bảng các khách hàng có các chi tiết cụ thể về khách hàng. Một khách hàng có thể có rất nhiều entry trong các bảng đặt hàng. Mỗi bảng đặt hàng có thể rất nhiều dòng; các dòng này được cất trong bảng các chi tiết cụ thể về đặt hàng. Mỗi một bảng chi tiết đặt hàng có thể có nhiều nhất một sản phẩm từ bảng các sản phẩm, nhưng một sản phẩm có liên quan đến rất nhiều dòng yêu cầu đặt hàng. Trình điều khiển truy cập ODBC trở nên chuẩn đối với sản phẩm truy cập và rất nhiều sản phẩm khác như Visual Basic. Bạn có thể load về miễn phí trình điều khiển ODBC 32 bit từ Web site của công ty Microsoft. Sau đây xin giới thiệu cụ thể về các package trong bảng 1.1 trên đây. java.sql.DriverManager Lớp quản lý trình điều khiển theo dõi các trình điều khiển hiện có của JDBC. Có thể có nhiều trình điều khiển trên một hệ thống - hệ thống ở xa hay hệ thống địa phương. Trong khi khởi tạo, trình quản lý trình điều khiển load tất cả các class trong tài sản của hệ thống sql.drivers. Các trình điều khiển có thể được thực hiện bởi các method địa phương viết bằng C/C++, hoặc bằng một chương trình Java có thể giao tiếp với một cơ sở dữ liệu bằng trình giao tiếp RPC (Remote Procedure Call) hoặc giao tiếp với một server cơ sở dữ liệu đang chờ các kết nối từ phía các client. Sự thực hiện và giao tiếp cụ thể ra sao là phần việc của các nhà phát triển. Thỉnh thoảng mỗi một trình điều khiển trong khi được load lên nên tự register bằng cách dùng method DriverManager.registerDriver. Thời điểm tốt để thực hiện điều này là trong m• khởi tạo của class tĩnh (static class). JDBC dùng cú pháp URL (theo mẫu: : ) để xác định các kết nối JDBC. Trong đó,
  66.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o subprotocol odbc được giành cho tên nguồn dữ liệu kiểu ODBC. Một ví dụ JDBC URL như sau, một ODBC Testdb có tên người sử dụng là Tester1 và mật khẩu là TestPW sẽ có URL là jdbc : odbc : Tester1; UID=Tester1; PWD=TestPW. Trình quản lý trình điều khiển hướng các trình điều khiển đến các JDBC URL; nói cách khác, nó theo dõi mối quan hệ của trình điều khiển load các class nhờ đó, trình load class chỉ có thể truy cập vào được trình điều khiển được chính nó load. Khi mà một kết nối cần được mở, trình quản lý trình điều khiển lựa chọn một trình quản lý trình điều khiển tương ứng bằng trình tìm kiếm bảng bên trong để mở kết nối đó. Các trình điều khiển phải phù hợp với kiểu an ninh của Java. Kiểu an ninh thông dụng nhất được dùng bởi các trình duyệt Web (thông thường là Netscape Navigator) đó là các applet chỉ có thể kết nối trở lại với server của chúng (điều này có nghĩa là các chương trình applet chỉ có thể kết nối với các ứng dụng nằm trên máy server mà từ đó các applet này đ• được load về), trong khi đó các ứng dụng lại có thể kết nối tự dó đến các mày khác. Kiểu an ninh n•y sẽ sớm được thay đổi đối với một signed-class, các applet tin cậy với kiểu thiết lập an ninh động. Trình quản lý trình điều khiển cung cấp các kết nối đối tượng. java.sql.Driver Class java.sql.Driver cung cấp thông tin về trình điều khiển cơ sở dữ liệu chung và cài đặt. Nó sẽ được load trong quá trình khởi tạo cơ sở dữ liệu và sẽ được hỏi các thông tin về trình điều khiển trong chương trình Java. Điều này có nghĩa là class này sẽ được thường trú trong bộ nhớ trong quá trình chương trình Java đó được thực hiện. Sau đó class này nên nhỏ ở mức tối thiểu. Các method trong java.sql.Driver có method connect (để kết nối với một cơ sở dữ liệu) và method getPropertyInfo (để lấy các thông tin yêu cầu về kết nối đến một cơ sở dữ liệu). Như đ• đề cập trên đây, trình điều khiển này nên gọi
  67.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o DriverManager.registerDriver để register chính nó. Trình quản lý trình điều khiển sẽ giữ thông tin về class Driver, trong đó có cả thông tin về kiểm tra truy cập và an ninh về nguồn load class đó về. Như đ• đề cập trên đây, trình quản lý trình điều khiển sẽ load tất cả các trình điều khiển mà nó nhận biết được trong tài nguyên của hệ thống sql.drivers. Một phương pháp khác là khứt khoát chỉ load những trình điều khiển xác định nào đó bằng cách dùng method forName trong Class Object. Việc dùng method này được cho như sau java.sql.Driver dbDriver = Class.forName("SomeCompany.SomeDatabase.Drive r").newInstance(). Lệnh này sẽ load trình điều khiển từ $CLASSPATH\ SomeCompany.SomeDatabase.Driver.class và trả về kết quả là đối tượng Driver. Đối với dự án nhỏ của bạn, bạn có thể load trình điều khiển dùng dòng lệnh sau đây trong chương trình: Java.sql.Driver database = class.forName("jdbc : odbc").newInstance(); java.sql.Connection Đối tượng kết nối là một con trỏ đến một cơ sở dữ liệu. Nói cách khác, đối tượng này là một cửa sổ vào một cơ
  68.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o sở dữ liệu cung cấp một context cho các đối tượng Statement và các đối tượng ResultSet. Đối tượng kết nối hỗ trợ giải quyết các thuộc tính như bắt đầu (begin), giao phó (commit) và bỏ qua (abort) và cung cấp các method để tạo các đối tượng Statement. Câu lệnh sau: connection.createStatement() Sẽ tạo một đối tượng Statement thông thường. Các câu lệnh sau: connection.createStatement() connection.prepareStatement( ) Tạo một đối tượng prepareStatement, đối tượng này là một lệnh SQL được dịch ra. Loại lệnh này được dùng để gọi nếu như sự lệnh đó được gọi nhiều hơn một lần ở trong chương trình. Đối tượng prepareStatement dịch SQL String lần đầu tiên sau đó nó dùng lệnh đ• được dịch cho phần còn lại của các lời gọi. Các câu lệnh sau: connection.createStatement() connection.prepareCall( )
  69.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Sẽ tạo một đối tượng CallableStatement, đối tượng này sẽ gọi một stored procedure. Một stored procedure là một thử tục trong cơ sở dữ liệu SQL trên server. Như đ• đề cập trên đây, loại thủ tục này (stored procedure) thực hiện các nguyên tắc về thương mại (business) phù hợp với các chương trình như là thủ tục đó được cất trên server. Các client dùng thủ tục này dùng cú pháp như sau {call [tham-số]}. Method setAutoCommit của kết nối có thể bật hoặc tắt chức năng tự động giáo phó (commit) thực hiện (transaction), điều này cho phép bạn thực hiện được quá trình xử lý transaction. Nếu chức năng tự động giao phó đang ở chế độ tắt thì có thể dùng method commit() để gửi sự thay đổi hoặc dùng method rollback() để huỷ bỏ các thay đổi kể từ lần giao phó cuối cùng. Quá trình xử lý thực hiện (Transaction proccessing) Transaction proccessing là một khái niệm chung được dùng trong ngữ cảnh của các cơ sở dữ liệu để biểu thị (denote), trong số những thứ khác (among other things), bảo đảm tình trước sau như một, khả năng có thể lấy lại được, và tính trung thực của các cơ sở dữ liệu có liên quan. Một transaction bao gồm rất nhiều lệnh SQL để đọc và cập nhật các cơ sở dữ liệu. Để có thể đảm bảo được rằng tất cả các transaction đều được thực hiện như là một đơn vị đơn (single unit) của công việc, thì các method commit() và method rollback() được dùng. Một trong những transaction thông dụng nhất được dùng trong các hệ thống ngân hàng là transaction tự động trả tiền. Hai tập lệnh sẽ được dùng để ghi vào sổ nợ trong tài khoản của bạn và ghi vào sổ nợ của phía ngân hàng cho vay tiền. Nếu cả hai lệnh SQL trên đều thực hiện thành công thì transaction đó được commit. Ngược lại nếu như hệ
  70.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o thống không thể thực hiện được một trong hai lệnh thì transaction đó không được phép hoàn thành. Không chỉ như vậy mà tất cả các dữ liệu bị ảnh hưởng bởi một bộ phận của transaction cũng đều bị đặt trở lại giá trị bạn đầu của chúng, nếu không như vậy thì hoặc là người cho vay sẽ được một món tiền một cách thần bí hoặc khách hàng bị mất số tiền trong tài khoản nợ mà không hề trả tiền. Điều này được gọi là rollback(). Nói ngắn gọn, trình điều khiển commit/rollback cần thiết khi một ai đó tạo các thay đổi đối với dữ liệu trong rất nhiều các bảng của rất nhiều các cơ sở dữ liệu. Để đảm bảo tính trước sau như một của dữ liệu, thì nên dùng commit() tất cả các sự cập nhật có thể được tạo ra. Nếu như chỉ một phần của sự cập nhật đó có thể thì nên dùng rollback() và sau đó thử làm lại. Đổi với các dự án nhỏ của chúng ta thì chúng ta có thể tạo đối tượng kết nối như sau: Connection testConn = DriverManager.getConnection("jdbc : odbc : JDBCTest; IUD= sa; PW=pw"); Bây gời chúng ta có thể tạo ra một lệnh đối tượng đơn giản bằng cách dùng: Statement simpleStmt = testConn.createStatement(); java.sql.Statement Class Statement có một method là executeQuery cho các lệnh thông thường của SQL, method này trả về dữ liệu (trong khuôn khổ của đối tượng ResultSet), hoặc thực hiện
  71.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o method cho các lệnh của SQL, với nhiều hơn một ResultSet (rất hiếm khi). Method executeUpdate có thể được dùng cho các lệnh như UPDATE, DELETE, INSERT hoặc tương tự. Method này không trả về một tập kết quả (ResultSet). java.sql.PreparedStatement Class java.sql.PreparedStatement là mở rộng của class Statement để cho phép khả năng thêm lệnh SQL biên dịch trước vào và nó hỗ trợ các tham số kiểu IN. Việc dịch trước được thực hiện có hiệu quả nếu như một lệnh SQL được thực hiện nhiều lần. Các tham số được đặt bằng cách dùng các method setInt, setFloat, setLong (và các method khác). java.sql.CallableSatement Đối tượng java.sql.CallableSatement là sự mở rộng của PreparedStatement để hỗ trợ thêm các stored procedure. Đối tượng này sẽ trả về các tham số kiểu OUT. Nhưng chúng đòi hỏi phải được đăng ký đơn giản bằng cách dùng method registerOutParameter. Sau khi đối tượng CallableSatement được thực hiện thì các tham số kết quả được đọc bằng cách dùng các method getInt, getLong, getFloat và các method khác. java.sql.ResultSet Đối tượng java.sql.ResultSet chứa các dữ liệu liên quan đó là kết quả của lệnh SQL. Dữ liệu được xử lý theo thứ tự từng hàng một nối tiếp nhau. Trong một hàng dữ liệu, dữ liệu được truy cập theo bất cứ thứ tự nào bằng cách dùng một chỉ số số thứ tự hoặc theo tên. Ví dụ, lệnh sau java.sql.ResultSet.getFloat(5) sẽ lấy giá trị ở cột 5 của hàng dữ liệu hiện thời. Lệnh sau đây cho phép lấy dữ liệu ở cột 5 của hàng dữ liệu hiện thời bằng câu lệnh sau java.sql.ResultSet.getFloat("AuthorRoyalty") (ở đây, AuthorRoyalty là tên của dữ liệu lấy ra) nếu như cột thứ 5
  72.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o là cột AuthorRoyalty. Lệnh java.sql.ResultSet.next() sẽ trỏ đến hàng dữ liệu tiếp theo. Chú ý: Đối với phiên bản JDBC 1.0 không cung cấp kiểu thanh gạt cso thể gạt được hoặc các bookmark thanh gạt kiểu ODBC. Nếu bạn thực hiện một dự án nhỏ (mini-project), để có thể lấy được tất cả các yêu cầu của khách hàng "SYBEX Computer Books" thì đoạn chương trình sau làm điều đó: ResultSet rsOrders = simpleStmt.executeQuery("SELECT Order_ID, Order_Date FROM Orders WHERE Customer_ID = 'SYBEX'"); while (rsOrders.next()) { String OrderID = rsOrders.getString("Order_ID"); java.sql.Date Orderdate = rsOrders.getDate("Order_date"); // In và hiển thị ID của khách hàng và ngày tháng }
  73.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o ở đây, đối tượng Statement đ• được tạo ra ở phần trên được dùng để lấy hai cột (Order ID và Order Date) của tất cả các yêu cầu của khách hàng với phần định danh của khách hàng (Customer ID) là "SYBEX". Method next() chuyển đến hàng dữ liệu tiếp theo trong tập kết quả. Đễn khi không còn dữ liệu nữa thì nó trả về kết quả FALSE và dừng vòng lặp while. Method getString() và method getDate() được dùng để lấy dữ liệu từ một hàng của dữ liệu. Bây giờ, để có được các chi tiết cụ thể trong từng yêu cầu của khách hàng thì bạn phải truyền Order_ID đến cơ sở dữ liệu trong đối tượng Statement. Quay trở lại sơ đồ hình 3 cho các bảng có liên quan. Trong tường hợp này, chúng ta dùng một đối tượng PreparedStatement với một tham số. PreparedStatement prepStmt = testConn.preparedStatement("SELECT * FROM OrderDetails WHERE Order_ID = ?); prepStmt.setString(1, OrderID); // Đặt giá trị cho tham số ResultSet rsOrdDet = prepStmt.execute(); while (rsOrdDet.next()){ // Xử lý từng hàng // Lấy dữ liệu cột từ hàng hiện thời // Dùng các method getXXX(), hiển thị, vv }
  74.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o Trên đây, một đối tượng PreparedStatement đ• được tạo ra với một tham số được chỉ ra bằng dấu ? trong SQL. Tham số thứ nhất được thiết lập (được chỉ ra bằng dấu ? trong lệnh SQL) tương đương với OrderID chúng ta lấy từ các lệnh trước đó. Tiếp theo vấn đề thắc mắc được giải quyết. Đoạn chương trình trên đây sẽ tạo một tập kết quả với tất cả các chi tiết cụ thể của một yêu cầu của khách hàng được chỉ ra bằng biến OrderID. Hàng sẽ chứa toàn bộ các cột trong bảng chứa các chi tiết cụ thể về yêu cầu của khách hàng, từ khi lệnh SELECT * SQL được thực hiện. Một ví dụ khác, nếu bạn muốn cập nhật một sản phẩm trong bảng các sản phẩm, bạn sẽ làm như sau: PreparedStatement prepStmt = testConn.prepareStatement("UPDATE Products SET Product_Name = ? WHERE Product_ID = ?"); PrepStmt.setString(1, "Mastering Java"); PrepStmt.setString(2,"1935-2"); int upRows = PrepStmt.executeUpdate(); Trên đây, một đối tượng PreparedStatement với hai tham số đ• được tạo: một tham số cho tên sản phẩm, và tham số thứ hai cho định danh của sản phẩm. Trong hai lệnh tiếp theo, tham số thứ nhất được thiết lập với tên sách (tên sản phẩm) và tham số thứ hai là số ISBN của cuốn sách đó. Method executeUpdate() không trả về tập kết quả mà nó trả về một số nguyên để cho bạn biết rằng bao nhiêu hàng đ• được cập nhật. Như bạn thấy, đây là khái niệm của các method đơn giản cho các nhiệm vụ đơn giản.
  75.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o MetaData MetaData là thông tin về đối tượng cơ bản, và các chương trình cần dùng đến nó để tìm ra các đặc điểm được trình điều khiển cơ sở dữ liệu hỗ trợ, hoặc để tìm ra các tên của các cột , kích thước hoặc các công việc tương tự. Như đ• đề cập, tập kết quả (ResultSet) là một dòng dữ liệu theo mô hình ống. Điều này có nghĩa là nó có thông tin mô tả về tập kết quả ngoài dữ liệu thực tế. Thông tin thêm này có thể được lấy ra nhơg method getMetaData(). Đối tượng ResultSetMetaData có một tập các method như getColumnCount(), getColumnDisdplaySize(), getColumnLabel() và getColumnName(). Các hàm này có thể được dùng để lấy các thông tin về các cột dữ liệu. Ngoài đối tượng ResultSetMetaData, JDBC hỗ trợ đối tượng DatabaseMetaData, đối tượng này cho biết các thông tin về cơ sở dữ liệu. Đối tượng DatabaseMetaData có khoảng 100 method, trong đó có getDatabaseProductName(), getDatabaseProductVersion() và các method từ các đặc điểm đ• được thực hiện, đến lược đồ cụ thể, đến các tên của các stored procedure. Có các method để yêu cầu các thông tin về sự thực hiện (implementation), các chi tiết cụ thể, và các hạn chế chẳng hạn như getDatabaseProductName(), getDatabaseProductVersion(), getMaxConnections(), getTables(), getTableTypes(), getMaxColumnLength(), getMaxCharLiteralLength(), getProcedures() Như đ• đề cập trên đây, JDBC API đ• phát triển qua phiên bản 1.0 vào tháng 6/1996. H•ng Sun và h•ng Intersolv đ• đưa ra cầu nối giữa JDBC và ODBC bản beta. Các nhà cung cấp khác dang rất cố gắng trong việc tạo ra các trình điều khiển cho JDBC và phần mở rộng của riêng họ. Để kiểm tra sự thực hiện của JDBC, bạn có thể thấy là sự kết hợp giữa hai lực lượng là các nhà thiết kế của h•ng JavaSoft và các nhà phê bình về các đặc điểm của JDBC đ• ngày
  76.  §å ¸n tèt nghiÖp C¸c tµi liÖu tham kh¶o càng phát triển được các API đơn giản, gọn và hết sức mạnh mẽ để cho các chương trình Java truy cập vào các cơ sở dữ liệu. Hình 4 dưới đây miêu tả một hệ thống chung cho hệ thống ứng dụng cơ sở dữ liệu trên Internet/Intranet. (hình 4- hình 20.6 trang 823) Trên Web server và applet server đ• có đủ các applet cần thiết cho hệ thống và server cơ sở dữ liệu đ• có dữ liệu trên đó. Các máy PC Java client và các thiết bị ngoại vi Java load các applet về, chạy chúng và kết nối vào server cơ sở dữ liệu thông qua JDBC. Một ví dụ, một máy in applet có thể cập nhật máy in bằng các đặc điểm kỹ thuật được lưu trữ trên server hoặc lấy các thông tin cấu hình hoặc thông tin về người sử dụng trên server trên server cơ sở dữ liệu bằng cách dùng các kết JDBC. Trong tường hợp một máy Java PC client, thì applet có thể là một mấu để điền các phí tổn mà dùng kết nối JDBC để lấy các thông tin (chẳng hạn như các loại, giới hạn của phí tổn) từ server cơ sở dữ liệu và để gửi toàn bộ bản chi phí đến bảng chi phí trên server cơ sở dữ liệu. Để loại hệ thống này làm việc, bạn cần phải có các applet để đảm bảo rằng chúng kết nối với một server khác trên Internet/Intranet, hoặc một applet server và server cơ sở dữ liệu trên cùng một máy. Hiện tại mức an ninh thông dụng là các applet chỉ có thể viết dữ liệu lên server mà từ đó chúng đ• được load về. Java RMI và sắp xếp đối tượng (Object Serialization) RMI được viết tắt từ Java Remote Method Invocation cho phép các đối tượng tồn tại trên nhiều khoảng tên (Multiple namespaces), được phân bố thông qua mô hình các Java máy ảo (Java Virtual Machine). Mỗi một khoảng tên (namespace) có thể ở trên cùng một máy hoặc ở trên các máy khác nhau trên mạng. Khi mà method gọi qua biên giới của Java máy ảo đến một khoảng tên khác, thì sẽ không