T ÌNH HÌNH NGHIÊN CỨU TRONG V À NGOÀI NƯỚC Cơ sở dữ liệu phân tán Distributed Database - CSDLPT không phải là phạm vi nghiên cứu mới đối với lĩnh vực công nghệ thông tin trên thế giới.
Trang 1ĐỀ TÀI NCKH CẤP SINH VIÊN
Trang 2ĐỀ TÀI NGHIÊN CỨU KHOA
Tp.Hồ Chí Minh tháng 4/2006
Trang 3GVHD : ThS Nguyễn Thành Sơn
M ỤC L ỤC
PHẦN 1 ĐẶT VẤN ĐỀ 1
I ĐỐI TƯỢNG NGHIÊN CỨU 2
II TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC 2
III.NHỮNG VẤN ĐỀ CÒN TỒN TẠI 2
PHẦN 2 GIẢI QUYẾT VẤN ĐỀ 3
I MỤC ĐÍCH ĐỀ TÀI 4
II PHƯƠNG PHÁP NGHIÊN CỨU 4
III NỘI DUNG 4
1 SƠ LƯỢC VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 4
1.1 Khái Quát Về Cơ Sở Dữ Liệu Phân Tán 4
1.1.1 Khái niệm 5
1.1.2 Ưu điểm và hạn chế của cơ sở dữ liệu phân tán 5
1.2 Các Mô Hình Quản Lý Phân Tán 5
1.2.1 Mô hình local application 5
1.2.2 Mô hình global application 6
1.2.3 Mô hình multiprocessor system 6
2 KỸ THUẬT REPLICATION TRONG SQL 7
2.1 Các Khái Niệm 7
2.2 Các Mô Hình Replication Thông Dụng 8
2.2.1 Publisher làm trung tâm 8
2.2.2 Subcriber làm trung tâm 8
2.2.3 Publisher làm trung tâm và distributor 8
2.2.4 Publisher và subcriber 9
3 JAVA SERVER PAGES VÀ KỸ THUẬT LẬP TRÌNH PHÂN TÁN ĐỐI TƯỢNG TRONG JAVA 10
3.1 Giới Thiệu Về Java Server Page 10
3.2 Cơ Chế Hoạt Động Của ISP 10
3.3 Mô Hình ứng Dung Của Java Server Page 10
3.3.1 Mô hình đơn giản 10
3.3.2 Mô hình ứng dụng kết hợp với serverlet 11
3.3.3 Mô hình ứng dụng kết hợp với enterprise javabeans 11
3.4 kỹ thuật lập trình phân tán đối tượng trong java 12
4 THIẾT KẾ CƠ SỜ DỮ LIỆU CHO HỆ THÔNG BÁN VÉ TÀU 14
4.1 Phân Tích Hệ Thống 14
4.1.1 Danh sách chi tiết các quan hệ và thuộc tính của nó 14
4.1.2 Lược đồ quan hệ 19
4.1.3 Sơ đồ nghiệp vụ BFD 20
4.1.4 Sơ đồ dòng dữ liệu DFD 21
4.2 Thiết Kế Cơ Sở Dữ Liệu Phân Tán 25
4.2.1 Lược đồ toàn cục 26
4.2.2 Lược đồ phân mảnh 27
4.2.3 Lược đồ định vị 27
Trang 45 XÂY DỰNG CHƯƠNG TRÌNH 28
5.1 Các Giải Pháp Lựa Chọn Để Xây Dựng Chương Trình 28
5.1.1 Mô hình quản lý 28
5.1.2 Sao chép dữ liệu 29
5.1.3 Truy vấn từ xa 30
5.1.4 Đồng bộ dữ liệu 30
5.1.5 Truy xuất đồng thời 31
5.1.6 Che dấu phân tán 31
5.2 Thiết Kế Giao Diện 32
IV.K ẾT QUẢ ĐẠT ĐƯỢC 37
1 TÍNH KHOA HỌC 37
2 KHẢ NĂNG TRIỂN KHAI ỨNG DỤNG VÀO THỰC TẾ 37
3 HIỆU QUẢ KINH TẾ XÃ HỘI 37
PHẦN 3 KẾT LUẬN 38
I KẾT LUẬN 39
II.ĐỀ NGHỊ 39
III TÀI LIỆU THAM KHẢO 40
Trang 5Lời Mở Đầu
Ngày nay, cùng với sự phát triển và ứng dụng rộng rãi của mạng Internet, thương mại điện tử trên Internet là vấn đề thời sự trên Thế giới và tại Việt Nam, thương mại điện tử là một hình thức để con người có thể tiết kiệm không gian và thời gian trong các giao dịch Vì vậy nó chắc chắn là xu hướng phát triển thương mại trong tương lai Tuy nhiên thương mại điện tử trên Internet có một số yêu cầu cần giải quyết đặc biệt là vấn đề truy cập đồng thời, và xử lý yêu cầu kip thời
Với nhu cầu đi lại bằng tàu ngày một tăng, hệ thống bán vé của các ga như hiện nay đã và đang gây khó khăn cho người mua cả về thời gian lẫn không gian, người mua phải đến ga và đợi để mua vé vì số lượng quầy bán vé hạn chế trong khi người mua vé đông, đặt biệt là trong những ngày lễ tết Vì vậy làm cho người mua tốn nhiều thời gian và dễ xãy ra tình trạng chen lấn nhau giữa những người mua
Vì những vấn đề trên, nhóm nghiên cứu quyết định chọn đề tài xây dựng Website phục vụ cho việc mua bán vé tàu để triển khai nghiên cứu
Tp.HCM, Ngày 15 Tháng 3 Năm 2006
Nhóm Sinh Viên Thực Hiện
Lê Quốc Chương Trần Công Mua
Trang 6Thầy ThS.Nguyễn Thành Sơn, trên cương vị là giáo viên
hướng dẫn đã tận tình truyền đạt cho nhóm những kiến thức bổ ích và
những kinh nghiệm quí báu của thầy đồng thời cũng đã giúp đỡ rất
nhiều để nhóm chúng em hoàn thành tốt đề tài
Ban Chủ Nhiệm khoa và các thầy cô ở khoa Công Nghệ Thông Tin Trường Đại Học Sư Phạm Kỹ Thuật TP Hồ Chí Minh đã nhiệt tình
chỉ bảo và tạo mọi điều kiện thuận lợi cho chúng em thực hiện đề tài
Trụ sở ga Hòa Hưng , TP Hồ Chí Minh đã hết lòng giúp đỡ, cung cấp những thông tin cần thiết phục vụ cho việc xây dựng Website
này
Cùng toàn thể các bạn sinh viên lớp 021101-Khoa CNTT đã
đóng góp những ý kiến bổ ích và đã nhiệt tình giúp đỡ nhóm chúng tôi
trong suốt thời gian thực hiện đề tài này
Nhóm Sinh Viên Thực Hiện
Lê Quốc Chương
Trang 7NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Giáo Viên Hướng Dẫn
ThS.Nguyễn Thành Sơn
Trang 8NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Giáo Viên Phản Biện
Trang 9PHẦN1 ĐẶT VẤN ĐỀ
Trang 10I ĐỐI TƯỢNG NGHIÊN CỨU
- Các vấn đề liên quan đến Cơ sở dữ liệu phân tán và quản lý các giao tác phân tán
- Các vấn đề về thương mại điện tử
- Cách thức của hoạt động bán vé tàu
II T ÌNH HÌNH NGHIÊN CỨU TRONG V À NGOÀI NƯỚC
Cơ sở dữ liệu phân tán (Distributed Database - CSDLPT) không phải là phạm
vi nghiên cứu mới đối với lĩnh vực công nghệ thông tin trên thế giới Từ những thập niên 70 của thế kỷ này đã có các tác giả người nước ngoài nghiên cứu và xuất bản các
ấn phẩm về CSDLPT, nhưng cũng chỉ mới là bước đầu của quá trình nghiên cứu và tìm hiểu và họ cũng chỉ đưa ra một phương pháp luận cho việc thiết kế các CSDLPT, đặc biệt là thiết kế các hệ quản trị phân tán
Tại Việt Nam, việc bùng nổ mạnh mẽ của Internet và công nghệ thông tin cùng với xu thế toàn cầu hóa trong mọi lĩnh vực như hiện nay thì CSDLPT đang thu hút sự quan tâm của rất nhiều nhà nghiên cứu lý thuyết lẫn sản xuất phần mềm Các nhà quản
lý cũng đang có xu hướng chuyển sang quản lý theo mô hình phân tán dữ liệu
Thương mại điện tử giờ đây thực sự đã trở thành một lỉnh vực sôi động của nền kinh tế, là xu hướng phát triển tất yếu của nền kinh tế trong thế kỷ 21- Kỷ nguyên công nghệ thông tin Đặc là đối với các nước đang phát triển như Việt Nam chúng ta, thương mại điện tử là cơ hội để thâm nhập vào thị trường toàn cầu
III NHỮNG VẤN ĐỀ TỒN TẠI
Hệ thống bán vé của các ga như hiện nay tồn tại một số vấn đề sau
- Người mua vé tốn nhiều thời gian vì phải đi tới tận ga và chờ để mua vé
- Làm cho người mua không chủ động được thời gian
- Số lượng người mua vé tập trung tại một nơi, dễ gây nên sự chen lấn lẫn nhau
- Hệ thống bán vé của mỗi ga riêng lẽ, nên việc thống kê tổng hợp chậm
- Hệ thống bán vé của mỗi ga được quản lý tập trung nên không có sự sao chép
dữ liệu, và phải ngừng hoạt động để phục hồi khi hệ thống bị hỏng
Trang 11PHẦN 2 GIẢI QUYẾT
VẤN ĐỀ
Trang 12I MỤC ĐÍCH ĐỀ TÀI
Nhóm sinh viên thực hiện khóa luận này với mục đích:
- Tìm hiểu về cơ sở dữ liệu phân tán và kỹ thuật lập trình phân tán
- Xây dựng cơ sở dữ liệu phân tán cho website mua bán vé tàu
- Mô phỏng web site mua bán vé tàu cho ga Sài Gòn và ga Hà Nội
II PHƯƠNG PHÁP NGHIÊN CỨU
Phương pháp nghiên cứu là phương pháp là phương pháp điều tra- phỏng vấn và tham khảo tài liệu.Tiến hành điều tra phỏng vấn để thu thập tài liệu và tình hình bán vé của các ga
Việc phân tích chức năng, dữ liệu cho hệ thống dựa vào phương pháp Structured Analysis(SA) và mô hình Entity Association Model (E/A)
Ngoài ra, còn thảo luận với bạn bè và tham khảo ý kiến của thầy cô
III NỘI DUNG
1 LÝ THUYẾT SƠ LƯỢC VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN
1.1 KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN
1.1.1 Khái Niệm
CSDL phân tán là một tập hợp nhiều CSDL có liên đới logic với nhau và được
phân bố trên một mạng máy tính
Liên đới logic tức là dữ liệu có một số thuộc tính ràng buột với nhau, có thể là về cấu trúc, có thể là về nội dung Điều này tạo nên sự khác biệt giữa CSDL phân tán với CSDL cục bộ hay các tập tin khác nhau trong mạng máy tính
Phân bố tức là dữ liệu của một cơ quan, đơn vị hay bộ phận nào đó, được lưu thành nhiều phần ở nhiều vị trí khác nhau, điều này giúp phân biệt giữa CSDL phân tán với một CSDL tập trung đơn lẻ
Để tạo ra một hệ Cơ sở dữ liệu phân tán, các tập tin không chỉ có liên quan logic với nhau mà chúng còn phải có cùng cấu trúc và được truy xuất qua một giao diện chung
Mục tiêu thiết kế của kỹ thuật thông tin phân tán này là chia sẽ chung tài nguyên, giảm tải đường truyền và đồng thời tạo sự thoải mái cho người sử dụng vì họ vẫn luôn
có cảm tưởng tài nguyên đang sử dụng là tài nguyên trên máy của mình
Trang 131.1.2 Ƣu Điểm Và Hạn Chế Của CSDL Phân Tán
a Ƣu điểm
Ưu điểm chính là cho phép chia sẻ thông tin, tài nguyên trong một phạm vi rộng lớn, giúp cho người thiết kế hệ thống xác định vị trí tối ưu nhất cho việc sắp xếp dữ liệu và xử lý trên hệ thống Ưu điểm này dẫn đến:
+ Nâng cao tính linh hoạt, mềm dẻo: Các máy tính và dữ liệu được đặt ở những
vị trí sao cho việc khai thác chúng đạt hiệu quả nhất Từng thành phần có thể thêm vào hoặc chuyển đi mà không làm ảnh hưởng đến các thành phần khác
+ Tính tự quản: Mỗi một vị trí, bộ phận sẽ được phân công hoạt động độc lập
Tuy nhiên vẫn có thể kết hợp lại lúc cần thiết
+ Nâng cao mức độ tin cậy: Trong hệ tập trung, khi phần cứng hay phần mềm bị
lỗi sẽ làm cho toàn bộ hệ thống ngừng hoạt động Đối với hệ phân tán, những hư hỏng chỉ ảnh hưởng một nhóm nhỏ, do đó khi có hư hỏng ở một nhóm nào đó thì chỉ có một mình nhóm đó ngừng hoạt động, các nhóm khác vẫn hoạt động bình thường
+ Nâng cao tốc độ và khả năng thi hành: Trong hệ tâp trung, do khối lượng dữ
liệu lớn, tốc độ thi hành chậm Đối với hệ phân tán, do dữ liệu phân thành các công việc riêng trên từng server, vì vậy tốc độ xử lý dữ liệu sẽ nhanh hơn
b Hạn chế:
+ Khó quản lý và đảm bảo an toàn: Trong hệ tập trung, chỉ cần một quyền để bảo
đảm an toàn cho mạng Trong hệ phân tán, việc quản lý rất tốn kém vì dữ liệu ở những nơi khác nhau cần các quyền khác nhau
+ Hiệu lực sử dụng thấp: Hệ tập trung đã được sử dụng lâu dài, cho nên đựơc
người sử dụng tin cậy hơn so với hệ phân tán
+ Thiếu đội ngũ triển khai và hỗ trợ kỹ thuật: Trong hệ tập trung, các nhà cung
cấp công cụ, phần mềm và các hỗ trợ kỹ thuật tích hợp trong một gói Hệ phân tán với nhiều nhà cung cấp khác nhau, để kết hợp lại cần có chuyên gia tích hợp Giải quyết vấn đề này gặp nhiều khó khăn, tốn kém
1.2 CÁC MÔ HÌNH QUẢN LÝ PHÂN TÁN
1.2.1 Mô hình “Local Application”
Là mô hình gồm có nhiều máy chủ và một máy chủ chứa cơ sở dữ liệu riêng Các máy chủ được kết nối với nhau thông qua hệ thống mạng LAN, một máy chủ có một trạm làm việc và chỉ truy xuất vào cơ sở dữ liệu của máy chủ đó
Trang 14Hình1.1 : Mô hình quản lý “Local Applications”
1.2.2 Mô hình Global Applications
mô hình này tương tự như mô hình “Local Application”, nhưng các máy chủ được kết nối với nhau thông qua mạng WAN Ngoài ra tại một trạm làm việc có thể yêu cầu sử
lý trên cơ sở dữ liệu của các trạm khác
Hình1.2 : Mô hình Global (Or Distributed) Applications
1.2.3 Mô hình Multiprocessor System
Với mô hình này, dữ liệu được lưu trữ phân tán trên trên nhiều máy chủ (backend computer), nơi thực hiện các chức năng về quản lý cơ sở dữ liệu Các chương trình ứng dụng được thực thi bởi một máy tính khác (fron-end computer) Khi cần thì các máy tính font-end này sẽ gởi các yêu cầu truy xuất về cơ sở dữ liệu cho các máy backend xử lý Giữa các máy tính được kết nối với nhau bởi một mạng LAN
Trang 15Hình1.3: Mô hình MULTIPROCESSOR SYSTEM
2 KỸ THUẬT REPLICATION TRONG SQL SERVER
2.1 Các Khái Niệm Cần Quan Tâm
Replication là một kỹ thuật quan trọng và hiệu quả trong CSDL phân tán Kỹ thuật replication trong SQL server cho phép bạn có thể sao chép dữ liệu thành nhiều bảng, mỗi bảng có thể đặt tại một vị trí khác nhau Ngoài ra kỹ thuật này cũng cho phép đồng bộ hoá dữ liệu một cách tự động để từ đó tất cả các bảng copy đều có cùng một giá trị
Replication có thể được thực hiện giữa những database trên cùng một server, hay trên những server khác nhau thông qua mạng LAN, WAN, hay Internet
Sau đây là những thành phần trong kỹ thuật Replication của SQL Server:
Publisher: Dữ liệu nguồn được lưu trữ và được xem như là một “nhà xuất bản” _
Publisher Server đóng vai trò là Publisher có nhiệm vụ chuẩn bị dữ liệu để tạo bảng sao cho những server khác Ngoài ra còn có nhiệm vụ nhận biết dữ liệu nào sẽ được sao chép, kiểm tra dữ liệu nào sẽ bị thay đổi và lưu giữ thông tin về tất cả các đợt phát hành bản sao (publication)
Subscriber: là server sẽ lưu trữ dữ liệu được replicated (bản sao của dữ liệu
chính) và ghi nhận sự thay đổi của dữ liệu
Distributor: Server lưu trữ thông tin về CSDL phân tán, các giao dịch
Distributor có thể hoạt động trên cùng server với Publisher hoặc có thể hoạt động trên những server tách biệt nhau Những thay đôỉ trên dữ liệu sẽ được Distributor lưu lại cho tới khi nó được gởi tới các Subscriber
Publication: 1 Publication có thể có một hoặc nhiều article Một article có thể là
một bảng, vài cột, vài hàng, hoặc là thủ tục đã được thiết kế trước Publishcation có thể được hiểu như đây là một tập hợp tất cả các dữ liệu cần để sao chép trong 1 lần relicated
Subscription: đây là quá trình đăng kí để được nhận dữ liệu replicated
Đăng kí có thể được tiến hành theo 2 cơ chế: Push hoặc Pull Subcription
- Push Subcription: Publisher sẽ xác định xem Subscriber có cần dữ liệu cập nhật hay không Nếu dữ liệu trên Subscriber chưa được cập nhật thì dữ liệu
từ phía Publisher sẽ được đẩy đến Subscriber
- Pull Subcription: Trong quá trình hoạt động, nếu Subscriber có nhu cầu đồng bộ hóa dữ liệu trước khi Publisher tự động cập nhật dữ liệu theo định kỳ, thì Subscriber có thể thực hiện cơ chế Pull để đưa ra yêu cầu cập nhật dữ liệu của Publisher ngay tại thời điểm đó
Bên cạnh đó, chúng ta cũng có thêm các tác nhân:
Snapshot agent: chuẩn bị cấu trúc và file dữ liệu dùng để sao chép, lưu trữ, và
ghi nhận những thông tin của CSDL phân tán
Log reader agent: di chuyển những giao dịch được đánh dấu là của replication
từ transaction trên Publicsher đến CSDL phân tán
Ditribution agent: di chuyển những giao dịch và những tác vụ snapshot được
lưu trữ trong những bảng CSDL phân tán đến Subcriber
Trang 16Merge agent: di chuyển và dàn xếp sự thay đổi dữ liệu phát sinh có thể xảy ra
sau khi snashot ban đầu được tạo
2.2.CÁC MÔ H ÌNH REPLICATION THÔNG DỤNG
2.2.1 Publisher Làm Trung Tâm
Một Publisher đóng vai trò chủ sở hữu duy nhất của CSDL cần sao chép Publisher này có thể sao chép dữ liệu cần thiết tới bất kỳ subcriber nào Dữ liệu tại Subcriber này thường là dữ liệu chỉ đọc Đây là mô hình mặc định của SQL Server
Hình 2.1: Mô hình sao chép với Publisher làm trung tâm
2.2.2 Subcriber Làm Trung Tâm
Các Publisher sao chép thông tin vào một bảng chung trên Subcriber Bảng chung này có một cột xác định vị trí (được xem là một phần của khóa) dùng để lựa chọn dòng cần sao chép Các Publisher sẽ sao chép những dòng dữ liệu tương ứng với những vị trí đó vào bảng này
Hình 2.2 : Mô hình sao chép với Subcriber làm trung tâm
2.2.3 Publisher Làm Trung Tâm Và Distributor
Tương tự mô hình đầu tiên, ngoại trừ Publisher và Distributor là hai máy khác nhau Cấu hình này sử dụng khi Publisher có khối lượng xử lý khá lớn Publisher phải được kết nối với Distributor bằng một liên kết truyền thông có tốc độ cao
Publisher / Distributor
Subcriber Bản sao dữ liệu
Publisher
Subcriber
Dữ liệu đã lọc
Publisher
Trang 17
Hình 2.4 : Mô hình sao chép với Publisher và Subcriber
Trên đây là bốn mô hình sao chép dữ liệu thông dụng Ngoài ra còn có thêm một
số mô hình sao chép khác như nhiều Publisher cho 1 bảng đơn, nhiều Subcriber kết hợp với nhiều Publisher,… Người viết đã không đề cập đến Có thể tham khảo thêm các mô hình này ở quyển Lập Trình Ứng Dụng và Chuyên Nghiệp, SQL Sever 2000 của tác giả Phạm Hữu Khang, nhà xuất bản Lao Động Xã Hội
Distributor
Subcriber
Dữ liệu Publisher
Publishing Subcriber
Subcriber
Dữ liệu Publisher / Distributor
Liên kết chậm, tốn kém
Trang 183 JAVA SERVER PAGE VÀ KỸ THUẬT LẬP TRÌNH ĐỐI TƢỢNG PHÂN TÁN
3.1 GIỚI THIỆU JAVA SERVER PAGES
Công nghệ JavaServer Pages(viết tắt là JSP) là công nghệ Java dựa trên nền J2EE
để xây dựng những ứng dụng chứa nội dung trang Web động hư:HTML, DHTML, XHTML và XML Công nghệ JSP có khả năng tạo ra những trang Web với nội dung linh hoạt và có vai trò quang trọng trong việc phát triển ứng dụng Web
Một trang JSP(.jsp) là một trang HTML hay XML trong đó có chứa mã Java, phần HTML có nhiệm vụ về việc định dạng văn bản, mã chương trình xen lẫn trong văn bản dùng để diễn đạt các thao tác xử lý dữ liệu hoặc các kết nối CSDL Trang Web truyền thống (dung HTML) được trình chủ gởi ngay đến cho máy khách(Client) khi có yêu cầu, còn các trang JSP phải chạy qua một nguồn máy (Engine) riêng biệt, ở
đó phần mã chương trình được tách ra khoải trang JSP, được thi hành và kết quả xử lý được ghi trở vào trang Web đang xét, tạo thành trang HTML thuần tuý
Trang JSP khi chạy, mã java sẽ được biên dịch thành JavaServlet và Servlet này chạy trên máy ảo Java(JVM) ở phía máy chủ (Web Server) Mã Java được biên dịch khi máy khách truy xuất trang JSP lần đầu tiên Tập tin jsp có cấu trúc giống như html truyền thống ,nhưng khác ở chổ là tập tin jsp có xen lẫn mã Java Mã Java được tách biệt với phần HTML thông thường bằng cặp dấu <% và %>
3.2 CƠ CHẾ HOẠT ĐỐNG CỦA JSP
Công nghệ JSP gắn liền với Servlet Mã Java trong trang JSP được biên dịch thành Servlet khi trình duyệt phía khách (Client) truy xuất trang JSP lần đầu tiên Quá trình diễn ra như sau: Mã Java được tách ra khoải nội dung bình thường của trang JSP, tạo thành mã nguồn của Servlet Kết quả xử lý của Servlet được thay vào chổ biểu thức JSP trong trang Web ban đầu(trang Web mà trình duyệt nhận được là trang
Trang 19Trong một ứng dụng đơn giản Browser sẽ trực tiếp gọi trang JSP Đến lược trang này phát sinh yêu cầu (có thể thông qua JDBC để nhận thông tin từ Database) nhằm tạo ra kết quả đáp ứng yêu cầu từ Browser.Sau đó HTML chuẩn trả yêu cầu về cho Browser
Ƣu điểm:
-Giúp việc lập trình đơn giản nhanh chống
-Dễ dàng phát sinh nội dung dựa trên yêu cầu và trạng thái của tài nguyên
Khuyết điểm:
-Gặp khó khăn khi nhiều Client truy xuất đồng thời những tài nguyên khan hiếm của hệ thống, do mỗi Client phải thết lập hay chia sẽ kết nối tài nguyên
3.3.2 Mô Hình ứng Dụng Kết Hợp Với Servlet
Client gửi yêu cầu trực tiếp đến JavaServlet JavaServlet phát sinh nội dung dộng, đống gói kết quả có được vào trong Bean, tiếp theo gọi trang JSP Trang JSP này sẽ truy xuất nội dung động của Bean và gửi kết quả dạng HTML đến Browser Phương pháp này tạo nên nhiều thành phần có thể dung lại và chia sẽ giữa nhiều ứng dụng
3.3.3 Mô hình kết hợp với cộng nghệ Enterprise JavaBeans
Trang JSP cũng có thể hoặc động như một MiddeTier trong một kiến trúc
Enterprise JavaBean Trong trường hợp này trang JSP tương tác với những tài nguyên Back-end dựa trên một thành phần Enterprise Java Beans
Hình 3.2 Trang jsp Đơn Giản
Hình 3.3 Trang Jsp và Servlet
Trang 213.3.4 Kỹ Thuật Lập Trình Phân Tán Đối Tƣợng Trong Java
3.3.4.1 Kỹ Thuật RMI
RMI ( Remote Method Invoke) mang ý nghĩa triệu gọi phương thức từ xa Đây là cách thức giao tiếp giữa các đối tượng Java có mã lệnh (bao gồm cả phương thức lẫn thuộc tính) nằm trên các máy khác nhau để chúng có thể triệu gọi lẫn nhau Nội dung chính của lập trình phân tán mã lệnh bằng RMI chính là cách để nạp một hàm hay một đối tượng ở một máy nào đó và gọi chúng từ một máy khác kết nối với máy đó thông qua một hệ thống mạng
Việc gọi phương thức của một đối tượng từ xa phức tạp hơn triệu gọi phương thức cục bộ Các đối tượng trên hai máy khác nhau hoạt động trên hai tiến trình (hay hai không gian địa chỉ) khác nhau nên việc tham chiếu biến, địa chỉ đối tượng là hoàn toàn khác nhau
Đối với lời gọi hàm trên máy cục bộ, các tham số truyền cho hàm thường được đặt vào ngăn xếp (stack) trong khi tham số truyền cho phương thức của đối tượng ở xa phải được đóng gọi và chuyển qua mạng để đến được với phương thức thực sự
3.3.4.2 Vai Trò Các Lớp Trung Gian(Stub Và Skeletion)
Lớp trung gian này được đặt ở cả 2 máy: máy khách (nơi gọi phương thức của đối tượng từ xa – stub : lớp móc) và máy chủ (nơi đối tượng thực sự được cài đặt để thực thi mã lệnh – skeletion : lớp nối) Hai lớp trung gian này có thể được coi như là hai người môi giới giúp các đối tựợng giao tiếp với nhau từ xa
Giả sử ta có lớp B là lớp được cài đặt trên máy chủ (B) để có thể triệu gọi từ xa Trình biên dịch của Java sẽ tạo ra 2 lớp trung gian : B_Stub.class và B_Skel.class Để máy A có thể gọi được đối tượng B trên máy B, ta phải đưa lớp trung gian B_Stub về máy A Khi đối tượng A trên máy A gọi C, nó sẽ chuyển lời gọi đến lớp B_Stub, lớp B_Stub có tránh nhiệm đóng gói tham số, truyền tham số qua mạng đến máy B Trên
Enterprise JavaBeans HTTP/HTML/XML
Hình 3.4 Trang Jsp và cộng nghệ Enterprise JavaBeans
Hình 4.5 lớp trung gian(Stub và Skeletion)
Trang 22máy B, lớp B_Skel sẽ nhận tham số và chuyển vào vùng không gian địa chỉ tương thích với đối tượng B sau đó gọi phương thức tương ứng Và theo đường ngược lại, kết quả nếu có sẽ được truyền cho B_Skel, lớp này đóng gói và truyền cho B_Stub và cuối cùng là đến đối tượng A Như vậy đối tượng A sẽ luôn nghĩ rằng nó đang gọi một đối tượng trên máy cục bộ, và giả sử khi đường truyền mạng gặp sự cố thì lớp B_Stub cũng sẽ thông báo cho đối tựợng A
Để có thể thực tập về RMI mà không có đủ 3 máy, bạn vẫn có thể dùng các máy
ảo Java (các cửa sổ DOS) để thay thế và lúc này địa chỉ truy xuất là 127.0.0.1
Hình sau sẽ trình bày cơ chế làm việc của trình khách, trình chủ, và bộ đăng ký
rmiregistry
Giải thích:
1 Đối tượng trên máy ảo B dùng hàm Naming.bind() hay Naming.rebind() để
đăng kí đối tượng với rmiregistry trên máy ảo A
C:\j2sdk1.4\bin\rmiregistry
A Máy ảo Java chạy rmiregistry (127.0.0.1)
C:\RMI\Hello>java Server Binding Object …
Waiting for client request
Trang 232 Chương trình khách chạy trên máy ảo C dùng hàm Naming.lookup() để yêu cầu
rmiregistry trên máy A trả về tham chiếu đến đối tượng
3 Bộ quản lý rmiregistry (A) trả về tham chiếu đến đối tượng tồn tại trên máy B
4 Chương trình khách chạy trên (C) sử dụng tham chiếu do hàm Naming.lookup()
vừa trả về để truy gọi phương thức từ xa trên máy B
4 THIẾT KẾ CƠ SỞ DỮ LIỆU CHO HỆ THỐNG QUẢN LÝ BÁN VÉ XE 4.1 PHÂN TÍCH HỆ THỐNG
4.1.1 Danh Sách Chi Tiết Các Quan Hệ Và Thuộc Tính Của Nó
T_Tau:
1 MaTau Mỗi tàu có một mã để phân biệt
với các tàu khác varchar(10)
2 TenTau Dùng để mô tả Tên tàu varchar(50)
3 SoToa Số toa có trong tàu Int 4
4 SoLuongTau Số lượng tàu có trong một mã tàu Int 4
varchar(10)
2 TenLoaiToa Dùng để mô tả tên của loại toa Nvarchar(50)
3 SoCho Số chổ tối đa có trong toa Itn 4
Trang 243 TongSoGhe T ồng s ố chổ có trong một tầng Int 4
4 SoGheBatDau Số ghế bắt đầu của một tầng Int 4
5 SoGheKetThuc Số ghế kết thúc của một tầng Int 4
varchar(10)
2 MaGa Mã ga là khoá ngoại tham chiếu
đến bảng T_Ga varchar(10)
3 GioDen Giờ đến của tàu ở một ga varchar(20)
4 GioDi Giờ đi của tàu tại một ga varchar(20)
T_GiaVe:
1 MaGaDi Mã ga đi là khoá ngoại tham
chiếu đến bảng T_Ga varchar(20)
2 MaGaDen Mã ga đến là khoá ngoại trong
bảng T_Ga varchar(20)
3 MaTau Mỗi tàu có một mã để phân biệt
với các tàu khác varchar(10)
4 MaLoaiToa M ã loại toa là duy nhất dùng để
phân biệt với các loại toa khác varchar(10)
1 MaChieuVe Mã chiều vé là khoá ngoại tham
chiếu đến T_ChieuPhanPhoiVe varchar(20)
2 MaGaDi Mã ga đi là khoá ngoại tham chiếu
đến bảng T_Ga varchar(20)
3 MaGaDen Mã ga đến là khoá ngoại tham
chiếu đến T_Ga varchar(20)
Trang 25varchar(20)
2 TenGa Bao gồm Sinh Viên, Công Nhân,
Nhân Viên, VIP varchar(50)
3 DiaChi Địa chỉ của ga varchar(50)
4 DienThoai điện thoại của khách hàng Numeric(9)
5 TruongGa Trưởng ga varchar(50)
T_ChiTietTau:
1 MaTau Mã tàu là khoá ngoại tham chiếu đến
bảng T_Tau Varchar(10)
2 MaToa Mã toa là duy nhất dùng để phân
biệt với các toa khác Int 4
3 MaLoaiToa
M ã loại toa loại toa là duy nhất dùng để phân biệt với các loại toa khác
đó ta có thể xác định tàu ,ghế quy định cho ga đi này
varchar(20)
2 MaTau
Là khoá ngoại tham chiếu đến bảng T_Tau.Mỗi tàu có một mã để phân biệt với các tàu khác
varchar(10)
3 MaToa Mã toa là duy nhất dùng để phân Int 4