Nghiên cứu công nghệ phát triển ứng dụng nhanh trên nền web trong Bộ Công an

  • Số trang: 57 |
  • Loại file: PDF |
  • Lượt xem: 18 |
  • Lượt tải: 0
tailieuonline

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

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN ĐỨC HÙNG NGHIÊN CỨU CÔNG NGHỆ PHÁT TRIỂN ỨNG DỤNG NHANH TRÊN NỀN WEB TRONG BỘ CÔNG AN LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN HÀ NỘI - 2013 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN ĐỨC HÙNG NGHIÊN CỨU CÔNG NGHỆ PHÁT TRIỂN ỨNG DỤNG NHANH TRÊN NỀN WEB TRONG BỘ CÔNG AN Ngành: Công nghệ thông tin Chuyên ngành: Hệ thống thông tin Mã số: 60 48 05 LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. TRƢƠNG ANH HOÀNG HÀ NỘI - 2013 1 MỤC LỤC LỜI CAM ĐOAN ....................................................................................................................... 2 LỜI CẢM ƠN............................................................................................................................. 2 MỤC LỤC .................................................................................................................................. 2 DANH MỤC CÁC HÌNH VẼ .................................................................................................... 4 DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT .................................................................. 5 DANH MỤC CÁC BẢNG ......................................................................................................... 6 MỞ ĐẦU .................................................................................................................................... 7 CHƢƠNG I: QUY TRÌNH PHÁT TRIỂN ỨNG DỤNG NHANH VÀ CÁC CÔNG NGHỆ PHÁT TRIỂN ỨNG DỤNG NHANH TRÊN WEB ................................................................ 10 1.1 Quy trình phát triển ứng dụng nhanh ........................................................................ 10 1.2 Một số nền tảng giúp phát triển nhanh ứng dụng ..................................................... 11 1.2.1 NetBeans IDE .......................................................................................................... 11 1.2.2 Delphi ...................................................................................................................... 12 1.2.3 Visual Studio LightSwitch ...................................................................................... 12 1.2.4 Google Form ............................................................................................................ 13 1.2.5 Wufoo ...................................................................................................................... 13 1.2.6 Microsoft Dynamics CRM ...................................................................................... 14 1.2.7 Microsoft SharePoint ............................................................................................... 14 1.2.8 CodeIgniter .............................................................................................................. 15 1.2.9 Yii ............................................................................................................................ 16 1.3 Đề xuất công nghệ phù hợp để phát triển nhanh ứng dụng trong Bộ Công an ...... 17 CHƢƠNG II – VISUAL STUDIO LIGHTSWITCH............................................................... 20 2.1 Visual Stuidio LightSwitch là gì .................................................................................. 20 2.2 Các đặc điểm của LightSwitch .................................................................................... 20 2.2.1 Phƣơng pháp tiếp cận hiện đại................................................................................. 20 2.2.2 Khả năng tùy biến cao ............................................................................................. 21 2.2.3 Khả năng tạo sẵn kịch bản ....................................................................................... 21 2.2.4 Khả năng mô hình hóa ứng dụng............................................................................. 22 2.2.5 Tính khả mở............................................................................................................. 22 2.3 Nền tảng công nghệ trong ứng dụng LightSwitch ..................................................... 23 2.3.1 Kiến trúc ứng dụng 3 lớp ......................................................................................... 23 2.3.2 Lớp Trình diễn ......................................................................................................... 24 2.3.3 Lớp Logic ................................................................................................................ 27 2.3.4 Lớp Dữ liệu.............................................................................................................. 31 CHƢƠNG III: ÁP DỤNG LIGHTSWTICH XÂY DỰNG ỨNG DỤNG QUẢN LÝ TAI NẠN GIAO THÔNG ............................................................................................................... 35 3.1 Giới thiệu bài toàn Quản lý Tai nạn Giao thông ....................................................... 35 3.2 Yêu cầu ứng dụng Quản lý Tai nạn Giao thông ........................................................ 36 3.3 Phân tích hệ thống ........................................................................................................ 37 3.3.1 Biểu đồ Usecase mức tổng quát .............................................................................. 37 3.3.2 Phân rã các Usecase mức 1...................................................................................... 39 3.3.3 Biểu đồ lớp phân tích của hệ thống ......................................................................... 43 3.3.4 Mô hình liên kết cơ sở dữ liệu mức logic của hệ thống .......................................... 44 3.4 Áp dụng LightSwitch triển khai ứng dụng Quản lý Tai nạn Giao thông................ 44 3.4.1 Thiết kế cơ sở dữ liệu .............................................................................................. 45 3.4.2 Tạo các chức năng thêm, xóa, sửa dữ liệu của ứng dụng ........................................ 46 3.4.3 Tạo các chức năng Tìm kiếm dữ liệu ...................................................................... 47 3.4.4 Tạo báo cáo cho ứng dụng ....................................................................................... 49 2 3.4.5 Quản lý ngƣời dùng và phân quyền sử dụng ........................................................... 49 3.4.6 Xuất bản ứng dụng lên máy chủ Web ..................................................................... 50 3.4.7 Kết quả thử nghiệm ................................................................................................. 50 CHƢƠNG IV: ĐÁNH GIÁ, THẢO LUẬN VÀ KẾT LUẬN ................................................. 52 4.1 Đánh giá và thảo luận................................................................................................... 52 4.2 Kết luận ......................................................................................................................... 54 TÀI LIỆU THAM KHẢO ........................................................................................................ 56 3 DANH MỤC CÁC HÌNH VẼ Hình 2.1: Mô hình dữ liệu 3 lớp ....................................................................................23 Hình 2.2: Mô hình 3 lớp của ứng dụng LightSwitch ....................................................24 Hình 2.3: Các thành phần của lớp giao diện là ứng dụng Silverlight ...........................25 Hình 2.4: Ví dụ về dịch vụ dữ liệu Northwind ..............................................................28 Hình 3.1: File Excel biểu mẫu thống kê ........................................................................36 Hình 3.2: Biểu đồ Usecase mức tổng quát. ...................................................................39 Hình 3.3: Phân rã Usecase QuanlyVuTaiNanGT ..........................................................40 Hình 3.4: Phân rã Usecase TimkiemVuTainanGT ........................................................41 Hình 3.5: Phân rã Usecase QuanlyDanhmuc ................................................................42 Hình 3.6: Phân rã Usecase QuantriHethong ..................................................................43 Hình 3.7: Biểu đồ phân tích lớp của hệ thống ...............................................................43 Hình 3.8: Mô hình liên kết cơ sở dữ liệu mức logic......................................................44 Hình 3.9: Mối quan hệ giữa bảng TaiNanGiaoThong và bảng Tinhchat. ....................45 Hình 3.10: Sơ đồ quan hệ dữ liệu giữa các bảng dữ liệu của ứng dụng ........................46 Hình 3.11: Màn hình nhập mới vụ Tai nạn Giao thông ................................................47 Hình 3.12: Cách tạo câu truy vấn cho chức năng Tìm kiếm tổng hợp. .........................48 4 DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT Ký hiệu Diễn giải API Application Programming Interface -Giao diện lập trình ứng dụng DOM Document Object Model – Mô hình Đối tƣợng tài liệu (là một loại giao diện lập trình ứng dụng) GUI Graphic User Interface - Giao diện ngƣời dùng đồ họa IIS Internet Information Services JAD Joint Application Design – Phƣơng pháp thiết kế phần mềm liên kết JSON JavaScript Object Notation – Ký hiệu đối tƣợng JavaScript LINQ Language Integrated Query – Ngôn ngữ tích hợp truy vấn LSML LightSwitch-specific XML – Định dạng file XML theo kiểu LightSwitch MDI Multiple Document Interface – Giao diện đa tài liệu RAD Rapid Application Development – Phát triển phần mềm nhanh SDI Single Document Interface – Giao diện tài liệu đơn UDFs User Defined Funtions – Hàm chức năng do ngƣời dùng tự định nghĩa WAN Wide Area Network – Mạng diện rộng WCF Windowns Communication Foundation – Nền tảng giao tiếp Windows WPF Windows Presentation Foundation - Nền tảng trình diễn Windows WYSIWYG What You See Is What You Get - Giao diện tƣơng tác tức thời – «thấy là lấy đƣợc» 5 DANH MỤC CÁC BẢNG Bảng 1.1: So sánh khả năng đáp ứng của các công nghệ đối với yêu cầu ứng dụng trong Bộ Công an ...........................................................................................................19 Bảng 3.1: Bảng vai trò tác nhân của hệ thống. ..............................................................38 6 MỞ ĐẦU Trong những năm qua, Đảng ủy Công an Trung ƣơng và Lãnh đạo Bộ Công an rất quan tâm đến việc ứng dụng Công nghệ Thông tin vào công tác Công an để nâng cao hiệu quả công việc. Bộ đã ra nhiều nghị quyết, thông tƣ và văn bản chỉ đạo việc tăng cƣờng việc ứng dụng công nghệ thông tin vào công tác Công an. Bên cạnh đó, Bộ đã đầu tƣ và triển khai rất nhiều dự án xây dựng phần mềm dùng chung trong toàn quốc nhƣ: Phần mềm Quản lý Vụ việc, phần mềm Quản lý Số liệu Điều tra Cơ bản, phần mềm Quản lý Thông tin Điều tra, phần mềm Quản lý Thông tin Tố giác Tội phạm .... Tuy nhiên thực tế triển khai các phần mềm này đều không đạt yêu cầu đặt ra, hiệu quả mang lại không cao, gây lãng phí đầu tƣ rất lớn. Có rất nhiều nguyên nhân làm cho các dự án xây dựng phần mềm dùng chung trong Bộ Công an không thành công, trong đó có thể kể đến các nguyên nhân sau: - Đa phần các dự án xây dựng phần mềm đã và đang triển khai đều thuê các công ty ngoài Ngành xây dựng và phát triển. Do không có kiến thức đầy đủ về nghiệp vụ Ngành Công an nên các công ty xây dựng các chức năng hệ thống không đáp ứng đầy đủ các yêu cầu nghiệp vụ, quy trình công tác, không sát với điều kiện thực tế. Điều này dẫn đến các hệ thống đƣợc xây dựng không phục vụ hiệu quả công tác nghiệp vụ tại những nơi triển khai. - Thời gian thực hiện dự án thƣờng kéo dài so với kế hoạch, cá biệt có dự án kéo dài tới hơn 10 năm nên các hệ thống phần mềm đều bị lạc hậu về mặt công nghệ khi triển khai. Cùng với sự phát triển nhanh chóng của kinh tế xã hội, những quy định hành chính, quy trình nghiệp vụ của Ngành cũng thay đổi theo. Thời gian phát triển dự án kéo dài dẫn đến việc khi dự án phần mềm đƣợc hoàn thành thì các yêu cầu nghiệp vụ nguyên thủy, các mục tiêu ban đầu, các chức năng chính của phần mềm có những sai khác so với thời điểm triển khai, đặc biệt có những sai khác làm cho một số hệ thống phần mềm không còn khả thi khi triển khai. - Các dự án công nghệ thông tin do công ty ngoài thuê thƣờng gặp sự phản ứng tiêu cực, không hợp tác của các cán bộ nghiệp vụ tại nơi định triển khai, ảnh hƣởng lớn đến giai đoạn xác định yêu cầu nghiệp vụ của hệ thống đang xây dựng. - Thông thƣờng, các dự án sau khi triển khai chỉ nhận đƣợc sự hỗ trợ, bảo dƣỡng của đối tác xây dựng trong 1 năm. Sau thời gian này, những thay đổi về quy trình công tác, quy trình nghiệp vụ không đƣợc hỗ trợ cập nhật trong phần mềm dẫn dến phần mềm không đáp ứng đƣợc yêu cầu thực tế. - Trình độ, năng lực của cán bộ làm công nghệ thông tin trong Bộ Công an còn hạn chế, không tự phát triển các hệ thống thông tin trong Ngành. Tình trạng chảy máu 7 chất xám đã và đang diễn ra trong Ngành Công an do chính sách cán bộ, lƣơng thƣởng của Ngành đối với các cán bộ làm công nghệ thông tin đang còn nhiều bất cập, không theo kịp và tƣơng xứng với sự phát triển nhanh chóng của nền kinh tế. Những cán bộ có năng lực, trình độ sau thời gian công tác trong Ngành có xu hƣớng xin ra ngoài Ngành để làm việc cho các công ty tƣ nhân có chế độ đãi ngộ tốt hơn. Ngƣợc lại, nhiều ngƣời có trình độ năng lực hạn chế lại tìm cách để đƣợc tuyển chọn vào Ngành. Thực trạng này dẫn đến chất lƣợng, trình độ cán bộ làm công nghệ thông tin trong Ngành không đồng đều, mặt bằng chung còn thấp so với các công ty ngoài Ngành. Từ những nguyên nhân trên cho thấy, để dự án xây dựng phần mềm trong Ngành Công an có tỷ lệ thành công cao thì: - Phải do chính các cán bộ công an làm công nghệ thông tin trong Ngành tự xây dựng và phát triển, khi đó hệ thống thông tin mới bám sát đƣợc yêu cầu nghiệp vụ, đáp ứng đƣợc yêu cầu của công tác thực tế. Bộ phận xây dựng phát triển hệ thống có điều kiện theo sát sự phát triển và thay đổi của hệ thống phần mềm đƣợc triển khai. - Thời gian phát triển dự án phải rút ngắn, phải có ngay hệ thống chạy thử nghiệm và việc chạy thử nghiệm phải qua nhiều giai đoạn cho tới khi đạt đƣợc hệ thống mong muốn. - Các dự án phải đƣợc xây dựng bằng các công nghệ hiện đại, đáp ứng đƣợc các thay đổi trong yêu cầu nghiệp vụ, đáp ứng linh hoạt nền tảng cơ sở hạ tầng công nghệ thông tin tại nơi triển khai. - Các phần mềm phải đƣợc xây dựng trên nền Web để có thể triển khai dễ dàng trên mạng nội bộ của Ngành, đặc biệt là các phần mềm dùng chung cho toàn Ngành khi phạm vi triển khai là trên toàn quốc. Nhu cầu thực tế trong Bộ Công an đòi hỏi phải có một công nghệ xây dựng phần mềm nhanh, thích hợp cho việc phát triển các ứng dụng phù hợp với các điều kiện đặc thù của Ngành, thích hợp với trình độ của cán bộ làm công nghệ thông tin trong Bộ Công an. Xuất phát từ nhu cầu trên, mục tiêu của Luận văn là nghiên cứu công nghệ phát triển ứng dụng nhanh trên nền Web phù hợp với các yêu cầu thực tiễn của Bộ Công an nhƣ đã tóm tắt ở trên. Phạm vi nghiên cứu: Luận văn sẽ nghiên cứu các công nghệ phát triển ứng dụng nhanh trên nền Web hiện nay, phân tích, đánh giá ƣu nhƣợc điểm của các công nghệ để đƣa ra công nghệ phù hợp cho việc phát triển ứng dụng trong Ngành Công an. Phần còn lại của luận văn sẽ bao gồm các chƣơng sau: 8 Chương 1: Trình bày về quy trình phát triển nhanh phần mềm và các công nghệ phát triển ứng dụng nhanh trên nền Web. Đề xuất công nghệ phù hợp với việc phát triển ứng dụng trong Ngành Công an. Chương 2: Trình bày tổng quan về LightSwitch, các đặc điểm của LightSwitch, đi sâu vào kiến trúc và nền tảng công nghệ của LightSwitch. Chương3: Đánh giá khả năng của LightSwitch thông qua việc áp dụng thử nghiệm công nghệ LightSwitch trong việc xây dựng hệ thống Quản lý Tai nạn giao thông toàn quốc. Chương 4: Đƣa ra những đánh giá, thảo luận và kết luận cho toàn bộ quá trình nghiên cứu đề tài. 9 CHƢƠNG I: QUY TRÌNH PHÁT TRIỂN ỨNG DỤNG NHANH VÀ CÁC CÔNG NGHỆ PHÁT TRIỂN ỨNG DỤNG NHANH TRÊN WEB 1.1 Quy trình phát triển ứng dụng nhanh Phát triển ứng dụng nhanh (RAD) là một quy trình phát triển phần mềm sử dụng các phƣơng án mẫu và các kế hoạch ngắn hạn thay vì thiết kế toàn bộ ứng dụng nhƣ mô hình thác nƣớc [8] .Trong quy trình RAD, các kế hoạch phát triển phần mềm nói chung đều liên quan đến việc lập trình hay còn gọi là pha triển khai phần mềm. Quy trình này rất hữu ích bởi vì nó có thể thúc đẩy việc phát triển phần mềm nhanh hơn và tạo ra phần mềm dễ dàng thích nghi với sự thay đổi của môi trƣờng hơn là mô hình thác nƣớc. Thuật ngữ “phát triển phần mềm nhanh” đƣợc đƣa ra lần đầu vào năm 1991 bởi James Martin [7] , ngƣời đã sử dụng nó để đặc tả quá trình phát triển phần mềm trong đó nhấn mạnh đến phƣơng pháp lặp cho tất cả các pha phát triển, sử dụng các phƣơng án mẫu nhƣ là các bƣớc đầu tiên của quá trình triển khai phần mềm. RAD không phải là một phƣơng pháp phát triển phần mềm riêng lẻ. Nó đại diện cho tập các phƣơng pháp dựa chủ yếu vào vòng lặp và phƣơng án mẫu. RAD có rất nhiều dạng, bao gồm cả các phƣơng pháp phát triển phần mềm Agile nhƣ Scrum, Lập trình XP, phƣơng pháp phát triển phần mềm tinh gọn, hay phƣơng pháp thiết kế phần mềm liên kết (JAD) [8]. Sức mạnh chính của phƣơng pháp RAD là ngƣời phát triển có thể tránh một khối lƣợng lớn việc chỉnh sửa trong các dự án phát triển phần mềm. Việc chỉnh sửa thông thƣờng xảy ra theo hai trƣờng hợp sau:  Ngƣời phát triển triển khai một phần của phần mềm bị sai hoặc có chất lƣợng kém. Trong trƣờng hợp này ngƣời phát triển phải tiêu tốn tài nguyên để sửa chữa.  Ngƣời phát triển triển khai một phần của phần mềm nhƣng không đúng kỳ vọng mà ngƣời dùng mong muốn. Khi đó ngƣời phát triển phải xây dựng phần sai đó từ đầu. Tất nhiên, RAD và các phƣơng pháp phát triển phần mềm Agile khác không đảm bảo rằng ngƣời phát triển sẽ không tạo ra các phần mềm kém chất lƣợng và nhiều lỗi. Tuy nhiên, chúng có thể giúp ngƣời phát triển giảm thiểu rủi ro trong việc xây dựng các phần mềm lỗi. Bằng cách xây dựng các phƣơng án mẫu, ngƣời phát triển có thể xác nhận rằng mình đang xây dựng lên các chức năng theo đúng kỳ vọng của những ngƣời sử dụng mong muốn. Trong trƣờng hợp việc chỉnh sửa ứng dụng là bắt 10 buộc thì việc chỉnh sửa này cũng sẽ đỡ tốn kém hơn là phải tạo lại từ đầu một module nào đó. Trong một số trƣờng hợp, khi mà đặc tả yêu cầu đã đƣợc làm quá chi tiết thì phƣơng án mẫu không giúp ích nhiều cho ngƣời phát triển trong quá trình phát triển phần mềm. Nếu nhƣ vậy thì ngƣời phát triển có thể bỏ qua phƣơng án mẫu mà bắt tay ngay vào pha thực thi để cho sản phẩm cuối cùng. 1.2 Một số nền tảng giúp phát triển nhanh ứng dụng Ngày nay, có nhiều môi trƣờng và công cụ phát triển phần mềm hỗ trợ RAD. Chúng đều hƣớng đến mục tiêu cung cấp các chức năng và tiện ích giúp kỹ sƣ phần mềm phát triển ứng dụng theo cách linh hoạt và hiệu quả hơn. Một số công cụ có các chức năng thiết kế trực quan (GUI) để sinh mã chƣơng trình tự động. Một số công cụ sử dụng thƣ viện viết sẵn phong phú và cho phép mở rộng giúp giảm đáng kể công sức lập trình. Nhiều công cụ sử dụng các hƣớng dẫn từng bƣớc (wizard) để đơn giản hóa các quá trình phức tạp. Cùng với sự phát triển và ra đời của rất nhiều công nghệ, kỹ thuật mới, các nhà phát triển phần mềm hy vọng các công cụ phát triển nhanh ngày càng mạnh mẽ và hỗ trợ hầu hết các công nghệ hiện nay. Một số công cụ phát triển nhanh ứng dụng Web tôi liệt kê sau đây mang tính đại diện là: NetBeans, Delphi, Microsoft Dynamics CRM, Microsoft SharePoint và mới đây nhất là Visual Studio LightSwitch, và một số tiện ích tạo ứng dụng web trực tuyến nhƣ Google Form, Wufoo. 1.2.1 NetBeans IDE NetBeans IDE [12] là một môi trƣờng phát triển ứng dụng tích hợp mã nguồn mở do Sun Microsystems phát triển và đƣợc xem là một bộ công cụ phát triển ứng dụng đa năng dành cho các nhà phát triển phần mềm. NetBeans IDE cho phép ngƣời phát triển có thể tạo nhanh chóng các ứng dụng Java trên máy để bàn, trên điện thoại di động và các ứng dụng Web cũng nhƣ các ứng dụng HTML 5. NetBeans cũng cung cấp bộ công cụ khổng lồ cho các nhà phát triển ứng dụng bằng ngôn ngữ PHP và C/C++. Với các trình thiết kế đồ họa GUI cho Java SE, HTML5, Java EE, PHP, C/C++ trong NetBeans, ngƣời phát triển có thể tạo nhanh các ứng dụng chỉ bằng các thao tác kéo thả và định nghĩa đối tƣợng. Với các ứng dụng Java SE, trình thiết kế GUI còn tự động căn chỉnh và sửa lỗi khoảng cách trong quá trình soạn thảo. NetBeans IDE hỗ trợ nhiều hệ điều hành khác nhau nhƣ Windows, Mac, Linux, và Solaris. NetBeans IDE cung cấp nhiều tính năng mới nhƣ tìm kiếm trong toàn bộ môi trƣờng lập trình gọi là QuickSearch, giao diện thận thiện với ngƣời dùng và tính năng tự động biên dịch khi lƣu. Ngoài việc hỗ trợ Java mọi phiên bản (Java SE,Java EE, Java ME), NetBeans IDE còn là công cụ lý tƣởng cho việc phát triển phần mềm 11 bằng các ngôn ngữ PHP, C/C++, Groovy and Grails, Ruby and Rails, AJAX và JavaScript. Từ phiên bản 6.5 NetBeans còn tăng cƣờng hỗ trợ cho web framework (Hibernate, Spring, JSF, JPA), trình ứng dụng máy chủ GlassFish và cơ sở dữ liệu. Với tính năng mạnh mẽ, hỗ trợ các ngôn ngữ lập trình phổ dụng hiện nay, đặc biệt là Java, NetBeans có thể sử dụng để phát triển các ứng dụng cho mọi môi trƣờng, mọi thiết bị. NetBeans IDE là bộ công cụ mã nguồn mở, miễn phí và có cộng đồng ngƣời sử dụng đông đảo trên thế giới. 1.2.2 Delphi Delphi [8] đƣợc hãng Borland giới thiệu lần đầu tiên vào năm 1995. Tƣơng tự nhƣ Visual Basic 6, Delphi đƣợc thiết kế là một công cụ phát triển nhanh ứng dụng. Delphi sử dụng ngôn ngữ lập trình hƣớng đối tƣợng Object Pascal và là công cụ phát triển nhanh ứng dụng đầu tiên có khả năng xây dựng ứng dụng 32 bit cho Windows. Với thƣ viện thành phần trực quan khổng lồ của Delphi, ngƣời phát triển dễ dàng thiết kế giao diện của ứng dụng chỉ bằng một vài thao tác nhấp chuột. Ngoài ra Delphi còn cho phép ngƣời phát triển có thể tạo ra các thành phần mở rộng của riêng mình. Qua rất nhiều thay đổi, phiên bản hiện tại của Delphi là Delphi XE5. Delphi XE 5 là công cụ lập trình mạnh mẽ và trực quan, hiện đại. Delphi XE5 hỗ trợ hầu hết các công nghệ thiết kế giao diện, kết nối và xử lý dữ liệu hiện nay. Với Delphi XE 5, ngƣời phát triển có thể xây dựng nhanh các ứng dụng 32 lẫn 64 bit bao gồm cả ứng dụng để bàn đến ứng dụng web và ứng dụng đám mây; các ứng dụng chạy trên rất nhiều nền tảng hệ điều hành nhƣ Window, Linux, IOS, Android..; các ứng dụng cho các thiết bị khác nhau từ máy để bàn đến các thiết bị di động. Tuy nhiên Delphi chƣa thật sự phổ biến ở Việt Nam và rất khó tiếp cận đối với những ngƣời không chuyên về lập trình. 1.2.3 Visual Studio LightSwitch Năm 2010 MicroSoft đã đƣa ra công cụ Visual Studio LightSwitch [1] dành riêng cho việc xây dựng nhanh các ứng dụng quản lý dữ liệu. LightSwitch sử dụng nền tảng công nghệ .NET, gói các thành phần .NET trong một lớp trừu tƣợng đã đƣợc tối ƣu hóa cho việc quản lý và bảo dƣỡng dữ liệu. Bằng các công cụ trực quan của LightSwitch, lập trình viên có thể xây dựng các ứng dụng quản lý dữ liệu một cách nhanh chóng. Các giao diện ngƣời dùng với các tính năng xử lý dữ liệu thông thƣờng đƣợc LigthSwitch sinh ra một cách tự động. Để tạo ra một ứng dụng ngƣời phát triển chỉ cần lập trình các chức năng nghiệp vụ của ứng dụng hay thậm chí không cần lập trình. Không chỉ dành cho các lập trình viên chuyên nghiệp, LightSwitch còn hƣớng tới ngƣời sử dụng là những nhà phân tích kinh doanh hay các chuyên gia tƣ vấn công nghệ, những ngƣời mà không phải lập trình hàng ngày. LightSwitch có các ƣu điểm sau: 12 - LightSwitch xây dựng các ứng dụng chạy trên các môi trƣờng hiện đại nhƣ Windows 7, Microsoft Server 2012 hay môi trƣờng đám mây Windows Azure. - Các ứng dụng LightSwitch chạy trên nền tảng .NET nên rất mạnh mẽ. - Ứng dụng LightSwitch vừa có thể đƣợc xây dựng để chạy trên máy tính để bản hoặc trên nền Web mà không cần phải xây dựng lại ứng dụng. - LightSwitch tạo ra các ứng dụng thích nghi với sự thay đổi môi trƣờng chạy, các thay đổi về yêu cầu chức năng, về cơ sở dữ liệu. LightSwitch có hạn chế đó là chỉ tƣơng thích với các môi trƣờng và công nghệ của Microsoft. 1.2.4 Google Form Google Form là một tiện ích trên Internet của Google cho phép ngƣời dùng có thể tạo và quản lý thông tin theo form. Ngƣời sử dụng có thể nhanh chóng tạo cho mình form quản lý thông tin trực tuyến trên Internet, sinh tự động các báo cáo, biểu đồ theo các tiêu chí trên form. Ƣu điểm của Google Form là dễ dàng sử dụng, trực tuyến trên Internet và miễn phí. Tuy nhiên Google Form chỉ dùng để quản lý thông tin trên 1 form, giá trị các trƣờng thông tin trên form là cố định. Nếu muốn thay đổi giá trị các trƣờng thông tin ngƣời sử dụng lại phải thiết lập lại trên form nhập liệu. Cũng cần nói thêm là có nhiều công cụ tƣơng tự Google Form khác nhƣ FormStack, MarchForm, Icebrrg... nhƣng ở đây luận văn chỉ trình bày đại diện là Google Form với tính dễ sử dụng và quen thuộc với phần lớn ngƣời sử dụng Internet. 1.2.5 Wufoo Wufoo là một công cụ tạo và và quản lý thông tin trên form trực tuyến một cách nhanh chóng và tiện lợi. Khi ngƣời sử dụng thiết kế một form, Wufoo tự động tạo ra cơ sở dữ liệu tƣơng ứng. Wufoo cung cấp các kịch bản cần thiết để ngƣời phát triển có thể nhập, cập nhật thông tin trên form đƣợc tạo ra. Wufoo cung cấp chức năng tạo báo cáo một cách tự động dựa trên các trƣờng thông tin ngƣời sử dụng định nghĩa trên form. Với Wufoo ngƣời phát triển có thể tạo ra một ứng dụng quản lý thông tin trực tuyến sinh động, chuyên nghiệp và nhanh chóng. Tuy nhiên Wufoo chỉ cung cấp dịch vụ trực tuyến trên Internet và là dịch vụ tính phí. Nếu sử dụng dịch vụ miễn phí ngƣời phát triển chỉ có thể tạo tối đa 3 form và 3 báo cáo. Tƣơng tự nhƣ Wufoo cũng có một số dịch vụ khác đã đƣợc chỉ ra ở phần 2.2.4 nhƣng luận văn chỉ trình bày một đại diện đƣợc coi là mạnh nhất là Wufoo. 13 1.2.6 Microsoft Dynamics CRM Microsoft Dynamics CRM [10] là một nền tảng phát triển nhanh ứng dụng của Microsoft dành riêng cho các bài toán quản lý mối quan hệ khách hàng. Chính xác hơn Dynamics CRM là bộ các giải pháp quản lý doanh nghiệp, hỗ trợ việc quản lý tài chính, mối quan hệ với khách hàng và chuỗi cung ứng. Thông qua việc ứng dụng Microsoft Dynamics CRM, doanh nghiệp có thể hợp lý hóa các quy trình nghiệp vụ, tăng cƣờng hiệu suất phục vụ khách hàng, nâng cao mức độ chắc chắn trong việc đƣa ra các quyết định trong khi vẫn đảm bảo mức độ bảo mật thông tin tốt nhất. Giải pháp này đƣợc thiết kế để giải quyết các nhu cầu của doanh nghiệp trong nhiều lĩnh vực: quản lý tài chính, phân tích quản lý nguồn nhân lực, quản lý dự án, quản lý chuỗi cung ứng… Tùy từng doanh nghiệp và mục đích sử dụng, ngƣời phát triển sẽ tùy chỉnh và thiết lập Dynamics CRM cho phù hợp với đặc thù kinh doanh và quy trình của doanh nghiệp. Ngƣời phát triển có thể mở rộng chức năng của ứng dụng Dynamics CRM bằng lập trình thông qua việc tạo ra các plug-ins, các mã scripts hay các trang web Asp.net. Với Dynamics CRM ngƣời phát triển có thể nhanh chóng tạo ra các ứng dụng quản lý mối quan hệ khách hàng đáp ứng nhu cầu của doanh nghiệp. Tuy nhiên để có thể phát triển ứng dụng Dynamics CRM ngƣời phát triển cần có kiến thức phát triển ứng dụng trong Dynamics CRM và phải có tƣ duy “nghĩ về mối quan hệ khách hàng” [10]. 1.2.7 Microsoft SharePoint Đƣợc giới thiệu từ năm 2001, Microsoft SharePoint [2] là một sản phẩm rất đặc biệt của Microsoft, SharePoint là một nền tảng của việc trao đổi thông tin và làm việc cộng tác trong nội bộ doanh nghiệp và trên nền Web. SharePoint là giải pháp kết nối và hỗ trợ ngƣời dùng chia sẻ thông tin tốt nhất, cho dù những thông tin đó nằm trong mạng lƣới Intranet, Extranet của doanh nghiệp hay có thể chia sẻ ra bên ngoài Internet cho cả khách hàng và đối tác. SharePoint là nền tảng để phát triển những ứng dụng nhanh chóng, đáp ứng mọi nhu cầu trong hoạt động kinh doanh, có thể là một ứng dụng nhỏ cho một nhóm hay một phòng ban, hoặc có thể là những giải pháp doanh nghiệp tầm cỡ và phức tạp với nhiều quy trình xử lý thông tin phức tạp, chỉnh sửa code hoặc tích hợp với các phần mềm ứng dụng khác. SharePoint cung cấp các công cụ và thành phần cho phép ngƣời phát triển tạo ra các ứng dụng đáp ứng nhu cầu ngh iê ̣p vu ̣ mô ̣t các nhanh chóng thông qua viế t code hoă ̣c không cầ n phải viế t code. SharePoint có các ƣu điểm sau: - Cung cấ p các chƣ́c năng ta ̣o lâ ̣p các web site phu ̣c vu ̣ th eo các mu ̣c đić h khác nhau, làm việc nhóm , Intranet, Extranet, Internet. Hỗ trơ ̣ viê ̣c truy câ ̣p bằ ng nhiề u loa ̣i 14 trình duyệt khác nhau. Tích hợp với các ứng dụng Microsoft Office , cho phép làm viê ̣c với dƣ̃ liê ̣u trƣ̣c tuyế n , gián tuyến. Giao diê ̣n thân thiê ̣n nhƣ sƣ̉ du ̣ng Office 2007/2010 nên không mấ t nhiề u thời gian đào ta ̣o sƣ̉ du ̣ng. - Cung cấ p các tính năng ma ̣ng xã hô ̣i (Tagging, Tag Clound, Rating, Social Bookmaking, Blogs, Wiki, My Sites , Profiles…) nhằ m c ho phép liên kế t thông tin , ngƣời dùng trong doanh nghiê ̣p mô ̣t cách dễ d àng, thuâ ̣n tiê ̣n để trao đổ i thông tin và chia sẻ kiế n thƣ́c. - Cung cấ p nhiề u tính năng phu ̣c vu ̣ cho tổ chƣ́c , phân loa ̣i, quản lý và khai thác mọi loại nội dung có trong doanh nghiệ p (Kiể u nô ̣i dung, Siêu dƣ̃ liê ̣u, Tâ ̣p tài liê ̣u, Đa trạng thái, lƣu trƣ̃, tài liệu đa phƣơng tiê ̣n – phim, âm thanh, ảnh…) - Cung cấp các chức năng tìm kiếm tƣ̀ nhiề u nguồ n nô ̣i dung, tìm theo ngữ nghĩa, xem trƣớc… - Cung cấ p các tiń h năng để cho phép kế t nố i , tích hợp với nhiều nguồ n dƣ̃ liê ̣u khác nhau có trong doanh nghiệp hoặc từ bên ngoài doanh nghiệp thông qua các dịch vụ đi kèm nhƣ : Performance Point , Excel Services , Charts, Visio, Services, Web analytics, SQL Server Integration…để ta ̣o và hình thành các bá o cáo số liê ̣u , thố ng kê hiê ̣u suấ t… Bên cạnh những ƣu điểm vƣợt trội, SharePoint có nhƣợc điểm là chi phí bản quyền rất lớn và tính theo số ngƣời sử dụng nên việc phát triển rộng khắp là khó khăn về chi phí đầu tƣ. 1.2.8 CodeIgniter CodeIgniter [11] là một nền tảng ứng dụng web nguồn mở đƣợc dùng để xây dựng các ứng dụng web bằng ngôn ngữ PHP. Nó cho phép các nhà phát triển xây dựng một ứng dụng web nhanh hơn bằng cách cung cấp 1 bộ thƣ viện đầy đủ cho các tác vụ thông thƣờng, cũng nhƣ cung cấp một mô hình tƣơng tác đơn giản và dễ hiểu cho việc kết nối tới những bộ thƣ viện đó. Phiên bản chính thức đầu tiên của CodeIgniter đƣợc công bố vào 28 tháng 2 năm 2006. Phiên bản mới nhất cho tới bây giờ là 2.1.4 đƣợc công bố chính thức vào ngày 8 tháng 7 năm 2013. CodeIgniter có các ƣu điểm sau: -Các ứng dụng CodeIgniter đƣợc thiết kế theo mô hình Model-View-Controller (MVC), giúp cho việc thiết kế, xử lý và bảo trì mã nguồn dễ dàng, đồng thời tăng khả năng mở rộng của phần mềm. CodeIgniter vận dụng mô hình này trong thiết kế, giúp tách biệt các tập tin giao diện với các tập tin xử lý dữ liệu, nâng cao khả năng quản lý và dễ bảo trì. 15 - CodeIgniter đƣợc đánh giá là một PHP framework có tốc độ nhanh nhất hiện nay. Bằng cơ chế lƣu nội dung vào bộ đệm (cache), kiểm tra bộ đệm trƣớc khi tiến hành thực hiện yêu cầu, CodeIgniter giảm số lần truy cập và xử lý dữ liệu, từ đó tối ƣu hóa tốc độ tải trang. - CodeIgniter là miễn phí, đƣợc phát hành dƣới giấy phép Apache/BSD mở rộng, cho phép ngƣời dùng tự do thay đổi, phát triển và phân phối mã nguồn. Cấu trúc URL của CodeIgniter rất thân thiện với các robot tìm kiếm. - CodeIgniter cung cấp các thƣ viện phục vụ cho những tác vụ thƣờng gặp nhất trong lập trình web, chẳng hạn nhƣ truy cập cơ sở dữ liệu, gửi email, kiểm tra dữ liệu, quản lý session, xử lý ảnh…đến những chức năng nâng cao nhƣ XML-RPC, mã hóa, bảo mật… - Dễ tiếp cận đối với ngƣời bắt đầu lập trình PHP và có cộng đồng ngƣời sử dụng rất lớn trên thế giới. So sánh với nền tảng lập trình PHP khác nhƣ Zend hay Yii, CodeIgniter chƣa hỗ trợ AJAX và các các module thực thi một số tác vụ thƣờng gặp trong quá trình xây dựng ứng dụng web nhƣ chứng thực ngƣời dùng (User Authorization), trình phân tích RSS (RSS Parser) hay trình xử lý PDF… 1.2.9 Yii Cũng giống nhƣ CodeIgniter, Yii [4] là một nền tảng ngôn ngữ PHP nguồn mở đƣợc dùng phát triển các ứng dụng Web dựa trên nền tảng thƣ viện thành phần. Yii cho phép tái sử dụng tối đa các thành phần của hệ thống để tăng tốc độ viết ứng dụng. Yii rất nhẹ và đƣợc trang bị giải pháp cache tối ƣu nên nó đặc biệt hữu dụng cho ứng dụng Web có dung lƣợng dữ liệu trên đƣờng truyền lớn nhƣ web portal, forum, CMS, e-commerce, v.v. Để phát triển với Yii, lập trình viên chỉ cần biết PHP và lập trình hƣớng đối tƣợng. Lập trình viên có thể phát triển nhanh một ứng dụng Web theo 3 bƣớc sau đây: - Lập trình viên tạo 1 cơ sở dữ liệu. - Yii tự động sinh ra các mã PHP trên cơ sở dữ liệu lập trình viên vừa tạo. - Lập trình viên chỉnh sửa mã PHP đƣợc Yii sinh ra để đáp ứng yêu cầu của mình. Yii có các tính năng đáp ứng những nhu cầu cao trên ứng dụng web hiện nay là đó là: - Tích hợp công nghệ AJAX cho phép ứng dụng Web tích hợp các widgets. 16 - Ứng dụng đƣợc thiết kế theo kiến trúc MVC để dễ dàng phát triển và bảo trì. - Sử dụng đối tƣợng truy cập dữ liệu DAO để kết nối nhiều hệ quản trị cơ sở dữ liệu qua một giao diện thống nhất. - Sử dụng đối tƣợng ActiveRecord nhƣ là một phƣơng thức ORM (ObjectRelational Mapping) để sinh tự động các thao tác tƣơng tác dữ liệu (tạo, xóa, sửa, cập nhật) từ cơ sở dữ liệu. - Có module kiểm soát truy cập, chứng thực ngƣời sử dụng. - Hỗ trợ chuẩn quốc tế (I18N) và nội địa hoá (l10N) giúp các ứng dụng có khả năng hỗ trợ nhiều ngôn ngữ, định dạng ngày tháng, định dạng số mà không phải lập trình lại. Ngoài ra ƣu điểm của Yii là dễ sử dụng, hiệu suất cao, mở rộng tùy ý và miễn phí. 1.3 Đề xuất công nghệ phù hợp để phát triển nhanh ứng dụng trong Bộ Công an Do đề cao vấn đề an ninh an toàn thông tin, bảo vệ bí mật nhà nƣớc, tài liệu thông tin nghiệp vụ của Ngành, các ứng dụng trong Bộ Công an phải đƣợc xây dựng từ những công cụ có bản quyền và có độ bảo mật cao. Vì vậy các công nghệ và công cụ phát triển ứng dụng sử dụng trong Bộ Công an phải có bản quyền và đƣợc phát triển bởi các hãng có uy tín trên thế giới. Mặt khác các ứng dụng trong Ngành chỉ chạy trên máy cá nhân, trong mạng nội bộ của đơn vị hay trên mạng WAN nội bộ của Ngành. Chỉ một số ít các ứng dụng quản lý thông tin công khai và giao tiếp với ngƣời dân mới chạy trên môi trƣờng Internet. Chính vì vậy các công nghệ trực tuyến nhƣ Google Form hay Wufoo là không phù hợp. Cũng vì lý do an ninh thông tin nên các công nghệ mã nguồn mở khác nhƣ CodeIgniter hay Yii không đƣợc đƣa ra nghiên cứu. Ngoài ra, hầu hết các ứng dụng hiện tại trong Ngành Công an là ứng dụng quản lý dữ liệu và nhu cầu thực tế về các ứng dụng quản lý vừa và nhỏ đang còn rất lớn. Vì vậy nghiên cứu về một công nghệ phát triển nhanh ứng dụng chuyên về phát triển phần mềm quản lý dữ liệu đƣợc ƣu tiên hơn so với các công nghệ không chuyên khác. Để xây dựng các ứng dụng dùng chung toàn Ngành, phạm vi triển khai rộng khắp trên toàn quốc, số ngƣời sử dụng là rất lớn nên vấn đề bản quyền cũng phải tính toán hợp lý, có tính khả thi về chi phí đầu tƣ. Nhƣ đã đề cập ở trên, mặt bằng trình độ lập trình của các cán bộ trong Ngành còn hạn chế nên công nghệ đƣợc đề xuất phải dễ sử dụng, không cần nhiều kiến thức, kỹ năng lập trình. 17 Từ những đánh giá trên, chúng tôi xây dựng Bảng 2.1 tổng hợp khả năng đáp ứng các yêu cầu của Bộ Công an của các công nghệ phát triển ứng dụng nhanh đã đƣợc liệt kê và tóm tắt ở phần trƣớc. Yêu cầu Khả năng tạo ứng dụng Web Dễ dàng sử dụng đối với những ngƣời không chuyên lập trình Là công cụ bản quyền, mã nguồn đóng, phát triển bởi Công ty có tên tuổi Ứng dụng có khả năng triển khai trên máy trạm và mạng LAN, WAN không kết nối Internet Chi phí đầu tƣ cho toàn Ngành (càng thấp càng tốt) Khả năng phát triển ứng dụng nhanh Có Không Không Có Miễn Nhanh Có Nhanh Có Trung Rất Có bình nhanh ứng dụng Công cụ, công nghệ NetBeans (Càng nhanh càng tốt) Công nghệ hiện đại tiên tiến, tiếp tục nhận hỗ trợ từ nhà phát triển phí Delphi Có Không Có Có Trung bình Microsoft Có Có Có Có Visual Studio LightSwitch Google Form Có Có Có Không (Trực tuyến trên Internet) Miễn phí Rất nhanh Có Wufoo Có Có Có Không (Trực tuyến trên Internet) Trung bình Rất nhanh Có Microsoft Dynamics Có Không Có Có Trung Rất Có 18 CRM Microsoft Có Có Có Có bình nhanh Cao Rất nhanh SharePoint CodeIgniter Có Có Có Không Có Miễn Nhanh Có Nhanh Có phí Yii Có Có Không Có Miễn phí Bảng 1.1: So sánh khả năng đáp ứng của các công nghệ đối với yêu cầu ứng dụng trong Bộ Công an So sánh ƣu nhƣợc điểm của các công nghệ và đối chiếu với yêu cầu thực tế, môi trƣờng phát triển ứng dụng trong Bộ Công an chúng tôi thấy LightSwitch là công cụ thích hợp nhất để ứng dụng phát triển nhanh các ứng dụng trong Ngành. Tôi quyết định tìm hiểu và nghiên cứu LightSwitch, đánh giá khả năng của LightSwitch trong việc phát triển ứng dụng nhanh trên nền Web trong Bộ Công an bằng cách áp dụng LightSwitch để xây dựng hệ thống Quản lý Tai nạn Giao thông toàn quốc. Chƣơng tiếp theo của luận văn tập trung nghiên cứu đặc điểm và kiến trúc, công nghệ của LightSwitch. 19
- Xem thêm -