Hướng dẫn cài font chữ Nôm, chữ Thái, chữ Chăm cho dòng ĐT Samsung, LG …
Ứng dụng gõ chữ Hán-Nôm, Chữ thái, Chữ Chăm trên Android tập hợp ở link sau :
https://play.google.com/store/apps/developer?id=FanZung+H%C3%A1n+N%C3%B4m
(Các ứng dụng của tác giả có thể chưa hoàn hảo, nhưng đều nghiêm túc, tuân thủ chính sách của Google cũng như của Nhà nước VN)
Hướng dẫn cài font chữ Nôm, chữ Thái, chữ Chăm cho dòng ĐT Samsung, LG…
(Giả định ngôn ngữ của máy đang là English mặc định)
1. Tải font chữ Hán Nôm ở đây về máy tính, font này có gắn kèm cả chữ Thái, chữ Chăm.
2. Copy file vừa tải về vào thư mục C:\windows\font của máy tính để sử dụng cho thống nhất font giữa máy tính và điện thoại.
3. Copy file vừa tải về từ máy tính vào thư mục gốc của thẻ nhớ trong (Sdcard) của điện thoại.
(Nếu tải trực tiếp bằng điện thoại thì ghi nhớ thư mục tải về, thường có tên là Download)
4. Vào Google Play tìm và cài đặt ứng dụng iFont (miễn phí)
5. Khởi động iFont
6. Chọn Tab “My”
7. Chọn tiếp mục “My Font” trong Tab đó
8. Nhấn vào mấy chữ nhỏ xíu màu đỏ “click this”:
8. Browse tìm đến thư mục Sdcard hay Download ghi nhớ ở trên
9. Sẽ thấy file Hannom.ttf, hãy nhấn vào file đó để chọn
10. Nhấn tiếp nút “SET” (Cài đặt).
Khi thấy cửa sổ nhắc “Set font to hannom” thì cứ nhấn OK cho đến khi hoàn thành cài đặt trở về cửa sổ ở bước trước.
Xong !
Hãy thử mở một văn bản có chữ Nôm trên máy và xem kết quả.
Cách này không cần root máy với các dòng máy Android Hàn quốc như Samsung, LG.
Còn với HTC, Sony, Xiaomi thì có thể sẽ cần root máy (hình như các máy đời mới thì không cần).
****
Để gõ chữ Nôm có thể sử dụng bộ gõ Việt Hán Nôm trên Google Play :
https://play.google.com/store/apps/details?id=com.googlecode.viethanime
Mẫu font hannom :
紅 紅 雪 雪
買 芾 群 渚 別 個 之 之
瀋 脫 固 賒 咦
吏 㐌 期 絲 柳
我 遊 君 上 少
君 今 許 嫁 我 成 翁
唭 唭 吶 吶
麻 白 髮 貝 紅 顏 澄 愛 礙
沒 趣 青 山 吏
窖 癡 癡 窖 癡 癡 貝 情
彈 埃 沒 㗂 陽 爭
Hồng Hồng Tuyết Tuyết
mới ngày nào còn chửa biết cái chi chi
Mười năm năm thấm thoắt có xa gì
Ngoảnh mặt lại đã đến kì tơ liễu
Ngã lãng du thời quân thượng thiếu
Quân kim hứa giá ngã thành ông
Cười cười nói nói sượng sùng
Mà bạch phát với hồng nhan chừng ái ngại
Riêng một thú thanh sơn đi lại
Khéo ngây ngây, khéo ngây ngây dại dại với tình
Đàn ai một tiếng Dương tranh.
Để gõ chữ Thái thì cài bộ gõ chữ Thái tại:
https://play.google.com/store/apps/details?id=com.googlecode.thaikeyboard
Mẫu font chữ Thái:
ꪶꪎ꪿ꪉ ꪋꪴ꫁ ꪎꪮꪙ ꪎꪱꪫ
XỐNG CHỤ XON XAO
Dân ca Thái – Trích đoạn đầu.
ꪮꪽ ꪙ꫁ꪲ ꪭꪱ ꪊ꪿ꪲ ꪁꪳꪒ ꪵꪔ꪿ ꪀ꪿ꪮꪙ ꪣꪱ ꪨꪰꪉ
ꪁꪳꪒ ꪵꪔ꪿ ꪨꪰꪉ ꪣꪱ ꪜꪰꪉ ꪮꪽ ꪘ꫁ꪱ
ꪁꪳꪒ ꪵꪔ꪿ ꪡ꫁ꪱ ꪜꪱꪉ ꪀ꪿ꪮꪙ ꪣ꪿ꪱꪉ ꪹꪩ ꪀ꪿ꪮꪙ ꪙ
ꪁꪳꪒ ꪵꪔ꪿ ꪹꪣ꪿ ꪠꪴ꫁ ꪎꪮꪉ ꪹꪭꪱ ꪑꪰꪉ ꪤꪴ꪿ ꪶꪝ꫁ꪀ ꪹꪚ꫁ꪉ ꪄꪱꪫ
ꪑꪰꪉ ꪤꪴ꪿ ꪝꪱ ꪹꪚ꫁ꪉ ꪏ꫁ꪱꪥ
ꪵꪣ꪿ ꪯꪣ ꪨ꫁ꪱ ꪵꪀ꪿ꪉ ꪵꪣ꪿ ꪯꪣ ꪵꪝꪉ ꪻꪊ ꪀꪲꪙ ꪶꪎ꫁ꪣ ꪜꪱ ꪚꪮꪉ
ꪮ꪿ꪮꪙ ꪙ꫁ꪮꪥ ꪹꪄ꫁ꪱ ꪕ꫁ꪮꪉ ꪵꪣ꪿ ꪎꪮꪉ ꪹꪚꪙ
ꪵꪣ꪿ ꪯꪣ ꪵꪝꪉ ꪻꪊ ꪀꪲꪙ ꪶꪎ꫁ꪣ ꪢꪱꪀ ꪄꪱꪣ
ꪮ꪿ꪮꪙ ꪙ꫁ꪮꪥ ꪹꪄ꫁ꪱ ꪕ꫁ꪮꪉ ꪵꪣ꪿ ꪎꪱꪣ ꪹꪚꪙ
ꪵꪣ꪿ ꪯꪣ ꪵꪝꪉ ꪻꪊ ꪀꪲꪙ ꪶꪎ꫁ꪣ ꪜꪱ ꪨ꪿ꪲ
Để gõ chữ Chăm thì cài bộ gõ chữ Chăm tại:
https://play.google.com/store/apps/details?id=com.googlecode.chamkeyboard
Mẫu font chữ Chăm:
(Trích một đoạn từ điển Chăm-Việt)
ꨈꨪꨤꨩꨤꨮꩌ gila’lơm (d) cõi trần.
ꨯꨊꨱꩀꨈꨪꨤꨩꨤꨮꩌ ꨗꨫ – Ngauk gila’lơm ni': trên cõi trần này
ꨈꨪꨤꩄ gilach (đg) cv galach – trở lại
ꨈꨪꨤꩄ ꨰꨈꩈ gilach gaiy (đg) phản bội, trở mặt. ꨈꨪꨤꩄ ꨰꨈꩈ ꨯꨧ ꨢꨭꩅ ꨔꩅ – Gilach gaiy
saung yut that: phản bội đồng chí
ꨈꨪꨤꨮꩃ gilơng (d) cv galơng – kho lớn
ꨈꨪꨤꨮꩃ ꨚꨣꨳꩀ gilơng pari`ak (d) ngân khố
ꨈꨪꨤꨮꩌ gilơm (đg) vác. ꨈꨪꨤꨮꩌꨆꨢꨭꩃ ꨴꨓꨭꩆ ꨌꨮꩀ – Gilơm kayơu trun chơk: vác gỗ xuống
núi
ꨈꨰꨤ galai (d) ghe. ꨙꨪꩀꨈꨰꨤ ꨯꨗꨱ ꨀꨯꨓꨱꩂ ꨁꨆꩆ – Đik galai nau ataung ikan: lên ghe đi
đánh cá
ꨈꨪꨰꨤ ꨯꨨꨱꩀ gilai hauk (d) tàu bè. ꨣꨟꨪꩀꨈꨪꨰꨤ ꨯꨨꨱꩀ ꨯꨗꨱ ꨧꩃ – Ramik gilai hauk nau
sang: thu dọn tàu bè trở về
ꨈꨪꩌꨗꨪꩅ gimnit (d) ý tưởng, tư tưởng
* Cách bật bộ gõ:
Vào Setting (cài đặt) => My Device => Phần Language and Input (ngôn ngữ) => Default => Chọn bộ gõ (keyboard) định dùng.
Nếu chưa nhìn thấy bộ gõ thì nhấn vào “ADD KEYBOADS” cũng ở cửa sổ trên sẽ xuất hiện danh sách các bộ gõ đã cài, đánh dấu chọn vào các bộ gõ mình muốn dùng trong số đó.
…
…
Tạo Module DNN
04-09-2008 11:31:48Một vài khái niệm để thông suốt phát triển module dotnetnuke có nghĩa là làm cái gì như thế nào, kết quả ra sao ? Túm lại đơn giản là thế này :
– Dotnetnuke là 1 cổng thông tin portal.
|
04-09-2008 11:44:06porlet : nôm na nó là một hình vuông trên website chứa nội dung thông tin, nhiều hình vuông (porlet) ghép lại chúng ta có 1 trang web (web page), không biết định nghĩa webpage là cái gì nữa chỉ hy vọng là anh em đều hiểu khái niệm cơ bản webpage.Các website thông dụng tại việt nam có 3 khối thông tin, menu bên trái, nội dung chính ở giữa và bên phải là quảng cáo, đối tác … 3 khối thông tin trên được khái quát thành 3 Pane (vùng). Như vậy chúng ta có khái niệm vùng (Pane = hoặc region thì cũng thế), trên 1 vùng có thể chứa n Porlet.Các vùng có nội dùng ghép lại thì chúng ta có webpage : tương đương với khái niệm page trong dotnetnuke.Nhiều page ghép lại với nhau thì thành 1 website. Tuy nhiên cũng phải nói thêm, khái niệm page trên DNN rộng hơn nhiều.
Ví dụ http://thienan.vn/tintuc/tabid/55/id/6/Default.aspx http://thienan.vn/tintuc/tabid/55/id/8/Default.aspx http://thienan.vn/tintuc/tabid/55/id/16/Default.aspx http://thienan.vn/tintuc/tabid/55/id/19/Default.aspx http://thienan.vn/tintuc/tabid/55/id/20/Default.aspx là 1 page có PageID=55. Vì các porlet có cái load động theo URL, có cái load tĩnh nên nhu cầu cần có settings cho mỗi porlet. Settings là gì ? là phần cho phép người dùng chỉ định cách thức hiển thị thông tin cho mỗi porlet. Quay lại với Page, chúng ta có thể thấy khái niệm Page trong DNN đơn giản là cái khung các Pane bố trí ra sao, trên mỗi Pane đó các porlet đặt và hiển thị nội dung thế nào -> Page là khung cho các vùng (Pane, Region)
|
04-09-2008 11:50:49YAHOOMSNNhìn 2 hình bên trên của Yahoo và MSN, chúng ta có thể thấy các miếng vuông rất giống nhau, mỗi miếng vuông đó là 1 porlet, bao bên ngoài mỗi porlet là 1 container.
Như vậy có thể thấy container là cái chỉ dùng để làm đẹp, nó giúp các porlet của website được trình bày một cách thống nhất. Cái Container này không phải lập trình, DNN đã làm hộ. Chúng ta chỉ làm việc viết cách hiển thị cái nội dung bên trong các container, việc viết code hiển thị nội dung bên trong là việc viết module cho DNN.
|
05-09-2008 12:02:28Để viết code cho 1 module chúng ta nên biết cấu trúc module của DNN- 1 Module có n Definitions – 1 Definition có n ControlsTrong 1 module có 2 Control đặc biệt, là các control có key = “” và key = “Settings”. Control key=(blank) thì chúng ta có thể thêm nó vào 1 Page. Control có key=Settings là phần thiết lập cho module. 1 Module như vậy có thể có nhiều Control cùng có key = blank, tuy nhiên khuyến cáo là chúng ta chỉ nên dùng 1.
|
05-09-2008 12:17:40Để gọi 1 usecontrol (tương đương với 1 file ascx) chúng ta viết chúng ta dùngDotNetNuke.Common.Globals.NavigateURL(PortalSettings.ActiveTab.TabID, “edit”, “mid/” + this.ModuleId.ToString());Chúng ta nên để ý rằng DNN có 2 chế độ chính, là chế độ frontend (trình diễn presentation) và backend (phần quản lý administration)
Câu lệnh trên cho phép chúng ta chui vào phần backend (quản lý), cho phép chúng ta gọi 1 control duy nhất là control có nhiệm vụ edit 1 tin tức. Url cho phép chúng ta truy cập vào tầng frontend (tầng trình diễn) http://thienan.vn/tintuc/tabid/55/id/19/Default.aspx URL cho phép chúng ta vào backend (tầng quản lý) http://localhost/Home/tabid/36/ctl/admin/mid/378/Default.aspx chúng ta xem xét kỹ URL này ctl/admin/mid/378/Default.aspx Như vậy có thể thấy backend và frontend khác nhau ở chỗ backend có phần …/ctl/xxx/mid/yyy… các key thông dụng cho quản lý tin tức key = “news_edit” sửa 1 tin tức Thông thường “news_view” -> “” vì key = (blank) có nghĩa là chúng ta có thể thêm control này (porlet) vào frontend (thêm porlet vào trang – webpage trình diễn nội dung)
|
05-09-2008 12:24:48Các module được viết và đặt trong thư mục \Website\DesktopModulesĐể viết 1 control chúng ta khai báoC# public partial class news_admin : DotNetNuke.Entities.Modules.PortalModuleBase VB Để phần này không lỗi module của bạn phải Reference đến file dotnetnuke.dll (còn reference là làm thế nào thì các bác tự tìm hiểu) Hình này mà các bác nhìn còn không hiểu thì anh em bó tay rồi.
|
05-09-2008 12:30:53Trong phần setting chúng ta làm như sau :C# public partial class news_list_settings : DotNetNuke.Entities.Modules.ModuleSettingsBaseVB Partial Public Class Settings Inherits DotNetNuke.Entities.Modules.ModuleSettingsBase Trong ascx settings này chúng ta phải viết 2 hàm (bắt buộc) VB và C# Trong này để ghi vào CSDL chúng ta dùng VB ‘Update Tab Module Settings C# Đọc ra thì thế nào C#
|
05-09-2008 12:38:56Trong frontend (giao diện trình diễn) để lấy nội dung của setting chúng ta cũng dùngstring limits= Settings[“limits”].ToString(); Rồi hiển thị mọi thứ bình thường như code ASP.NET.Thông thường anh em chúng ta dùng repeater và các thứ Label, Datagridview … để hiển thị nội dung cần làm. Để module chạy ngon, dll cần phải copy vào thư mục /dotnetnuke/bin/ còn làm thế nào thì anh em tự nghiên cứu nhá. Tức là chúng ta sẽ có /dotnetnuke/bin/module.dll Như vậy là đủ kiến thức để viết những module đầu tiên rồi, ví dụ module Hello world. Để viết cần thực hiện 1/ tạo file ascx : hello.ascx
|
15-09-2008 04:46:41Anh ơi, em có down mấy sách dotnetnuke về nhưng nó toàn tiếng anh, và cái phần viết module của người ta toàn thấy viết các thư viện phục vụ vào thư mục app_code… còn theo cách tiếp cận viết module của anh thì tạo ra một project sau đó biên dịch và cop vào, nhưng em vẫn mơ hồ quá, anh có thể hướng dẫn em một cách tiếp cận để viết module trên DNN, như cách viết cái CMS trên forum của mình ko a?Em cảm ơn anh trước nhé!
|
26-02-2009 02:59:47Anh ơi, em có down mấy sách dotnetnuke về nhưng nó toàn tiếng anh, và cái phần viết module của người ta toàn thấy viết các thư viện phục vụ vào thư mục app_code… còn theo cách tiếp cận viết module của anh thì tạo ra một project sau đó biên dịch và cop vào, nhưng em vẫn mơ hồ quá, anh có thể hướng dẫn em một cách tiếp cận để viết module trên DNN, như cách viết cái CMS trên forum của mình ko a?Em cảm ơn anh trước nhé! Viết trong app_code thì mình code nhanh hơn do ko phải build, mỗi lần chạy chỉ việc nhân Ctrl+S là xong. Nhưng cách này không tiện vì không phân ra được các dll riêng rẽ cho mỗi Project. Còn viết theo kiểu project thì build và chờ chạy hơi lâu nhưng dễ kiểm soát hơn vì mỗi project được build thành 1 dll trong \Bin —
|
20-03-2009 05:19:31Nhân tiện vấn đề viết module như bạn nói ở trên có 2 trường hợp,Cho mình hỏi cái này nhé, mình mới sử dụng DotNetNuke lần đầu tiên và mình sử dụng DotNetNuke 5.00.00. Mình thấy viết module và add Module theo hai cách trên đều không ổn, nếu viết module trong thư mục App_code thì đằng mình không tạo được ra dll do đó trong phần codeb2 của modle không debeg được(lỗi The breakpoint currently will not be hit) và còn viết code trên project riêng rẽ thì cũng add module được vì các module nó bắt phải đặt trong thư mục website\DesktopModules do đó nếu viết project riêng thì cũng không viết được, Xin mọi người giúp đỡ nhé, ai có ý kiến gì không nhỉ?mình xin cám ơn nhiều. —
|
20-03-2009 07:28:42Chỉ có 2 cách trên Còn cách nào nữa đâu Cả 2 cách đều debug được hết Khi viết theo kiểu project thì bạn add existing website là local host trước và đặt làm start up project. Sau đó Add new project của mình vào Với mỗi project của mình thì bạn cần chọn thư mục build của project nằm trong Bin của dnn là xong. Mỗi lần chạy ấn shift + f6 để dịch. Sau đó vào IE gõ địa chỉ localhost hoặc gì gì đó. Muốn debug thì f5 — http://www.yhoctuxa.vn/
|
21-03-2009 03:31:08mình add module theo từng cách mà không được, bạn xem từng bước mình làm có gì sai không nhé mà sao mình không add được module. Cài IIS (Internet information service) – Cài visual studio 2005 – Cài 2 bản Patch (vá lỗi cho VS2005) theo đúng thứ tự 1/ VS80-KB915364-X86-ENU.exe 2/ WebApplicationProjectSetup.msi – Cài đặt dotnetnuke 5.00.00 thành công – Open website trên locallhost đến bước này coi như là đã cài đặt thành công DNN 5.00.00 rồi và mình add thành công các module có sẵn trong DNN rồi.Cũng add thành công modulle vài lần nhưng sau đó laị không được * Thằng DNN 5.00 này có cả module template nhưng trong diễn đàn không nói đến nên mình cũng không đề cập ở đây, còn Project mình add là Asp.Net Webplicationvà sau đây là trình tự các bước mình add module sau khi đã Open website DNN Bước 1: vào File -> Add -> New project Chọn kiểu Project: Asp.Net Aplication Tên: Hello Location: “D:\Hung Thinh\Working Web\DesktopModules” —
|
21-03-2009 03:45:42B2: Xoá file Default.aspx và file config trong Project HelloB3: Chọn đường dẫn Project Hello đặt vào thư mục bin trong Website DNN 5.00B4: Add Reference DotNetNuke.dll(chắc chắn chỉ cần thằng này là đủ)
B5: Add control vào Project Hello tên controll là Hello.ascx B6: Buile Project Hello => Build thành công Bước 7:F5 chạy website đăng nhập user Host thành công Bước 8:Chọn Host -> Host Difinitions ->chọn Create new Module Bước 9: Next vài lần Create new Module thành công bước 10: Edit module vừa Creat New, thực hiện Add Difinition ,trỏ tới đường dẫn control source) Bước 11: Quay ra trang chủ tạo một trang bất kỳ Add Module. Trong combobox có tên module Hello hiện lên rồi nhưng khi add thì không thấy nằm lên trong trang còn đây là toàn bộ codeB2 của control Helle Imports DotNetNuke Partial Public Class Hello Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub #Region “Optional Interfaces” Public ReadOnly Property ModuleActions() As DotNetNuke.Entities.Modules.Actions.ModuleActionCollection Implements DotNetNuke.Entities.Modules.IActionable.ModuleActions #End Region End Class Mình đã mất khá nhiều thời gian mà không tìm được ra lỗi này, bạn xem mình làm có thiếu cái gì không nhé, mình cảm ơn bạn nhiều
|
23-03-2009 09:24:59Bạn nhầm chỗ nayInherits DotNetNuke.Entities.Modules.ModuleSettingsBasePhải là
Inherits DotNetNuke.Entities.Modules.PortalModuleBase Moi add duoc vao trang web Con cai ModuleSettingsBase chi danh cho settings thôi Với lại bạn viết code đơn giản thôi để còn thử. <%@ Control Language=”C#” AutoEventWireup=”true” CodeBehind=”hello.ascx.cs” Inherits=”helloworld.hello” %> File cs using System; namespace helloworld Nhớ thêm nữa là khi cài module thì phải đặt key trắng mới hiển thị trên webpage được Chúc bạn vui vẻ
|
23-03-2009 11:58:39cám ơn bạn quanvd rất rất nhiều, nguyên nhân của mình là mình ko đặt key trắng, phải cám ơn bạn nhiều lắm đấy vì cái lỗi này chắc chẳng bao giờ mình tìm được ra. —
|
02-04-2009 01:25:28Cho hỏi dnn hỗ trợ những hệ quản trị CSDL nào?
|
17-04-2009 02:21:08Chao moi nguoi . Minh o tp HCM Minh dang can 2 module DNN : quan ly tac vu & quan ly cong van (ngôn ngữ VB.NET và SQL Server) Gia ca thuong luong. Moi chi tiet xin lien he : 0938411399 gap Tam —
|
18-04-2009 01:17:38Chao moi nguoi . Minh o tp HCM Minh dang can 2 module DNN : quan ly tac vu & quan ly cong van (ngôn ngữ VB.NET và SQL Server) Gia ca thuong luong. Moi chi tiet xin lien he : 0938411399 gap Tam —Bọn mình ở Hà Nội. Không biết có hợp tác được không ? — http://coder.awas.vn http://mobile.awas.vn http://vtv.awas.vn http://baihatviet.awas.vn
|
04-06-2009 02:40:41Mình làm thế này: Cách đặt tên 1 module như sau: [Tencongty].[Tenmodule], vd: Comeco.CMS1. New 1 Project (Asp.Net Web Application), chọn đường dẫn lưu dự án tại ….\DesktopModules\CMS2. Vào properties of dự án vừa tạo để: – set ngay nơi lưu cái dll sẽ biên dịch vào ……\Website\Bin – Sửa tên Assembly thành [Tenconty].Modules.[Tenmodule], vd: Comeco.Modules.CMS 3. References tới 2 cái dll là: DotNetNuke.dll và Microsoft.ApplicationBlocks.Data.dll 4. Xóa 2 cái file default.aspx và web.config Tiếp theo là tạo module dựa theo cách làm of DNN… Cảm ơn bác aspnet, bác rất nhiệt tình! |
Vài suy nghĩ về Chính phủ điện tử Việt nam (phần 2)
Vài suy nghĩ về Chính phủ điện tử Việt nam (phần 2)
(Bài đã đăng trên tạp chí Tin học & Đời sống 5/2012)
2- Kiến trúc, khung kiến trúc CPĐT.
CPĐT là một lĩnh vực mới bắt đầu phát triển từ cuối những năm 90 và hiện còn đang trong quá trình phát triển. Vì vậy có rất nhiều điều còn chưa rõ ràng, có nhiều cách hiểu, cách làm khác nhau. Dưới đây là vài ví dụ:
Khái niệm khung (framework) được hiểu khác nhau. Zachman định nghĩa khung 1 như một sơ đồ phân loại; TOGAF lại coi khung là “một phương pháp chi tiết và bộ công cụ hỗ trợ để phát triển một kiến trúc” 2, Roger Sessions coi khung kiến trúc “là một cấu trúc khung xương – skeleton structure” 3, kiến trúc FEA của Mỹ cũng được coi như một framework, v.v….
Ngay trong một loại khung kiến trúc, nội dung cũng khác nhau. Khung CPĐT của Uganda 4 có nội dung khá đơn giản, trong khi đó khung CPĐT của Mỹ 5 tương đối đầy đủ và phức tạp.
Trong CPĐT có nhiều loại khung: khung kiến trúc, khung pháp lý, khung kỹ thuật, khung tương hợp, v.v… Trong một khung lại có thể có các khung khác.
Vấn đề phức tạp, rối đến mức mà có chuyên gia phải viết cả một quyển sách “Làm thế nào để sống sót trong rừng rậm các khung kiến trúc” 6.
Vì vậy, mặc dù khung CPĐT do tư vấn nước ngoài xây dựng, nhưng về phía chúng ta cũng cần có những nghiên cứu nhất định để có thể ra đầu bài, hiểu, điều khiển và đánh giá, nghiệm thu được kết quả của tư vấn. Qua tham khảo một số công trình nghiên cứu trong nước, xin có vài đề xuất rút kinh nghiệm cho lần này.
Ý tưởng chung là đi vào một khu “rừng rậm” như đã dẫn ở trên, có nhiều góc nhìn khác nhau, nhiều phương pháp tiếp cận, nhiều loại công cụ. Cần chọn ra, tạo ra những cái của riêng mình, phù hợp với điều kiện đặc thủ của mình ngay trước khi bước vào khám phá nếu không muốn bị lâm vào tình trạng “chỉ thấy cây mà không thấy rừng”, hoặc bước vào rừng với hai bàn tay không, nhìn bằng con mắt người khác, phó mặc cho người dẫn dắt.
Dưới đây nêu lên vài điều cần lưu ý khi chọn phương pháp, công cụ “ đi rừng”, chưa bàn đến các vấn đề kỹ thuật cụ thể.
a) Chọn phương pháp luận để xây dựng khung CPĐT
Theo một nghiên cứu gần đây 7, khoảng 90% kiến trúc tổ chức (tạm dịch cụm từ enterprise architecture, mà kiến trúc CPĐT là một trường hợp riêng) được xây dựng dùng một trong 4 phương pháp luận (methodology) sau:
- Khung kiến trúc Zachman (The Zachman Framework for Enterprise Architectures) 8: là một hệ thống phân loại (taxonomy), mô tả các thành phần kiến trúc phải có dưới góc nhìn khác nhau của những người liên quan. Nhưng có nhiều vấn đề quan trọng không được Zachman đề cập tới. Nó cũng không chỉ cách xây dựng một kiến trúc mới như thế nào.
- Khung kiến trúc TOGAF (The Open Group Architectural Framework – TOGAF) 9: là một phương pháp (method) hướng dẫn chi tiết cách xây dựng một kiến trúc kèm theo các công cụ hỗ trợ, nhưng lại không chỉ cách làm thế nào xây dựng một kiến trúc tốt, cho nên kết quả có thể không như mong muốn.
- Kiến trúc Chính phủ liên bang Mỹ (The Federal Enterprise Architecture – FEA) 10: không chỉ là 5 mô hình tham chiếu, mà còn có 4 tài liệu về phương pháp luận áp dụng và hướng dẫn từng bước. Vì vậy, FEA được xem là một phương pháp luận đầy đủ, kết hợp được cả hai phương pháp luận nói trên, có khung đánh giá kết quả. Mặc dù tên chính thức của nó là kiến trúc nhưng cũng được xem như một framework, kế thừa từ FEAF.
- Phương pháp luận Gartner (The Gartner Methodology): Gartner là một công ty nghiên cứu và tư vấn về IT nổi tiếng 11. Phương pháp luận xây dựng kiến trúc của Gartner được đánh giá cao do uy tín và tay nghề (practise) của công ty 12 và do đó, phải do người của công ty thực hiện.
(Một nghiên cứu khác cho rằng hiện có 6 khung kiến trúc hàng đầu 13, nhưng điều đó chưa quan trọng ở đây).
Mỗi một phương pháp luận trên có ưu nhược điểm, điều kiện áp dụng riêng (và còn một số phương pháp khác 14). Việc lựa chọn một hoặc vài phương pháp hay tổ hợp các ưu điểm của nhiều phương pháp phù hợp với điều kiện nước ta phải là nội dung của một nghiên cứu riêng. Nhưng xét đến thực tế đội ngũ chuyên gia về kiến trúc tổng thể hiện nay, một trong những yêu cầu cần có là phương pháp luận phải có hướng dẫn áp dụng (method, guidance) rõ ràng, chi tiết và dễ hiểu.
Và điều quan trọng nữa, khi đã chọn phương pháp luận rồi phải theo đúng nó. Có những công trình nói là dựa vào TOGAF, FEA,… nhưng khi thực hiện chỉ dùng mỗi các mô hình tham chiếu là không đủ. Một ví dụ áp dụng pha sơ bộ của TOGAF vào CPĐT xem ở đây 15.
b) Chọn phương pháp để so sánh, đánh giá khung CPĐT
Khi đã có phương pháp luận, bước tiếp theo là so sánh, đánh giá một số khung CPĐT của các nước để rút kinh nghiệm và chọn ra một số mẫu. Nếu chỉ đơn thuần là liệt kê, mô tả kinh nghiệm các nước thì không đủ. Cần phải có phương pháp, tiêu chí để so sánh, đánh gíá khung CPĐT.
Mặt khác, xây dựng được một khung CPĐT rồi, làm sao biết nó tốt hay xấu để nghiệm thu? Cũng cần có phương pháp, tiêu chí thậm chí thang điểm theo yêu cầu đặt ra ban đầu.
Đã có một số công trình nghiên cứu về vấn đề này. Ví dụ: Roger Sessions 16 đưa ra nhiều tiêu chí để chấm điểm; Kostovska et al 17 đề xuất hẳn một phương pháp luận để đánh giá, v.v… Bộ Tài chính Phần lan có đưa ra một khung đánh giá hoạt động xây dựng CPĐT, mặc dù chưa đủ chi tiết theo nhu cầu của chúng ta, nhưng cũng đáng tham khảo 18
Phương pháp đánh giá khung CPĐT không đơn thuần chỉ là về mặt kỹ thuật. Nó phải thể hiện được đặc điểm cụ thể của quốc gia trong quá trình xây dựng CPĐT, thể hiện những trọng tâm cần nhấn mạnh và những mục tiêu đầu bài đặt ra cho việc xây dựng khung CPĐT. Ví dụ: nếu coi trọng cải cách hành chính hướng CPĐT thì phần mô hình nghiệp vụ phải được cho điểm số cao, nếu hướng tới phân quyền mạnh thì tính tương hợp phải được ưu tiên hàng đầu, v.v….. Các công cụ nói trên (phương pháp, tiêu chí, thang điểm hay khung) không phải là cố định, có thể tùy biến, sửa đổi, kết hợp để tạo nên một công cụ phù hợp với nhu cầu riêng.
Sau bước đánh giá, lựa chọn một cách có phương pháp như trên phải chỉ ra được cái khung ta cần có hình hài như thế nào, có những nội dung gì, chi tiết đến đâu, các mẫu đã chọn là gì và quan trọng nhất là tại sao lại quy định, chọn như vậy.
Tóm lại, đây cũng là vấn đề cần quan tâm và giải quyết trước khi bắt tay vào xây dựng khung CPĐT và là cơ sở để nghiệm thu.
c) Tính tương hợp và kiến trúc CPĐT
Ngay cả khi chưa có kiến trúc, một yêu cầu sống còn là các hệ thống ICT phải có tính tương hợp (interoperability) về mặt kỹ thuật: trao đổi thông suốt được dữ liệu với nhau và sử dụng được dữ liệu đó. Để đảm bảo tính tương hợp ở cấp độ này, các chính phủ thường ban hành một bộ chuẩn kỹ thuật hoặc khung tương hợp (interoperability frameworks) mà các hệ thống ICT nên hoặc phải tuân thủ.
Tuy nhiên theo nghĩa rộng của tính tương hợp: các cơ quan chính phủ làm việc được với nhau qua CPĐT 19 thì tương hợp kỹ thuật như nói trên là không đủ, CPĐT phải được xây dựng trên một kiến trúc chung 20, 21. Vì vậy có 3 cách để đảm bảo tính tương hợp: a/ Xây dựng đồng thời bộ chuẩn tương hợp và kiến trúc CPĐT 22, b/Xây dựng khung và/hoặc kiến trúc CPĐT trong đó một trong những nguyên tắc là đảm bảo tính tương hợp 23, tức là lồng ghép khung tương hợp vào nội dung kiến trúc hoặc c/Chia làm 2 giai đoạn: đầu tiên ban hành khung tương hợp (hoặc bộ chuẩn kỹ thuật), sau đó mới ban hành kiến trúc CPĐT 24.
Với đặc điểm tình hình cụ thể của Việt nam, cách thứ ba có vẻ hợp lý, kịp thời và khả thi hơn. Trong khi chờ đợi xây dựng và áp dụng khung và/hoặc kiến trúc CPĐT, cần có ngay một bộ chuẩn kỹ thuật tương hợp để tránh những phức tạp, tốn kém sau này. Đó là điều mà các quyết định và thông tư số 20/2008/QĐ-BTTTT, 01/2011/TT-BTTTT đã làm và cần tiếp tục hoàn thiện.
Nay đến giai đoạn xây dựng khung CPĐT, cần chú ý đưa việc đảm bảo tính tương hợp theo cách a/ hoặc b/ ở trên.
d) Chọn công cụ kiến trúc
Vấn đề này tuy không vĩ mô như những cái đã bàn ở trên, nhưng lại rất quan trọng nếu muốn áp dụng kiến trúc thành công. Một kiến trúc cụ thể được xây dựng và áp dụng có liên quan đến các yếu tố: a/Kế thừa kiến trúc cấp trên, b/Sử dụng lại những phần có thể của các kiến trúc ngang cấp, c/Chia sẻ các phần có thể dùng chung cho các đơn vị khác, d/Sửa đổi, cập nhật liên tục theo quá trình phát triển, e/ Truyền đạt xuống các cấp dưới để triển khai tiếp, áp dụng vào các sản phẩm cụ thể, f/ Nhiều người, nhiều bộ phận tham gia xây dựng, xét duyệt, triển khai dưới nhiều góc nhìn khác nhau v.v…
Tất cả những điều đó không thể thực hiện được nếu không có một ngôn ngữ chung và các công cụ phù hợp được thống nhất trong toàn hệ thống. Tương tự như ngôn ngữ bản vẽ kỹ thuật và các phần mềm thiết kế trong kiến trúc xây dựng, có hai vấn đề dưới đây nên được chỉ rõ và thống nhất sử dụng:
1- Ngôn ngữ mô hình kiến trúc ( enterprise architecture modeling language )
Một kiến trúc có rất nhiều đối tượng quan tâm (stackeholders) dưới nhiều góc nhìn (viewpoint) khác nhau và gồm nhiều loại mô hình khác nhau. Để các đối tượng đó có thể hiểu, thông tin với nhau, cần có ngôn ngữ chung.
Hiện nay, chưa có một ngôn ngữ duy nhất cho kiến trúc tổng thể (enterprise architecture) nói chung và kiến trúc CPĐT nói riêng 25. Vì vậy một bộ các ngôn ngữ phù hợp với từng lĩnh vực kiến trúc CPĐT (ArchiMate, BPMN, UML,…) nên được chọn và quy định thống nhất trong toàn hệ thống.
Sau khi đã quy định, ví dụ mô tả các quy trình nghiệp vụ bằng BPMN, các đoạn văn mô tả dài lê thê, các sơ đồ vẽ tùy ý mỗi nơi một kiểu sẽ không được phép tồn tại nữa. Cũng giống như những người tham gia xây dựng một công trình có thể hiểu nhau, cùng làm dựa trên các bản vẽ xây dựng, những người tham gia xây dựng CPĐT sẽ dễ dàng hiểu nhau, cùng phối hợp trên nền một bộ ngôn ngữ mô hình kiến trúc CPĐT chung.
2- Phần mềm xây dựng kiến trúc (enterprise architecture tools)
Nói đến CPĐT tức là nói đến phần mềm là công cụ cơ bản của nó. Vì vậy, xây dựng, bảo trì một kiến trúc CPĐT cụ thể cũng không thể thiếu phần mềm công cụ. Lợi ích của việc dùng phần mềm công cụ có lẽ không cần phải bàn cãi.
Xây dựng CPĐT tức là áp dụng phần mềm, truyền thông vào các công việc, dịch vụ của chính phủ. Vậy thì khi xây dựng kiến trúc CPĐT chẳng có lý do gì không dùng các phần mềm xây dựng kiến trúc hệ thống có sẵn.
Nghiên cứu, lựa chọn một hoặc nhiều phần mềm xây dựng kiến trúc hệ thống là nhiệm vụ của một đề tài riêng, nên được thực hiện và quy định thống nhất trong toàn hệ thống. Một số gợi ý, danh mục có thể xem tại 26, 27
e) Mô hình phát triển
Xây dựng CPĐT, nhất là vào giai đoạn hiện nay bắt đầu dựa vào khung và kiến trúc, chúng ta giống như những người lần đầu tiên xây dựng một ngôi nhà riêng cho mình. Kiến thức, kinh nghiệm, đội ngũ chuyên gia đều rất thiếu. Vì vậy:
- Việc sử dụng tư vấn kỹ thuật nước ngoài là cần thiết. Nhưng có lẽ tư vấn nước ngoài về quản lý quá trình triển khai (ví dụ: quản lý gói thầu xây dựng khung CPĐT nói trên) cũng nên có, nhất là với những dự án đầu tiên.
- Trong mọi lúc, mọi nơi có thể, cần sử dụng các công cụ có sẵn. Như ví dụ đã nêu ở trên, để tìm hiểu so sánh kinh nghiệm xây dựng CPĐT các nước cũng cần có một khung đánh giá và các tiêu chí cụ thể. Thực tế một số công trình đã thực hiện chưa chú ý sử dụng công cụ, suy luận theo nhận thức chủ quan, thậm chí chọn công cụ rồi nhưng không theo đến cùng. Đó là một điều đáng tiếc.
- Thách thức lớn nhất với chúng ta khi bước vào xây dựng, áp dụng kiến trúc CPĐT như đã nói ở trên là kiến thức, kinh nghiệm, đội ngũ chuyên gia đều rất thiếu. Vì vậy, mô hình phát triển kiến trúc CPĐT cho các địa phương, bộ, ngành nên theo hướng “phát huy trí tuệ tập thể”: a/ Công khai hóa quá trình triển khai và các kết quả từng bước trên Internet để mọi người có thể tham gia, b/Chia sẻ, cho phép sử dụng chung các kết quả đạt được và c/Tiến tới xây dựng được một cộng đồng CPĐT bao gồm người quản lý, người thiết kế, người sử dụng, người thử nghiệm, đánh giá, v.v…. ở trong và ngoài nước có thể trao đổi, chia sẻ kinh nghiệm và các kết quả kiến trúc công khai trên mạng (tất nhiên là trừ những phần “mật”).
Tóm lại là theo mô hình phát triển “mở” tương tự như mô hình phát triển Phần mềm Tự do Nguồn mở. Với nguồn lực nhân sự còn thiếu và yếu, có lẽ đó là cách duy nhất đảm bảo thành công khi triển khai đại trà.
3- Lời kết:
Các ý kiến nêu trên đây chỉ có tính chất gợi mở, đặt vấn đề. Các tài liệu đã dẫn cũng chỉ để nêu vấn đề, tham khảo, không có nghĩa là tài liệu tốt nhất, còn rất nhiều tài liệu khác tương tự. Mỗi vấn đề đặt ra đều đòi hỏi được nghiên cứu đầy đủ, bài bản và sâu sắc hơn bởi một đội ngũ chuyên gia dù chỉ để ra đầu bài, hiểu, điều khiển và đánh giá, nghiệm thu được kết quả của tư vấn.
Trước đây, người viết bài này cũng mới tìm hiểu được một phần về chiến lược và kiến trúc doanh nghiệp điện tử với dự định áp dụng nhưng không có điều kiện thực hiện. Tuy vậy, cũng mạnh dạn đóng góp vì lợi ích chung. Xin cám ơn anh Lê Trung Nghĩa, bộ KHCN đã giúp nhiều tài liệu tham khảo.
Hy vọng là có ích. Mọi ý kiến xin gửi về địa chỉ phanvinhtri@gmail.com.
Tài liệu trích dẫn:
1‘About The Zachman Framework TM’ <http://www.zachman.com/about-the-zachman-framework> [accessed 11 March 2012].
2‘TOGAF® 9.1’, p. 3 <http://pubs.opengroup.org/architecture/togaf9-doc/arch/index.html> [accessed 19 March 2012].
3‘A Comparison of the Top Four Enterprise-Architecture Methodologies’ <http://msdn.microsoft.com/en-us/library/bb466232.aspx> [accessed 18 March 2012].
4‘Uganda E-govt_framework_June 2010.pdf’ <http://www.nita.go.ug/uploads/Final%20Draft%20E-govt_framework_June%202010.pdf> [accessed 28 March 2012].
5‘Federal Enterprise Architecture Framework’ <http://www.cio.gov/documents/fedarch1.pdf> [accessed 7 April 2012].
6‘How to Survive in the Jungle of Enterprise Architecture Frameworks: Creating … – Jaap Schekkerman – Google Sách’ <http://books.google.com.vn/books/about/How_to_survive_in_the_jungle_of_enterpri.html?id=k_9cUrpT4lsC&redir_esc=y> [accessed 12 March 2012].
8‘Zachman International® – The Official Home of The Zachman Framework TM’ <http://www.zachman.com/> [accessed 19 March 2012].
10‘Federal Enterprise Architecture (FEA) | The White House’ <http://www.whitehouse.gov/omb/e-gov/fea> [accessed 14 April 2012].
11‘Why Gartner Is Critical To Your Business’ <http://www.gartner.com/technology/why_gartner.jsp> [accessed 12 April 2012].
12‘The New Enterprise Architecture (Gartner)’ <http://www.gartner.com/pages/story.php.id.2226.s.8.jsp> [accessed 12 April 2012].
13‘Comparison of the Top Six Enterprise Architecture Frameworks’ <http://www.cioindex.com/enterprise_architecture.aspx> [accessed 16 April 2012].
14‘Enterprise Architecture (EA) Frameworks List | DesktopAuditing’ <http://www.desktopauditing.com/enterprise-architecture-ea-frameworks-list> [accessed 19 March 2012].
15‘Dok_eGov-Basic-Concepts.pdf’ <http://147.86.7.23/wikigov/images/b/b0/Dok_eGov-Basic-Concepts.pdf> [accessed 14 April 2012].
17‘Evaluation Methodology for National Enterprise Architecture Frameworks.pdf’ <http://www.ictinnovations.org/htmls/papers/ictinnovations2010_submission_20.pdf> [accessed 20 March 2012].
18‘Overview of Enterprose Architecture Work in 15 Countries’ <http://www.vm.fi/vm/en/04_publications_and_documents/01_publications/04_public_management/20071102Overvi/FEAR_ENGLANTI_kokonaan.pdf> [accessed 16 April 2012].
19‘Undp-gif-overview.pdf’, p. 1 <http://www.ibm.com/ibm/governmentalprograms/undp-gif-overview.pdf> [accessed 20 March 2012].
21‘Interoperability Frameworks and Enterprise Architectures in Egovernment Initiatives in Europe and the United States’, p. 13 <http://www.upv.es/~lguijar/nova/investigacio/pubs/Guijarro2007SelfArchive.pdf> [accessed 29 March 2012].
22‘Saga_4_0_englisch_download.pdf’ <http://www.cio.bund.de/SharedDocs/Publikationen/DE/Architekturen-und-Standards/saga_4_0_englisch_download.pdf?__blob=publicationFile> [accessed 19 March 2012].
23‘Danish White Paper on Enterprise Architecture’, p. 41 <http://en.itst.dk/it-architecture-standards/publications/whitepaper-on-it-architecture/whitepaper.pdf> [accessed 13 April 2012].
24‘Interoperability Frameworks and Enterprise Architectures in Egovernment Initiatives in Europe and the United States’, p. 20.
25‘Enterprise Architecture Tool Selection Guide V6.3.pdf’ <http://www.enterprise-architecture.info/Images/EA%20Tools/Enterprise%20Architecture%20Tool%20Selection%20Guide%20v6.3.pdf> [accessed 16 April 2012].
26‘Enterprise Architecture Tools, Institute For Enterprise Architecture Developments (IFEAD)’ <http://www.enterprise-architecture.info/EA_Tools.htm> [accessed 16 April 2012].