Tải bản đầy đủ (.pdf) (25 trang)

Phát triển hệ thống kết nối dữ liệu dựa trên công nghệ WCF,WPF cho VNPT hải dương

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (938.7 KB, 25 trang )

1


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG




Nguyễn Đức Linh

PHÁT TRIỂN HỆ THỐNG KẾT NỐI DỮ LIỆU DỰA TRÊN
CÁC CÔNG NGHỆ WCF, WPF CHO VNPT HẢI DƯƠNG

Người hướng dẫn khoa học: PGS.TS Trần Đình Quế

TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT






HÀ NỘI – 2011
2


MỞ ĐẦU
Sự phát triển nhanh chóng công nghệ phần mềm trong những năm vừa qua làm xuất
hiện ngày càng đa dạng các công cụ phát triển và các công nghệ phần mềm mới. Hầu như
các doanh nghiệp sử dụng CNTT đều có rất nhiều hệ thống phần mềm độc lập chạy trên
nhiều nền tảng khác nhau (giao diện người dùng, database, kiến trúc phần mềm, liên kết dữ


liệu…). Nhu cầu tích hợp và liên kết dữ liệu giữa các hệ thống là một vấn đề hết sức quan
trọng đặc biệt là với các tập đoàn, các doanh nghiệp lớn có các hệ thống phân tán. Nhưng
đồng thời tích hợp và liên kết dữ liệu luôn là thách thức không nhỏ của cả các đơn vị thiết
kế, phát triển ứng dụng.
VNPT Hải Dương cũng triển khai nhiều phần mềm độc lập chạy trên nhiều nền tảng
công nghệ khác nhau, Ví dụ:
 Hệ thống quản lý mạng cáp: chạy database Oracle 9i, Oracle devenloper 6i, giản
đồ cáp dùng công nghệ bản đồ số IOGis
 Hệ thống quản lý cước tập trung: chạy database Oracle 9i, Oracle devenloper 95.
 Chương trình quản lý phát triển thuê bao: ASP, database SQL server 2005
 Chương trình quản lý nhân sự, Chấm công…
Các hệ thống này chạy độc lập, trên nhiều môi trường khác nhau, gây ra vấn đề
chồng chéo dữ liệu, khó khăn trong việc quản lý và sử dụng. Yêu cầu đặt ra là phát triển ứng
dụng và kết nối dữ liệu giữa các hệ thống độc lập sẵn có. Lựa chọn giải pháp công nghệ nào
để đảm bảo khả năng đáp ứng tốt nhất yêu cầu trên trong rất nhiều kỹ thuật phần mềm hiện
nay.
Trên thế giới đã có nhiều nhà cung cấp các hệ thống phần mềm thống nhất cho doanh
nghiệp như các giải pháp về lĩnh vực ERP (Enterprise resource planning: Hoạch định
nguồn tài nguyên doanh nghiệp) và CRM (Customer relationship management: Quản lý
quan hệ khách hàng ). Tuy nhiên các giải pháp này vô cùng đắt đỏ, và không kế thừa được
những hệ thống có sẵn.
Trong xu thế tích hợp và liên kết của công nghệ phần mềm, với tham vọng “All in
one”- tích hợp tất cả trong một môi trường phát triển, tháng 11 năm 2006, Microsoft chính
thức phát hành bộ các công cụ mới trong .NET Framework 3.0 là Windows Presentation
Foundation(WPF), Windows Communication Foundation(WCF), Windows Workflow
Foundation(WF). Tích hợp trong Visual studio 2008. Đây là một bước đột phá quan trọng
3


trong chiến lược tích hợp công nghệ của Microsoft với WPF là “All in one” trong tích hợp

design và WCF theo mô hình SOA (Kiến trúc hướng dịch vụ) là “All in one” trong liên kết
dữ liệu trong hệ thống phân tán.
 WPF tích hợp khả năng của rất nhiều ngôn ngữ sử dụng NetFramwork trước nó.
Bao gồm cả Windows API , GDI, GDI+, Windows Media Player, DirectX,
Direct 3D and HTML, …và cũng bị ảnh hưởng bởi các công cụ trên web khác
như ADobe, Flash, và các ứng dụng Windows phổ biến khác như MS Word,
PDF….WPF được xây dựng nhằm vào ba mục tiêu cơ bản:
- Cung cấp một nền tảng thống nhất để xây dựng giao diện người dùng
- Cho phép người lập trình và người thiết kế giao diện làm việc cùng nhau
một cách dễ dàng.
- Cung cấp một công nghệ chung để xây dựng giao diện người dùng trên cả
Windows và trình duyệt Web.
 WCF có thể kết hợp được hầu hết các kỹ thuật cho hệ phân tán hiện nay:
ASP.NET Web Services (ASMX), Web Service Enhancements (WSE),
Microsoft Message Queue (MSMQ), Enterpise Services/COM+ và .Net
Remoting. Cho phép phát triển các ứng dụng hướng dịch vụ dựa trên kết nối giữa
các dịch vụ và các ứng dụng .Thay thế cho các kiến trúc phân tán trước đây như
Web services, COM+, Microsoft Message Queue, or .NET Framework Remoting,
cung cấp mô hình thống nhất cho viết thiết kế và kiến trúc các giải pháp mà
không bị giới hạn bởi một cơ cấu riêng nào đó.
Đề tài của luận văn “PHÁT TRIỂN HỆ THỐNG KẾT NỐI DỮ LIỆU DỰA TRÊN
CÁC CÔNG NGHỆ WCF, WPF CHO VNPT HẢI DƯƠNG” là một sự lựa chọn cần thiết
nhằm giải quyết những vấn đề khó khăn trong ứng dụng và phát triển CNTT của Doanh
nghiệp hiện nay.
4


CHƯƠNG 1
CÁC HỆ THỐNG PHẦN MỀM TẠI VNPT HẢI DƯƠNG: THỰC
TRẠNG & GIẢI PHÁP

1.1. Các hệ thống phần mềm tại VNPT Hải Dương
1.1.1. Hệ thống phần mềm quản lý mạng cáp (QLMC).
Chức năng: Hệ thống phần mềm quản lý mạng cáp tập trung xây dựng phục vụ cho
việc quản lý mạng ngoại vi trong phạm vi một bưu điện tỉnh/thành phố. Hệ thống bao gồm
bộ chương trình khai thác, quản lý, quản trị và bộ tích hợp bản đồ cho phép quản trị hệ
thống, khai thác các chức năng liên quan tới mạng cáp, quản lý về mạng cáp, thuê bao cũng
như phân công sửa chữa máy hỏng trên bản đồ
Hệ quản trị cơ sở dữ liệu: Oracle 9i Trên hệ điều hành Windows Server 2003 hoạt
động theo mô hình Client/Server.
Công cụ phát triển: Designer 2000, Oracle Developer 6i, Công nghệ bản đồ số GIS
của Oracle qua OCI sử dụng Microsoft C++ 6.0.
1.1.2. Hệ thống phần mềm cước (CUOC).
Chức năng: Hệ thống quản lý cước bao gồm các chức năng tính cước, quản lý danh
bạ thuê bao,danh bạ khách hàng, quản lý thu nợ cước, khiếu nại cước, đối soát số liệu cước,
các chính sách khuyến mại giá cước…
Hệ quản trị cơ sở dữ liệu: Oracle 9i Trên hệ điều hành Windows Server 2003 hoạt
động theo mô hình Client/Server.
Công cụ phát triển: Oracle Developer 6i, Microsoft C++ 6.0 cho chương trình tính
cước
1.1.3. Hệ thống quản lý và phát triển thuê bao (PTTB).
Chức năng: Hệ thống quản lý phát triển thuê bao có chức năng tiếp nhận tất cả các
yêu cầu dịch vụ từ khách hàng (đăng ký phát triển mới, thay đổi loại hình dịch vụ, hủy dịch
vụ…) sau đó đưa số liệu về các bộ phận liên quan (tổng đài, truyền dẫn, dây máy, kế toán
cước…) xử lý các yêu cầu đó, từng bước cho đến khi hoàn thành yêu cầu của khách hàng,
cuối cùng là đẩy số liệu vào các hệ thống liên quan (chương trình quản lý cáp, quản lý cước
5


kể trên). Ngoài ra hệ thống còn quản lý các dịch vụ, các thiết bị liên quan đến dịch vụ như
cổng DSLAM, cổng Switch, đầu số… Kiểm tra tính sẵn dùng của thiết bị để đáp ứng dịch

vụ, tra cứu thông tin danh bạ…
Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2005 Trên hệ điều hành Windows
Server 2003 hoạt động theo mô hình Client/Server.
Công cụ phát triển: ASP, javascript
1.1.4. Trang báo cáo và điều hành công việc.
Chức năng: Trang báo cáo và điều hành bao gồm các chức năng thông báo nội bộ,
tra cứu danh bạ khách hàng, tra cứu danh bạ nội bộ, hướng dẫn sử dụng, chia sẻ tài liệu, tra
cứu danh bạ nội bộ, danh bạ trợ giúp, báo sự cố chương trình, góp ý phát triển hệ thống.
Ngoài ra còn có hai modul Báo cáo ngày và Xử lý khiếu nại.
Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2005 Trên hệ điều hành Windows
Server 2003 hoạt động theo mô hình Client/Server.
Công cụ phát triển: ASP.NET, Ngôn ngữ lập trình C#, javascript.
1.1.5. Phần mềm quản lý nhân sự
Chức năng: Quản lý nhân sự, tiền lương, phòng ban chức năng.
Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2005
Công cụ phát triển: ASP.NET, Ngôn ngữ lập trình C#, javascript.
1.2. Những yếu điểm của hệ thống hiện tại.
Như vậy hệ thống hiện tại phát sinh nhiều điểm bất cập:
 Dữ liệu thường quản lý chồng chéo nhau và không đồng nhất, khó khăn về vấn
đề đồng bộ dữ liệu của các chương trình. Ví dụ khi cập nhật thông tin của một cá
nhân nào đó trong doanh nghiệp thì phải cập nhật ở tất cả các hệ thống. điều này
rất dễ làm sai, thiếu dữ liệu. không biết dữ liệu nào mới là tin cậy
 Người sử dụng khó khăn do phải cài đặt và sử dụng nhiều môi trường ứng dụng
(SQL server, Oracle Server, Win Form, Web Form, Oracle Devenloper…).
 Khi phát sinh yêu cầu phải liên kết dữ liệu giữa các hệ thống. Người dùng thông
thường không thể khai thác được. Bắt buộc phải có Admin quản trị am hiểu về
các hệ thống mới thực hiện được.Ví dụ với yêu cầu: Thống kê doanh thu có được
6



trên môt tuyến cáp.Rõ ràng trong hệ thống QLMC không có số liệu doanh thu.
Còn hệ thống CUOC có số liệu doanh thu của thuê bao nhưng không có số liệu
cáp.Yêu cầu này bắt buộc phải liên kết giữa hai hệ thống mới có thể đưa ra kết
quả…
 Việc nâng cấp, phát triển hệ thống, bổ xung thêm các module chức năng nghiệp
vụ mới rât phức tạp vì đòi hỏi phải tìm hiểu hầu hết các hệ thống hiện tại với
nhiều môi trường lập trình và các cấu trúc khác nhau.
 Chưa hỗ trợ khả năng làm việc phân tán trên mạng Internet tại bất cứ địa điểm
nào. Người sử dụng bắt buộc phải phụ thuộc vào vị trí máy cài đặt thì mới kết nối
được vào hệ thống.
1.3. Đề xuất giải pháp liên kết dữ liệu và tích hợp giao diện
Xuất phát từ những bất cập của hệ thống hiện tại. Nhằm giải quyết vấn đề thống nhất
dữ liệu và thống nhất nền tảng khai thác. Bài luận văn này đề xuất giải pháp tích hợp hệ
thống dựa trên các công cụ mới nhất của Microsoft.
Vấn đề tích hợp giao diện: Với công nghệ WPF thì thống nhất giao diện trở thành
một vấn đề đơn giản. WPF đáp ứng hầu hết các yêu cầu về giao diện hiện tại, người dùng
chỉ cần cài đặt một môi trường duy nhất. Đồng thời WPF cho phép triển khai cả trên môi
trường desktop và môi trường Web cho phép người dùng kết nối vào hệ thống từ bất cứ vị
trí nào có kết nối internet. (Xem ở Chương 2).
Vấn đề liên kết dữ liệu: Sử dụng công nghệ WCF theo mô hình kiến trúc hướng dịch
vụ (SOA), xây dựng một hệ thống dữ liệu trung gian liên kết tất cả các hệ thống database
hiện có, gọi là DATASET QLHD (Hình 1.6). Dataset này có bao gồm tất cả các thành phần
dữ liệu của tất cả các hệ thống được database hiện tại thiết kế theo 4 nguyên tắc sau.
1. Với các module (thực thể dữ liệu) độc lập, là các modul chỉ có duy nhất trên toàn
hệ thống database trong doanh nghiệp, thì nó đơn giản chỉ là tham chiếu đến các
module gốc, giữ nguyên định dạng cấu trúc và kiểu dữ liệu.
2. Với các module trùng nhau, là các modul xuất hiện ít nhất trên hai hệ thống cơ sở
dữ liệu trong doanh nghiệp (như modul quản lý người dùng), thì cấu trúc của nó
sẽ có các trường (field) bao gồm toàn bộ các trường của các hệ thống cơ sở dữ
liệu, với độ rộng trường là độ rộng lớn nhất.

7


3. Nếu cùng một trường thông tin nhưng khác kiểu dữ liệu thì bổ xung chức năng
chuyển đổi kiểu dữ liệu bên trong khi lấy giá trị (get) hoặc gán giá trị (set).
4. Tất cả các relation, constraint trên csdl gốc đều được thiết lập trên Dataset này.

Hình 1.6: Mô hình liên kết dữ liệu
DATASET QLHD không chứa dữ liệu, nó chỉ là một tập hợp các class định nghĩa
sẵn chỉ tải các dữ liệu cần thiết khi được gọi. Nó được triển khai trên một máy chủ cung cấp
dịch vụ cài đặt Service host WCF. Service host này cung cấp tất cả các dịch vụ cần thiết để
truy vấn các đối tượng, module chứa trong DATASET QLHD. Ngoài ra các oject (module)
của DATASET QLHD có thể truy vấn dữ liệu bằng LINQ.
Khi đó các máy khai thác chỉ cần liên kết mới máy này, chỉ cần biết cấu trúc của
DATASET QLHD để truy vấn dữ liệu mà không cần biết đến các server thực đang tồn tại
nữa. Dữ liệu của Toàn bộ hệ thống dường như thống nhất là một CSDL duy nhất.
8


CHƯƠNG 2
CÔNG NGHỆ WPF
(WINDOWS PRESENTATION FOUNDATION)
2.1. Tổng quan về công nghệ WPF
2.1.1. Nhìn lại vấn đề lập trình giao diện.
Windows Forms đã được chuẩn hóa và mang trong mình đầy đủ các công cụ cho
phép xây dựng các chương trình dễ dàng. Tuy nhiên, do sử dụng Windows API, nên giao
diện của các control chuẩn như button, checkbox, textbox bị phụ thuộc vào phiên bản
Windows mà .NET Framework đang chạy. Rắc rối lớn nhất của Windows Forms chính là
giao diện của các control chuẩn này lại gần như không thể được can thiệp và thay đổi theo
tư duy sáng tạo của designer, ngoại trừ trường hợp có ai đó chịu khó đến nỗi ngồi viết cả tấn

code bằng mô hình lập trình cấp thấp GDI/GDI+ (Graphical Device Interface).
Với sự gia tăng liên tục của các ứng dụng nền tảng dựa trên HTML và JavaScript,
Microsoft nhận thấy rằng, một công nghệ mới là cần thiết đã thoát khỏi những hạn chế của
GDI + và USER, có thể cung cấp các loại tính năng sẵn có trong khuôn khổ như Windows
Forms, đồng thời công nghệ này vừa có khả năng thú vị và dễ dàng sử dụng như ứng dụng
Web, nhưng với năng lực của máy tính cục bộ. Windows Presentation Foundation (WPF) là
câu trả lời cho các nhà phát triển phần mềm và thiết kế đồ họa, những người muốn tạo ra
những trải nghiệm người dùng hiện đại mà không phải mất quá nhiều thời gian để làm chủ
nó. Một ý tưởng đột phá trong WPF là có thể kết hợp cả hai công nghệ Winform và
Webform trong vấn đề thiết kế giao diện
2.1.2. Các điểm nổi bật của WPF
Những đặc điểm nổi bật của WPF được thể hiện ở Hình 2.1
(
9



Nền tảng thống nhất để xây dựng giao diện (Khả năng tích hợp rộng)
WPF cung cấp nhiều tính năng lập trình giao diện trong cùng một công nghệ đơn
nhất. Điều này giúp cho quá trình tạo giao diện người dùng trở nên dễ dàng hơn đáng kể.
Bằng việc hợp nhất tất cả các công nghệ cần thiết để tạo ra một giao diện người dùng vào
một nền tảng đơn nhất thể hiện ở Hình 2.2 – ( ),

Hình 2.2: Đối chiếu các công nghệ hiện có trong WPF
Hình 2.1: Tổng quan WPF
10


Không phụ thuộc vào độ phân giải màn hình.
WPF sử dụng đồ họa vector và tính năng thiết kế giao diện mềm dẻo của XAML như

ứng dụng Web nên không phụ thuộc vào độ phân giải của màn hình.
Tăng tốc phần cứng
WPF sử dụng DirectX làm công nghệ cơ sở để xây dựng nên những hiệu ứng thú vị
như trên. DirectX là công nghệ đồ họa của Microsoft, tận dụng được khả năng của phần
cứng để tăng tốc chương trình.
Công nghệ chung cho giao diện Windows và trên trình duyệt Web.
Công nghệ web cho ứng dụng desktop: WPF cho phép thay đổi giao diện ứng dụng
một cách dễ dàng và tùy ý thông qua các template, style giống như CSS trong HTML nhưng
nhiều tính năng và rõ ràng hơn
Công nghệ desktop cho web: Với WPF, chúng ta có thể tạo ra các ứng dụng cho cả
Windows và web. WPF sử dụng XBAP (XAML browser application) để tạo ra những ứng
dụng có thể thực thi bên trong trình duyệt. Những ứng dụng này kết hợp các đặc trưng của
cả ứng dụng web và desktop.
Control có thành phần phức hợp và khả năng tuỳ biến rất cao.
WPF có thể được phức hợp theo những cách chưa từng thấy, có thể tạo một
ComboBox đầy Buttons hoạt hình hoặc Menu chứa đầy các đoạn video trực tiếp! đạt được
với những đoạn code đơn giản. WPF khá dễ dàng để tùy biến hình dáng các control "skin"
và của ứng dụng với vẻ hoàn toàn khác nhau (bằng các "Styles, Templates, Skins, và
Themes").
Cộng tác tốt giữa người thiết kế giao diện và lập trình viên
WPF đưa ra ngôn ngữ đặc tả eXtensible Application Markup Language (XAML).
XAML định ra một tập các phần tử XML như Button, TextBox, Label…, nhằm định nghĩa
các đối tượng đồ họa tương ứng như nút bấm, hộp thoại, nhãn…, và nhờ đó cho phép mô tả
chính xác diện mạo của giao diện người dùng. Các phần tử XAML cũng chứa các thuộc tính,
cho phép thiết lập nhiều tính chất khác nhau của đối tượng đồ họa tương ứng. Mỗi phần tử
XAML lại tương ứng với một lớp WPF, và mỗi thuộc tính của phần tử đó lại tương ứng với
11


thuộc tính hay sự kiện của lớp này. Ngoài ra XAML có thể sửa đổi bằng rất nhiều công cụ

phát triển như Visual Studio, Expression Blend, XAMLPad Do đó WPF cho phép các
thành viên của đội phát triển và thiết kế có thể làm việc với nhau trên cùng một file mà
không cần phải thông qua một file ảnh tĩnh như trước đây . Theo cách này, nhà thiết kế xây
dựng các giao diện phức tạp bằng Expression Blend. Toàn bộ thiết kế sẽ được công cụ sinh
ra các thể hiện dưới dạng XAML. Nhà phát triển chỉ việc sử dụng các đoạn mã XAML này
với công cụ như Visual Studio 2008 để viết các xử lý logic cho ứng dụng, mà không cần
phải thiết kế lại .
Tách biệt phần hiển thị với phần logic, giảm thiểu dòng lệnh
Cơ chế Data Binding trong WPF khiến toàn bộ quá trình hiển thị dữ liệu lên các
control giao diện được xử lý một cách tự động mà không cần đến sự can thiệp của các đoạn
mã phía sau của control này.
Tiết kiệm chi phí triển khai.
WPF cung cấp nhiều công cụ thuận tiện cho việc triển khai, cài đặt tùy thuộc vào
kiểu ứng dụng. Với các ứng dụng thuần túy là các file XAML, không cần phải biên dịch,
chúng ta có thể triển khai chúng trên website như với ASP.NET thông thường. Với các ứng
dụng trình duyệt web XBAP, sử dụng dòng lệnh (command-line) trong XCopy hoặc đóng
gói bằng Windows Installer để cài đặt cho khách hàng. Với các ứng dụng chạy độc lập
chúng ta có thể đóng gói thông qua Windows Installer hoặc ClickOnce. Giống như
Windows Installer, ứng dụng được triển khai sử dụng ClickOnce. Ngoài ra ClickOnce còn
cho phép cài đặt ứng dụng trực tuyến thông qua web
2.2. Các thành phần trong WPF
Giống như các thành phần khác của .NET Framework, WPF tổ chức các chức năng
theo một nhóm namespace cùng trực thuộc namespace System.Windows Hình 2.4
( ).
12



Hình 2.4: Các thành phần cơ bản của WPF
2.2.1. XAML

2.2.2. Layout và control
2.2.3. Style và Template
2.2.4. Text và Document
2.2.5. Media
2.2.6. Đồ họa
2.2.7. Data Binding (liên kết dữ liệu)
2.2.8. Resource
13


CHƯƠNG 3
CÔNG NGHỆ WCF
(WINDOWS COMMUNICATION FOUNDATION)
3.1. Tổng quan về Windows Communication Foundation
3.1.1. Kiến trúc hướng dịch vụ (SOA) và WCF
“Kiến trúc hướng dịch vụ” – Service Oriented Architecture (SOA) ra đời đã có một
hướng tiếp cận giải quyết khá toàn diện các vấn đề không đồng nhất của các nền tảng công
nghệ và thích hợp với các hệ thống phân tán. Ưu điểm của kiến trúc hướng dịch vụ
 Tái sử dụng phần mềm:
 Tính linh hoạt và dễ dàng triển khai:
 Khả năng thích ứng cao với những thay đổi trong tương lai.
 Giảm chi phí cho việc cập nhật và bảo trì phần mềm
WCF đã được thiết kế với các nguyên lý sau của SOA
 Rõ ràng về ranh giới: Các ứng dụng và dịch vụ liên lạc với nhau thông qua các
thông điệp mà không quan tâm đến việc xử lý và tiếp nhận
 Tự phát triển: Dịch vụ và sử dụng dịch vụ là độc lập với các quá trình nâng cấp
phiên bản, triển khai, hoạt động và bảo mật.
 Chia sẻ yêu cầu, không chia sẻ nội dung: Các dịch vụ cung cấp các phép toánvà
cấu trúc thông tin. Không bao gồm nội dung thông tin
 Tương thích dựa trên chính sách: Các dịch vụ có thể thiết kế để độc lập với việc

triển khai, thống nhất với các ứng dụng về chuẩn giao tiếp.
3.1.2. Mục tiêu của công nghệ WCF
 Mục tiêu 1: Hợp nhất công nghệ
Khả năng hợp nhất công nghệ của WCF thể hiện trong Hình 3.1
().
Microsoft đưa ra giải pháp WCF hợp nhất các công nghệ phân tán tập hợp tất cả
những ưu điểm của các công nghệ trước đó WCF tránh được việc thay đổi mô hình giao
tiếp khi làm việc với nhiều công nghệ phân tán, cho phép sử dụng một API đơn giản và
trong sáng.

14

















 Mục tiêu 2: Tương tác đa nền
Hầu hết các công ty phần mềm lớn đều sử dụng những giao thức riêng gắn liền với

một nền tảng công nghệ nào đó. Một doanh nghiệp lớn thường có các hệ thống riêng rẽ,
mua ở những thời điểm khác nhau, của những công ty khác nhau. Và tất nhiên chúng sẽ
không tương thích tốt với nhau. Việc liên kết các hệ thống lại thành một thể thống nhất và
làm việc hiệu quả là một yêu cầu cần thiết. WCF có khả năng làm điều đó, hỗ trợ tương tác
đa nền tảng công nghệ
 Mục tiêu 3: Phát triển hướng dịch vụ
WCF là một công cụ phát triển hướng dịch vụ. WCF đảm bảo các dịch vụ được xây
dựng một cách tự động theo nguyên tắc SOA (phần 3.1.1). Điều đó đảm bảo giảm giá thành
bảo trì, cho phép thay đổi và tương tác đa nền.
Dịch
vụ Web

Lập trình
n

n thu

c tính

Lập trình
nền thông điệp

Dịch vụ
Web nâng cao

M
M
ô
ô



h
h
ì
ì
n
n
h
h


t
t




x
x
a
a


Hình 3.1: Khả năng hợp nhất của WCF
15


3.2. Kiến trúc của Windows Communication Foundation

Hình 3.2: Kiến trúc của WCF (microsoft.com)

Windows Communication Foundation là một Framework trong .NET 3.0. Nó gồm
rất nhiều các thư viện, không gian tên (namespace) cho việc lập trình ứng dụng WCF. Kiến
trúc WCF và các tầng được mô tả như Hình 3.2 ().
3.3. Mô hình lập trình với WCF
Mô hình dịch vụ trên WCF cũng tương tự như với mô hình dịch vụ web. Điểm khác
biệt là ở cách đặt tên. Trong WCF các thành phần không được gọi là service, binding, và
portType mà được gọi tương ứng là address (địa chỉ), binding, và contract (xem bảng 3.1)
Bảng 3.1 Tương ứng WCF và Web Service
WCF Web Service
Address
Xác định nơi mà lời gọi dịch vụ sẽ gửi tới
Service
Chứa thông tin về vị trí của dịch vụ
Binding Binding
16


Xác định cách thức mà lời gọi sẽ được gửi

Chứa thông tin về cách liên lạc với
dịch vụ, như dịch vụ sử dụng giao
thức gì
Contract.
định nội dung mà lời gọi sẽ gửi đi
PortType
Giải thích về dịch vụ sẽ làm gì
3.3.1. Các phương pháp lập trình
Có ba phương pháp hay được sử dụng khi phát triển dịch vụ WCF như sau:
 Phương pháp khai báo (Declarative programming)
 Phương pháp lập trình trực tiếp (Explicit programming)

 Phương pháp sử dụng tập tin cấu hình
3.3.2. Nguyên lý ABCs
Mô hình lập trình với nguyên lý ABCs thể hiện như Hình 3.3
(). ABC là viết tắt của ba khái niệm quan trọng trong WCF. Đó là:
Address, Binding và Contract.
Address trả lời cho câu hỏi Where?. Xác định nơi lời gọi dịch vụ sẽ gửi tới.
Binding trả lời cho câu hỏi How?. Xác định cách thức lời gọi được gửi đi
Contract trả lời cho câu hỏi What?. Xác định nội dung lời gọi sẽ gửi đi.
Thông thường, bộ ABC được coi như một cổng giao tiếp (endpoint) với thế giới bên
ngoài của dịch vụ được định nghĩa trong WCF. Để mô tả về endpoint, ta dùng một tập tin
đặc biệt định dạng XML đó là WSDL (Web Services Description Language). WSDL mô tả
những gì dịch vụ có thể làm, cách mà từ bên ngoài có thể truy cập được dịch vụ cũng như
nơi có thể tìm được dịch vụ.

Hình 3.3: Nguyên lý ABCs
17


3.4. Bảo mật trong WCF
3.4.1. Đặc tính kế thừa trong bảo mật của WPF
Kế thừa bảo mật HTTPS và SOAP
Tích hợp với các kiến trúc bảo mật có sẵn
WCF hoàn toàn có thể làm việc với các giải pháp bảo mật có sẵn như Secure
Sockets Layer (SSL) hoặc giao thức Kerbeos. Ngoài ra nó cũng có thể làm việc với kiến
trúc bảo mật đang sử dụng như domain trên Windows sử dụng Active Directory.
Tích hợp với các mô hình xác thực có sẵn
WCF hỗ trợ rất nhiều các mô hình xác thực khác nhau:
 Anonymous caller
 Username client credential
 Certificate client credential

 Windows (Kerberos và NT LanMan – NTML).
Các chuẩn và tính interoperability (làm việc liên môi trường)
WCF sử dụng WSHttpBinding để hỗ trợ WS-Security 1.1 và WS-
SecureConversation.
3.4.2. Các lĩnh vực bảo mật của WCF
Bảo mật trong WCF chia ra thành ba vùng chức năng: transfer security (bảo mật
truyền thông), (access control) điều khiển truy nhập, và auditing (ghi vết).
18


CHƯƠNG 4
HỆ THỐNG TÍCH HỢP
4.1. Kiến trúc tích hợp
4.1.1. Mô hình lập trình MVVM
Quá trình hình thành mô hình Model-View-ViewMode.
Năm 2005, John Gossman, hiện tại là trong những kiến trúc sư về WPF và Silverlight
tại Microsoft, đã công bố mẫu thiết kế Model-View-ViewModel (MVVM) trên blog của
mình. MVVM được giới thiệu như là một cách được chuẩn hóa để tận dụng những tính
năng cốt lõi của WPF để đơn giản hóa việc tạo ra những giao diện người dùng Hình 4.2
( ).

Hình 4.2: Kiến trúc mô hình lập trình MVVM
Toàn bộ tầng View (phần hiển thị)
View liên kết với Model (phần dữ liệu được đóng gói thành các class, component )
thông qua View Model.
19


Mỗi tác động của người dùng trên View tác động trở lại Model qua các lệnh
(command).

4.1.2. Kiến trúc tích hợp theo mô hình MVVM
Hệ thống tích hợp, liên kết dữ liệu cho VNPT Hải Dương theo mô hình lập trình
MVVM được thiết kế thành các tầng như hình 4.3.

Hình 4.3: Kiến trúc hệ thống tích hợp
Tầng Data: gồm có tất cả các cơ sở dữ liệu cần tích hợp như CSDL QLMC, CSDL
CUOC, CSDL PTTB… Nhiệm vụ của tầng này là kết nối đến cơ sở dữ liệu liên quan, lấy
được cấu trúc các đối tượng của CSDL như là View, Table, Procedure, Function… đưa vào
các Dataset tương ứng.
Tầng Data Access: Biến đổi tất cả các đối tượng của tầng Data, đưa ra các thực thể
dữ liệu (class) tương ứng. Dữ liệu từ database đã được đóng gói thành các thành phần
(component, oject) có đầy đủ các thuộc tính (properties) và các phương thức (method,
function, procedure…) thao tác với csdl (get, load, save, insert, update….).
Tầng WCF Service: tầng này tạo ra các service để thông qua nó QLHD Model tạo
các thực thể cần thiết. Các service cung cấp các phương thức cần thiết để lấy dữ liệu từ xa
cho tầng QLHD Model.
Tầng Presentation: Bao gồm các đối tượng QLHD Model, và các ViewModel hỗ
trợ cho việc hiển thị. Việc thiết kế Dataset trung gian QLHD Model dựa trên các class có
được từ tầng Data Access theo 4 nguyên tắc đã nêu ở Chương 1. Ứng với mỗi hiện thị trên
20


màn hình (View) sẽ có một ViewModel tương ứng. ViewModel này làm nhiệm vụ kết nối
dữ liệu (binding data) từ QLHD Model lên giao diện đó. Cùng với các lệnh thực hiện
(command) tương tác từ View trở lại. ViewModel còn gọi là hành sử của View.
Tầng GUI: Chính là các View, các đối tượng hiển thị trên màn hình. Đây là nhiệm
vụ trình diễn của công nghệ WPF. Tầng này bao gồm tất cả những gì trình diễn trên màn
hình, đồ họa, âm thanh, văn bản….
4.2. Thiết kế các thành phần.
Hệ thống được viết trên Visual Studio

2010 với ngôn ngữ lập trình C#. bao gồm các
project Common, Dataacess, QLHD Model,
WcfServiceQLHD, WPFBase. Mỗi project tương
ứng với các tầng đã được thiết kế ở hình 4.3.
Toàn bộ Solution của hệ thống như Hình 4.4.





Hình 4.4: Các project cần thực hiện

4.2.1. Data access layer (DAL).
Project DataAcess: Tương ứng với tầng DAL Bao gồm các thành phần tác nghiệp với
các cơ sở dữ liệu (Data). Trong Project DataAcess sẽ có các project con tương ứng với mỗi
csdl gốc (Hình 4.5).
 Project CuocDAL: tương ứng với csdl CUOC
 Project NhansuDAL: tương ứng với csdl NHANSU
 Project PTTBDAL: tương ứng với csdl PTTB
 Project QLMCDAL: tương ứng với csdl QLMC
21


 …
Mỗi thực thể dữ liệu (class) trong DAL tương ứng với một table (hoặc view) với data
base gốc. Với các thuộc tính tương ứng với các collumn của table đó, có bổ xung thêm một
vài thuộc tính khác. Tất nhiên nó có tất thêm các phương thức cần thiết để thao tác với đối
tượng Data ở lớp dưới thông qua các Methods.( Save, Get,….).
4.2.2. Tầng WCF Service.
Project WcfServiceQLHD: Cung cấp các dịch vụ để truy cập vào tầng DAL sử dụng

công nghệ WCF. Các Service sẽ cung cấp các dịch vụ cần thiết để Load, Save… các thực
thể từ DAL cho tầng QLHD Model.
Các service tương ứng với mỗi project trong DAL tương ứng là gốc là
 CuocService : tạo các dịch vụ truy xuất với CuocDAL
 NhanSuService: tạo các dịch vụ truy xuất với NhanSuDAL
 PTTBService: tạo các dịch vụ truy xuất với PTTBDAL
 QLMCService.: tạo các dịch vụ truy xuất với QLMCDAL
 …
4.2.3. QLHD Model
Bên trong QLHD Model sẽ gồm có các thực thể dữ liệu bao gồm toàn bộ các thực thể
ở DAL. Các thực thể dữ liệu này có cấu trúc (các thành phần dữ liệu, thuộc tính –
properties) theo 4 nguyên tắc đã nêu ở Chương 1.
QLHD Model thông qua Tầng WCF Service để lấy dữ liệu từ xa trên các database
server. Đầu tiên nó khai báo các đối tượng trong Data Access Layer liên quan, sau đó khai
báo các wcf service cần thiết kết nối với các database server đó để lấy dữ liệu về DAL và
tiến hành tạo các thuộc tính của Model dựa trên các đối tượng DAL.
Với các thực trùng nhau: Hình 4.6 cho thấy thực thể UserModel trong Tầng QLHD
Model là một thực thể trùng nhau -có mặt trong cả 2 database CUOC và PTTB được tạo ra
theo 4 nguyên tắc đã nêu ở Chương 1 như thế nào.
22


Hình 4.6: Thực thể UserModel trong Tầng QLHD Model
Với các thực thể độc lập: Tương tự như trường hợp trên. Nhưng chỉ cần tham chiếu
tới 1 thực thể gốc qua một WCF Service
4.2.4. Tầng ViewModel và View
Tầng này là nơi trình diễn của công nghệ WPF, tùy vào ứng dụng cụ thể và những
yêu cầu cụ thể sẽ thiết kế những giao diện cần thiết.
4.3. Triển khai hệ thống
4.3.1. Triển khai trên Server

4.3.2. Triển khai trên Client

23


KẾT LUẬN
Các kết quả luận văn đã đạt được
 Luận văn đã khảo sát thực tiễn một cách tương đối toàn diện các hệ thống phần mềm
ứng dụng trong VNPT Hải Dương như là các phần mềm Quản lý mạng cáp, Quản lý
cước và thu nợ, Quản lý nhân sự, Trang điều hành và báo cáo, Hệ thống quản lý phát
triển thuê bao…. Nhận thấy tình hình các phần mềm ứng dụng trong đơn vị rất đa
dạng, trên nhiều nền tảng công nghệ, nhiều nhà cung cấp và hoàn toàn độc lập với
nhau. Từ những khảo sát đó xác định xác định những hạn chế của hệ thống phần mềm
hiện tại đã phát sinh nhiều bất cập như là:
- Dữ liệu thường quản lý chồng chéo nhau và không đồng nhất, khó khăn về
vấn đề đồng bộ dữ liệu của các chương trình dẫn đến sai số liệu, thiếu dữ liệu.
không biết dữ liệu nào mới là tin cậy.
- Người sử dụng khó khăn do phải cài đặt và sử dụng nhiều môi trường ứng
dụng.
- Việc nâng cấp, phát triển hệ thống, bổ xung thêm các module chức năng
nghiệp vụ mới rất phức tạp.
- Chưa hỗ trợ khả năng làm việc phân tán trên mạng Internet, phụ thuộc vào
mạng nội bộ và môi trường cài đặt.
- …
Từ những bất cập đó đòi hỏi phải đưa ra giải pháp tích hợp và liên kết dữ liệu giúp
cho việc điều hành quản lý và sản xuất kinh doanh của doanh nghiệp nhanh chóng,
chính xác và hiệu quả.
 Qua khảo sát về các công nghệ tích hợp hiện tại trong hệ phân tán (CORBA, EJB,
DCOM, SOA…) cũng như tham khảo các giải pháp của các nhà cung cấp trên thế giới
(ERP, CRM…), luận văn đề xuất lựa chọn WPF cho tích hợp giao diện và WCF cho

liên kết dữ liệu phân tán để xây dựng một giải pháp thống nhất dữ liệu và giao diện.
Nội dung luận văn nghiên cứu được các công nghệ mới được tích hợp bên trong WPF,
WCF. So sánh ưu điểm với các công nghệ hiện tại. Cách thức triển khai kiến trúc
hướng dịch vụ (SOA) trong WCF. Làm việc trong môi trường phân tán dữ liệu với
WCF. Với những hỗ trợ tích hợp giao diện của WPF, việc triển khai một ứng dụng
24


mới là tương đối dễ dàng, thỏa mãn tất cả các yêu cầu về giao diện hiện tại trên một
môi trường duy nhất. Cộng với thế mạnh liên kết dữ liệu trong môi trường phân tán
của WCF, kế thừa tất cả các giao thức trước nó, WCF cho phép liên kết dữ liệu nhiều
hệ thống phân tán với nền tảng công nghệ khác nhau. Toàn bộ hệ thống được thống
nhất trên một môi trường phát triển.
 Xây dựng phương án tương đối chi tiết, đưa ra một mô hình lập trình dựa trên mô hình
MVVM nhằm giải quyết bài toán yêu cầu thống nhất dữ liệu và tích hợp hệ thống cho
VNPT Hải Dương, đưa ra giải pháp kết nối dữ liệu, phát triển các ứng dụng mới, tính
năng mới trên hệ thống phần mềm thực tế của VNPT Hải Dương. Với hệ thống dữ liệu
kết nối xây dựng được, đảm bảo tính nhất quán và toàn vẹn dữ liệu, làm đơn giản hoá
trong việc báo cáo, thống kê.
 Giải pháp này kế thừa được toàn bộ những hệ thống trước, đồng thời có thể dễ dàng
phát triển các ứng dụng mới thoả mãn các nhu cầu cần thiết trong hoạt động sản xuất
kinh doanh của doanh nghiệp. Triển khai thành công sẽ tạo thành một hệ thống nhất
quán, dễ dàng trong quản lý, triển khai, cho người sử dụng và người phát triển. Giải
pháp một phần thúc đẩy mạnh mẽ tin học hoá tại doanh nghiệp và đem lại hiệu quả
kinh tế trong quá trình sản xuất.
Hướng nghiên cứu tiếp theo
 Luận văn mới đưa ra mô hình lập trình và giải quyết các vấn đề liên kết dữ liệu nên
vẫn chưa thành một sản phẩm cụ thể. Hướng nghiên cứu tiếp theo là tích hợp toàn bộ
hệ thống phần mềm của VNPT Hải Dương trên nền tảng WPF dựa trên các dữ liệu
sẵn có. Với csdl thống nhất đã tạo, việc phát triển các ứng dụng sẽ trở lên nhanh

chóng và dễ dàng
 Trên cơ sở kiến trúc tích hợp đã xây dựng, với sự modul hóa các lớp, các thành phần,
các lớp bên dưới này có thể được thiết kế tự động (Auto Generate Code) và có thể
được sử dụng chung cho các hệ thống khác nhau. Và sau đó có thể thiết kế những hệ
thống tương tự kế thừa được hầu hết các tầng bên dưới đã được tự động hóa. Các ứng
dụng mới trên các hệ thống mới có thể phát triển một cách dễ dàng và nhanh chóng
khi chỉ cần thiết kế những layer bên trên (tầng giao diện).
25


 Ngoài ra, nhu cầu tích hợp và liên kết dữ liệu là những đòi hỏi chung cho hầu hết các
doanh nghiệp, tập đoàn chứ không phải là nhu riêng của VNPT Hải Dương. Như vậy
có thể mở rộng bài toán trên đưa ra các giải pháp tương tự cho các doanh nghiệp
khác với các các hệ thống phần mềm khác, trên các định dạng database khác nhau…
dựa trên nền tảng công nghệ WCF, WPF.

×