Kiến trúc đa tầng

Một phần của tài liệu Xây Dựng Portal Chứng Khoán (Trang 43)

5 Mô tả hệ thống

5.1.2Kiến trúc đa tầng

· Tầng trình bày (presentation): chứa các cấu phần xử lý giao diện người dùng và tương tác với người dùng.

· Tầng logic nghiệp vụ (bussiness logic): chứa các cấu phần phối hợp với nhau đê giải quyết các vấn đề nghiệp vụ.

· Tầng dữ liệu (data): được sử dụng để truy xuất cơ sở dữ liệu

Ưu điểm của việc chia tách ứng dụng thành các tầng logic khác nhau là tách biệt mỗi phần với những phần khác. Sự tách biệt này giúp nhà phát triển có thể có nhiều sự thay đổi ở một tầng mà hạn chế được tối đa việc ảnh hưởng tới các tầng khác.

5.2 Giải pháp XML&XSL

5.2.1 Sơđồgiải pháp XML&XSL

5.2.2 Mô tảhoạt động giải pháp XML&XSL

- Người dùng yêu cầu xem thông tin

- Luồng đi của yêu cầu sẽ đi theo đường màu tím trên hình vẽ

+ Module HungBM.Articles sẽgửi yêu cầu lấy thông tin tới bộxửlý ArticleXML + Bộxửlý ArticleXML gửi yêu cầu lấy dữliệu tới lớp DBArticle

+ Lớp DBArticle sẽgọi câu StoreProcedure tương ứng với yêu cầu + StoreProcedure thực hiện lệnh lấy dữ liệu từdatabase

- Hệthống sẽtrảlại thông tin theo yêu cầu của người dùng - Luồng đi của dữliệu trảlại sẽ đi theo đường màu xanh

+ Dữliệu được StoreProcedure lấy ra từDatabase.

+ Dữ liệu trả về từ câu StoreProcedure sẽ được lớp DBArticle đưa tới bộ xử lý ArticleXML.

- Module HungBM.Article sẽkết hợp file XML và XSL đưa dữ liệu ra HTML và hiển thịlên màn hình

- Mã lệnh giúp lấy dữ liệu từ XML và trình bày bằng XSL

// Gửi yêu cầu lấy dữliệu XML

request =WebRequest.Create(m_strUrlWeb +"/ArticlesXML.aspx?ModuleID="+ strModuleID +

"&NumberOfArticle="+ m_strNumberOfArticle +"&ctl=GetArticles");

// Lấy dữliệu trảvề

WebResponseresponse = request.GetResponse();

StreamresponseStream = response.GetResponseStream();

// Đọc luồng Response sửdụng XmlTextReader

XmlTextReaderreader =newXmlTextReader(responseStream);

// Khai báo đường dẫn tới XML cho đối tượng xmlArticle XPathDocumentxml_doc =newXPathDocument(reader); xmlArticle.XPathNavigator = xml_doc.CreateNavigator();

// Đặt đường dẫn tới file XSL

stringstrPath = DotNetNuke.Common.Globals.ApplicationMapPath;

FileInfofileXSL =newFileInfo(strPath+"/Portals/_default/XSL/"+m_strFileXSL);

if(fileXSL.Exists)

xmlArticle.TransformSource ="~/Portals/_default/XSL/"+m_strFileXSL;

else (adsbygoogle = window.adsbygoogle || []).push({});

xmlArticle.TransformSource ="~/DesktopModules/HungBM.Articles/ArticleLargeList.xsl";

5.2.3 Sơđồtổng quan các chức năng giải pháp XML&XSL

Mô hình tổng thếchức năng của hệthống được mô tả như sơ đồ dưới đây. Chi tiết từng chức năng cũng như các tác nhân tham gia vào chứcnăng đó sẽ được mô tảchi tiếtởphần sau.

a) Các tác nhân tham gia hthng

- Người sử dụng internet: Là những người có quyền hạn thấp nhất trong mô hình hệ thống này. Người sử dụng chỉcó quyền xem thông tin.

- Biên tập viên:Là người có quyền đăngthông tin.

- Người phê duyệt: Là người có quyền cho phép đăng thông tin, sửa thông tin, xóa thông tin, duyệt thông tin để đưa ra hiển thị cho người dùng.

- Quản trị hệ thống: Ngoài các quyền như của người phê duyệt thì quản trị hệ thống còn có quyền xem các định dạng xml&xsl, cấu hình module.

- Quyền quản trị host: Ngoài các quyền như quản trị hệthống thì quản trị host có thể thêm, xóa, sửa định dạng file xsl.

Nguoi dung internet Bien tap vien

Nguoi phe duyet

Quan tri he thong

Xem thong tin

Them thong tin

Sua thong tin

Xoa thong tin

Duyet thong tin

Xem dang XML

Xem XSL

Cau hinh XSL

Quan tri host

b) Các tác chc năng chính ca hthng

- Chức năng thêm thông tin: cho phép người có quyền này thêm thông tin mới vào cơ sởdữliệu.

- Chức năng sửa thông tin: cho phép người có quyền này sửa thông tin đãđưa lên. - Chức năng xóa thông tin: cho phép người có quyền phê duyệt xóa thông tin khỏi cơ sởdữliệu

- Chức năng duyệt thông tin: cho phép người có quyền này duyệt thông tin hiển thị chính thức tại phía người dùng.

- Xem thông tin: cho phép người dùng xem thông tin tùy theo quyền của hệthống. - Xem thông tin dạng xml: cho phép quản trị viên xem thông tin dưới dạng xml trên trình duyệt web.

- Xem xsl: cho phép quản trị viên xem thông tin dưới dạng xsl trên trình duyệt web. - Cấu hình file xsl: cho phép quản trịhost thêm, sửa, xóa file xsl.

- Cấu hình module: cho phép quản trị hệ thống cấu hình các chức năng của module như: container, icon, cho phép hiển thị, lựa chọn file xsl hiển thị, lựa chọn số lượng thông tin hiển thị, có thểchọn thông tin từ nguồn khác đểhiển thị.

5.2.4 Chi tiết đặc tảchức năng

UC #0001 << Thêm thông tin >> Độ phức tạp: Trung bình Mô tả Chức năng này dùng đểthêm thông tin mới vào hệthống (adsbygoogle = window.adsbygoogle || []).push({});

Tác nhân

Chính Biên tập viên

Phụ Người phê duyệt, quản trịhệthống, quản trịhost.

Tiền điều kiện

Nếu muốn sửdụng chức năng này thì cần phải đăng nhập vào hệ thống và có quyền thêm thông tin.

Hậu điều

kiện

Thành công

Nếu thành công thì thêm mới thông tin vào hệthống.

Lỗi Hệthống không được thêm thông tin mới. ĐẶC TẢ CHỨC NĂNG

Luồng sự kiện chính/Kịch bản chính

- Hệ thống hiển thị form thêm thông tin và chờ người dùng nhập - Biên tập viên nhập thông tin vào form của hệ thống

- Biên tập viên click vào nút thêm thông tin.

- Hệ thống kiểm tra tính hợp lệ của dữ liệu nhập vào

+ Nếu dữ liệu không hợp lệ thì hệ thống hiển thị thông báo lỗi cho người dùng và chờ người dùng nhập lại thông tin (chưa chuyển sang bước tiếp theo)

+ Nếu dữ liệu hợp lệ thì hệ thống chuyển sang bước tiếp theo - Hệ thống thêm thông tin vào cơ sở dữ liệu

- Hệ thống quay trở lại trang trước khi nhập thông tin.

Sơ đồ hành động (Activity diagram)

Bat Dau

Chon chuc nang xem thong tin

Nhap thong tin vao form

Ket Thuc Them thong

tin vao CSDL

Xu ly loi

Thanh cong Phat hien loi

Vao giao dien cua chuc nang

Quay lai

UC #0002 << Sửa thông tin >> Độ phức tạp:

Trung bình Mô tả Chức năng này dùng đểsửa thông tin đã có trong hệthống

Tác nhân (adsbygoogle = window.adsbygoogle || []).push({});

Chính Người phê duyệt

Phụ Quản trị hệthống, quản trị host.

Tiền điềukiện

Nếu muốn sửdụng chức năng này thì cần phải đăng nhập vào hệ thống và có quyền sửa thông tin.

Hậu điều

kiện

Thành công

Nếu thành công thì cập nhật lại thông tin vào hệthống.

Lỗi Hệthống không cập nhật được thông tin. ĐẶC TẢ CHỨC NĂNG

Luồng sựkiện chính/Kịch bản chính

- Người phê duyệt chọn chức năng sửa thông tin

- Hệ thống hiển thị form chứa thông tin cũ và chờ người phê duyệt sửa thông tin - Người phê duyệt sửa thông tin trong form của hệ thống

- Người phê duyệt click vào nút sửa thôngtin.

- Hệ thống kiểm tra tính hợp lệ của thông tin mới sửa

+ Nếu dữ liệu không hợp lệ thì hệ thống hiển thị thông báo lỗi cho người dùng và chờ người dùng nhập lại thông tin (chưa chuyển sang bước tiếp theo)

+ Nếu dữ liệu hợp lệ thì hệ thống chuyển sang bước tiếp theo - Hệ thống cập nhật thông tin vào cơ sở dữ liệu

- Hệ thống quay trở lại trang trước khi sửa thông tin.

Ba t D a u C ho n c huc na ng s ua tho ng tin S ua tho ng tin tro ng fo rm Ke t T h u c C a p nha t tho ng tin va o C S D L X u ly lo i Tha nh c o ng P ha t hie n lo i V a o g ia o d ie n c ua c huc na ng Q ua y la i K ho ng q ua y la i

UC #0003 << Xóa thông tin >> Độ phức tạp: Thấp

Mô tả Chức năng này dùng để xóa thông tin đã có trong hệthống

Tác nhân

Chính Người phê duyệt

Phụ Quản trịhệthống, quản trịhost.

Tiền điều kiện

Nếu muốn sửdụng chức năng này thì cần phải đăng nhập vào hệ thống và có quyền xóa thông tin.

Hậu điều

kiện

Thành công

Nếu thành công thì xóa thông tin khỏi hệthống.

Lỗi Hệthống không xóa được thông tin. ĐẶC TẢ CHỨC NĂNG (adsbygoogle = window.adsbygoogle || []).push({});

Luồng sự kiện chính/Kịch bản chính

- Người phê duyệt chọn chức năng xóa thông tin

- Hệ thống xác nhận người dùng có thực sự muốn xóa thông tin không.

+ Nếu người dùng xác nhận là có xóa thì hệ thống chuyển sang bước tiếp theo + Nếu người dùng xác nhận là không xóa thì hệ thống ko xóa thông tin.

- Hệ thống xóa thông tin khỏi cơ sở dữ liệu

- Hệ thống thông báo cho người dùng biết việc xóa thông tin đã thực hiện thành công.

Giao diện minh họa

Bat Dau

Chon chuc nang xoa thong tin

Xac nhan co thuc su muon xoa khong

Ket Thuc Xoa thong tin

khoi CSDL

Khong xoa thong tin

UC #0004 << Duyệt thông tin >> Độ phức tạp:

Thấp

Mô tả

Chức năng này dùng đểduyệt thông tin đang chờduyệt hoặc bỏ duyệt thông tin đãđăng.

Tác nhân

Chính Người phê duyệt

Phụ Quản trịhệthống, quản trịhost.

Tiền điều kiện

Nếu muốn sửdụng chức năng này thì cần phải đăng nhập vào hệ thống và có quyền duyệt thông tin.

Hậu điều

kiện

Thành công

Nếu thành công thì thông tin sẽ được duyệt nếu đang ởtrạng thái chờduyệt và bỏduyệt khi đang ởtrạng thái đã duyệt.

Lỗi Hệthống không thay đổi trạng thái. ĐẶC TẢ CHỨC NĂNG

Luồng sự kiện chính/Kịch bản chính

- Người phê duyệtchọn chức năng duyệt thông tin

- Hệ thống đổi trạng thái duyệt tin (nếu đã duyệt thì chuyển thành chưa duyệt, nếu chưa duyệt thì chuyển thành đã duyệt). (adsbygoogle = window.adsbygoogle || []).push({});

- Hệ thống thông báo cho người dùng biết việc duyệt thông tin đã thực hiện thành công.

Sơ đồ hành động (Activity diagram)

Bat Dau

Chon chuc nang duyet thong tin

Ket Thuc Thay doi trang

thai duyet

Khong thay doi trang thai duyet

Giao diện minh họa

UC #0005 << Xem thông tin dạng xml >> Độ phức tạp:

Trung bình

Mô tả

Chức năng này dùng để xem thông tin dưới dạng xml trên trình duyệt web.

nhân Phụ Quản trịhost.

Tiền điều kiện

Nếu muốn sửdụng chức năng này thì cần phải đăng nhập vào hệ thống và có quyền quản trịhệthống. Hậu điều kiện Thành công

Nếu thành công thì thông tin sẽhiển thịdạng xml trên trình duyệt web.

Lỗi Hệthống không hiển thị được thông tin mà đưa ra thông báo lỗi. ĐẶC TẢ CHỨC NĂNG

Luồng sự kiện chính/Kịch bản chính

- Người phê duyệt chọn chức năng xem dạng xml

- Hệ thống hiển thị xử lý thông tin lấy từ cơ sở dữ liệu sau đó hiển thị xml phía client

Sơ đồ hành động(Activity diagram)

Bat Dau

Chon chuc nang xem dang xml

Ket Thuc Hien thi du lieu dang

xml tren trinh duyet

Thong bao loi la khong hien thi duoc

Giao diện minh họa

UC #0006 << Xem xsl >> Độ phức tạp:

Trung bình Mô tả Chức năng này dùng đểxem xsl trên trình duyệt web.

Tác nhân (adsbygoogle = window.adsbygoogle || []).push({});

Chính Quản trịhệthống.

Phụ Quản trịhost.

Tiền điềukiện

Nếu muốn sửdụng chức năng này thì cần phải đăng nhập vào hệ thống và có quyền quản trịhệthống. Hậu điều kiện Thành công

Nếu thành công thì thông tin sẽhiển thịdạng xsl trên trình duyệt web.

Lỗi Hệthống không hiển thị được thông tin mà đưa rathông báo lỗi. ĐẶC TẢ CHỨC NĂNG

Luồng sự kiện chính/Kịch bản chính

- Người phê duyệt chọn chức năng xem xsl - Hệ thống hiển thị file xsl trên trình duyệt web.

Sơ đồ hành động (Activity diagram)

Bat Dau

Chon chuc nang xem file xsl

Ket Thuc Hien thi noi dung file

xsl tren trinh duyet

Thong bao loi la khong hien thi duoc

Giao diện minh họa

UC #0007 << Cấu hình module >> Độ phức tạp: Trung bình

Mô tả

Cho phép quản trị hệ thống cấu hình các chức năng của module như: container, icon, cho phép hiển thị, lựa chọn file xsl hiển thị, lựa chọn số lượng thông tin hiển thị, có thể chọn thông tin từ nguồn khác để hiển thị. Tác nhân Chính Quản trịhệthống Phụ Quản trịhost Tiền điều kiện

Nếu muốn sửdụng chức năng này thì cần phải đăng nhập vào hệ thống và có quyền quản trịhệthống.

Hậu điều

Thành công

kiện

Lỗi

Hệthống không thay đổi trạng thái cấu hình module và thông báo lỗi.

ĐẶC TẢ CHỨC NĂNG

Luồng sự kiện chính/Kịch bản chính

- Quản trị hệ thống chọn chức năng cấu hình module

- Hệ thống hiển thị form cấu hình và chờ quản trị chọn cấu hình - Người quản trị cấu hình hệ thống sau đó bấm vào nút cập nhật. - Hệ thống kiểm tra tính hợp lệ của thông tin cấu hình

+ Nếu thông tin cấu hình hợp lệ thì hệ thống sẽ cập nhật vào cơ sở dữ liệu rồi chuyển sang bước tiếp theo.

+ Nếu thông tin cấu hình không hợp lệ thì hệ thống sẽ không cập nhật thông tin, hiển thị thông báo lỗi và không chuyển sang bước tiếp theo. (adsbygoogle = window.adsbygoogle || []).push({});

- Hệ thống quay về trang trước khi cấu hình.

Giao diện minh họa

Bat Dau

Chon chuc nang cau hinh module

Ket Thuc Cap nhat cau hinh

vao CSDL

Thong bao loi

Thanh cong That bai

Nguoi quan tri cau hinh module

5.3 Giải pháp Webservice

5.3.2 Mô tảhoạt động giải pháp Webservice

- Người dùng yêu cầu xem thông tin

- Máy B sẽgửi yêu cầu lấy thông tin tới máy A

Ví dụ:

HungBM.FAChartWS.FAChartWSobjFAChartWS =new HungBM.FAChartWS.FAChartWS(); objFAChartWS.Url = m_strUrlWeb+"

/desktopmodules/HungBM.FAChartWS/HungBM.FAChartWS.asmx";

byte[] arrData = objFAChartWS.GetImageChart(strMapType, strTimeRange, intMapWidth, intMapHeight, mainType, strIndicator1, strIndicator2, strIndicator3, strIndicator4, strBandType, strAvgType1, strAvgType2, strMovAvg1, strMovAvg2);

- Máy A làm việc với Database rồi trảkết quảvềcho máy B - Máy B nhận dữliệu từmáy A rồi hiển thịra màn hình.

stringstrPath =string.Format("{0}/DesktopModules/HungBM.FAChartWS/Chart.png", DotNetNuke.Common.Globals.ApplicationPath);

DotNetNuke.Common.Utilities.FileSystemUtils.SaveFile(Server.MapPath(strPath), arrData); imgFinanceAnalysisChart.ImageUrl = strPath;

5.4 Giải pháp Webspider

5.4.2 Mô tảhoạt động giải pháp Webspider

- Người dùng yêu cầu xem thông tin

- Hệthống download mã HTML từwebsite khác về

WebClientclient =newWebClient();

strings = client.DownloadString("http://www.sjc.com.vn");

- Hệthống xửlý xâu vừa download sau đó hiển thịlên màn hình.

6 Tổng kết

Trong quá trình thực hiện chuyên đề tôi đã thuđược nhiều kiến thức, tuy tôi vẫn chưa tìm hiểu được sâu về Dotnetnuke nhưng cũng đã biết làm gói giao diện skin, container, biết cách viết thêm các gói module mới và sử dụng để triển khai thành sản phẩm thực tế. Đồng thời tôi cũng đã ứng dụng một số giải pháp công nghệ mới trong việc xây dựng sản phẩm của mình.

6.1 Kết quảvềmặt lý thuyết (adsbygoogle = window.adsbygoogle || []).push({});

- Tìm hiểu các khái niệm vềportal, xml, xsl, webservice, ajax - Tìm hiểu cách quản trịhệthống dotnetnuke ởmức cơ bản - Tìm hiểu cách xây dựng skin, container trong dotnetnuke - Tìm hiểu cách cài đặt, sử dụng menu, gói ngôn ngữcho portal - Tìm hiểu cách xây dựng module mới trong dotnetnuke

6.2 Kết quảvềmặt thực tế

- Tự thiết kếra một giao diện cho portal chứng khoán

- Xây dựng bộskin, container cho giao diện đã thiết kếvà triển khai sửdụng - Xây dựng các moduleứng dụng giải pháp XML&XSL

- Xây dựng các moduleứng dụng webservice

- Xây dựng các moduleứng dụng kỹthuật webspider - Xây dựng bảng giá trực tuyến trên kỹthuật ajax.

- Tham gia triển khaiứng dụng cho một sốcông ty chứng khoán.

6.3 Kết quảvềmặt thực tế

- Tìm hiểu sâu hơn vềDotnetnuke - Test lại và hoàn thiện thêm các module

Một phần của tài liệu Xây Dựng Portal Chứng Khoán (Trang 43)