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ữ
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
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
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
ứ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ụ
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
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
ô
ô
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)
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).
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
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
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.