Ưu điểm của loại này là đơn giản, thích hợp cho các ứng dụng nhỏ và vừa.Tuy nhiên nó cũng có một số nhợc điểm: Do phần tính toán nghiêng về phíaClient nên đòi hỏi Client phải có cấu hình
Trang 1Trờng đại học vinh Khoa công nghệ thông tin
Trần hải việt Nguyễn quốc khánh
Thiết kế và xây dựng website kinh doanh máy tính
tóm tắt đồ án tốt nghiệp đại học
kỹ s công nghệ thông tin
Vinh - 2010
Mở ĐầU
Có thể nói sự phát triển vợt bậc của Công nghệ thông tin đã giúp con
ng-ời hoá giải đợc rất nhiều bài toán nhng một điều quan trọng ở đây là không chỉ
đơn thuần là giải đợc bài toán đó mà là phơng pháp để giải bài toán đó nh thếnào sao cho có hiệu quả nhất Hầu hết trong tất cả các ứng dụng Web hiện nay
đều làm việc dựa trên mô hình 3 lớp và sử dụng công nghệ Ajax Việc ứngdụng mụ hỡnh này đã làm cho các phần của chơng trình trở nờn độc lập hơn,
đáng tin cậy và do đó tính bảo mật cao hơn Điều đặc biệt hơn là khi sử dụngAjax thì ngời dùng cảm thấy kết quả trả về ngay lập tức mà không cần nạp lại
Trang 2trang Những ứng dụng cú tớnh thay đổi thường xuyờn như ứng dụng Web giờđõy sẽ trở nờn linh động hơn khi có nhiều ngời truy cập hoặc trở nên dễ dànghơn trong việc thay thế và nâng cấp.
Đề tài “Thiết kế và xõy dựng Website kinh doanh mỏy tớnh” minh họa
cho việc ứng dụng mụ hỡnh 3 lớp và cụng nghệ Ajax
Nội dung của đề tài gồm cú 3 chương:
Chương I : Tổng quan về đề tài
Chương II : Tỡm hiểu về mụ hỡnh 3 lớp và cụng nghệ Ajax
Chương III: Ứng dụng mụ hỡnh 3 lớp xõy dựng Website “Thiết kế
và xõy dựng website kinh doanh mỏy tớnh ”Chỳng tụi xin chõn thành cảm ơn sự giỳp đỡ của Thầy giỏo TS Lờ AnhNgọc, cỏc thầy cụ giỏo trong Khoa cụng nghệ thụng tin và cỏc bạn bố đó giỳp
đỡ chỳng tụi trong quỏ trỡnh thực hiện đồ ỏn
Mặc dự đó cố gắng hoàn thành đồ ỏn trong phạm vi và khả năng chophộp nhưng chắc chắn sẽ khụng trỏnh khỏi những thiếu sút Chỳng tụi rấtmong nhận được sự thụng cảm, gúp ý của cỏc Thầy, Cụ và cỏc bạn
Nhúm sinh viờn thực hiện Trần Hải Việt NGUYễN qUốC kHáNH CHƯƠNG I:Tổng quan đề tài
1.1 Lý do chọn đề tài
Hiện nay, kinh tế thị trường đang phỏt triển nờn nhu cầu mua sắm củamọi người cũng được nõng cao Cựng với sự phỏt triển của Cụng Nghệ ThụngTin, Internet đang trở thành một người bạn thõn thiết của mọi người dõn nờnviệc thiết kế một Website mua bỏn qua mạng là để nhằm đỏp ứng một phầnnhu cầu mua sắm của mọi người tiết kiệm thời gian và chi phớ đi xem sảnphẩm trực tiếp, do đú WebSite bỏn hàng qua mạng sẽ là một người bạn hữuớch đối với những người hay lướt web
Trang 31.2 Phạm vi đề tài
Shop Online nhằm phục vụ cho việc mua bán của một siêu thị máy tínhqua mạng Ngoài ra, hệ thống cần đợc thiết kế để có thể đợc áp dụng cho bất
kỳ một Siêu thị trực tuyến mua bán các loại sản phẩm nào
1.3 Nhiệm vụ đề tài
Để hoàn thành tốt đề tài thỡ bản thõn chỳng tụi cần phải tiến hành cỏccụng việc sau:
- Trước hết cần phải tỡm hiểu cỏch xõy dựng một trang web như thế nào
- Tỡm hiểu việc ứng dụng mụ hỡnh 3 lớp, cụng nghệ Ajax vào việc xõydựng website
- Tớch cực tỡm kiếm, khai thỏc thụng tin
- Tỡm hiểu cỏc hệ quản trị cơ sở dữ liệu hiện nay
- Nắm được cơ sở lý thuyết chung về thương mại điện tử và cỏc vấn đềtrong thương mại điện tử
- Tiến hành xõy chương trỡnh: Phõn tớch, thiết kế và lập trỡnh
1.4 Phơng pháp nghiên cứu
Để thực hiện cỏc cụng việc, mục tiờu trờn, chỳng tụi đó sử dụng cỏcphương phỏt nghiờn cứu:
- Phương phỏp phõn tớch và tổng hợp lý thuyết
- Phương phỏp nghiờn cứu tài liệu
- Tham khảo cỏc website về thương mại điện tử
Trang 4Chơng II Tìm hiểu về mô hình 3 lớp và công nghệ ajax 2.1 Tìm hiểu về mô hình đa lớp
2.1.1 Mô hình 1 lớp
Có thể nói mô hình Client/Server là mô hình có ảnh hởng lớn nhất đếnngành công nghệ thông tin Mô hình Client/Server đã biến những máy tínhriêng lẻ có khả năng xử lý thấp thành một mạng các máy chủ (Server) và máytrạm (workstation) có khả năng xử lý gấp hàng ngàn lần những chiếc máy tínhmạnh nhất Mô hình Client/Server giúp cho việc giải quyết những bài toánphức tạp một cách trở nên dễ dàng bằng cách phân chia bài toán đó thànhnhiều bài toán con và giải quyết từng bài toán con một Nhng quan trọng hơnhết không phải là việc giải những bài toán lớn mà là cách thức giải bài toán
Ứng dụng đầu tiên của mô hình Client/Server là ứng dụng chia sẻ file(do các tổ chức có nhu cầu chia sẻ thông tin giữa các bộ phận trong tổ chức đ -
ợc dễ dàng và nhanh chóng hơn) Trong ứng dụng này, thông tin đợc chứatrong các file và đợc đặt tại một máy chủ (Server) của một phòng ban Khi mộtphòng ban khác có nhu cầu trao đổi thông tin với phòng ban này thì sẽ sử dụngmột máy khách (Client) kết nối với máy chủ (Server) và tải nhứng file thôngtin cần thiết về
2.1.2 Mô hình hai lớp
Mô hình hai lớp là một sự phát triển từ ứng dụng chia sẻ file ở trên.Trong ứng dụng chia sẻ file, ta thay thế file Server bằng một hệ thống quản trịcơ sở dữ liệu (DBMS) Khi Client cần thông tin từ cơ sở dữ liệu (CSDL) nó sẽyêu cầu DBMS thông qua mạng máy tính giữa các phòng ban DBMS xử lýyêu cầu và sau đó trả về cho Client những thông tin mà Client yêu cầu
Ưu điểm của mô hình 2 lớp so với ứng dụng chia sẻ file là làm giảm bớt
đợc lu thông trên mạng Ở ứng dụng chia sẻ file, đơn vị truyền nhận giữaClient và Server là 1 file do đó khi Client yêu cầu thông tin từ Server thì Server
sẽ trả về cho Client toàn bộ một file có chứa thông tin đó
Trong khi ở mô hình hai lớp thì Server có thể trả về cho Client những gì màClient yêu cầu với đơn vị truyền nhận có thể tính bằng byte
Ngoài ra, hiện nay các DBMS còn cung cấp nhiều khả năng khác nh hỗ trợgiao dịch, cho phép nhiều ngời dùng thao tác trên cơ sở dữ liệu cùng lúc màvẫn đảm bảo đợc tính toàn vẹn của dữ liệu
Mô hình hai lớp đợc chia làm 2 loại
Trang 5a Tính toán tập trung ở Client
ở loại này, phía Client phải đảm nhận cả 2 lớp là giao diện và chức năng, còn
Server chỉ làm nhiệm vụ lớp CSDL
Ưu điểm của loại này là đơn giản, thích hợp cho các ứng dụng nhỏ và vừa.Tuy nhiên nó cũng có một số nhợc điểm: Do phần tính toán nghiêng về phíaClient nên đòi hỏi Client phải có cấu hình đủ mạnh Cũng do phần chức năngcủa chơng trình nằm ở phía Client nên khi chơng trình cần nâng cấp thì sẽ rấtkhó khăn vì phải cập nhật lại chơng trình nằm ở toàn bộ các Client Do mọithao tác trên CSDL đều thông qua mạng giữa Client và Server nên tốc độ củachơng trình sẽ chậm đi
b Tính toán tập trung ở Server
ở loại này, Client chỉ đảm nhiệm phần giao diện còn Server thực hiện chứcnăng của lớp chức năng lớp CSDL Ngợc lại với loại thứ nhất thì loại này có u
điểm là giảm sự lu thông trên mạng và tốc độ nhanh hơn do lớp chức năng củachơng trình nằm ở Server, do đó mọi thao tác với CSDL của chơng trình đều đ-
ợc thực hiện ngay trên Server và thông tin lu thông trên mạng chỉ là những kếtquả đợc trả về cho ngời dùng sau khi đợc tính toán Mặt khác, do phần lõi củachơng trình đợc đặt tập trung tại Server nên việc cập nhật chơng trình sẽ dễdàng hơn Tuy nhiên, do công việc đợc tập trung quá nhiều tại Server nên đòihỏi cấu hình Server phải đủ mạnh, đặc biệt là khi có nhiều Client truy xuất tới
Database ServerDatabase ServerDBMS
Data access logic
Data access logic
Presentation Business logic
business logic
P resentation Business logic
business logic
Trang 6Presentation (Lớp giao diện)
Business Logic (Lớp chứa các hàm)
Data Access (Lớp truy xuất đến cơ sở dữ liệu)
Mô hình 3 lớp mà Microsoft phát triển dùng cho các hệ thống dựa trênnền NET như sau:
Presentation
Trang 7Lớp này làm nhiệm vụ giao tiếp với người dùng để thu thập dữ liệu vàhiển thị kết quả dữ liệu thông qua các thành phần trong giao diện người sửdụng Lớp này sẽ sử dụng các dịch vụ do lớp Business Logic cung cấp.
Trong lớp này có 2 thành phần chính là User Interface Components và User Interface Process Components
UI Components là những phần tử chịu trách nhiệm thu thập và hiển thịthông tin cho người dùng Trong ASP.NET thì những thành phần này có thể làcác TextBox, các Button, DataGrid
UI Process Components: Là thành phần chịu trách nhiệm quản lý các quy trìnhchuyển đổi giữa các UI Components
Nhận xét: Lớp này không nên sử dụng trực tiếp các dịch vụ của lớp Data Access mà nên sử dụng thông qua các dịch vụ của lớp Business vì khi sử dụng trực tiếp như vậy có thể bỏ qua các ràng buộc, các logic nghiệp vụ mà ứng dụng cần phải có.
Business Logic
Lớp này thực hiện các nghiệp vụ chính của hệ thống, sử dụng các dịch
vụ do lớp Data Access cung cấp, và cung cấp các dịch vụ cho lớpPresentation Trong lớp này có các thành phần chính là Business Components,Business Entities, Business Workflows và Service Interface
Service Interface là giao diện lập trình mà lớp này cung cấp cho lớpPresentation sử dụng Lớp Presentation chỉ cần biết các dịch vụ thông qua giaodiện này mà không cần phải quan tâm đến bên trong lớp này được thực hiệnnhư thế nào
Business Entities là những thực thể mô tả những đối tượng thông tin mà
hệ thống xử lý Trong ứng dụng chúng ta các đối tượng này là các nhóm sảnphẩm (CategoryInfo), sản phẩm (ProductInfo), tài khoản (AccountInfo)
Business Components là những thành phần chính thực hiện các dịch vụ
mà Service Interface cung cấp Trong ứng dụng của chúng ta, lớp này sẽ chứa
Trang 8làm nhiệm vụ cung cấp các dịch vụ quản lý nhóm sản phẩm, sản phẩm, tàikhoản (thêm, xóa, cập nhật, xem chi tiết, lấy danh sách ).
Service Agents là những thành phần trợ giúp việc truy xuất các dịch vụbên ngòai một cách dễ dàng và đơn giản như truy xuất các dịch vụ nội tại
Các lớp này giao tiếp với nhau như thế nào? Ví dụ trong ứng dụng của
chúng ta có thao tác đăng nhập tài khoản thì các lớp sẽ tương tác với nhau nhưsau:
Lớp Presentation: Trình bày một web form, có các Textbox cho phép người sử dụng nhập tên tài khoản và mật khẩu
Khi người dùng nhấn nút Đăng nhập trên form này, ứng dụng sẽ thực hiện chức năng đăng nhập tài khoản
Lớp Business để cung cấp dịch vụ login, thành phần
da_AccountBusiness sẽ cung cấp hàm Login
Trang 9Lớp Data Access cú thành phần là AccountContext sẽ cung cấp hàm để kiểm tra tài khoản và mật khẩu trong cơ sở dữ liệu.
Như vậy chỳng ta cú thể thấy rừ những ưu điểm của mụ hỡnh 3 lớp so với cỏc
mụ hỡnh trước như sau:
- Tớnh bảo mật cao hơn do cú nhiều lớp (3 lớp)
- Cỏc phần của chương trỡnh độc lập nờn chương trỡnh trở nờn linh động hơnkhi cú nhiều người truy cập hoặc trở nờn dễ dàng hơn trong việc thay thế vànõng cấp
- Việc sử dụng cỏc Stored Procedure trong SQL Server 2008 đó làm giảm việclưu thụng trờn mạng rất nhiều
- Do đó mô hình này rất thích hợp với những ứng dụng có yêu cầu thay đổi ờng xuyên nh ứng dụng Web
th-2.1.4 Minh họa tạo một ứng dụng 3 lớp
Chỳng ta cú thể nhỡn thấy rất rừ mụ hỡnh 3 lớp trong ứng dụng vừa tạo ra nhưsau:
Trang 102.2 Giới thiệu về công nghệ Ajax
2.2.1 Định nghĩa Ajax
Ajax là từ viết tắt của Asynchronous Javascript và XML: là bộ công cụ chophép tăng tốc ứng dụng Web bằng cách cắt nhỏ dữ liệu hiển thị và hiển thịnhững gì cần thiết thay vì tải đi tải lại toàn bộ trang web
2.2.2 So sánh web truyền thống và ứng dụng web có Ajax
Rõ ràng điểm khác biệt là thay vì phải tải cả trang Web thì với Ajax chỉcần tải về phần của trang Web mà muốn thay đổi Điều này giúp cho ứng dụngWeb phản hồi nhanh hơn, thông minh hơn
ở các ứng dụng web truyền thống, Client sẽ gửi HTTP Request đến web Server
và web Server sẽ gửi trả Response chứa các thông tin dới dạng HTML và CSS.Ajax cho phép tạo ra một Ajax Engine nằm giữa giao tiếp này Khi đó, các yêucầu gửi Resquest và nhận Response do Ajax Engine thực hiện Thay vì trả dữliệu dới dạng HTML và CSS trực tiếp cho trình duyệt, web Server có thể gửi trảdữ liệu dạng XML và Ajax Engine sẽ tiếp nhận, phân tách và chuyển hóathành XHTML + CSS cho trình duyệt hiển thị Việc này đợc thực hiện trên
Trang 11Client nên giảm tải rất nhiều cho Server, đồng thời ngời sử dụng cảm thấy kếtquả xử lý đợc hiển thị tức thì mà không cần nạp lại trang Mặt khác, sự kết hợpcủa các công nghệ web nh CSS và XHTML làm cho việc trình bày giao diệntrang web tốt hơn nhiều và giảm đáng kể dung lợng trang phải nạp Đây lànhững lợi ích hết sức thiết thực mà Ajax đem lại.
2.2.3 Một số ứng dụng phổ biến của Ajax
Tớnh năng "Auto save" (lưu tự động): Sử dụng Ajax cú thể bắt chướctớnh năng của cỏc phần mềm soạn thảo tự động lưu những gỡ người dựng đó gừđược sau một khoảng thời gian nhất định
Dịch trực tuyến: Cú thể sử dụng Ajax để tạo ra tớnh năng cho phộp người dựngchỉ cần chọn một từ trờn trang web và hiển thị từ tương ứng của cỏc ngụn ngữkhỏc (sử dụng cỏc dịch vụ của cỏc trang từ điển)
Cập nhật theo thời gian thực danh sỏch những gỡ người mua chọn và giỏ
cả mà khụng cần phải tải lại trang web Vớ dụ người dựng nhấn chọn thờm mộtmặt hàng, ngay lập tức nú xuất hiện trong danh sỏch bờn cạnh và tổng giỏ tiềncũng sẽ được cập nhật tương ứng
Kiểm tra trựng lặp: bạn tạo ra một mẫu đơn đăng ký với yờu cầu là tờnđăng nhập phải khụng bị trựng lặp với bất kỳ ai trong cơ sở dữ liệu Thụngthường, bạn sẽ bắt người dựng nhập hết thụng tin và gửi đơn đăng ký lờn mỏychủ và rồi mới kiểm tra Ajax sẽ kiểm tra ngay sau khi người dựng vừa mớichọn xong tờn
2.2.4 Vớ dụ về ứng dụng AJAX vào trang web ShopOnline
Khi người dựng sử dụng chức năng đăng nhập tài khoản:
Khi người dựng thực hiện thao tỏc click vào nỳt đăng nhập:
Trang 12Nếu hợp lệ thì website sẽ cho phép người dùng đăng nhập tài khoản áp dụngvào phiên giao dịch.
Nếu không hợp lệ thì sẽ trả về kết quả sai tên đăng nhập hoặc mật khẩu màkhông cần phải request lại toàn bộ trang web
Trang 13Tên chức năng
Ch¬ng 3: X©y dùng website kinh doanh m¸y tÝnh 3.1 Ph©n tÝch thiÕt kÕ c¬ së d÷ liÖu
3.1.1 Ph©n tÝch hÖ thèng vÒ mÆt chøc n¨ng
a Biểu đồ phân cấp chức năng
b Biểu đồ luồng dữ liệu
Biểu đồ luồng dữ liệu là phương tiện diễn tả chức năng xử lý và việc traođổi thông tin giữa các chức năng
Các ký hiệu được dùng trong biểu đồ
+ Luồng dữ liệu: Là một tuyến truyền dẫn thông tin vào hay ra một
+ Tác nhân ngoài: Một tác nhân ngoài là một thực thể ngoài hệ thống,
có trao đổi thông tin với hệ thống
Kí hiệu:
Tên luồng dữ liệu
Tên kho dữ liệu
Tên tác nhân ngo iài
Ph©n quyÒn qu¶n trÞ
CËp nhËt sản phẩm
Quản lý đơn đặt hàngQuản lý th«ng tin kh¸ch hµng
Xem đơn hàng đã mua
Trang 14Biểu đồ luồng dữ liệu mức khung cảnh
Trang 15ểu đồ dữ liệu mức đỉnh
Chú thích:
1 Thông tin về sản phẩm, nhóm sản phẩm,tài khoản
2.Thông tin về khách hàng, thông tin mua hàng
3 Thông tin yêu cầu xem, xóa đơn hàng.Thông tin giao hàng
4 Đáp ứng yêu cầu xem, xóa đơn hàng, giao hàng
Tỡm kiếm sp
Khỏch hàng
Kho dữ liệu
Giỏ hàng
Cập nhật Thụng tin Khỏch hàng
Trang 16Biểu đồ dữ liệu mức dưới đỉnh
Chức năng cập nhật thông tin
Cập nhật Nhóm sp
Cập nhật tài khoản
Cập nhật khách hàng
Cập nhật đơn hàng
Trang 17Chức năng tìm kiếm sản phẩm
Chức năng xem đơn hàng cũ
Chức năng quản lý đơn hàng
Người quản trị
Quản lý đơn hàng
Kho dữ liệuThông tin tìm kiếm
Kết quả tìm kiếm
Trang 18Chức năng giỏ hàng
3.1.2 Phân tích hệ thống về mặt dữ liệu
Các bảng dữ liệu
- Bảng Account: chứa thông tin về tài khoản hệ thống
- Bảng Category: chứa các thông tin về nhóm sản phẩm
- Bảng Product: chứa các thông tin về sản phẩm
- Bảng Order: chứa các thông tin về đơn đặt hàng
- Bảng OrderDetail: chứa thông tin chi tiết các đơn hàng
- Bảng DVHC: Chứa các thông tin về các tỉnh thành trong nớc
a Bảng Product
Khỏch hàng
Đưa vào giỏ hàng
Kho dữ liệuLựa chọn sản phẩm
Kết quả giỏ hàng