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….
Trang 1HỌ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
Trang 2MỞ ĐẦ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
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
Trang 3trong 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
Trang 4Chứ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
Trang 5kể 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
Trang 6trê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
Trang 73 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
Trang 8CHƯƠ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 (http://www.wpftutorial.net/WPFIntroduction.html)
Trang 9Nề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 – ( http://msdnvietnam.net),
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
Trang 10Khô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
Trang 11thuộ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 (http://msdnvietnam.net )