ĐẠ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 -