Nếu không nhắc đến hình ảnh tĩnh và văn bản, những ứng dụng của tính đa phương tiện trên báo mạng điện tử bao gồm những phần chính sau: Khả năng tích hợp âm thanh audio Phát thanh là mộ
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
THÔNG TIN BÁO ĐIỆN TỬ
Giảng viên hướng dẫn:
TH.S - ĐỖ THỊ THANH TUYỀN
CN - HẦU NGUYỄN THÀNH NAM
Sinh viên thực hiện:
TRẦN QUANG TÍN - Mssv: 07520359
LÊ THANH QUANG - Mssv: 07520490 Lớp:
CNPM02 Khoa:
CÔNG NGHỆ PHẦN MỀM
Trang 2………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Khóa luận đáp ứng yêu cầu của kỹ sư phần mềm Tp HCM, ngày…… tháng…… năm……
Giảng viên hướng dẫn
Trang 3………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Khóa luận đáp ứng yêu cầu của kỹ sư phần mềm Tp HCM, ngày…… tháng…… năm……
Giảng viên phản biện
Trang 4LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn Khoa Công Nghệ Phần Mềm, trường Đại Học Công Nghệ Thông Tin Tp HCM đã tạo điều kiện tốt cho chúng em thực hiện đề tài tốt nghiệp này
Chúng em xin chân thành cảm ơn thầy Hầu Nguyễn Thành Nam, cô Đỗ Thị Thanh Tuyền, những người đã tận tình hướng dẫn, chỉ bảo chúng em trong suốt thời gian thực hiện đề tài
Chúng em cũng xin gửi lời cảm ơn sâu sắc đến quý Thầy Cô trong Khoa đã tận tình giảng dạy, trang bị cho chúng em những kiến thức quí báu trong những năm học vừa qua
Chúng em xin gửi lòng biết ơn sâu sắc đến Ba, Mẹ, các anh chị và bạn bè đã ủng hộ, giúp đỡ và động viên chúng em trong những lúc khó khăn cũng như trong suốt thời gian học tập và nghiên cứu
Mặc dù chúng em đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép, nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong sự cảm thông và tận tình chỉ bảo của quý Thầy Cô và các bạn
Nhóm thực hiện Trần Quang Tín & Lê Thanh Quang
Trang 5LỜI MỞ ĐẦU
Thời đại công nghệ phát triển với các dịch vụ internet rộng khắp đến từng nhà, nhu cầu con người ngày càng cao, thu thập nhiều thông tin từ báo và phương tiện truyền thông
Luận văn này cung cấp một cổng thông tin báo điện tử với đầy đủ các chức năng từ quản lý cho đến đọc giả Đồng thời cung cấp hệ thống chịu tải cao bằng việc
sử dụng kỹ thuật phân tán
Kết cấu chính của chương trình gồm 2 phần: front-end và back-end
Front-end bao gồm phần cho đọc giả và phần cho nhà quản trị
Back-end là hệ thống phân tán xử lý bên dưới nhằm đảm bảo cho hệ thống chạy tốt và chịu tải cao
Trang 6MỤC LỤC
Chương 1 Tổng quan cổng thông tin báo điện tử 1
1.1 Tổng quan 1
1.2 Tính đa phương tiện của báo điện tử 1
Chương 2 Kỹ thuật phân tán 6
2.1 Khái quát 6
2.2 Giới thiệu hệ phân tán 6
2.2.1 Định nghĩa 6
2.2.2 Phân loại hệ phân tán 7
2.2.3 Gọi thủ tục từ xa (RPC) 8
2.3 Giới thiệu hệ thống phân tán báo điện tử 10
2.3.1 Tổng quan 10
2.3.2 Các kỹ thuật sử dụng 10
2.3.3 Chi tiết hệ thống báo điện tử 10
Chương 3 Mô hình, chức năng nghiệp vụ cho cổng thông tin báo điện tử 13
3.1 Mô hình nghiệp vụ 13
3.1.1 Admin 13
3.1.2 Editor 14
3.1.3 Reporter 15
3.1.4 Người duyệt quảng cáo 16
3.1.5 Người duyệt bình luận 17
3.1.6 Khách hàng 18
3.2 Các chức năng chính 18
3.2.1 Phần người dùng 18
3.2.2 Phần quản lý 19
3.3 Quy trình phần mềm 24
3.4 Các kỹ thuật sử dụng trong luận văn 27
Trang 73.4.2 Thrift 45
3.4.3 Berkeley Database 60
Chương 4 Kiến trúc mô hình cổng thông tin báo điện tử trên hệ phân tán 63
4.1 Kiến trúc tổng quát 63
4.2 Kiến trúc các ứng dụng lưu trữ: 68
4.2.1 Giới thiệu 68
4.2.2 Các công nghệ sử dụng 68
4.2.3 Kiến trúc ứng dụng: 69
4.3 Vấn đề và giải pháp 75
4.4 Triển khai ứng dụng 77
4.5 Kết quả đo đạt hệ thống 81
4.5.1 Đo đạt hệ thống lưu trữ 81
4.5.2 Đo đạt từ phía người dùng 82
Chương 5 Kết luận và phát triển 84
5.1 Kết luận 84
5.2 Phát triển 84
TÀI LIỆU THAM KHẢO 85
Trang 8DANH MỤC HÌNH ẢNH
Hình 1: Mô hình hệ thống báo điện tử 12
Hình 2: Mô hình nghiệp vụ cho chức năng admin 13
Hình 3: Mô hình nghiệp vụ cho chức năng editor 14
Hình 4: Mô hình nghiệp vụ cho chức năng reporter 15
Hình 5: Mô hình nghiệp vụ người duyệt quảng cáo 16
Hình 6: Mô hình nghiệp vụ người duyệt bình luận 17
Hình 7: Mô hình nghiệp vụ khách hàng quảng cáo 18
Hình 8: Màn hình chính admin 20
Hình 9: Màn hình chính chủ biên 21
Hình 10: Màn hình chính phóng viên 22
Hình 11: Màn hình quản lý comment 23
Hình 12: Màn hình quản lý quảng cáo 24
Hình 13: Mô hình phát triển phần mềm 25
Hình 14: Kiến Trúc Của Struts 2 Framework 28
Hình 15: Tổng quan xử lý request trong Struts 2 30
Hình 16: Xử lý request trong Struts 2 30
Hình 17: Khai báo cấu hình struts bằng XML hoặc Annotations 37
Hình 18: Interceptor trong Action Life Circle 40
Hình 19: Ngôn ngữ hỗ trợ thrift 45
Hình 20: Kiến trúc thrift 47
Hình 21: Dịch vụ truy cập dữ liệu Berkeley DB 60
Hình 22: Kiến trúc front-end người dùng 63
Hình 23: Kiến trúc front-end quản lý 64
Hình 24: Mô hình khi server nhận một lệnh ghi 69
Hình 25: Mô hình khi server nhận một lệnh đọc 70
Hình 26: Quá trình ghi log số lần xem bài viết 76
Trang 9Hình 28: Bảng thống kê chi tiết server 79 Hình 29: Thông tin service 80
Trang 10Chương 1 Tổng quan cổng thông tin báo điện tử
Nội dung của chương 1 trình bày tổng quan về cổng thông tin báo điện
tử, về tiện ích cũng như sự phát triển của nó trong xã hội công nghệ hiện đại với internet diện rộng ngày nay
1.1 Tổng quan
Báo điện tử là loại hình báo chí mới ra đời từ sự kết hợp của ứng dụng công nghệ thông tin và truyền thông Nếu báo in có khuyết điểm về thời gian cập nhật thông tin chậm trễ do phải thực hiện in ấn, báo nói bị hạn chế về minh họa hình ảnh sống động thì báo điện tử là sự kết hợp tất cả trong một Báo điện tử ngày nay, có thể vừa có thông tin, hình ảnh, đoạn phim minh họa và cả đoạn âm thanh được truyền trên mạng Thông tin trên báo điện tử đi nhanh nhất so với các loại hình báo khác nhưng cũng khó kiểm soát nhất và dễ tạo nên những tin đồn thất thiệt nếu thông tin bị sai lệch Một đặc điểm quan trọng của báo điện tử chính là tính tương tác với người viết Báo điện tử vừa có thể tạo ra giao lưu với người đọc bằng nhiều hình thức khác nhau: giao lưu trực tuyến, bình chọn, bạn đọc góp ý
1.2 Tính đa phương tiện của báo điện tử
Đa phương tiện là thuật ngữ xuất phát từ từ “multimedia” trong tiếng Anh Khái niệm “đa phương tiện” xuất hiện từ khoảng giữa thế kỉ XX Cho đến nay, khái niệm này đã dần trở nên phổ biến để chỉ nhiều loại sản phẩm, phần mềm khác nhau trên máy vi tính và mạng Internet
Một trong những mốc quan trọng đánh dấu sự xuất hiện của tính đa phương tiện trên báo mạng điện tử là sự ra đời của world wide web vào đầu những năm 1990 Với khởi đầu là những trang web đơn giản được viết bằng ngôn ngữ siêu văn bản HTML (HyperText Markup Language), sự phát triển nhanh chóng của công nghệ và thế giới lập trình đã giúp số lượng các “phương tiện” được tích hợp trên các trang web ngày một đông đảo
Với báo mạng điện tử, một sản phẩm báo chí đa phương tiện phải bao gồm ít nhất từ hai trong những thành phần sau trở lên Đó là: văn bản (text), hình ảnh tĩnh và
đồ họa (still image & graphic), âm thanh (audio), hình ảnh động (video & animation)
và gần đây nhất là các chương trình tương tác (interactive program)
Trang 11Tóm lại, đa phương tiện trên báo mạng điện tử là việc sử dụng nhiều loại phương tiện (ngôn ngữ văn tự và phi văn tự) để thực hiện một sản phẩm báo chí Một sản phẩm báo chí đa phương tiện phải mang đến cho công chúng từ 2 đến 3 cách thức truyền tải trở lên
Với việc phát triển vượt bậc của công nghệ mạng, phần cứng và phần mềm, các sản phẩm báo mạng điện tử ngày càng tích hợp thêm nhiều “phương tiện” mới, với những cách thức thể hiện khác nhau Nếu không nhắc đến hình ảnh tĩnh và văn bản, những ứng dụng của tính đa phương tiện trên báo mạng điện tử bao gồm những phần chính sau:
Khả năng tích hợp âm thanh (audio)
Phát thanh là một loại hình báo chí đã có từ lâu đời, nhưng chỉ đến năm 1993, khi Internet Talk Radio, đài phát thanh trực tuyến đầu tiên ra mắt trên thế giới, khả năng đưa âm thanh đến với công chúng thông qua chính những tờ báo mạng điện tử mới chính thức được công nhận Nhưng những sản phẩm báo chí đa phương tiện có tích hợp âm thanh không đơn thuần giống như phát thanh thông thường Âm thanh ở đây, chỉ là một trong số những “phương tiện” để truyền tải thông tin đến cho công chúng, bên cạnh những phương tiện khác như hình ảnh, văn bản…
Việc vừa được “đọc” báo điện tử như thông thường, lại được “nghe” những thông tin liên quan ấy, đã khiến việc khai thác âm thanh trên báo mạng điện tử có một thời được coi như cơn sốt Bằng chứng là có tới gần 10.000 đài phát thanh trên thế giới đã có website riêng để truyền tải chương trình của mình không chỉ trên sóng phát thanh mà cả mạng Internet Bên cạnh việc cung cấp thông tin, nhiều website và các tờ báo mạng lớn còn cung cấp các chương trình giải trí, các trò chơi, âm nhạc… để công chúng có thể nghe hoặc tải về (download)
Khả năng tích hợp hình ảnh động (animation & video)
Hình ảnh động là một bước tiến lớn trong việc phát triển các trang web nói chung và báo mạng điện tử nói riêng
Hẳn ai cũng thấy sự phát triển thần kì của vô tuyến truyền hình trong thế kỉ 20
kể từ khi nó ra mắt và vị trí lớn mạnh của vô tuyến truyền hình với nền báo chí hiện nay Việc tích hợp video (bao gồm hình ảnh động và âm thanh) là một yêu cầu quan trọng giúp báo mạng điện tử vượt qua được loại hình báo chí tiền nhiệm Bản thân những đoạn video đã mang tính đa phương tiện (gồm cả hình ảnh động và âm thanh), được kết hợp thêm những “đặc sản” của báo in là hình ảnh tĩnh và văn bản, có thể nói báo mạng điện tử đã thâu tóm được toàn bộ những phương tiện ưu việt nhất của tất cả các loại hình báo chí từng có trong lịch sử
Trang 12Ngoại trừ video, báo mạng điện tử còn có thể tích hợp một sản phẩm khác: animation – chúng ta có thể tạm hiểu đó là những hình ảnh động – là sự kết hợp của nhiều hình ảnh tĩnh thay đổi, gần giống với nguyên lý làm phim hoạt hình Những hình ảnh động này có thể “không là gì” so với truyền hình, nhưng với báo in, nó cũng
là một ”niềm mơ ước” Một đoạn animation đôi khi có thể khiến một sản phẩm báo chí có tính hấp dẫn hơn hẳn “Trăm nghe không bằng một thấy”, rõ ràng những sản phẩm báo chí có tích hợp những video hay animation như thế cho người xem một cảm giác chân thật hơn nhiều so với chỉ những hình ảnh tĩnh hay văn bản thông thường
Khả năng tích hợp những chương trình tương tác khác
Không còn nghi ngờ gì nữa, đây chính là phương tiện duy nhất chỉ có trên báo mạng điện tử, phương tiện thể hiện sự vượt trội của báo mạng điện tử so với tất cả các loại hình báo chí khác
Trước tiên chúng ta cần phân biệt những chương trình tương tác trên báo mạng điện tử với “tính tương tác” của báo mạng điện tử Tính tương tác của báo mạng điện
tử - một ưu điểm tuyệt vời của báo mạng điện tử đã được nhiều người nhắc đến - là khả năng phản hồi, trao đổi thông tin của độc giả báo mạng điện tử với tờ báo, tác giả
Còn “những chương trình tương tác” (interactive programs) ở đây được hiểu là một trong những “phương tiện” truyền tải được tích hợp vào một sản phẩm báo mạng điện tử Với những chương trình này, công chúng của báo mạng điện tử có thể trực tiếp tham gia vào sản phẩm báo chí đa phương tiện đó, ví dụ tham gia chơi một trò chơi (game), trả lời câu hỏi hay làm trắc nghiệm và có ngay đáp án, tham gia những chương trình trực tuyến…
Phần mềm phổ biến nhất để thực hiện các chương trình tương tác trên hiện nay
là Adobe Flash Player (tiền thân là Macromedia Flash Player) được tích hợp trên những trình duyệt web thông dụng Khởi đầu chỉ là khả năng trình diễn những đoạn hình ảnh động, chương trình Flash dần được nâng cấp và có khả năng trình diễn âm thanh, video… và hiện nay với hệ thống ngôn ngữ lập trình Action Script được tích hợp, những nhà lập trình có thể thiết kế những trò chơi, những chương trình tương tác ngay với những đoạn flash
Ngoài Adobe Flash Player, một số ngôn ngữ lập trình cũng được áp dụng vào việc xây dựng các trang web để tăng thêm tính tương tác như Java Script, VB Script
Hiện nay, số lượng các sản phẩm báo chí đa phương tiện trên báo mạng điện tử Việt Nam còn phần nhiều mang tính giải trí Trong khi những thông tin chính trị xã hội gần như không có thì những chương trình như âm nhạc, phim truyện, hài
Trang 13phát sóng 1 số/1tuần , còn chương trình âm nhạc lại luôn cập nhật bài hát và có tới 3 số/1tuần Điều này khác hẳn với những tờ báo mạng điện tử nước ngoài có khai thác tính da phương tiện Ví dụ như CNN, những sản phẩm báo chí đa phương tiện chủ yếu là nhằm cung cấp tin tức thời sự Gần như ngay lập tức cùng với những mẩu tin ngắn bằng văn bản là những đoạn hình ảnh, âm thanh được truyền trực tiếp trên trang cnn.com đã tạo ra sự hấp dẫn, sống động đặc biệt cho công chúng
Hơn nữa, các tờ báo mạng điện tử Việt Nam có qúa ít sản phẩm đa phương tiện tự thực hiện mà chủ yếu vẫn là biên tập, sưu tầm, phát lại các chương trình của nhiều kênh truyền hình, các trang web chia sẻ video… Điều này cũng làm giảm tính chuyên nghiệp, tính hấp dẫn của hướng khai thác mới này Nhiều người vẫn chỉ coi tính đa phương tiện trên báo mạng điện tử như là một hình thức “vay mượn” của phát thanh, truyền hình
Ví dụ như trang vtc.vn có khá nhiều chương trình nhưng tất cả đều lấy từ đài truyền hình kỹ thuật số VTC Nhiệm vụ của phóng viên báo mạng điện tử VTC News chỉ là thêm ảnh minh hoạ và phần văn bản chú thích cho các chương trình đó
Chất lượng về mặt kỹ thuật của các sản phẩm báo chí đa phương tiện trên báo mạng điện tử Việt Nam chưa cao cũng là một hạn chế Phần âm thanh được xem là khá ổn với tốc độ nén 128 kb/s, tuy nhiên một số tờ vẫn sử dụng độ nén 32 kb/s dẫn tới không đảm bảo chất lượng cho các chương trình, đặc biệt là các chương trình âm nhạc
Về phần video, độ phân giải cho file video thông thường trên nhiều tờ báo mạng điện tử Việt Nam là 320x240 pixel, độ nén 416 kb/s cho chất lượng hình ảnh ở mức trung bình nếu xem khung hình nhỏ, nhưng rất tệ nếu muốn xem ở độ phân giải cao hay xem toàn màn hình (full screen) Để vượt được truyền hình, phần chất lượng hình ảnh video trên báo mạng điện tử còn cần phải cải thiện nhiều, ít nhất phải ngang bằng với truyền hình phát sóng analog
Hiện nay ở Việt Nam đã bắt đầu cung cấp dịch vụ ADSL 2+ với tốc độ tải lên tới 22 Mb/s đủ sức cho việc xem những video có độ phân giải cao với tốc độ nén khoảng dưới 3 Mb/s Tuy nhiên, dịch vụ này còn chưa phổ biến mà chủ yếu đang sử dụng dịch vụ ADSL thông thường với tốc độ chỉ khoảng 2Mb/s
Những tồn tại trên xuất phát từ cả nguyên nhân chủ quan và khách quan Đó là
cơ sở hạ tầng gồm đường truyền và hệ thống máy móc, công nghệ ở nước ta còn nhiều yếu kém Nhiều nhà cung cấp đường truyền Internet còn chạy theo số lượng thuê bao mà ít nghĩ đến chất lượng đường truyền Vì vậy, việc truyền tải các chương trình “nặng” còn gặp nhiều khó khăn Trong khi bản thân các cơ quan báo mạng điện
tử cũng không có đủ kinh phí để mua công nghệ, trang trải cho hệ thống máy móc đắt
Trang 14tiền… Một nguyên nhân khác xuất phát từ chính trong nhận thức của ban lãnh đạo nhiều tờ báo mạng điện tử Họ chưa đánh giá hết sức ảnh hưởng và vai trò quan trọng của tính đa phương tiện nên chưa thực sự đầu tư, chú ý cả về vật chất lẫn con người
Năm 1993, chương trình phát thanh trực tuyến trên báo mạng điện tử xuất hiện đầu tiên trên thế giới Tuy nhiên, chỉ khoảng bốn năm sau, những chương trình tương
tự đã xuất hiện tại Việt Nam Khai thác các chương trình đa phương tiện trên báo mạng điện tử Việt Nam tuy mới chủ yếu là nhằm mục đích giải trí và chất lượng của những chương trình đó cũng chưa thực sự làm hài lòng công chúng Nhưng việc những từ báo mạng điện tử Việt Nam đã có những bước thử nghiệm đầu tiên trong việc khai thác tính năng mới mẻ này đã góp phần đa dạng hoá các phương thức truyền tải thông tin đến với công chúng của báo mạng điện tử Nhiều độc giả của loại hình báo chí này đã dần quen với những cách thức tiếp cận mới như “nghe”, “xem” bên cạnh việc “đọc” đã quá quen thuộc
Đặc biệt, trong thời đại công nghiệp hiện nay, công chúng không thể có thời gian để xem, nghe hết các chương trinh phát thanh, truyền hình và như thế một số lượng không nhỏ những chương trình hấp dẫn đã bị bỏ lỡ Song với những ưu điểm vượt trội của mình, báo mạng điện tử không những có thể lưu giữ và phát lại cho công chúng xem những chương trình hấp dẫn đó bất kỳ lúc nào mà còn giúp họ tự lựa chọn
và sắp xếp những chương trình họ muốn xem theo một thứ tự như ý muốn Điều đó có nghĩa là mỗi người đã có một kênh truyền hình của riêng mình “Truyền hình theo yêu cầu” không còn là mơ ước xa vời!
Trang 15Chương 2
Kỹ thuật phân tán
Nội dung của chương 2 trình bày kỹ thuật phân tán ở tầng back-end của
hệ thống báo điện tử, về lưu trữ cũng như khả năng chịu tải
2.1 Khái quát
Công nghệ thông tin và viễn thông ngày càng phát triển, đòi hỏi nhu cầu về xử
lí thông tin ngày càng cao, nhanh hơn nhiều lần tốc độ phát triển của tài nguyên phần cứng và phần mềm Có nhiều vấn đề đặt ra mà các hệ thống tập trung thông thường không đáp ứng được, do tốc độ xử lí còn hạn chế Xây dựng một hệ thống phân tán có khả năng xử lí đồng thời một bài toán trên nhiều máy tính là một hướng giải quyết khả thi và đã được chứng minh tính hữu dụng Hệ thống phân tán còn tạo nhiều thuận
lợi trong việc chia sẻ thông tin trên toàn thế giới
Có nhiều dạng hệ thống phân tán khác nhau và nhiều khó khăn để thiết kế Mục đích chính của hệ thống phân tán là kết nối người sử dụng và tài nguyên một cách trong suốt, mở, và có thể nới rộng được Một cách lý tưởng thì hệ thống này có khả năng chịu lỗi tốt hơn và mạnh hơn nhiều hệ thống tổ hợp máy tính độc lập khác
Ngày nay, các Web Service trở thành những giao thức chuẩn của các hệ thống
phân tán Ví dụ: Một ví dụ của hệ thống phân tán là World Wide Web Khi chúng ta
xem một trang web trên một site, thực ra chúng ta đang sử dụng một hệ thống phân
Trang 16Trong ba định nghĩa trên thì định nghĩa một được xuất phát từ quan điểm người dùng còn định nghĩa hai và định nghĩa ba được xuất phát từ quan điểm kỹ thuật
Dù xuất phát từ quan quan điểm nào đi nữa, các định nghĩa trên đây đều ngầm chỉ ra rằng hai thành phần quan trọng nhất của hệ phân tán chính là hệ thống máy tính
và phần mềm phân tán Như vậy, chúng ta có công thức tượng trưng sau đây : Hệ phân tán = Mạng máy tính + Phần mềm hệ phân tán
Việc hình dung ra khái niệm hệ phân tán mà chỉ dựa vào một định nghĩa lý thuyết như trên quả thật là rất khó khăn Sau đây là một số ví dụ điển hình về hệ phân tán để minh họa cho định nghĩa trên:
Tập hợp các Web server: cơ sở dữ liệu phân tán của các siêu văn bản và các tài liệu đa phương tiện
Hệ thống file phân tán trên một mạng LAN
Hệ thống phân giải tên miền DNS
2.2.2 Phân loại hệ phân tán
2.2.2.1 Hệ thống phân tán tính toán (Distributed Computing System):
Là hệ thống giải quyết các nhiệm vụ tính toán hiệu năng cao, các hệ thống có khối lượng tính toán lớn Từ một nhiệm vụ lớn ta lại phân chia thành các nhiệm vụ nhỏ hơn, thành các hệ thống tính toán song song
2.2.2.2 Cluster computer system:
Hệ thống tính toán phân cụm Hệ thống được ghép thành các cụm máy tính giống nhau, mỗi cụm được kết nối với nhau thông qua một mạng tốc độ cao
Nó trở nên phổ biến khi tỉ lệ hiệu năng/giá của các máy tính cá nhân và máy trạm được cải thiện
Được sử dụng cho tính toán song song, nơi mà một chương trình được chạy song song trên nhiều máy
2.2.2.3 Grid computer system:
Hệ thống tính toán lưới Các máy tính trong hệ thống không cần phải giống nhau về platform Nó giúp chúng ta khai thác hiệu quả hơn các tài nguyên nhàn rỗi
Tài nguyên từ nhiều tổ chức khác nhau được gán với nhau để cho phép sự hợp tác giữa một nhóm người, hoặc giữa các phân viện Sự hợp tác này còn được gọi là tổ chức ảo (virtual organization)
Phân biệt với Cluster computer system:
Trong hệ thống tính toán cụm, phần cứng phía dưới là một tập hợp các máy trạm giống nhau, được kết nối với nhau bởi một mạng LAN tốc độ cao, và cùng chạy một hệ điều hành giống nhau
Trang 17Trong hệ thống tính toán lưới, nó bao gồm một hệ phân tán được xây dựng như
là một tập hợp của các hệ thống máy tính, mỗi hệ thống máy tính có thể thuộc về các lĩnh vực hành chính khác nhau, và cúng có thể có phần cứng, phần mềm cũng như công nghệ mạng được triển khai khác nhau
2.2.2.4 Hệ thống thông tin phân tán (Distributed Information System):
Là các hệ thống tích hợp các ứng dụng khác nhau thành một hệ thống thông tin doanh nghiệp
Có rất nhiều loại phân tán khác nhau, tùy từng nhu cầu mà chọn những giải pháp thích hợp Hệ thống báo điện tử sử dụng hệ thống thông tin phân tán Thông tin
dữ liệu được chia ra nhiều nơi và dùng mô hình dịch vụ triệu gọi phương thức từ xa
để truyền tải dữ liệu qua mạng để tăng khả năng chịu tải của hệ thống
2.2.3 Gọi thủ tục từ xa (RPC)
Khi một tiến trình trên máy A muốn thực hiện một thủ tục nào đó nằm trên một máy B khác thì nó sẽ thực hiện một lời gọi thủ tục từ xa tới máy B Thủ tục đó sẽ được thực hiện ở máy B dựa trên các tham số được truyền đến từ máy A và kết quả sẽ được truyền mở lại cho máy A tương ứng
Trong mô hình client – server thì lời gọi thủ tục từ xa được thực hiện qua các bước sau:
- Tiến trình muốn thực hiện thủ tục ở máy client sẽ gọi client stub
- Client stub sẽ tạo một bản tin và có lời gọi đến hệ điều hành của client đó
- Hệ điều hành của server sẽ gửi bản tin tới server stub
- Server stub lấy các thông tin của gói tin và gọi server tương ứng
- Server thực hiện công việc được yêu cầu và trả kết quả về cho server stub
- Server stub đóng gói kết quả đó vào bản tin rồi gọi hệ điều hành của server
đó
- Hệ điều hành của máy server này sẽ gửi bản tin kết quả đó cho hệ điều hành của máy client
- Hệ điều hành của máy client sẽ gửi bản tin cho client stub
- Client stub sẽ mở gói tin kết quả và trả về cho client
- Trong đó, client stub và server stub ở máy client và server là thành phần nhằm giảm nhẹ công việc cho client và server, làm cho hệ thống hoạt động một các trong suốt hơn
2.2.3.1 Xét chi tiết các thao tác RPC:
Đóng gói các tham số: việc đóng gói các tham số để chuẩn bị truyền đi do client stub thực hiện Client stub sẽ sắp xếp các tham số và đưa vào hàng đợi và quá
Trang 18trình này được gọi là parameter marshaling Các tham số được truyền đi giúp cho server hiểu được công việc mình cần thực hiện tương ứng là gì để xác định lời gọi đến thủ tục thích hợp
Truyền tham số: việc truyền tham số từ client tới Có hai cách truyền: truyền tham biến và truyền tham trị
- Truyền tham trị: các tham số được truyền đi là các giá trị cụ thể Các thủ tục được gọi đến sẽ coi các tham biến được truyền kiểu tham trị như là các biến được khởi tạo cục bộ, có thể thay đổi giá trị nhưng lại không ảnh hưởng tới giá trị gốc trong lần gọi sau Vấn đề đặt ra khi truyền tham trị là yêu cầu giữa các máy phải có sự đồng nhất về việc biểu diễn dữ liệu và các
kiểu dữ liệu
- Truyền tham biến: các tham số được truyền đi là con trỏ hay biến chứa địa chỉ của nơi chứa giá trị thực của chúng Các thủ tục được gọi sẽ căn cứ vào địa chỉ này để tham chiếu đến giá trị khi tính toán Khi giá trị này bị thay đổi trong khi thực hiện thủ tục thì sẽ được thông báo cho client và các lần
gọi sau sẽ dùng giá trị mới đó
2.2.3.2 Các mô hình RPC mở rộng:
2.2.3.2.1 RPC dị bộ (Asynchronous RPC):
Tư tưởng thực hiện là: client gửi tới server lời gọi thủ tục và chờ bản tin chấp nhận từ server Phía server sẽ gửi bản tin chấp nhận về cho client thông báo đã nhận được yêu cầu và bắt đầu thực hiện yêu cầu RPC đó Lúc này client sẽ tiếp tục thực hiện công việc của mình mà không chờ kết quả từ server như ở RPC thông thường (nêu ở trên)
2.2.3.2.2 RPC đồng bộ trễ (Deferred synchronous RPC):
Thực hiện hai lời gọi, một từ client và một từ server
Client gửi tới server lời gọi thủ tục và chờ bản tin chấp nhận từ server Phía server sẽ gửi bản tin chấp nhận về cho client thông báo đã nhận được yêu cầu và bắt đầu thực hiện yêu cầu RPC đó Lúc này client sẽ tiếp tục thực hiện công việc của mình Khi thực hiện thủ tục xong, server sẽ thưc hiện lời gọi tới client thông báo nhận lấy kết quả Client thực hiện ngắt, nhận kết quả và gửi lại cho server bản tin thông báo
đã nhận kết quả thành công
2.2.3.2.3 RPC đơn tuyến (one-way RPC):
Sau khi thực hiện lời gọi thủ tục từ xa tới server, client không chờ đợi thông báo nhận yêu cầu thành công từ server mà tiếp tục thực hiện ngay các công việc khác
Trang 192.3 Giới thiệu hệ thống phân tán báo điện tử
2.3.1 Tổng quan
Hệ thống báo điện tử được xây dựng để hỗ trợ cho đọc giả và ban quan trị của một tòa soạn báo Phía thao tác và có ảnh hưởng đến hệ thống nhiều nhất là đọc giả,
số lượng đọc giả nhiều thì đòi hỏi hệ thống phải chịu tải cao
Khi thiết kế hệ thống báo điện tử, nhu cầu tải trang nhanh dành cho đọc giả là quan trọng nhất, nên hệ thống được thiết kế ưu tiên vấn đề này nhất
Apache Thrift: framework hỗ trợ việc triệu gọi phương thức từ xa (RPC) giữa client và server, tốc độ xử lý và truyền tải dữ liệu nhanh, được facebook phát triễn và sau này cống hiến cho tổ chức Apache
Memcached: hệ thống caching tốc độ nhanh, dễ dàng cài đặt và cấu hình
Berkeley Database: cơ sở dữ liệu lưu trữ key/value, có tốc độ ghi và đọc nhanh
Chi tiết các kỹ thuật sử dụng được trình bày ở chương sau
2.3.3 Chi tiết hệ thống báo điện tử
Hệ thống lưu trữ được phân chia thành các phần sau:
Hệ thống lưu trữ dữ liệu chính (MainStorage): lưu trữ tất cả dữ liệu của báo điện tử, đây là dữ liệu tin cậy nhất Hệ thống này sử dụng Mysql để lưu trữ, mọi thao tác với hệ thống này được thực hiện trực tiếp đến database (không qua bất cứ tầng caching nào), vì hệ thống này có thao tác chủ yếu của ban quan trị nên database có thể chịu tải được và không ảnh hưởng đến việc tải trang của đọc giả
Hệ thống lưu trữ bài viết (PostServer): lưu trữ tất cả các bài viết đã được phê duyệt của ban quan trị, hệ thống này có lượng truy xuất cực lớn nên được tích hợp tầng caching và sử dụng Berkeley Database để lưu trữ
Trang 20 Hệ thống lưu trữ bài viết của mỗi chuyên mục (CategoryPostsServer): lưu trữ tất cả mã bài viết đã được phê duyệt và ngày đăng của mỗi chuyên mục,
hệ thống này có lượng truy xuất cực lớn nên được tích hợp tầng caching và
sử dụng Berkeley Database để lưu trữ
Hệ thống lưu trữ bình luận của đọc giả (CommentServer): lưu trữ tất cả bình luận đã được phê duyệt của đọc giả, hệ thống này tùy từng nội dung của bài báo và loại đọc giả mà có lượng truy xuất khác nhau, ví dụ một trang báo với đọc giả là những người thích chia sẽ thì cũng có lượng truy xuất lớn, được tích hợp tầng caching và sử dụng Berkeley Database để lưu trữ Có thể cấu hình tầng caching dùng ít Memory hơn đối với những loại báo có ít bình luận
Hệ thống lưu trữ bình luận của mỗi bài viết (PostCommentsServer): lưu trữ tất cả mã bình luận đã được phê duyệt của mỗi bài viết, về vấn đề truy xuất cũng tương tự như hệ thống lưu trữ bình luận, được tích hợp tầng caching
và sử dụng Berkeley Database để lưu trữ
Hệ thống caching: lưu trữ các bài viết hot, bài viết mới, bài viết nổi bật, quảng cáo, … ở trang dành cho đọc giả nhằm tăng khả năng chịu tải của hệ thống Hệ thống này sử dụng memcached để lưu trữ
Toàn bộ hệ thống báo điện tử được mô tả như hình sau:
Trang 21Hình 1: Mô hình hệ thống báo điện tử
Quy trình đăng bài và duyệt bài của người quản trị:
Phóng viên đăng một bài viết, bài viết đó sẽ được lưu vào hệ thống Mysql
Khi chủ biên duyệt thì bài đó sẽ được lưu qua PostServer và CategoryPostsServer
Khi chủ biên xóa thì bài đó sẽ được xóa khỏi Mysql đồng thời xóa khỏi PostServer và CategoryPostsServer
Quy trình duyệt bình luận của người quản trị:
Đọc giả gửi một bình luận, bình luận đó sẽ được lưu vào hệ thống Mysql
Khi người quản trị duyệt thì bình luận đó sẽ được lưu qua CommentServer
và PostCommentsServer
Khi người quản trị xóa thì bình luận đó sẽ được xóa khỏi Mysql đồng thời xóa khỏi CommentServer và PostCommentsServer
Web Server (Server 1)
Memcached (Server 2)
PostServer (Server 3)
CategoryPostsServer (Server 4)
CommentServer (Server 5)
PostCommentsServer (Server 6)
Request
Main Storage (Mysql)
Trang 22Chương 3
Mô hình, chức năng nghiệp vụ cho cổng thông tin báo điện tử
Nội dung của chương 3 trình bày tổng quan về mô hình phát triển phần mềm báo điện tử, mô hình chức năng và mô hình nghiệp vụ, mô hình phân tích thiết kế hệ thống
3.1 Mô hình nghiệp vụ
3.1.1 Admin
Hình 2: Mô hình nghiệp vụ cho chức năng admin
Nhà quản trị đăng nhập quyền quản trị theo username, password và mã an toàn Khi đăng nhập thành công, admin có các quyền thao tác như sau:
- Lock, unlock và xóa các user và các quyền user khác
- Tạo user mới
- Xem tổng thống kê các bài báo
- Xem thống kê trung bình các bài báo
Admin
Login
1
Lock/Unlock/Delete User
Add new user
Add new Category
Delete Category
Total view statistic
Average view statistic
Trang 233.1.2 Editor
Hình 3: Mô hình nghiệp vụ cho chức năng editor
Chủ biên đăng nhập quyền chủ biên theo username, password và mã an toàn Khi đăng nhập thành công, chủ biên có các quyền thao tác như sau:
- Chỉnh sửa và xóa một bài báo
- Duyệt một bài báo để đăng
- Xem thông tin của phóng viên nào đó
- Xem top các phóng viên
- Xem tổng thống kê các bài báo
- Xem thống kê trung bình các bài báo
Login
Edit/Delete post
Approve post
View reporter information
View top reporter
Total view statistic
Average view statistic Editor
Profile
Trang 243.1.3 Reporter
Hình 4: Mô hình nghiệp vụ cho chức năng reporter
Phóng viên đăng nhập quyền phóng viên theo username, password và mã an toàn Khi đăng nhập thành công, phóng viên có các quyền thao tác như sau:
- Xem và chỉnh sửa các bài báo của mình
- Viết bài mới và gửi lên chủ biên duyệt
- Xem top các bài báo
- Xem top các phóng viên
- Xem tổng thống kê các bài báo
- Xem thống kê trung bình các bài báo
Login
View/Edit post
Add new post and send to approve
View top post
View top reporter
Total view statistic
Average view statistic Reporter
Profile
Trang 253.1.4 Người duyệt quảng cáo
Hình 5: Mô hình nghiệp vụ người duyệt quảng cáo
Người duyệt quảng cáo đăng nhập quyền duyệt quảng cáo theo username, password và mã an toàn Khi đăng nhập thành công, người duyệt quảng cáo có các quyền thao tác như sau:
- Xem và chỉnh sửa quảng cáo
- Đặt thời hạn quảng cáo
- Xem các ví trí post quảng cáo
- Thêm vị trí post quảng cáo
- Xem thông tin các khách hàng
Login
View/Edit advertisement
Set schedule advertisement
View Sub Advertisement
Trang 263.1.5 Người duyệt bình luận
Hình 6: Mô hình nghiệp vụ người duyệt bình luận
Người duyệt bình luận đăng nhập quyền duyệt bình luận theo username,
password và mã an toàn Khi đăng nhập thành công, người duyệt bình luận có các quyền thao tác như sau:
- Xem tất cả các bình luận
- Duyệt để đăng bình luận
- Xóa một bình luận nào đó
Trang 273.1.6 Khách hàng
Hình 7: Mô hình nghiệp vụ khách hàng quảng cáo
Khách hàng đăng nhập quyền khách hàng theo username, password và mã an toàn Khi đăng nhập thành công, khách hàng có các quyền thao tác như sau:
- Xem tất các các quảng cáo của mình
- Tạo quảng cáo mới và gửi duyệt
- Xem thời hạn và lịch quảng cáo
- Xem thông tin vị trí đăng quảng cáo
đó và highlight cho từng mục của trang báo
- Thế giới: Có 2 chuyên mục con:
Cuộc sống đó đây
Phân tích: Trang báo phân tích tình hình thế giới
- Xã hội: Có 3 chuyên mục con:
Login
View all own Advertisement
Add new advertisement and send to approve
View Sub information Customer
Profile Advertisement schedule
Trang 29Hình 8: Màn hình chính admin
- Editor: Tổng biên tập sẽ chịu trách nhiệm duyệt bài báo, khi một bài báo được gửi lên chờ duyệt sẽ được tổng biên tập xem xét, sửa và cho đăng bài báo đó hay không, tổng biên tập cũng có thế xóa bài báo
Trang 30Hình 9: Màn hình chính chủ biên
- Reporter: Phóng viên làm nhiệm vụ viết bài báo và bài báo sẽ được gửi lên tổng biên tập để chờ duyệt trước khi được đăng
Trang 31Hình 10: Màn hình chính phóng viên
- Comment admin: Người quản lý comment sẽ quản lý tất cả các bình luận mà đọc giả đã bình luận lên một bài báo, người quản lý comment sẽ chỉnh sửa hay xem xét cho một bình luận nào đó được đưa lên cho đọc giả thấy hay xóa nó đi vì một số lý do
Trang 32Hình 11: Màn hình quản lý comment
- Advertisement admin: Quản lý quảng cáo sẽ chịu trách nhiệm quản lý tất cả các quảng cáo mà khách hàng (người có tài khoản khách hàng) đã viết và chờ duyệt Quản lý quảng cáo sẽ chỉnh sửa quảng cáo, chọn ngày thời hạn đăng quảng cáo, vị trí đăng quảng cáo cũng như định giá quảng cáo
Trang 33Hình 12: Màn hình quản lý quảng cáo
Ở mỗi quyền có thể xem được thống kê về các mục mà họ quản lý theo tháng thông qua biểu đồ thống kê
3.3 Quy trình phần mềm
Quy trình phần mềm được chọn sử dụng trong luận văn là mô hình thác nước được mô tả chi tiết như bên dưới:
Trang 34Hình 13: Mô hình phát triển phần mềm
Chi tiết mô hình phát triển phần mềm:
- Xác định yêu cầu: Xác định các yêu cầu, các chức năng cơ bản cần thiết của một trang báo điện tử về mặt hiển thị cũng như mặt quản lý
- Thiết kế: Đưa ra kiến trúc ứng dụng cho phần hiển thị và phần quản lý
- Thực thi: Viết flow cho toàn bộ chương trình, thiết kế giao diện và tiến hành các bước coding
- Kiểm thử - Chỉnh sửa: Chạy thử chương trình và tìm lỗi, sửa lỗi
- Cài đặt – Triển khai: Cài đặt ở nhiều máy khác nhau và cho sử dụng thử trên môi trường localhost
Mô hình thác nước được chọn sử dụng với các ưu nhược điểm như sau:
Trang 35- Thời gian hoàn thành dự án thường được dự báo với độ chính xác hơn
họ cũng thay đổi khá thường xuyên Việc làm lại các giai đoạn ban đầu để đáp ứng sự thay đổi của khách hàng thường mất rất nhiều công sức và phá vỡ cấu trúc của phần mềm
- Khách hàng cần phải kiên nhẫn Họ chỉ được tham gia vào dự án ở giai đoạn phân tích yêu cầu và test mà thôi Ngoài ra, sản phẩm sẽ chỉ được bàn giao khi tất cả các công việc liên quan đã được hoàn thành
Trang 363.4 Các kỹ thuật sử dụng trong luận văn
3.4.1 Struts Framework
Struts là gì?
Vào tháng 12/2005, Struts và webwork framework đã được kết hợp với nhau
để phát triển nên Struts 2 Framework Struts 2 Framework rất thích hợp và dễ dàng
mở rộng để phát triển các ứng dụng web với mức độ khác nhau
Cung cấp các thẻ tag, các themes và templates giúp cho việc làm giao diện GUI trở nên dễ dàng, nhanh lẹ và tăng tính tái sử dụng
Tính mở rộng (Extensibility) cao thông qua việc hỗ trợ các plug-in
Hỗ trợ portal
Hỗ trợ AJAX
Dễ dàng tích hợp với Spring framework và Hibernate
Trang 37 Kiến trúc Struts 2 Framework
Hình 14: Kiến Trúc Của Struts 2 Framework
(Nguồn: www.struts.apache.org/2.x/docs/tutorials.html )
ActionContextCleanup: là tùy chọn và được sử dụng khi tích hợp với các công
nghệ như SiteMash Plugin
FilterDepatcher: là bộ lọc nó Sử dụng ActionMapper để xác định xem Action
nào được gọi và sau đó giao quyền lại cho ActionProxy
ActionProxy: lấy những action từ struts.xml qua sự giúp đỡ của
ConfigurationManager từ đó tạo ra những ActionInvocation thực hiện gọi Action mà
ta đã config trong struts.xml trước đó nó gọi tới những interceptor (nếu được config)
Và sau đó lấy về kết quả thích hợp tái tạo lại các trang jsp theo mẫu nào đó và trả về lại cho người dùng
Trang 38Action: là một lớp do developer tự định nghĩa, đây là lớp làm việc cơ bản, là
một POJO (Plain old java object) có phương thức execute()
Template: chứa kết quả trả về cho người dùng Trong Struts2 nó là những
result của Action được config trong struts.xml Có một số loại result sau:
Quá Trình Xử Lý Request trong Struts 2 Framework
Người sử dụng gửi yêu cầu đến server để yêu cầu một số tài nguyên của ứng dụng
Bộ điều khiển lọc (FilterDispatcher) xem xét yêu cầu và sau đó xác định một Action thích hợp
Các bộ chặn (Interceptors) được ứng dụng: các cấu hình bộ chặn áp dụng cho các chức năng chung như: luồng công việc, thẩm định, tải file … được tự động ứng dụng vào yêu cầu
Thực thi Action: sau khi phương thức action được thực thi để thực hiện các hoạt động liên quan đến cơ sở dữ liệu như sắp xếp hoặc nhận dữ liệu từ cơ sở dữ liệu Sinh kết quả, sau đó kết quả yêu cầu được trả về thông qua bộ chặn theo chiều ngược lại Kết quả trả về cho phép chúng ta thực hiện thu dọn hoặc thêm quá trình xử lý
Hiển thị kết quả cho người sử dụng: việc điều khiển cuối cùng được trả về cho trình chứa servlet, nó sẽ gửi kết quả trả về cho trình duyệt của người sử dụng
Trang 39Hình 15: Tổng quan xử lý request trong Struts 2
(Nguồn: www.struts.apache.org/2.x/docs/tutorials.html )
Hình 16: Xử lý request trong Struts 2
(Nguồn: www.struts.apache.org/2.x/docs/tutorials.html )
Trang 40 Action và Result
Action
Khi một request được gởi từ phía người dùng đến server thì nó sẽ được ánh xạ thành một action tương ứng (do chúng ta cấu hình) Và action này sẽ được controller điều hướng cho một classAction tương ứng thực thi (do chúng ta cấu hình)
ActionClass: thuộc tầng Model Nó là đơn vị làm việc cơ bản Nó là một POJO
mà có thêm phương thức execute() Thường thì ActionClass được kế thừa từ lớp
ActionSupport
ActionSupport: nằm trong package: com.opensymphony.xwork2
ActionSupport nó được implement từ lớp Action, LocaleProvider, TextProvider, Validateable, ValidationAware Nó có một số thuộc tính final kế thừa từ lớp Action
và được xem như là kết quả trả về từ action: ERROR, INPUT, LOGIN, NONE,
SUCCESS Có phương thức chủ yếu là execute(), và một số phương thức tham khảo
tại
http://www.opensymphony.com/xwork/api/com/opensymphony/xwork/ActionSupport.html
Result
Không giống như Struts, kết quả của một action là một ActionForward Trong Struts2 khi một phương thức thực thi một action hoàn thành thì kết quả nó trả về là một chuỗi và tùy vào chuỗi này mà ta có thể cấu hình để struts mapping với một tập các thể hiện của kết quả trả về cho người dùng
Các loại result sau: