Tài liệu 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

  • Số trang: 25 |
  • Loại file: PDF |
  • Lượt xem: 202 |
  • Lượt tải: 0
nganguyen

Đã đăng 34345 tài liệu

Mô tả:

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 (http://www.wpftutorial.net/WPFIntroduction.html) được thể hiện ở Hình 2.1 9 Hình 2.1: Tổng quan WPF 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 – ( http://msdnvietnam.net), Hình 2.2: Đối chiếu các công nghệ hiện có trong 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 (http://msdnvietnam.net ). 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 (http://msdnvietnam.net). 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 Dịch vụ Web Dịch vụ Web nâng cao Lập trình nền thuộc tính Mô h ình từ xa Lập trình nền thông điệp Hình 3.1: Khả năng hợp nhất của WCF  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. 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 (http://msdnvietnam.net). 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 Service Xác định nơi mà lời gọi dịch vụ sẽ gửi tới 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. PortType định nội dung mà lời gọi sẽ gửi đi 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 (http://msdnvietnam.net). 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 ( http://www.orbifold.net ). 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
- Xem thêm -