Đề tài Web quản lý nhân sự

Tài liệu Đề tài Web quản lý nhân sự: Phụ lục Lời mở đầu 3 Phần I_Cơ bản về Web và các công cụ xây dựng Web 4 I.KháI niệm cơ bản về Web 4 II.Tạo trang tài liệu động 5 2.1Kĩ thuật tạo trang bằng ngôn ngữ Script phía Server 5 2.2Các kĩ thuật tạo trang động của Microsoft 6 III.Đối tượng Request và Response của ASP 8 1.Tổng quan về các đối tượng Request và đối tượng Reponse 8 2.Tạo FORM va QueryString 12 VI.Các đối tượng trong ASP 15 1.Đối tượng Session 15 2.Đối tượng Application 17 3.Tìm hiểu File cấu hình khởi động Globalasa 18 4.Các đối tượng nội tại của ASP(BUILD_IN OBJECT) 19 5.Các đối tượng tiện ích( INSTALLABLE_COMPONENT) 21 V.ADO (ACTIVE DATA OBJECT) 23 1.Tại sao sử dụng ADO và ADO là gì? 23 2.Mô hình đối tượng ADO 2.5 27 3.Kết nối với nguồn dữ liệu 28 VI.Ưu và khuyết điểm của ASP 29 1.Ưu điểm 29 2.Khuyết điểm 29 VII.Giới thiệu ASP.NET: 30 1.Giới thiệu chung 30 2.Ưu điểm 30 3.Khuyết điểm 30 VIII.Giới thiệu về PHP 31 1.PHP là gì? 31 2.Lịch sử phát triển của PHP 31 3.PHP ở cấp doanh ngh...

docx57 trang | Chia sẻ: hunglv | Lượt xem: 1202 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Web quản lý nhân sự, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Phụ lục Lời mở đầu 3 Phần I_Cơ bản về Web và các công cụ xây dựng Web 4 I.KháI niệm cơ bản về Web 4 II.Tạo trang tài liệu động 5 2.1Kĩ thuật tạo trang bằng ngôn ngữ Script phía Server 5 2.2Các kĩ thuật tạo trang động của Microsoft 6 III.Đối tượng Request và Response của ASP 8 1.Tổng quan về các đối tượng Request và đối tượng Reponse 8 2.Tạo FORM va QueryString 12 VI.Các đối tượng trong ASP 15 1.Đối tượng Session 15 2.Đối tượng Application 17 3.Tìm hiểu File cấu hình khởi động Globalasa 18 4.Các đối tượng nội tại của ASP(BUILD_IN OBJECT) 19 5.Các đối tượng tiện ích( INSTALLABLE_COMPONENT) 21 V.ADO (ACTIVE DATA OBJECT) 23 1.Tại sao sử dụng ADO và ADO là gì? 23 2.Mô hình đối tượng ADO 2.5 27 3.Kết nối với nguồn dữ liệu 28 VI.Ưu và khuyết điểm của ASP 29 1.Ưu điểm 29 2.Khuyết điểm 29 VII.Giới thiệu ASP.NET: 30 1.Giới thiệu chung 30 2.Ưu điểm 30 3.Khuyết điểm 30 VIII.Giới thiệu về PHP 31 1.PHP là gì? 31 2.Lịch sử phát triển của PHP 31 3.PHP ở cấp doanh nghiệp 34 4.Ưu và khuyết điểm 35 Phần II_Phân tích và thiết kế HTTT Quản lí nhân sự 36 1.Khảo sát hệ thống 36 2.Phạm vi nghiên cứu của đề tài 38 3.Đối tượng nghiên cứu của đề tài 38 4.Sơ đồ luồng dữ liệu 39 5.Sơ đồ ngữ cảnh của hệ thống QLNS 41 6.Sơ đồ lưồng dữ liệu (DFD) của hệ thống 41 7.Sơ đồ quan hệ thực thể (Relationship ) 46 8.Thiết kế các bảng(CSDL) 46 9.Một số giao diện của trang Web 50 Phụ lục:Hướng dẫn cài đặt trang Web QLNS 52 LỜI MỞ ĐẦU Trong thời gian nghỉ hè vừa qua,nhờ sự hướng dẫn tận tình của PGS_TS Đặng Minh Ất,cùng với sự giúp đỡ của các bạn cùng lớp,em đã cố gắng tìm hiểu lý thuyết và thực hành với mục tiêu là có được những kiến thức cơ bản về xây dựng Web site. Cụ thể, sau một tháng, em đã làm được các công việc sau: - Tìm hiểu các khái niệm cơ bản về Web. - Tìm hiểu các công cụ xây dựng Web. - Xây dựng thử nghiệm trang web Quản lý nhân sự với một số chức năng cơ bản như: quản lý nhân viên, quản lý phòng ban, quản lý quá trình công tác và quá trình đào tạo nhân viên, quản lý hệ số lương nhân viên, tìm kiếm và trợ giúp.Tuy nhiên,do thời gian ngắn nên trong việc tìm hiểu lý thuyết và thực hành của em còn nhiều phần chưa đầy đủ. Trong tìm hiểu về các công cụ xây dựng Web, em chưa thể tìm hiểu hết các công cụ xây dựng chính, cũng như với mỗi công cụ tìm hiểu thì cũng chưa thật sâu, thì các chức năng còn đơn giản.Với ý nghĩa là bước đầu tìm hiểu về các công cụ xây dựng Web site, em xin trình bày kết quả trong đợt thực tập này của em. Bao gồm các phần chính sau: - Cơ bản về Web và các kiến thức cơ bản về ASP. - Giới thiệu sơ qua về PHP. - Phân tích thiết kế hệ thống Quản lý nhân sự. - Các chức năng và giao diện chính của trang Quản lý nhân sự. Em rất mong đợi ý kiến đánh giá của thầy. Em xin chân thành cảm ơn thầy. Sinh viên : Nguyễn Mạnh Hải PHẦN I CƠ BẢN VỀ WEB VÀ CÁC CÔNG CỤ XÂY DỰNG WEB I. KHÁI NIỆM CƠ BẢN VỀ WEB Trong thực tế, ứng dụng Web luôn tồn tại hai loại là trang Web tĩnh và động. Trang Web tĩnh là trang HTML không kết nối cơ sở dữ liệu. Ngược lại, trang web động là trang web có kết nối cơ sở dữ liệu. Điều này có nghĩa là mỗi khi trang web động được làm tươi, dữ liệu trình bày trên trang Web được đọc từ cơ sở dữ liệu. Nói các khác, cho dù đó là trang Web tĩnh hay động, nếu muốn người dùng sử dụng chúng để trình bày dữ liệu trên trình duyệt Web, cần phải khai báo các thẻ HTML bên trong chúng theo một quy luật nhất định. Để trang Web trình bày dữ liệu theo như ý của người thiết kế Web trên trình duyệt, cần phải khai báo các Client Script phù hợp với chuẩn HTML và Client Script. Ngoài ra, mỗi trình duyệt có thể hỗ trợ thêm những thẻ khác, nhằm cho phép người dùng phong phú hoá giao diện của trang Web. Hai trình duyệt phổ biến hiện nay là IE (Internet Explorer của hãng Microsoft) và NC (Netscape). Cả hai trình duyệt này đều cho phép duyệt các loại trang Web được xây dựng trên ngôn ngữ lập trình bất kì có hỗ trợ Web. Để xây dựng một ứng dụng Web hoàn chỉnh và có tính thương mại, cần phải kết hợp cả Client Script (kịch bản trên trình khách) và Server Script (kịch bản trên trình chủ) với một loại cơ sở dữ liệu nào đó, chẳng hạn như MS Access, SQL Server, MySQL, Oracle… Khi muốn triển khai ứng dụng Web trên mạng Intranet hay Internet, ngoài các điều kiện về cấu hình phần cứng, hệ điều hành, cần phải có trình chủ Web thường gọi là Web Server. Trên môi trường Windows, Web Server thường sử dụng là IIS ( Internet Information Server). IIS sử dụng cho các Server Script như: ASP (Active Server Page), JSP (Java Server Page), Servlet, PHP, Perl, ASP.NET. Trong môi trường Linux, Web Server thường dùng bao gồm Apache, JRUN, Web logic.. Tóm lại, cho dù sử dụng bất kì Server Script với Web Server, thì Client Script không phụ thuộc vào chúng. Điều này có nghĩa là có thể sử dụng một trong hai loại Client Script ở trên là VBScript và JavaScript đều được. II. TẠO TRANG TÀI LIỆU ĐỘNG 2.1 Kỹ thuật tạo trang bằng ngôn ngữ Script phía Server Cơ chế hoạt động Web tuân theo mô hình khách chủ client/server. Trình khách gửi yêu cầu đến trình chủ xử lí và trả về kết quả để trình khách hiển thị. Trình chủ trong các ứng dụng Web được gọi là Webserver. Trình khách thường là browser (hay trình duyệt) Hình: Yêu cầu và phản hồi tài trang tài liệu giữa Web Server và trình khác Browser Ở bước đầu của công nghệ Web, với các trang HTML, hoặc dữ liệu tĩnh như hình ảnh hay tập tin văn bản (text file), trình chủ Webserver đơn giản chỉ đọc và lấy toàn bộ nội dung của file trên máy chủ trả về trình khách. Hoạt động của Web Server mang chức năng tương tự File Server. Tuy nhiên, xuất phát từ nhu cầu xử lí động, trình chủ Web Server cho phép cài đặt các ứng dụng CGI (Common Gateway Interface) tiếp nhận yêu cầu của trình khách, thực hiện thao tác xử lí dữ liệu trước khi đưa kết quả trở về trình duyệt phía máy khách Client. CGI là các chương trình thực thi nhị phân (như file .exe) viết bằng ngôn ngữ biên dịch (điển hình là C/C++). Với một số cầu hình cần thiết , Web Server sẽ gọi đến chương trình CGI và chuyển giao các yêu cầu từ trình khách cho chương trình CGI xử lí. Hoàn tất quá trình xử lí, CGI sẽ trả kết quả lại cho Web Server và Web Server lại tiếp tục trả về trình khách. Quá trình triệu gọi xử lí của CGI hoàn toàn trong suốt (transparent) hay không thấy được đối với trình khách. Hình: Xử lý CGI phía trình chủ Viết CGI đòi hỏi phải sử dụng các ngôn ngữ biên dịch như C/C++, Pascel, Visual Basic… Trình CGI sau khi xây dựng xong muốn nâng cấp hay thêm vào những tính năng xử lí mới đòi hỏi phải biên dịch lại. Công việc mở rộng và bảo trì ứng dụng Web viết bằng CGI rất cực nhọc và không hiệu quả. Một số chương trình CGI đã đi một bước xa hơn nữa đó là cho phép người dùng sử dụng một số lệnh điều khiển cách kết xuất của CGI trước khi trả kết quả cho trình chủ Web Server chuyển tiếp về máy khách. Các lệnh điều khiển này được đặt ngay trong trang tài liệu (chúng được gọi là Script hay kịch bản). Trình CGI sẽ đọc, diễn dịch và thực thi trực tiếp các Script này- cách hoạt động tương tự trình thông dịch (interpreter). Đi tiên phong và phát triển mạnh mẽ nhất trong ứng dụng thông dịch CGI dạng này là các trang viết bằng ngôn ngữ Perl. Perl là trình xử lí thông dịch cực kì thông dụng trong thế giới UNIX và Linux. Ứng dụng CGI cho phép Web sử dụng ngôn ngữ Perl cũgn hiện diện trên nền Windows. 2.2 Các kỹ thuật tạo trang động của Microsoft Microsoft cung cấp trình chủ Web Server mang tên IIS (Internet Information Service). IIS cho phép sử dụng cách thức tạo trang Web động bằng CGI, ISAPI và tiến xa hơn nữa là các trang ASP. Các trình CGI thường viết bằng Visual C++, Delphi hay Visual Basic… (các trình biên dịch file thực thi trên nền Windows). Chúng được dịch ra file thực thi .exe và đặt trong thư mục /cgi-bin của trình chủ IIS. Mỗi khi nhận được yêu cầu triệu gọi của trình khách, Web Server IIS tìm đến chương trình CGI với trình chủ Web Server thực hiện thông qua hai luồng xuất nhập chuẩn stdin và stdout của hệ điều hành (có thể hình dung stdin và stdout là hai file, stdin dùng để Web Server ghi dữ liệu vào giúp chương trình CGI đọc được yêu cầu của trình khách. Stdout là file được trình CGI ghi kết quả trả về. Web Server sẽ lấy dữ liệu tử stdout gửi về trình khách). Cơ chế CGI tỏ ra chậm chạp và kém hiệu quả. Mỗi lần nhận được yêu cầu của trình khách, Web Server phải khởi động, nạp lại trình CGI vào bộ nhớ, xử lý sau đó giải phóng trình CGI chờ phiên triệu gọi tiếp theo. Nếu có nhiều yêu cầu triệu gọi CGI cùng lúc, Web Server phải nạp nhiều phiên bản tách biệt của trình CGI để thực hiện xử lý. Hai lý do này làm giảm tốc độ thực thi của CGI và tiêu tốn rất nhiều tài nguyên quản lý của trình chủ cũng như hệ điều hành. Tại sao không giữ lại trình CGI trong bộ nhớ chờ phiên triệu gọi tiếp theo của trình khách? Tại sao phải nạp cùng lúc nhiều thể hiện (instance) của cùng trình CGI cho mỗi yêu cầu riêng biệt trong khi mã lệnh xử lý của chúng như nhau? Microsoft đưa ra cơ chế xử lý mới nhanh hơn đó là cung cấp giao diện lập trình ứng dụng Internet ISAPI (Internet Server Application Programming Interface) gắn liền với trình chủ Web Server IIS. Thay vì thiết kế CGI xử lí trang động, các nhà phát triển cso thể sử dụng ISAPI để xây dựng những đơn thể kết gắn và nạp trực tiếp vào trình chủ Web Server. Đơn thể ISAPI tồn tại cùng với Web Server trong suốt quá trình phục vụ chờ yêu cầu của trình khách. Các đơn thể ISAPI được viết ở dạng file thư viện DLL. Mã lệnh của chúng hoạt động và trao đổi dữ liệu trong cùng không gian địa chỉ của trình chủ Web IIS. Tốc độ xử lý của ISAPI do đó rất nhanh, tiết kiệm tài nguyên và hơn hẳn CGI. Tuy nhiên, một trở ngại của đơn thể ISAPI cũng như CGI đó là phải sử dụng các ngôn ngữ biên dịch. Khả năng bảo trì và thiết kế một ứng dụng Web chỉ dùng CGI hay ISPAI là rất thấp. Nếu ứng dụng CGI hỗ trợ kịch bản thông dịch ở dạng script, làm đơn giản hoá và loại bỏ quá trình viết mã của ngôn ngữ biên dịch cấp thấp thì kỹ thuật ISAPI cũgn cho phép bạn sử dụng các trang chứa script. Các trang này chính là ASP (Active Server Page). Trang ASP đơn thuần là file văn bản chứa mã định dạng HTML kết hợp mã thông dịch như VBScript hay Jscript. Đơn thể ASP.DLL (một ISAPI dùng cho xử lý trang ASP) được tích hợp vào Web Server IIS. Khi nhận được yêu cầu của tình khách cần hiển thị trang .asp, trình chủ Web Server sẽ triệu gọi đơn thể xử lý trang (ASP.DLL). Trang được đọc, diễn dịch và thực thi các lệnh kịch bản. Kết quả sau đó sẽ được ASP.DLL gửi lại trình chủ để trả về theo yêu cầu của máy khách. Hình: Mô hình xử lý trang ASP và ISAPI thay cho CGI III. ĐỐI TƯỢNG REQUEST VÀ RESPONSE CỦA ASP 1. Tổng quan về đối tượng Request và đối tượng Response Chi tiết của yêu cầu máy khách (Client) và phản hồi từ máy chủ (Server) có thể truy xuất bằng ASP qua hai đối tượng Request và Response. Đối tượng Request cung cấp tất cả các thông tin mà Client cung cấp khi yêu cầu một trang hay submit (đệ trình) một form. Điều này bao gồm các biến HTTP chỉ định browser và người dùng, các cookie được lưu trên browser và các giá trị bất kỳ được gắn vào URL với vai trò query string (chuỗi truy vấn) hay xác lập trong các control HTML trong một phân đoạn trong một trang. Đối tượng Response được sử dụng để truy xuất các đáp ứng mà server tạo ra để gởi ngược về Browser. Nó là các biến HTTP định danh Server và khả năng của nó, thông tin về nội dung được gởi về browser và bất kỳ các cookie mới nào sẽ được lưu trên browser. Nó cũng cung cấp các method chúng ta có thể sử dụng để tạo ra output như method Response.Write. 1.1 Các thành phần của đối tượng Request 1.1.1Các collection (tập hợp) của đối tượng Request Query String: Một tập các cặp tên/giá trị được gắn vào URL trong yêu cầu của người dùng, hay tất cả các giá trị của các control HTML trong phân đoạn được đệ trình khi đặt giá trị của thuộc tính METHOD là GET hay bỏ qua nó (tức GET là giá trị mặc định). Các thành phần của tập đều là giá trị chỉ đọc (read-only). Form: Một tập các giá trị của các control HTML trong phân đoạn được đệ trình khi đặt giá trị của thuộc tính METHOD là POST. Các thành phần của tập đều là giá trị chỉ đọc (read-only). ClientCertificate: Một tập các giá trị của tất cả các field hay entry trong client certificate mà người dùng trình cho server khi truy xuất một trang tài nguyên. Các thành phần của tập đều là giá trị chỉ đọc (read-only). Cookies: Môộ tập các giá trị cảu tất cả các cookie được gửi từ hệ thống của user cùng với Request. Các thành phần của tập đều là giá trị chỉ đọc. ServerVariables: Một tập các giá trị của tất cả các header HTTP được gửi từ client cùng với request, cùng với giá trị của một số biến môi trường của Web Server. Các thành phần của tập đều là giá trị chỉ đọc. 1.1.2 Thuộc tính của đối tượng Request Đối tượng Request chí có một thuộc tính cung cấp thông tin về số byte dữ liệu mà người dùng chuyển lên trình chủ. Thuộc tính này ít được sử dụng, trừ một số trường hợp xử lý đặc biệt phía trình chủ như dùng tiếp nhận dữ liệu nhị phân từ các file tải lên phía trình khách. Thuộc tính TotalBytes: Chỉ đọc, trả lại tổng số Byte trong đối tượng request được gửi lên từ trình khách. 1.1.3 Phương thức của đối tượng Request BinaryRead(count): Là phương thức duy nhất của Request cho phép truy xuất toàn bộ nội dung yêu cầu của người dùng được POST lên server, nhận count byte dữ liệu từ yêu cầu client khi dữ liệu được gửi đến server là một phần của request POST. Nó trả về một mảng Variant. Chú ý quan trọng là phương thức này sẽ thất bại nếu mã ASP đã truy xuất đến tập Request.Form. Tương tự, việc truy xuất tâp Request.Form sẽ không thành công nếu đã sử dụng phương thức BinaryRead. 1.2 Các thành phần của đối tượng Response 1.2.1 Các tập hợp của đối tượng Response Đối tượng Response cung cấp loại đối tượng tập hợp dùng để xác lập giá trị của bất kỳ cookie nào ta muốn đặt trên hệ thống của trình khách client. Nó tương đương trực tiếp với tập Request.Cookies: Cookies: Một tập chứa giá trị của tất cả các cookie sẽ được gửi ngược lại client trong đáp ứng hiện hành. Các thành phần của tập đều là giá trị chỉ ghi (write-only). 1.2.2 Các thuộc tính của đối tượng Response Buffer = True/False : Đọc/ghi. Kiểu Boolean. Giá trị True chỉ định output được tạo bởi một trang ASP được giữ trong bộ đệm IIS cho đến khi tất cả các Script Server trong trang hiện hành đã được xử lý, hay đến khi phương thức Response.Flush hay Response.End được gọi. Nó cần được xác lập trước khi gởi bất kỳ output nào cho IIS, bao gồm cả thông tin header HTTP, vì vậy nó nên là hàng đầu tiên của file .asp sau lệnh %@LANGUALE=..%. Chú ý là giá trị mặc định là True trong ASP 3.0, trong khi các phiên bản trước là False. CacheControl”setting”: Đọc /ghi. Kiểu String. Đặt thuộc tính này bằng Public cho phép proxy server thực hiện chức năng cache (kỹ thuật lưu giá trị cũ trong bộ nhớ để nạp lại) trang, hay Private để ngăn việc cache xảy ra. Charset=”value”: Đọc/ghi. Kiểu String. Nối thêm tên của tập ký tự vào header HTTP Content Type tao ra bởi server cho mỗi đáp ứng. ContentType=”Kiểu-MIME”: Đọc/ghi. Kiểu String. Chỉ định content type của đáp ứng, là một chuẩn kiểu MIME. Nếu bỏ qua, kiểu MIME “text/html” được sử dụng. Expires minutes: Đọc/ghi. Kiểu number. Chỉ định chiều dài thời gian tính bằng phút một trang còn hợp lệ. Nếu người dùng trở lại trang trước khi nó hết hạn, bản cache được sử dụng. Sau chu kỳ đó, nó hết hạn, và sẽ không được giữ trong một vùng đệm cache. ExpiresAbsolute #date[time]#: Đọc/ghi. Kiểu Date/time. Chỉ định ngày và giờ tuyệt đối một trang sẽ hết hạn và không còn hợp lệ nữa. IsClientConnected: Chỉ đọc. Kiểu Boolean. Trả lại một chỉ định client có còn kết nối và tải trang từ server xuống hay không? Có thể sử dụng để kết thúc quá trình (với phương thức Response.End) nếu client di chuyển đến trang khác trước khi trang hiện hành được xử lý xong. Status = “code message”: Đọc/ghi. Kiểu chuỗi. Chỉ định giá trị trạng thái và thông điệp sẽ được gửi đến client trong các header HTTP cảu đáp ứng để một lỗi hay xử lý trang thành công. 1.2.3 Các phương thức của đối tượng Response AddHeader(tên, nội dung): Tạo ra một header HTTP tuỳ biến sử dụng các giá trị tên và nội_dung và thêm nó vào đáp ứng. Không thể thay thế một header đã tồn tại có cùng tên. Một khi đã thêm header, không thể thu hồi nó. Cần phải sử dụng trước khi gửi bất cứ trang nội dung nào (text hay HTML) đến client. AppendToLog(“string”): Thêm một chuỗi vào cuối log file của trình chủ Web server. BinaryWrite(Array): Ghi nội dung của Array kiểu Variant vào dòng output HTTP hiện hành mà không thực hiện bất cứ phép chuyển đổi ký tự nào. Thường dùng để ghi những thông tin không phải chuỗi, như dữ liệu nhị phân yêu cầu bởi một ứng dụng hay số byte để tạo một file ảnh. Clear(): Huỷ bất cứ nội dung trang nào trong bộ đệm khi Response.Buffer bằng True. Không huỷ các header HTTP: có thể sử dụng một trang chưa hoàn thành. End(): Ngưng xử lý script và trả về nội dung đang tạo ra, không xử lý thêm nữa. Flush(): Gửi tất cả các nội dung trong bộ đệm IIS đến client nếu Response.Buffer=True. Có thể sử dụng để gửi từng phần riêng biệt của một trang dài đến Client. Redirect(“URL”): chỉ thị Browser nạp một trang trong thông số URL bằng cách gửi một HTTP “302 ObjectMoved”. WriteString(“string”): Viết chuỗi chỉ định vào dòng đáp ứng HTTP và bộ đệm IIS để nó trở thành một phần của trang trả về. 2. Tập FORM và QueryString 2.1 Kỹ thuật chung truy xuất các collection ASP Hầu hết các collection ASP đều giống các collection thông thường trong Visual Basic. Chúng là một mảng các giá trị mà có thể truy xuất bằng một khoá chuỗi (không phân biệt chữ hoa chữ thường) cũng như một chỉ số nguyên. 2.1.1 Truy xuất toàn bộ các giá trị của collection Có thể lấy toàn bộ của một collection vào một biến string bằng cách truy xuất tên collection không có khoá hay chỉ số: strAllFormContent=Request.Form Chú ý là giá trị được cung cấp theo kiểu từng cặp tên/giá trị va các cặp được tách bởi ký tự “&”. 2.1.2 Duyệt qua một collection ASP Có hai cách duyệt qua một collection của ASP, tương tự như chúng ta vẫn làm với các collection VB thông thường. Mỗi collection cung cấp một thuộc tính Count trả về số mục trong collection. Có thể dùng nó để duyệt qua collection với chỉ số nguyên: For i=1 to Request.Form.Count Response.Write Request.Form(i) & “” Next 2.1.3 Các thành phần quan trọng của collection HTML Radio Control ( hay Option Button Control): HTML List Box Control HTML Submit và Image Control 2.2 Truy xuất và cập nhật collection Cookies Cookie là những mẫu text nhỏ được lưu trên máy của client bởi trình duyệt và được gởi đến máy chủ (server) đối với mỗi trang yêu cầu với domain tương ứng của chúng. Chúng ta có thể lấy các giá trị của tất cả các Cookie được gửi tới request từ collection Request.Cookies, và tạo ra hay biến đổi cookies để gửi ngược về trình duyệt với collection Response.cookies. Cookies chứa các thông tin có thể cấu thành theo hai cách. Các cookie một giá trị (single value) có thể truy xuất qua collection bình thường. Tuy nhiên, mỗi thành phần của collection cũng có thể là collection. Các cookie kiểu này được gọi là các cookie nhiều giá trị (multiple-value). Để tạo ra một cookie một giá trị: Response.Cookies(“item-name”) = “item-value” Và cookie nhiều giá trị: Response.Cookies(“item-name”) (“sub-item-name”) = “sub-item-value” Để đặt domain và đường dẫn áp dụng cookie và ngày hết hạn (expire date) của nó: Response.Cookies(“item-name”).domain= “domain-url” Response.Cookies(“item-name”).path= “virtual-path” Response.Cookies(“item-name”).expire= #date# Thông thường, client chỉ gởi cookie đến server theo yêu cầu các trang cùng thư mục với trang tạo ra cookie. Bằng cách đặt thuộc tính path cho cookie, chúng ta có thể chỉ định vị trí hợp lệ của cookie trên server và sẽ được gởi yêu cầu các trang. Nếu muốn cookie được gửi với mọi yêu cầu của toàn bộ site, ta đặt path bằng “/”. Nếu thuộc tính expire không được đặt, cookie sẽ bị huỷ ngay khi người dùng đóng thể hiện (instance) hiện hành của trình duyệt. 2.3 Sự khác nhau giữa Form và QueryString Có hai phương pháp đẻ yêu cầu một trang hay resource từ một Web Server qua HTTP. Có thể GET resource trực tiếp hoặc POST các giá trị vào resource. GET là phương pháp mặc định. Nếu bạn cần gắn thêm một hay nhiều cặp tên/giá trị vào URL của trang đang yêu cầu, chúng trở thành query string của yêu cầu và có thể truy xuất bằng ASP qua collection QueryString. Việc click một hyperlink trong một trang Web, thông điệp email hay tài liệu khác, việc gõ một địa chỉ và thanh Address của một trình duyệt và ấn Enter, hay click vào các button Links hay Favorites trong trình duyệt, tất cả đều sử dụng phương thức GET. Cách duy nhất gửi các giá trị đến Server từ những hành động này là qua Collection QueryString bằng cách gắn thêm URL. Khi chúng ta sử dụng phân đoạn trong một trang, chúng ta có thể đặt thuộc tính METHOD của là GET hay POST. Nếu chúng ta sử dụng GET (hay bỏ qua vì GET là giá trị mặc định của METHOD), trình duyệt sẽ lấy các giá trị trong tất cả các control để xây dựng thành query string và gắn vào URL của trang được yêu cầu khi submit trang hiện tại. Khi trang này đến Server, các giá trị của nó nằm ở collection Request.Form. Nói chung, nên sử dụng phương thức POST trong tất cả các form HTML. Thứ nhất, chiều dài của chuỗi URL bị giới hạn nên nếu dùng query string sẽ có nguy cơ bị tràn và bị cắt bớt. Thứ hai, query string đưa các giá trị tường minh vào URL và sẽ được ghi lại trong file log khi đi qua các Server, điều mà bạn không thích lắm. Hình: Sự khác nhau giữa hai method GET và POST IV. CÁC ĐỐI TƯỢNG TRONG ASP 1. ĐỐI TƯỢNG SESSION Đối tượng Session được dùng để chứa thông tin hoặc các thay đổi thiết lập cho một phiên kết nối của người dùng . Biến lưu trong đối tượng session nắm giữ thông tin chỉ cho một người dùng tách biệt và có thể nhìn thấy được bởi tất cả các trang ASP trong ứng dụng. Khi làm việc với một ứng dụng thông qua việc mở trang ASP nào đó, thực hiện một số tương tác (như xem thông tin, cập nhật dữ liệu…), đóng ứng dụng. Các thao tác này được xem là hoạt động trong một phiên làm việc (session). Đối với các ứng dụng desktop truyền thống, từ khi bắt đầu khởi động cho đến khi chấm dứt chương trình, máy tính có thể hiểu được chủ thể đang tương tác với nó. Tuy nhiên, với Internet và các máy chủ Web Server thì không thể biết được bạn là ai và những trạng thái gì bạn đang thực hiện. Nguyên do là giao thức HTTP của Internet là giao thức phi trạng thái. Khi một yêu cầu về tài nguyên hoàn tất giữa trình duyệt và trình chủ Web Server, trình duyệt sẽ đóng kết nối HTTP và không nhớ gì về trạng thái trước đó. Trình chủ phải có cách nào đó biết được sự kết nối này và lưu lại các trạng thái phục vụ cho lần kết nối tiếp theo. Để giải quyết vấn đề này, ASP tạo ra một định danh duy nhất gọi là cookie cho mỗi kết nối của người dùng. Khi trình duyệt phía máy khách yêu cầu một trang thông tin, trình chủ sẽ trả về trang thông tin cùng với mẩu cookie. Trình duyệt phía máy khách sẽ không hiển thị cookie khi nhận được phản hồi từ trình chủ. Thông tin của cookie là thông tin ẩn sẽ được trình duyệt trả về cho trình chủ trong lần kết kế tiếp. Sựa vào cookie trình chủ Web Server sẽ lưu thông tin trạng thái của tập hợp các trang được gọi trong những lần kết nối sau đó. Giao tiếp quản lý công việc này được thực hiện thông qua đối tượng Session. Trình chủ Web Server sẽ tạo mới một đối tượng Session cho mỗi kết nối và duy trì Session này trong suốt quá trình làm việc vaàcòn hiệu lực của Session. Thông thường Session được dùng để lưu thông tin riêng biệt của người dùng thông qua các biến (gọi là biến Session). Các biến này cũng sẽ được huỷ khi Session hết hạn. 1.1 Bắt đầu và kết thúc một Session Trình chủ bắt đầu một Session khi: Người dùng lần đầu tiên triệu gọi file .asp Trang ASP khai báo lưu trữ biến vào đối tượng Session. Trình chủ kết thúc và huỷ bỏ đối tượng Session khi: Người dùng không triệu gọi các trang của ứng dụng hoặc cập nhật làm mới (refresh) lại thông tin của trang trong một thời gian nhất định (thời gian này còn gọi là timeout của Session). Khi một Session hết thời gian hiệu lực nó sẽ được xem như hết hạn sử dụng (expire), tất cả các biến lưu trong Session và bản thân đối tượng Session sẽ bị huỷ bỏ. Bạn có thể kiểm tra và tăng thời gian Timeout của Session tính bằng giây như sau: <% Session.Timeout = 500 %> Việc quyết định thời gian tồn tại của Session là tuỳ theo mục đích của ứng dụng. Nếu bạn quy định thời gian sống của Session quá dài, trình chủ phái cấp nhiều tài nguyên để quản lý Session. Tuy nhiên nếu thời gian Session lưu quá ngắn, người dùng sẽ không đủ thời gian tương tác và làm việc với ứng dụng Web. 1.2 Lưu trữ và truy xuất biến Session Một trong những tính năng thường dùng nhất cảu đối tượng Session là lưu trữ biến có giá trị cục bộ trong phiên kết nối. Ví dụ: <% Session(“username”) = “name” Session(“password”) =”pass” Session(“age”) = 24 %> Sau khi thiết lập biến Session, có thể truy xuất nội dung biến từ bất kỳ trang ASP nào bên trong ứng dụng Web. Có thể dùng Session để lưu các tuỳ chọn của người dùng để các trang trong ứng dụng căn cứ vào đó biết được trạng thái tương tác hiện thời của người dùng. Để loại bở một biến Session không sử dụng nữa, có thể sử dụng thuộc tính Contents của Session. Thuộc tính Contents nắm giữ tất cả cá tên và nội dung hiện hành của biến mà Session quản lý. 1.3 Duyệt nội dung đối tượng Session Có thể duyệt qua tấ cả các biến Session chứa trong tập hợp Contents bằng vòng lặp For each như sau: <% Dim 1 Session(“Myvar”) = “Here” Session(“Myage”) = 24 For Each I in Session.Contents Response.Write(Session.Contents(i) & “”) Next %> 1.4 Định danh Session Mỗi Session mang một định danh (SessionID) phân biệt với các Session đang hoạt động khác. Có thể gọi thuộc tính SessionID để lấy về định danh của Session 2. ĐỐI TƯỢNG APPLICATION Trong ASP, ứng dụng (application) được định nghĩa là một tập hợp các file và tài nguyên (như .asp, .html, .gif, .txt …) kết hợp với nhau để xử lý hay phục vụ cho một mục đích nào đó. ASP xử dụng Application để biểu diễn cho ứng dụng, thông qua ứng dụng Application có thể ràng buộc và chuyển đổi thông tin giữa các trang ASP trong ứng dụng và giữa các phiên kết nối Session với nhau. 2.1 Biến Application Khác với biến Session chỉ có giá trị cục bộ đối với mỗi phiên kết nối của người dùng, biến Application có giá trị toàn cục đối với tất cả các trang và nhìn thấy cũng như truy xuất được bởi tất cả Session khác nhau. Do phạm vi toàn cục nên biến Application thường dùng để lưu giữ các biến sử dụng cho toàn bộ Web site như bộ đếm Counter cho biết hiện tại có bao nhiêu khách đã viếng thăm trang Web, lưu các biến chứa thông tin về kết nối cơ sở dữ liệu … Có thể khởi tạo biến Application bất kỳ khi nào, ngay trong trang ASP hiện hành hoặc trong file global.asa dựa vào sự kiện Application_OnStart( ). 2.2 Duyệt qua nội dung các biến Application Tương tự đối tượng Session, có thể sử dụng thuộc tính Contents để duyệt qua tập hợp các biến Application hoặc sử dụng thuộc tính Count để đếm số biến mà đối tượng Application hiện đang nắm giữ. Ví dụ: <% Dim i Dim j j = Application.Contents.Count For i=1 to j Response.Write(Application.Contents (i) &””) Next %> 2.3 Khóa thao tác truy xuất biến của Application Do đối tượng Application cung cấp cơ chế truy xuất toàn cục nên có thể xảy ra tranh chấp biến hoặc không đồng bộ hóa nội dung biến. Ví dụ, nếu người dùng trong một Session thử tăng giá trị cảu biến Application trong khi người dùng trong Session lại giảm giá trị của biến. Để an toàn, có thể thực hiện thao tác khóa (lock) trước khi truy cập biến chứa trong Application. Bằng cách này, các Session khác sẽ không thể thay đổi được nội dung biến Application trừ Session đang tương tác. Sau khi quá trình thay đổi đã hoàn tất, gọi phương thức UnLock để tháo khóa cho phép các Session khác tiếp tục quyền truy xuất. Ví dụ: <% ‘ Khóa không cho các Session khác truy cập vào Application Application.Lock ‘ Thực hiện các thay đổi giá trị biến Application tại đây Application(“appCounter”) = Application(“appCounter”) + 1 ‘ Thoát khóa. Hoàn tất tác vụ thay đổi nội dung biến Application Application.UnLock %> 3.TÌM HIỂU FILE CẤU HÌNH KHỞI ĐỘNG GLOBAL.ASA 3.1 Xử lý sự kiện và khởi tạo biến trong file global.asa ASP cung cấp file cấu hình global.asa, nơi cho phép đặt các đoạn mã script xử lý sự kiện hay triệu gọi các hàm, thủ tục, biến mang tính toàn cục. Lưu ý, file global.asa phải được đặt trong thư mục gốc của ứng dụng. Mỗi ứng dụng Web chỉ được phép có duy nhất một file global.asa. Khi lần đầu tiên trang asp của ứng dụng được yêu cầu, trình chủ IIS sẽ đọc và nạp thông tin trong file global.asa. Phát sinh và xử lý các sự kiện được cài đặt trong file global.asa, sau đó chuyển giao quyền xử lý lại cho trang ASP. File global.asa cho phép cài đặt và xử lý các sự kiện sau: Application_OnStart: Sự kiện này phát sinh khi người dùng đầu tiên triệu gọi bất kỳ trang nào trong ứng dụng Web. Khi trình chủ IIS khởi động lại hoặc khi nội dung file global.asa bị hiệu chỉnh thì sự kiện này sẽ được phát sinh trở lại. Sau khi sự kiện này kết thúc quá trình xử lý, trình chủ IIS sẽ bắt đầu thực thi đến sự kiện Session_OnStart chuẩn bị cho phiên kết nối. Các biến Application thường được khởi tạo bên trong sự kiện này. Session_OnStart: Sự kiện này phát sinh mỗi khi có một người dùng mới yêu cầu trang ASP của ứng dụng Web trong lần đầu tiên. Session_OnEnd: Sự kiện này được gọi khi phiên làm việc Session của người dùng chấm dứt. Phiên làm việc được xem là chấm dứt khi nó hết hạn (timeout hay expired), mặc định cho thời gian hết hạn là 20 phút. Application_OnEnd: Sự kiện này phát sinh khi không còn người dùng nào tương tác với ứng dụng Web của bạn nữa. Thông thường sự kiện này được gọi khi trình chủ IIS ngừng hoạt động (Stop). Sự kiện này giúp ứng dụng Web lưu các thông tin trạng thái cần thiết xuống đĩa cứng phục vụ cho quá trình hoạt động của trình chủ sau đó. Cài đặt thủ tục xử lý các sự kiện này trong file global.asa như sau: Sub Application_OnStart ………..Code End sub Sub Application_OnEnd ………..Code End sub Sub Session_OnStart ………..Code End sub Sub Session_OnEnd ………..vnscript code End sub 4. CÁC ĐỐI TƯỢNG NỘI TẠI CỦA ASP (BUILD-IN OBJECT) Tóm tắt ASP cung cấp cho ta 7 đối tượng nội tại cơ bản sau: Đối tượng Request: Đối tượng này cung cấp các thông tin và tham số người dùng chuyển lên trình chủ thông qua thao tác submit dữ liệu trong thẻ Form của trang hoặc truyền bằng chuỗi QueryString trên địa chỉ URL. Đối tượng Response: Đối tượng này thực hiện phản hồi, chuyển kết xuất từ trình chủ về trình khác. Đối tượng Application: Đối tượng Application dùng lưu giữ các thông tin toàn cục của ứng dụng Web. Có thể chuyển thông tin trao đổi giữa các trang ASP và các Session thông qua biến lưu trữ của Application. Đối tượng Session: Đối tượng session dùng lưu giữ các thông tin chỉ có tác dụng đối với kết nối của một người dùng trong khoảng thời gian nào đó. Đối tượng Server: Đối tượng Server được dùng thực hiện các thao tác đặc biệt tác động lên trình chủ Server cung cấp các phương thức và thuộc tính tiện ích sau: CreateObject(objectname): Tạo một đối tượng thuộc dạng COM của Windows thực thi phía trình chủ. MapPath(path): Chuyển đường dẫn URL ảo thành đường dẫn vật lý của ổ đĩa trên máy chủ. Execute(path): Thực thi trang asp trong đường dẫn. HTMLEncode (string): Mã hóa chuỗi string thành dạng hiểu và thông dịch được bởi ngôn ngữ HTML (thường dùng khi dữ liệu chứa các ký tự điều khiển đặc biệt) URLEncode (string): Mã hóa chuỗi string theo qui tắc chuyển đổi của URL hiểu được bởi các trình duyệt phía máy khách. Phương thức mà đối tượng Server thường sử dụng nhất là CreateObject. Phương thức này có thể giúp tạo ra các đối tượng khác dựa vào tên định danh. Ví dụ, có thể dùng phương thức Server.CreateObject tạo ra đối tượng FileSystemObject. Đối tượng Dictionary: Đối tượng Dictionary được dùng để lưu trữ một mục thông tin dựa trên khóa. Đối tượng này tương tự cách truy xuất băm (Hash table). Có thể hình dung bảng băm hoặc Dictionary tương tự cách tra cứu của từ điển. Trong đó khóa được xem là từ cần tra và mục dữ liệu chính là nội dung của từ được tra trong từ điển. Đối tượng Dictionary cung cấp các phương thức và thuộc tính để xử lý sau: Add: Thêm một mục dữ liệu và khóa vào bảng Dictionary. Exists: Trả về true nếu một khóa tồn tại. Items: Trả về một mảng các mục dữ liệu chứa trong Dictionary. Keys: Trả về một mảng các khóa chứa trong Dictionary. Remove: Loại một khóa và mục dữ liệu khỏi Dictionary. RemoveAll: Xóa bỏ tất cả các khóa trong Dictionary. Count: Trả về tổng số mục dữ liệu hoặc khóa có trong Dictionary. Item: Thiết lập hoặc nhận trị trả về của một mục dữ liệu dựa vào khóa. Key: Thiết lập hoặc thay đổi khóa cho mục dữ liệu. Đối tượng ASPError: Trong quá trình xử lý, trang ASP cung cấp đối tượng ASPError chứa các thông tin lỗi phát sinh mới nhất. Có thể dựa vào ASPError để đưa ra các thông báo lỗi thân thiện với người dùng hơn các lỗi trang do trình chủ IIS trả về. 5. CÁC ĐỐI TƯỢNG TIỆN ÍCH (INSTALLABLE – COMPONENT) Ngoài các đối tượng nội tại, trình chủ IIS cung cấp các đối tượng tiện ích như AdRotator, BrowserCap, Counters… Có thể chọn thêm vào hoặc bỏ đi các đối tượng này trong quá trình cài đặt IIS. Đối tượng AdRotator: Đối tượng này cho phép hiển thị các ảnh quảng cáo trên Web site một cách ngẫu nhiên. Quảng cáo là một trong những cách tạo ra lợi nhuận cho những Web site nổi tiếng. Giả sử có rất nhiều khách hàng muốn quảng cáo trên một Web site, không gian để đặt quảng cáo trên trang Web thì có giới hạn. AdRotator giúp chọn ngẫu nhiên ảnh quảng cáo mỗi khi khách hàng ghé thăm trang Web. Đối tượng BrowserCap: Khi người dùng gõ một điạ chỉ URL gọi trang .asp, phía trình chủ có thể kiểm tra loại trình duyệt mà trình khách đang sử dụng. Công việc này được thực hiện dễ dàng thông qua đối tượng tiện ích BrowserCap. Đối tượng này sẽ cho biết các thông tin như: hệ điều hành mà trình duyệt phía máy khách đang chạy, tên trình duyệt (ví dụ Netcape hay IE), phiên bản của trình duyệt, các đặc tính hỗ trợ JavaScript, phiên bản HTML mà trình duyệt có khả năng diễn dịch…Tất cả những yếu tố này rất hữu ích để các trang ASP sinh mã tương thích với trình duyệt khi phản hồi kết quả. Đối tượng Counters: Đối tượng Counter cho phép đếm số lần người dùng triệu gọi trang Web của ứng dụng. Thường đối tượng Counter chỉ cần tạo ra một lần duy nhất trong file global.asa và hoạt động trong suốt chu kỳ sống của ứng dụng. Tạo đối tượng Counter bằng thẻ trong file global.asa như sau: <OBJECT ID=”objCounter” RUNAT=”Server” SCOPE=”Application” PROGID=”MSWC.Counters”> Ở đây objCounter là tên đối tượng Counter có phạm vi toàn cục (SCOPE=”Application”). Tất cả các trang .asp trong ứng dụng có thể gọi phương thức Increment để tăng giá trị của Counter. Cũng có thể thiết lập giá trị mới cho Counter bằng phương thức Set hoặc lấy về giá trị hiện hành bằng phương thức Get. Muốn loại bỏ Counter, gọi phương thức Remove. Đối tượng FileSystemObject: Đối tượng FileSystemObject cho phép xử lý các thao tác trên hệ thống file phía máy chủ. Có thể thực hiện những tác vụ như xem danh sách hay liệt kê nội dung của thư mục, sao chép, xoá hoặc đổi tên file công thư mục, tạo file hay thư mục mới… Ví dụ, thay vì dùng đối tượng Counter, mỗi khi người dùng mở trang Web, đối tượng FileSystemObject sẽ được gọi để mở file, đọc số đếm của Counter, tăng giá trị biến Counter lên 1 và lưu trở lại file. FileSystemObject cung cấp các phương thức xử lý sau: BuildPath: Thêm một tên file hay thư mục vào đường dẫn thư mục hiện hành. CopyFile: Copy file. CopyFolder: Copy thư mục. GetAbsolutePathName: Trả lại đường dẫn tuyệt đối của file hoặc thư mục. GetBaseName: Trả lại đường dẫn cơ sở của file hoặc thư mục. GetParentFolderName: Trả về tên của thư mục cha. OpenTextFile: Mở file hoặc tạo file mới. Drivers: Trả về danh sách các ổ đĩa. … Các ứng dụng ASP thường sử dụng đối tượng FileSystemObject cho các mục đích như quản lý file, thực hiện các thao tác đọc ghi trên file, cho phép người dùng tải (upload) các file từ trình khách lên máy chủ… V. ADO (ACTIVEX DATA OBJECT) 1.TẠI SAO SỬ DỤNG ADO VÀ ADO LÀ GÌ? Trải qua một quá trình phát triển khá dài, công nghệ tin học đã chứng tỏ cơ sở dữ liệu là cực kỳ quan trọng và cần thiết đối với hầu hết các ứng dụng máy tính. Khởi thuỷ, các chương trình đơn giản sử dụng file văn bản (text file) làm nơi lưu trữ dữ liệu. Những ứng dụng hiện đại như Foxpro, Access sử dụng hẳn tập tin với cấu trúc đặc biệt làm nơi chứa dữ liệu. Những file này được gọi là cơ sở dữ liệu. Phát triển hơn nữa, các hệ cơ sở dữ liệu quan hệ chuyên nghiệp hơn ra đời phục vụ cho nhu cầu lưu trữ dữ liệu lớn và truy xuất nhanh như SQL Server, Oracle, DB2…Khó khăn lớn nhất khi lập trình truy xuất cơ sở dữ liệu là cơ chế kết nối, đọc và xử lý dữ liệu từ các file của những hệ cơ sở dữ liệu. Chúng có cấu trúc khác nhau và có cách xử lý riêng biệt. Điểm chung nhất mà các hệ cơ sở dữ liệu có thể tương đồng là khả năng sử dụng ngôn ngữ truy vấn chuẩn SQL. Tuy nhiên, để kết nối và sử dụng được câu lệnh SQL tác động vào cơ sở dữ liệu, lập trình viên cần sử dụng các trình điều khiển do mỗi hệ cơ sở dữ liệu cung cấp. Học cách sử dụng các hàm của trình điều khiển là công việc không mấy dễ dàng đối với nhà phát triển ứng dụng. Microsoft đã giải quyết vân đề này bằng cách xây dựng một tập các hàm giao tiếp tổng quát (API-Application Programming Interface) dành cho kết nối và truy xuất dữ liệu. Các hệ dữ liệu muốn những chương trình Windows có khả năng truy xuất dữ liệu của mình một cách thống nhất cần viết trình điều khiển cài đặt theo giao tiếp của những hàm API này. Đây chính là mô hình hoạt động của cơ chế cầu nối ODBC (Open Database Conectivity). ODBC cho phép ứng dụng dùng một cách truy xuất duy nhất kết nối đến mọi hệ cơ sở dữ liệu. Nó được xem là cầu nối giứa ứng dụng và dữ liệu. Sử dụng ODBC, lập trình viên không cần quan tâm đến sự khác biệt của các hệ cơ sở dữ liệu. Trình điều khiển ODBC do nhà phát triển hệ dữ liệu cung cấp sẽ chịu trách nhiệm giao tiếp với lập trình viên thông qua ngôn ngữ SQL do các ham API của Windows quản lý. Tuy nhiên, ODBC tỏ ra chậm và không hiệu quả. Microsoft tiến xa hơn nữa, xây dựng cầu nối và tập các hàm truy xuất dữ liệu tổng quan ở dạng đối tượng gọi là OLE DB. Đây là các đối tượng xây dựng theo mô hình COM (Component Object Model) hoạt động gắn liền với hệ điều hành, cho phép truy xuất trực tiếp đến mọi nguồn dữ liệu theo một giao tiếp tổng quát nhất. Tuy nhiên, sử dụng OLE DB khá phức tạp, thường chỉ thuận tiện cho lập trình viên C và C++. ADO (ActiveX Data Object) là lớp đối tượng đơn giản hoá hơn cho giao tiếp OLE DB cấp thấp. Thật sự ADO đơn thuần chỉ là đối tượng COM tập trung vào xử lý dữ liệu thông qua OLE DB của Windows. 1.1 Kiến trúc ADO Để hiểu rõ cách sử dụng ADO, cần tìm hiểu kiến trúc của ADO. Hình: Kiến trúc ADO và OLE DB Lưu ý là ta dùng khái niệm Data Store để chỉ mọi loại dữ liệu và nơi chứa thông tin có thể truy xuất được. ADO thiết kế cho mục đích truy xuất dữ liệu tổng quát, không chỉ dùng xử lý các hệ cơ sở dữ liệu thuần tuý. Có thể dùng ADO để truy xuất dữ liệu mail, dữ liệu file hay bất kỳ dữ liệu nào hỗ trợ cơ chế cho phép giao tiếp thông qua OLE DB. 1.2 Trình tiêu thụ (consumer) và trình cung cấp (provide) Mô hình kiến trúc ADO cho thấy cách ADO làm việc nằm giữa tầng ứng dụng và tầng dữ liệu chứa các loại dữ liệu như dữ liệu email, dữ liệu file, cơ sở dữ liệu… Trong lập trình, chương trình mà chúng ta viết chính là trình tiêu thụ dữ liệu (data consumer) bởi nó cần truy xuất vào các nguồn dữ liệu để xử lý. Thế còn trình cung cấp dữ liệu là gì? Đây chính là tập lệnh cho phép truy xuất vào nguồn dữ liệu (data store) theo cách đặc trưng của chúng. Provider cho phép giao tiếp giữa nguồn dữ liệu và tầng điều khiển OLE DB. Các nhà thiết kế nguồn dữ liệu cung cấp lớp giao tiếp giữa Provider và OLE DB. ADO chỉ trao đổi với nguồn dữ liệu thông qua OLE DB và không cần quan tâm đến cách thức làm việc của Provider. Chính điểm này làm cho ADO mang tính tổng quát và không phụ thuộc vào nguồn dữ liệu. Để giúp OLE DB biết được Provider nào cần phải giao tiếp, khi mở kết nối ADO cần chỉ định trình cung cấp dữ liệu Provider tương ứng. Microsoft cung cấp sẵn một số Provider cho phép truy xuất dễ dàng vào các nguồn dữ liệu đang thông dụng như sau: Jet OLE DB 4.0: Cơ sở dữ liệu MS Access. DST Packages: Dịch vụ chuyển đổi dữ liệu trong SQL server. ODBC Driver: Provider cho phép truy xuất nguồn dữ liệu qua ODBC. SQL Server : Cơ sở dữ liệu SQL Server. Oracle: Cơ sỏ dữ liệu Oracle. Simple Provider: Truy xuất dữ liệu dạng text. Index Service: Sử dụng cho truy xuất dịch vụ thư mục của Windows. Microsoft Dicrectory Service: Sử dụng cho truy xuất dịch vụ thư mục của Windows 2000. 1.3 Trình cung cấp (provider) và trình điều khiển (driver) Một lưu ý khác đó là cần phân biệt trình cung cấp và trình điều khiển-driver. Thật ra về ý nghĩa Provider và Driver đều có mục đích như nhau, đó là cho phép các chương trình ngoài cùng như hệ điều hành giao tiếp với nguồn dữ liệu thông qua hàm xử lý trực tiếp (native). Tuy nhiên Provider hướng đến tính tổng quát của OLE DB trong khi trình điều khiển cơ sở dữ liệu Driver lại nhắm vào giao tiếp chung cho thành phần kết nối theo kiến trúc ODBC. Điều quan trọng đó là Provider mang tính tổng quát hơn Driver. Chúng ta có thể dùng ODBC Provider để truy xuất dữ liệu thông qua các trình điều khiển Driver cho cơ chế ODBC. Do ODBC đã khá phổ biến và nhiều trình điều khiển hỗ trợ nó nên cho đến khi nhà cung cấp đưa ra một Provider mới tương thích với cơ sở dữ liệu của họ, chúng ta chỉ có cách sử dụng ADO kết nối vào nguồn dữ liêu thông qua ODBC Provider. ODBC Provider sẽ chuyển lời gọi và truy xuất đến tầng ODBC yêu cầu các trình điều khiển Driver bên dưới tiếp cận với cơ sở dữ liệu mà nó quản lý. Hình: Provider và Driver Rõ ràng sử dụng ODBC Provider sẽ chậm hơn trình cung cấp OLE DB Provider cho phép truy xuất trực tiếp (do phải qua lớp trung gian của trình điều khiển ODBC). Tuy nhiên ODBC Provider giúp ADO tiếp cận với mọi nguồn dữ liệu thông dụng nhất trên Windows dựa vào trình điều khiển ODBC sẵn có trong khi chờ nhà cung cấp đưa ra một phiên bản tiếp cận với dữ liệu bằng OLE DB Provider khác. 2. MÔ HÌNH ĐỐI TƯỢNG ADO 2.5 2.1 Đối tượng Connection Đối tượng Connection cho phép thực hiện việc mở kết nối đến nguồn dữ liệu cần truy xuất. Thông qua đối tượng Connection, người lập trình chỉ định trình cung cấp OLE DB Provider sẽ dùng để tiếp cận dữ liệu. Các thông tin kết nối bổ sung khác như: tên đăng nhập cơ sở dữ liệu (username), mật khẩu (password), tên máy chủ (server) …Tất cả những thông tin này thường được lưu vào một chuỗi gọi là chuỗi kết nối (Connection String). Lưu ý là để có thể kết nối và truy xuất nguồn dữ liệu, không bắt buộc phải tạo đối tượng Connection. Các đối tượng như Command, Recordset, Record… cũng cho phép mở trực tiếp kết nối. Tuy nhiên, sử dụng đối tượng Connection sẽ cho phép tách biệt thao tác kết nối và thao tác truy cập dữ liệu. Hơn nữa, đối tượng Connection còn cung cấp thêm một số chức năng chuyên dụng khác như cho phép thực thi câu lện SQL tác động dữ liệu (INSERT, UPDATE, DELETE, gọi thủ tục nội Store Procedure…) hoặc kiểm soát giao dịch (transaction) như Rollback, Commit… 2.2 Đối tượng Command (lệnh thực thi) Mặc dù người lập trình có thể sử dụng đối tượng Connection để thực thi các lệnh SQL nhưng tốt nhất nên dùng Connection cho mục đích kết nối. Đối tượng Command sẽ được dùng cho mục đích thực thi lệnh tốt hơn. Khi đối tượng Connection thực thi lệnh, mặc định Connection sẽ khởi tạo và gọi đến đối tượng Command. Đối tượng Command cho phép chuyển tham số vào các lệnh thực thi SQL. Tham số có thể chỉ định kiểu hoặc giá trị tường minh. Các tham số cso thể nhận giá trị trả về sau khi thực thi… Command có thể dùng cho cả hai mục đích: thực thi các lệnh SQL không cần nhận kết quả trả về (như INSERT, DELETE, UPDATE, các Store Procedure) hoặc thực thi các lệnh trả về tập Recordset như lệnh SELECT. 2.3 Đối tượng Recordset (tập các mẩu tin) Recordset có thể nói là đối tượng được sử dụng thường xuyên nhất trong ADO. Đối tượng này cung cấp kết quả trả về từ câu lệnh truy vấn một tập các mẩu tin. Trang ASP có thể dùng vòng lặp duyệt qua các mẩu tin này và hiển thị dữ liệu kết xuất ra trang Web phía trình duyệt. Ngoài ra Recordset còn cho phép lọc dữ liệu từ tập các mẩu tin, truy xuất đến từng trường cụ thể của mẩu tin thông qua đối tượng Field hoặc danh sách các trường trong mẩu tin thông qua đối tượng Field. 2.4 Đối tượng Record Đối tượng Record cho phép truy cập chi tiết đến thông tin của từng mẩu tin. Có thể hỏi đối tượng Recordset đã cung cấp cách thức truy cập đến từng trường của mẩu tin thì tại sao lại dùng thêm đối tượng Record? Thật sự nếu chỉ dùng loại dữ liệu dạng bảng của cơ sở dữ liệu thì có thể không cần dùng đến đối tượng Record. Tuy nhiên đối tượng Record giúp truy xuất tổng quát đến mọi nguồn dữ liệu không riêng gì dữ liệu dạng bảng. Hãy hình dung nếu muốn truy xuất nội dung của nguồn dữ liệu là một thư mục. Thư mục có thể xem là một bảng dữ liệu với danh sách file là các mẩu tin (record). Tuy nhiên mỗi mẩu tin của file trong thư mục không đơn thuần chỉ chứa các trường như tên file, ngày giờ tạo file, kích thước file…Thông tin về mỗi mẩu tin biểu diễn cho file có thể khác nhau về quyền truy xuất trên file, nội dung file. Đối tượng Record sẽ giúp thể hiện sự khác biệt này của từng mẩu tin thông qua phương thức và thuộc tính. Nếu chỉ sử dụng và truy xuất mẩu tin thông qua Recordset theo cách thông thường thì sẽ không xử lý được. 2.5 Đối tượng Stream (luồng) Đối tượng Stream cho phép biểu diễn nội dung của một nut (node) dữ liệu. Cụ thể, thông qua Stream, có thể xem và truy xuất được các loại dữ liệu nhị phân không thuộc dạng bảng như nội dung file, e-mail, trang Web, dữ liêu XML… Đối tượng Stream thường được kết hợp xử lý thông qua đối tượng Record và Recordset. 2.6 Đối tượng Collection (tập hợp) Thư viện ADO cung cấp rất nhiều loại tập hợp. Mỗi loại có thể nắm giữ một hoặc nhiều đối tượng khác thậm chí có thể là một tập hợp rỗng không chứa phần tử nào cả. 3. KẾT NỐI VỚI NGUỒN DỮ LIỆU Để tiếp cận và bắt đầu xử lý dữ liệu bằng các đối tượng ADO, chúng ta hãy xem cách thức kết nối vào những nguồn dữ liệu khác nhau thông qua chuỗi kết nối. 3.1 Chuỗi kết nối Chuỗi kết nối dùng để cung cấp thông tin cho đối tượng Connection biết đặc điểm của cơ sở hay nguồn dữ liệu mà ADO cần truy xuất. Sau đây là một số kết nối đến các loại cơ sở dữ liệu thông dụng: Cơ sở dữ liệu MS Access: connStr=”Provider = Microsoft.Jet.OLEDB.4.0; Data Source = …” set conn=Server.CreateObject(“ ADODB.Connection”) conn.Open connStr Cơ sở dữ liệu MS Access thông qua trình điều khiển ODBC: connStr=”Driver= Microsoft Access Driver(*.mdb); DBQ=…” set conn=Server.CreateObject(“ ADODB.Connection”) conn.Open connStr Cơ sở dữ liệu MS SQL Server: connStr=”Provider= SQLOLEDB; Data Source=ServerName; Initial catalog= database_name; User ID= user_name; PWD = user_password” set conn=Server.CreateObject(“ ADODB.Connection”) conn.Open connStr VI. ƯU VÀ KHUYẾT ĐIỂM CỦA ASP 1. ƯU ĐIỂM: So với một số ngôn ngữ lập trình máy chủ khác như CGI, Perl, Python,… thì ASP dễ học hơn. Nếu sử dụng ngôn ngữ mặc định là VBScript thì mã lệnh tương tự như Visual Basic, cho nên mất ít thời gian thực hành. Với ASP, các nhà phát triển ứng dụng Web dễ dàng tiếp cận công nghệ này và nhanh chóng tạo ra sản phẩm. Khác với CGI, ASP không cần phải hợp dịch. Dễ dàng tương thích với các công nghệ Microsoft, ASP sử dụng ActiveX Data Object (ADO) để thao tác với cơ sở dữ liệu hết sức tiện lợi. ASP có tính năng truy cập cơ sở dữ liệu tuyệt vời, nhất là với SQL server, nên so với CGI (Common Gateway Interface) thì ASP hơn hẳn ở mặt này. ASP có tính năng mở, cho phép các nhà lập trình xây dựng các thành phần và đăng kí sử dụng dễ dàng. Hay nói cách khác, ASP có tính năng COM ( Component Obect Model) 2. KHUYẾT ĐIỂM: ASP chỉ chạy tương thích trên môi trường Window. ASP có độ bảo mật kém hơn CGI, vì ASP chạy trên các Server với hệ điều hành mạng của Microsoft, có tính bảo mật hệ thống kém so với UNIX. Các mã ASP đều có thể đọc được nếu người dùng có quyền truy cập vào Web Server. Khó can thiệp sâu vào hệ thống như những ứng dụng CGI. ASP không được hỗ trợ nhiều từ các hãng thứ 3. So với công nghệ JavaServlet thì ASP chạy chậm hơn. VII. GIỚI THIỆU VỀ ASP.NET 1.Giới thiệu chung Là phiên bản mới nhất của asp. ASP có nhiều phần giống với PHP hơn là ASP.NET. ASP.NET là một bộ khung hoàn chỉnh để phát triển ứng dụng web. Một trong những đặc tính quan trọng của nó là mềm dẻo trong việc chọn lựa ngôn ngữ. ASP.NET sử dụng các ngôn ngữ kịch bản như là VBScript, Jscript, PerlScript, và Python. Nó sử dụng các ngôn ngữ biên dịch như VB, C#, C, Cobol, Smalltalk và Lisp. Framework này sử dụng common language runtime(CLR); ngôn ngữ nguồn sẽ được biên dịch thành Microsoft Intergrate language code, và sau đó được CLR thực thi. Framework này cung cấp cho lập trình hướng đối tượng(OOP), hỗ trợ kế thừa, đa hình và đóng gói. Khi lập trình với ASP.NET, việc tích hợp cơ sở dữ liệu được thông qua ODBC, cung cấp những tập hợp hàm gọi nhất quán để truy cập vào cơ sở dữ liệu đích. Ưu và nhược điểm: 2.Ưu điểm của ASP.NET Thiết kế trong sạch và sự thực thi đầy đủ. Nó là mơ ước của một nhà lập trình hướng đối tượng, với ngôn ngữ mềm dẻo, và hỗ trợ những tính năng hướng đối tượng phức tạp. Một ưu điểm nữa của ASP.NET là môi trường phát triển hỗ trợ khá đầy đủ các công cụ khiến bạn phát triển ứng dụng dễ dàng hơn. 3.Nhược điểm: Với những tính năng mạnh mẽ đó thì bạn phải trả nhiều hơn. ASP.NET đắt đối với sử dụng bộ nhớ và thời gian thực hiện, điều đó phần lớn là do mã lệnh dài. Trong các ứng dụng trên nền web thì sử dụng bộ nhớ luôn luôn là một vấn đề trên web server. VIII. GIỚI THIỆU VỀ PHP 1.PHP là gì? PHP là một ngôn ngữ kịch bản dựa trên mô hình tiền xử lí trang HTML. Khi bộ tiền xử lí PHP trên web server ghi chú một tag PHP tiếp sau thì PHP engine sẽ được gọi để thực hiện đoạn mã: <?php Some code ?> PHP khá dễ học với nhiều người, nó có cấu trúc gần giống với C, Java và Perl. Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML. Trong PHP, có thể sử dụng ODBC để gọi cơ sở dữ liệu, sẽ có một danh sách đầy đủ các cơ sở dữ liệu hỗ trợ để chọn. Một số cơ sở dữ liệu thường dùng trên PHP là MySQL, Oracle, và Postgres. Nếu sử dụng Oracle, một thư viện riêng OC18 cung cấp nhiều đặc tính để truy cập Oracle, ví dụ như LOB, BLOB, CLOB và BFILE. 2.Lịch sử phát triển của PHP PHP/FI PHP được phát triển từ một sản phẩm có tên là PHP/FI. PHP/FI do Rasmus Lerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giản của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng. Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page Tools'. Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thể truy vấn tới các cơ sở dữ liệu và giúp cho người sử dụng phát triển các ứng dụng web đơn giản. Rasmus đã quyết định công bố mã nguồn của PHP/FI cho mọi người xem, sử dụng cũng như sửa các lỗi có trong nó đồng thời cải tiến mã nguồn. PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một số các chức năng cơ bản cho PHP như ta đã biết đến chúng ngày nay. Nó có các biến kiểu như Perl, thông dịch tự động các biến của form và cú pháp HTML nhúng. Cú pháp này giống như của Perl, mặc dù hạn chế hơn nhiều, đơn giản và có phần thiếu nhất quán. Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hút được hàng ngàn người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đã được ghi nhận là có cài đặt nó, chiếm khoảng 1% số tên miền có trên mạng Internet. Tuy đã có tới hàng nghìn người tham gia đóng góp vào việc tu chỉnh mã nguồn của dự án này thì vào thời đó nó vẫn chủ yếu chỉ là dự án của một người. PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời gian khá dài chỉ được công bố dưới dạng các bản beta. Nhưng không lâu sau đó, nó đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0. PHP 3 PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các phiên bản PHP mà chúng ta được biết ngày nay. Nó đã được Andi Gutmans và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước đó. Lý do chính mà họ đã tạo ra phiên bản này là do nhận họ thấy PHP/FI 2.0 hết sức yếu kém trong việc phát triển các ứng dụng thương mại điện tử mà họ đang xúc tiến trong một dự án của trường đại học. Trong một nỗ lực hợp tác và bắt đầu xây dựng dựa trên cơ sở người dùng đã có của PHP/FI, Andi, Rasmus và Zeev đã quyết định hợp tác và công bố PHP 3.0 như là phiên bản thế hệ kế tiếp của PHP/FI 2.0, và chấm dứt phát triển PHP/FI 2.0. Một trong những sức mạnh lớn nhất của PHP 3.0 là các tính năng mở rộng mạnh mẽ của nó. Ngoài khả năng cung cấp cho người dùng cuối một cơ sở hạ tầng chặt chẽ dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau, các tính năng mở rộng của PHP 3.0 đã thu hút rất nhiều nhà phát triển tham gia và đề xuất các mô đun mở rộng mới. Hoàn toàn có thể kết luận được rằng đây chính là điểm mấu chốt dẫn đến thành công vang dội của PHP 3.0. Các tính năng khác được giới thiệu trong PHP 3.0 gồm có hỗ trợ cú pháp hướng đối tượng và nhiều cú pháp ngôn ngữ nhất quán khác. Ngôn ngữ hoàn toàn mới đã được công bố dưới một cái tên mới, xóa bỏ mối liên hệ với việc sử dụng vào mục đích cá nhân hạn hẹp mà cái tên PHP/FI 2.0 gợi nhắc. Nó đã được đặt tên ngắn gọn là 'PHP', một kiểu viết tắt hồi quy của "PHP: Hypertext Preprocessor". Vào cuối năm 1998, PHP đã phát triển được con số cài đặt lên tới hàng chục ngàn người sử dụng và hàng chục ngàn Web site báo cáo là đã cài nó. Vào thời kì đỉnh cao, PHP 3.0 đã được cài đặt cho xấp xỉ 10% số máy chủ Web có trên mạng Internet. PHP 3.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian 9 tháng được cộng đồng kiểm nghiệm. PHP 4 Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công bố, Andi Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi của PHP. Mục đích thiết kế là nhằm cải tiến tốc độ xử lý các ứng dụng phức tạp, và cải tiến tính mô đun của cơ sở mã PHP. Những ứng dụng như vậy đã chạy được trên PHP 3.0 dựa trên các tính năng mới và sự hỗ trợ khá nhiều các cơ sở dữ liệu và API của bên thứ ba, nhưng PHP 3.0 đã không được thiết kế để xử lý các ứng dụng phức tạp như thế này một cách có hiệu quả. Một động cơ mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên của Zeev và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công, và lần đầu tiên được giới thiệu vào giữa năm 1999. PHP 4.0, dựa trên động cơ này, và đi kèm với hàng loạt các tính năng mới bổ sung, đã chính thức được công bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời. Ngoài tốc độ xử lý được cải thiện rất nhiều, PHP 4.0 đem đến các tính năng chủ yếu khác gồm có sự hỗ trợ nhiều máy chủ Web hơn, hỗ trợ phiên làm việc HTTP, tạo bộ đệm thông tin đầu ra, nhiều cách xử lý thông tin người sử dụng nhập vào bảo mật hơn và cung cấp một vài các cấu trúc ngôn ngữ mới. Với PHP 4, số nhà phát triển dùng PHP đã lên đến hàng trăm nghìn và hàng triệu site đã công bố cài đặt PHP, chiếm khoảng 20% số tên miền trên mạng Internet. Nhóm phát triển PHP cũng đã lên tới con số hàng nghìn người và nhiều nghìn người khác tham gia vào các dự án có liên quan đến PHP như PEAR, PECL và tài liệu kĩ thuật cho PHP. PHP 5 Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát triển PHP tự mãn. Cộng đồng đã nhanh chóng giúp họ nhận ra những yếu kém của PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử lý XML, không hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗ trợ dịch vụ web yếu. Những điểm này chính là mục đích để Zeev và Andi viết Zend Engine 2.0, lõi của PHP 5.0. Một thảo luận trên Slashdot đã cho thấy việc phát triển PHP 5.0 có thể đã bắt đầu vào thời điểm tháng 12 năm 2002 nhưng những bài phỏng vấn Zeev liên quan đến phiên bản này thì đã có mặt trên mạng Internet vào khoảng tháng 7 năm 2002. Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 đã chính thức được công bố để cộng đồng kiểm nghiệm. Đó cũng là phiên bản đầu tiên của Zend Engine 2.0. Phiên bản Beta 2 sau đó đã ra mắt vào tháng 10 năm 2003 với sự xuất hiện của hai tính năng rất được chờ đợi: Iterators, Reflection nhưng namespaces một tính năng gây tranh cãi khác đã bị loại khỏi mã nguồn. Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã được công bố để kiểm tra với việc phân phối kèm với Tidy, bỏ hỗ trợ Windows 95, khả năng gọi các hàm PHP bên trong XSLT, sửa chữa nhiều lỗi và thêm khá nhiều hàm mới. PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC 1, RC2, RC3. Mặc dù coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP. Ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team công bố đánh dấu sự chín muồi mới của PHP với sự có mặt của PDO, một nỗ lực trong việc tạo ra một hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thực hiện các câu truy vấn. Ngoài ra, trong PHP 5.1, các nhà phát triển PHP tiếp tục có những cải tiến trong nhân Zend Engine 2, nâng cấp mô đun PCRE lên bản PCRE 5.0 cùng những tính năng và cải tiến mới trong SOAP, streams và SPL PHP 6 Hiện nay phiên bản tiếp theo của PHP đang được phát triển, PHP 6 bản sử dụng thử đã có thể được download tại địa chỉ Phiên bản PHP 6 được kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên bản hiện tại, ví dụ: hỗ trợ namespace (hiện tại các nhà phát triển vẫn chưa công bố rõ ràng về vấn đề này); hỗ trợ Unicode; sử dụng PDO làm API chuẩn cho việc truy cập cơ sở dữ liệu, các API cũ sẽ bị đưa ra thành thư viện PECL... 3.PHP ở cấp doanh nghiệp Rất nhiều nhà phát triển ứng dụng và quản lý dự án có quan điểm rằng PHP vẫn chưa sẵn sàng cho cấp doanh nghiệp (enterprise) và trên thực tế, PHP vẫn chưa xâm nhập sâu được vào thị trường này. Chính vì thế, Zend đã tiến hành nhiều biện pháp nhằm chuẩn hóa PHP, tạo được sự tin cậy hơn cho giới người dùng cao cấp. Zend Platform là một bộ sản phẩm giúp quản lý hệ thống ứng dụng PHP, nâng cao hiệu suất, tăng tốc độ của ứng dụng PHP. Zend Framework là một tập hợp các lớp, các thư viện lập trình viết bằng PHP (PHP 5) nhằm cung cấp một giao diện lập trình chuẩn cho các nhà phát triển ứng dụng. 4.Ưu và nhược điểm: So với beta version 4, PHP 5 có ít thiếu sót hơn, bao gồm những thiếu sót về exception. a.Nhược điểm: Bạn có thể điều khiển lỗi trong PHP, tuy nhiên cấu trúc không được chuẩn hoá. Một nhược điểm nữa của PHP là tên hàm trong PHP là case intensitive. Nhưng đây không phải là một điều trở ngại lớn. Ngoài ra còn phải kể đến nhược điểm về kiểu đối tượng trong PHP. PHP không được thiết kế là một ngôn ngữ hướng đối tượng. b.Ưu điểm: Ưu điểm đầu tiên phải kể đến là nó miễn phí. PHP là ngôn ngữ nguồn mở, bạn có thể không biết một số tính năng nhưng vẫn có được các tính năng đó nhờ nhúng code. PHP chạy trên Apache, vì thế có được nhiều lợi thế vì Apache chạy trên Window, Linux, Solaris, và nhiều Unix platform khác. Vì thế tính bảo mật cũng rất tốt. Một điểm mạnh nữa của PHP là mã lệnh ngắn, vì thế sử dụng hiệu quả bộ nhớ và thực hiện lệnh nhanh hơn. PHẦN II: PHÂN TÍCH, THIẾT KẾ HTTT QUẢN LÝ NHÂN SỰ 1. KHẢO SÁT HỆ THỐNG 1.1. Hệ thống hiện tại và nhược điểm của nó Trước đây khi nền kinh tế chưa phát triển, quy mô quản lý của các doanh nghiệp còn nhỏ, số người làm việc trong các tổ chức còn ít thì việc sử dụng máy tính trong quản lý nói chung và quản lý nhân sự nói riêng là chưa phổ biến. Công việc quản lý chỉ chủ yếu thực hiện bằng phương pháp thủ công. Khi nền kinh tế ngày càng phát triển thì quy mô quản lý của các doanh nghiệp càng mở rộng, số lượng người làm việc trong các cơ quan tổ chức ngày càng nhiều và quản lý bằng phương pháp thủ công không còn phù hợp nữa. Do đó việc quản lý bằng phương pháp thủ công bắt đầu có những hạn chế: -Việc lưu trữ thông tin là vô cùng phức tạp, phải trải qua nhiều phòng ban dẫn đến ùn tắc, quá tải, sử dụng nhiều sổ sách, giấy tờ. -Việc quản lý phải qua nhiều phòng ban, nhiều khâu trung gian từ đó dễ dẫn đến cơ tổ chức bất hợp lý, truyền thông tin liên lạc không thông suốt, mất nhiều thời gian không đáp ứng được nhu cầu thông tin nhanh chóng. -Việc bảo quản, lưu trữ giấy tờ cũng gặp phải khó khăn về kho chứa, về điều kiện bảo quản và tốn kém. -Mỗi khi phải nâng cấp, sửa đổi gặp rất nhiều khó khăn vì mỗi khi thay đổi phải huỷ toàn bộ hồ sơ cũ và viết lại toàn bộ do đó tốn rất nhiều thời gian, công sức, tiền của. -Đối với các thông tin, dữ liệu phức tạp và đặc biệt rất khó tránh khỏi những thiếu sót trong việc lưu trữ thông tin phải bổ sung, cập nhật, thống kê thường xuyên. -Việc trình bày bằng giấy tờ không có tính thẩm mĩ cao. -Việc tra cứu, tìm kiếm thông tin gặp rất nhiều khó khăn vì liên quan đến nhiều sổ sách giấy tờ do đó không tránh khỏi những thiếu xót. -Trong một tổ chức lớn thì việc quản lý bằng phương pháp thủ công sẽ rất phức tạp đòi hỏi một lực lượng lớn nhân viên để giải quyết công việc tạo ra một bộ máy cồng kềnh, kém hiệu quả. 1.2. Yêu cầu hệ thống mới Những năm gần đây máy tính được sử dụng rộng rãi trong các cơ quan, các đơn vị tổ chức kinh doanh. Nhiều bài toán phức tạp được giải quyết trên máy tính mang lại lợi ích đáng kể về kinh tế, nâng cao năng suất lao động và có độ tin cậy cao. Các bài toán quản lý được đưa vào máy tính giải quyết nhanh chóng đặc biệt là trong vấn đề quản lý nhân sự. Bài toán quản lý nói chung là một bài toán phức tạp, tuỳ từng loại bài toán và từng góc độ khác nhau nào đó mà cần đến độ chính xác nhất định. Công việc quản lý nhân sự đòi hỏi hệ thống phải biết tổ chức, sắp xếp công việc một cách hợp lý, đầy đủ, chính xác. Hệ thống quản lý nhân sự cần phải được cung cấp thông tin về các vấn đề nhân sự một cách nhanh chóng, đầy đủ, chính xác và phải khắc phục được những nhược điểm của hệ thống cũ, bổ sung những thiếu xót của hệ thống cũ, tiếp tục phát huy các ưu điểm của hệ thống cũ. 1.3. Những ưu điểm và nhược điểm của hệ thống mới Với việc sử dụng máy tính thì việc cập nhật, chỉnh sửa, in ấn các thông tin về nhân sự rõ ràng, nhanh chóng, chính xác, thuận lợi. Các thông tin được cập nhật vào máy tính chính xác rồi mới ghi lên đĩa, tổng hợp thành các báo cáo làm cho việc bảo quản gọn nhẹ, dễ dàng, lâu dài. Ngoài ra các máy tính được nối mạng với nhau sẽ giúp cho việc trao đổi thông tin giữa các bộ phận được thông suốt, nhanh chóng mà không phải qua các phòng ban do đó giảm thiểu được sự ùn tắc. Các thông tin được chọn in ra sẽ đựơc in theo đúng qui cách, có tính thẩm mĩ cao, đáp ứng tối đa nhu cầu của người yêu cầu. Tuy nhiên việc chuyển đổi từ phương pháp thủ công sang phương pháp quản lý bằng máy tính cũng gặp không ít khó khăn như: -Phải có thời gian cũng như kinh phí để để xây dựng hệ thống mới như: mua sắm trang thiết bị, máy móc, xây dựng các phần mềm quản lý, đào tạo đội ngũ cán bộ,… -Phải có đội ngũ cán bộ có trình độ. -Việc cập nhập, xử lý những thông tin cho hệ thống mới sẽ mất rất nhiều thời gian do nhiều số liệu cũ bị hỏng, bị phân tán theo thời gian, do sự không thống nhất giữa người sử dụng hệ thống mới với hệ thống cũ,… 2. PHẠM VI NGHIÊN CỨU CỦA ĐỀ TÀI Nguồn nhân lực trong một tổ chức doanh nghiệp là một trong những nguồn lực quan trọng và tốn kém nhất. Vấn đề quản lý nhân sự ngày càng trở nên phức tạp, vì có sự thay đổi cấu trúc xã hội cũng như sự gia tăng của những điều luật và các quy định lao động, số lượng lao động và đặc biệt là tính chất phức tạp của công việc. Để có thể quản lý được một nguồn lực quan trọng và tốn kém như vậy, phòng quản lý nhân lực phải dựa vào các hệ thống thông tin tự động hoá. Phòng quản lý nhân sự quản lý hồ sơ của cán bộ công chức (bao gồm lý lịch bản thân, quá trình công tác, quá trình đào tạo, diễn biến lương), quản lý các phòng ban và in ra các báo cáo theo yêu cầu của cán bộ quản lý. Bên cạnh đấy phòng quản lý nhân sự còn cập nhập nhanh chóng việc điều chuyển công tác của cán bộ, việc tăng lương của cán bộ và tìm kiếm nhanh các thông tin về cán bộ công chức theo yêu cầu của các nhà quản lý. 3. ĐỐI TƯỢNG NGHIÊN CỨU CỦA ĐỀ TÀI Hệ thống quản lý nhân sự được xây dựng nên sẽ giúp cho nhân viên phòng quản lý nhân sự cập nhập danh sách phòng ban, lý lịch của từng nhân viên, quá trình đạo tạo, quá trình công tác, diễn biến tiền lương, việc điều chuyển công tác nhân viên, việc tăng lương nhân viên,…. Để bất cứ lúc nào người dùng có thể tra cứu được các thông tin cần thiết như: -Xem và cập nhật danh sách phòng ban trong công ty. -Xem và cập nhật bảng diễn biến lương nhân viên. -Xem và cập nhật bảng diễn biến quá trình công tác của từng nhân viên. -Xem và cập nhật lý lịch cụ thể của từng nhân viên một. -Tìm kiếm các nhân viên theo họ tên, chức vụ. -Tìm kiếm nhân viên theo họ tên, phòng ban. Trong bài toán “ Quản lý nhân sự” ta có thể thêm vào, sửa, xoá bất kỳ một nhân viên nào và có thể tìm kiếm nhanh theo một số chỉ tiêu để trả lời cho các câu hỏi trong quản lý hay hỗ trợ quyết định của bộ phận quản lý. 4. SƠ ĐỒ LUỒNG DỮ LIỆU 5. SƠ ĐỒ NGỮ CẢNH CỦA HỆ THỐNG QUẢN LÝ NHÂN SỰ CB Quản lý CB Quản lý TT thay đổi nhân sự Báo cáo TT đáp ứng TT về nhân sự Quản lý nhân sự 6. SƠ ĐỒ LUỒNG DỮ LIỆU (DFD) CỦA HỆ THỐNG 6.1. Sơ đồ DFD mức 0 của hệ thống quản lý nhân sự Thay đổi nhân sự Y/c tìm kiếm Y/c báo cáo KQ tìm kiếm DL lên báo cáo KQ tìm kiếm 3.0 1.0 2.0 Cập nhật Lập báo cáo Tra cứu Báo cáo Cán bộ quản lý nhân sự Hồ sơ nhân viên DL đã xử lý 6.2. Sơ đồ DFD mức 1 của hệ thống 6.2.1 Chức năng cập nhật hồ sơ CB Quản lý Hồ sơ nhân viên ThôngTin Lưu trữ Lý lịch nhân viên 6.2.2 Chức năng tra cứu tìm kiếm TK theo TĐVH TK theo PB TK theo NS TK theo CV TK theo tên NV Y/c tìm kiếm Y/c tìm kiếm KQ TK Y/c TK KQ TK Y/c TK KQ tìm kiếm Y/c tìm kiếm KQ tìm kiếm Y/c tìm kiếm Ban GĐ, CB Quản lý Dữ liệu Dữ liệu Dữ liệu Dữ liệu KQ tìm kiếm Dữ liệu Dữ liệu KQ tìm kiếm Ban GĐ, CB Quản lý TK theo tên NV Hồ sơ nhân viên TK theo MNV 6.2.3 Chức năng báo cáo của hệ thống T.T Lương KQ báo cáo Hồ sơ nhân viên Hồ sơ nhân viên Dữ liệu Cán bộ Quản lý NS KQ báo cáo T.T Nhân viên Hồ sơ nhân viên Dữ liệu KQ báo cáo T.T QTCT Dữ liệu Hồ sơ nhân viên Dữ liệu T.T QTĐT KQ báo cáo Lương nhân viên Quá trình ĐT Quá trình CT Lý lịch NV 7.SƠ ĐỒ QUAN HỆ THỰC THỂ (Relationships) 8. THIẾT KẾ CÁC BẢNG (CSDL) 8.1 tblLyLich (Lý lịch) STT Tên trường Kiểu DL Độ rộng Giải thích 1 MaNV Text 10 Mã nhân viên 2 MaPB Text 10 Mã phòng ban 3 HoVaTen Text 25 Họ và tên 4 NgaySinh Date/Time Ngày sinh 5 GioiTinh Text 10 Giới tính 6 DienThoai Number 10 Điện thoại 7 DiaChiTT Text 30 Địa chỉ 8 QueQuan Text 20 Quê quán 9 TonGiao Text 10 Tôn giáo 10 HonNhan Text 10 Hôn nhân 11 NgayVaoBC Date/Time 12 HeSoLuong Text 10 Hệ số lương 13 TrinhDo Text 10 Trình độ 8.2 tblPhongBan (Phòng ban) STT Tên trường Kiểu DL Độ rộng Giải thích 1 MaPB Text 10 Mã phòng ban 2 TenPB Text 30 Tên phòng ban 3 DiaDiem Text 30 Địa điểm 4 DienThoai Text 15 Điện thoại 8.3 tblDienBienLuong (Diễn biến lương) STT Tên trường Kiểu DL Độ rộng Giải thích 1 MaNV Text 10 Mã nhân viên 2 NgayLenLuong Date/Time Ngày lên lương 3 HeSoLuongMoi Number Hệ số lương mới 8.4 tblQuaTrinhCongTac (Quá trình công tác) STT Tên trường Kiểu DL Độ rộng Giải thích 1 MaNV Text 10 Mã nhân viên 2 ChucVu Text 10 Chức vụ 3 NgayBD Date/Time Ngày bắt đầu chức vụ 4 NgayKT Date/Time Ngày kết thúc chức vụ 8.5 tblQuaTrinhDaoTao (Quá trình đào tạo) STT Tên trường Kiểu DL Độ rộng Giải thích 1 MaNV Text 10 Mã nhân viên 2 NoiDaoTao Text 30 Nơi đào tạo 3 NoiDung Text 50 Nội dung đào tạo 4 NgayBD Date/Time Ngày bắt đầu đào tạo 5 NgayKT Date/Time Ngày kết thúc đào tạo 9.Một số giao diện của trang Web: PHỤ LỤC: HƯỚNG DẪN CÀI ĐẶT TRANG WEB QUAN LÝ NHÂN SỰ 1. Cài đặt IIS (Internet Information Service) Start-> Setting->Control Panel-> Add or remove programs-> Add/remove Windows Components-> Internet Information Service (IIS) 2. Copy thư mục qlns trong CD vào ổ cứng, ví dụ E:\qlns 3. Khởi động IIS, chọn Default Web site 4. Tạo thư mục ảo qlns chỉ đến địa chỉ của thư mục chứa Web site 5. Chọn Home Directory của Default Web site là thư mục chứa Web site Default Web site-> Properties-> Home Directory: E:\qlns 6. Chọn quyền cho thư mục đặt Web site E:\qlns-> Properties->Sharing 7. Open IIS-> chọn Default Web site-> qlns-> Browse trang Home.asp

Các file đính kèm theo tài liệu này:

  • docxTin18.docx