Thứ Năm, 16 tháng 6, 2011

Xây dựng phần mềm và hệ thống thông tin trong quân đội và chính phủ: Cộng đồng trước, công nghệ sau


Cho tới bây giờ, chúng ta luôn được nghe những cụm từ đại loại như: Để phát triển công nghiệp công nghệ thông tin của Việt Nam (trong đó công nghiệp phần mềm và nội dung số), trước hết phải ưu tiên đầu tư hỗ trợ nâng cao năng lực hoạt động và sức cạnh tranh cho các doanh nghiệp công nghệ thông tin và truyền thông (CNTT-TT) của Việt Nam..., ưu tiên cho các doanh nghiệp CNTT-TT chủ đạo của Việt Nam ... nghĩa là doanh nghiệp là chủ thể chính nhà nước cần tập trung hỗ trợ.
Thế nhưng, tại quốc gia có nền công nghiệp CNTT-TT được cho là tiên tiến nhất trên thế giới, với nhiều doanh nghiệp CNTT-TT nổi tiếng nhất thế giới như nước Mỹ, khi nói về việc phát triển phần mềm cho khu vực chính phủ và nhất là cho quân sự của ngày hôm nay, với việc sử dụng một tiếp cận được gọi là phát triển công nghệ mở (PTCNM), họ lại nói: Cộng đồng trước, công nghệ sau. Nhà công nghệ phải được kiểm soát và không được cho phép để xây dựng và/hoặc triển khai phần mềm cho tới khi một cộng đồng và cơ sở những người sử dụng được xác định. Nghĩa là, không có chữ “doanh nghiệp”. Vậy doanh nghiệp sẽ nằm ở đâu? Chắc chắn là nó nằm trong chữ “cộng đồng” rồi. Tuy nhiên, doanh nghiệp không phải là nhân vật chính duy nhất trong chữ “cộng đồng” đó. Nói một cách khác, chủ thể để nhà nước tập trung hỗ trợ không phải là doanh nghiệp, mà là cộng đồng.
Ngày 16/05/2011, tài liệu: “Phát triển Công nghệ Mở - Những bài học học được và những thực tiễn tốt nhất cho các phần mềm quân sự” đã được xuất bản với sự bảo trợ của Trợ lý Bộ trưởng Quốc phòng Mỹ (Các mạng Tích hợp Thông tin) NII/DoD, Giám đốc Thông tin (CIO) và Thứ trưởng Bộ Quốc phòng Mỹ về Mua sắm, Công nghệ và Hậu cần (AT&L) với mục đích là để giúp cho cá nhân và các nhà thầu của chính phủ Mỹ triển khai PTCNM cho các phần mềm bên trong các dự án của chính phủ, đặc biệt trong quốc phòng.
Phát triển công nghệ mở (PTCNM) là một tiếp cận đối với sự phát triển phần mềm và/hoặc hệ thống trong đó những người phát triển trong các tổ chức khác nhau về quân sự, liên bang, thương mại và có khả năng là công chúng có thể hợp tác phát triển và duy trì phần mềm hoặc một hệ thống theo một cách thức phi tập trung. PTCNM phụ thuộc vào các tiêu chuẩn mở, các giao diện mở, các phần mềm nguồn mở (PMNM) và các thiết kế mở, với các công cụ trực tuyến cộng tác và phân tán, và sự lanh lẹ về công nghệ.
Lý do để PTCNM, như lời của một thứ trưởng Quốc phòng Mỹ, William J. Lynn III, trước hết là để đối phó lại với tình hình hiện nay, khi mà chiến tranh không gian mạng đang ngày càng trở nên nóng bỏng trên thế giới, thì “Nước Mỹ không thể rút lui ra đằng sau một đường Maginot của các tường lửa hoặc nếu không nó sẽ gặp rủi ro bị xéo qua. Chiến tranh không gian mạng giống như là chiến tranh dùng mẹo, trong đó tốc độ và sự lanh lẹ là quan trọng nhất”.
Ngày nay, phần mềm đã trở thành trung tâm trong cách mà một người lính thực hiện các nhiệm vụ của mình. Vì sự tin cậy vào phần mềm là một sức mạnh, các lực lượng vũ trang phải tuân theo một chiến lược tích cực để quản lý hồ sơ phần mềm của mình và thúc đẩy một văn hóa nội bộ đối với các giao diện, module hóa, sử dụng và sử dụng lại theo một phương thức mở. Đặc biệt, các lực lượng vũ trang phải có các phần mềm dễ dàng có thể áp dụng được cho việc thay đổi các nhu cầu nhiệm vụ và có thể được tiến hóa và được phân phối nhanh chóng ở chi phí thấp để đáp ứng được các yêu cầu nhiệm vụ một cách đúng lúc. Phần mềm cần có một cách thức phát triển bất kể ngày tháng, triển khai và cập nhật các hệ thống phần mềm cường độ lớn mà sẽ đáp ứng được nhịp độ và các yêu cầu nhiệm vụ bất kể thay đổi thế nào của các tác chiến quân sự.
Phần mềm trong quân sự/chính phủ không thể chỉ phụ thuộc vào một doanh nghiệp duy nhất. Sự độc quyền về tri thức, sự kiểm soát mã nguồn phần mềm trong một hệ thống phần mềm quân sự/chính phủ chỉ hợp lý đối với doanh nghiệp, nhưng lại tạo ra sự yếu kém về khả năng và tính không hiệu quả đối với chính phủ, hạn chế nghiêm trọng sự cạnh tranh đối với những cập nhật phần mềm/hệ thống, làm suy giảm/làm rỗng các tài nguyên có thể được sử dụng một cách có hiệu quả hơn và làm lãng phí tiền mà những người đóng thuế nộp cho nhà nước để tiến hành xây dựng các phần mềm/hệ thống đó.
Để giải quyết được vấn đề này, một cách tiếp cận mới về phát triển phần mềm/hệ thống với một chế độ sở hữu trí tuệ phần mềm mở rộng và hiện đại mà các cơ sở công nghiệp quốc phòng/các cơ quan chính phủ cần phải xác định để tạo điều kiện cho việc truy cập được một cách rộng rãi của một cộng đồng rộng lớn hơn để bảo vệ tri thức, bao gồm cả mã nguồn phần mềm, tài liệu, các thiết kế phần cứng và các giao diện. Bằng cách này sẽ làm gia tăng sự cạnh tranh và giảm chi phí tới tối thiểu cho những đổi mới sáng tạo. Thời gian trôi đi, quân đội/chính phủ sẽ có được những phần mềm/hệ thống tiến hóa liên tục trong một cộng đồng phát triển rộng lớn, có được sự thích nghi, tính mau lẹ và, quan trọng nhất, khả năng đáp ứng được với những mối đe dọa mới, biến động một cách nhanh chóng như hiện nay. Cách tiếp cận mới đó chính là PTCNM.
Nếu như theo cách tiếp cận lối truyền thống, chúng ta thường thấy các phần mềm trong quân sự/chính phủ ở dạng sở hữu độc quyền, đóng và thường do một nhà cung cấp duy nhất duy trì, thì với PTCNM, các phần mềm sẽ thường chỉ còn nằm ở 2 dạng:
  1. Phần mềm nguồn mở do cộng đồng rộng lớn duy trì hoặc phát triển, với mã nguồn luôn có sẵn, với các giấy phép tuân thủ theo các định nghĩa về phần mềm tự do và phần mềm nguồn mở của 2 tổ chức bảo vệ 2 định nghĩa đó một cách tương ứng là Quỹ Phần mềm Tự do FSF (Free Software Foundation) và tổ chức Sáng kiến Nguồn Mở OSI (Open Source Initiative) một cách tương ứng.
  2. Phần mềm thương mại sử dụng được ngay trong các cơ quan chính phủ và là mở chỉ trong các cơ quan chính phủ, được gọi là OGOTS (Open Government Off-The-Shelf). Thường thì phần mềm dạng này, chứ không phải là phần mềm nguồn mở như được nêu ở mục trên, vì những người lãnh đạo, quản lý của nó muốn có sự đổi mới sáng tạo, tốc độ phát triển, và chi phí thấp có thể tới từ sự cộng tác phát triển của nhiều bên tham gia, trong khi:
    1. Chính phủ thiếu các quyền về trí tuệ để làm cho phần mềm mở hơn (như, chính phủ có thể có các quyền theo mục đích của chính phủ GPR (government-purpose rights) và không có các quyền không hạn chế đối với phần mềm đó, và/hoặc
    2. Chính phủ mong muốn duy trì một ưu thế an ninh quốc gia bằng việc không làm cho phần mềm đó sẵn sàng đối với các kẻ địch tiềm tàng (đặc biệt những phần mềm như vậy sẽ là bí mật và/hoặc bị kiểm soát xuất khẩu).
Hình 1. Với PTCNM, chỉ còn 2 loại phần mềm trong vòng tròn là OGOTS (Open GOTS) và PMNM do cộng đồng rộng lớn duy trì (Community-Maintained OSS).
Ngoài việc sẽ không còn có những phần mềm sở hữu độc quyền thường thấy, với PTCNM, chính phủ luôn luôn hướng tới việc yêu cầu: (1) Các quyền trí tuệ không hạn chế đối với mã nguồn, dữ liệu; (2) Các định dạng dữ liệu, các tiêu chuẩn và các giao diện được sử dụng trong phần mềm phải là mở; có khả năng truy cập được một cách mở và đã có ít nhất một PMNM triển khai tiêu chuẩn mở đó một cách đầy đủ rồi.
Những lợi ích chính của PTCNM là (1) Tính mau lẹ/tính mềm dẻo gia tăng; (2) Đưa ra phần mềm để sử dụng được nhanh hơn; (3) Đổi mới sáng tạo gia tăng; (4) Giảm thiểu rủi ro; (5) Bảo hiểm và an ninh thông tin tốt hơn; (6) Chi phí phát triển và duy trì thấp hơn. Với PTCNM, quân đội/chính phủ sẽ làm cho mã nguồn phần mềm thành một tài nguyên có thể thay mới được một cách vô hạn.
Làm thế nào để có được một dự án phần mềm PTCNM thành công
Để có được một dự án PTCNM thành công, có một số điểm gợi ý như sau: (1) Cộng đồng trước, công nghệ sau; (2) Mặc định là mở, đóng chỉ là khi cần thiết; (3) Chương trình của bạn không phải là đặc biệt, kể cả là trong quân sự; (4) Hãy thiết lập các qui định đơn giản về cách chia sẻ và cách truy cập các phần mềm dùng ngay được trong chính phủ; (5) Các quyền trí tuệ. Việc sử dụng các giấy phép PMNM đơn giản hóa to lớn cho việc quản lý các quyền của chính phủ; (6) Hãy thương thảo và yêu cầu các quyền không hạn chế trong phần mềm và mã nguồn. Chính phủ có ý định các quyền là cơ bản còn cơ chế giấy phép què quặt nên được tránh; (7) Không tạo ra các giấy phép mới cho phần mềm, hãy sử dụng các giấy phép hiện đang tồn tại; (8) Hãy hạn chế mạnh mẽ sự pha trộn lẫn lộn các phần mềm chính phủ cấp tiền với các phần mềm tư nhân cấp tiền (đặc biệt nếu nó được trao các bằng sáng chế); (9) Các phần mềm có kiểm soát xuất khẩu và bí mật pha trộn lẫn lộn với các phần mềm khác thì cần tạo ra các cơ chế “cài cắm” (plugs-in) ở những nơi có thể để cho phép sử dụng và chia sẻ phần mềm không bị hạn chế vì những kiểm soát xuất khẩu hoặc bí mật đó; (10) Hãy hạn chế việc kết hợp các thành phần sở hữu độc quyền tiềm ẩn chi phí cấp phép, đặc biệt nếu hệ thống được thiết kế phụ thuộc vào các thành phần đó; (11) Lên kế hoạch và cấp vốn cho sự quản lý cộng đồng của dự án và duy trì mã nguồn; (12) Tiếp tục và khuyến khích những tranh luận và thảo luận mạnh mẽ về phần mềm trong những người sử dụng và trong các lập trình viên (13) Đừng quên viết tài liệu. Điều này bao gồm cả tài liệu cho người sử dụng, cài đặt, quản trị, và thiết kế. Nó cũng bao gồm các sách chỉ dẫn về cách để cài đặt và duy trì phần mềm theo cách đảm bảo được an ninh; (14) Quản lý cấu hình: Thông tin được duy trì về những gì mà những công cụ/những đánh giá từ bên ngoài được xem xét, về phiên bản nào của phần mềm, và các kết quả đã có là những gì; và (15) Hãy quản lý dự án với một cộng đồng: những người sử dụng đôi khi sẽ trở thành các lập trình viên, ít nhất là đối với việc sửa những khiếm khuyết nhỏ.
PTCNM là một xu thế tất yếu trên thế giới, đặc biệt khi mà chiến tranh không gian mạng, một cuộc chiến dùng mẹo đã, đang và sẽ diễn ra từng giây từng phút, khi mà sự tin cậy vào mã nguồn phần mềm sở hữu độc quyền của chỉ một công ty duy nhất có thể trở thành thảm họa đối với một chính phủ, một quốc gia, như chúng ta từng thấy trong vụ sâu Windows Stuxnet đánh vào các lỗi ngày số 0 của Microsoft Windows và các lỗi của hệ thống kiểm soát giám sát và thu thập dữ liệu SCADA của Siemens tại các cơ sở hạt nhân của Iran mà Tin học và Đời sống từng giới thiệu trong số tháng 05/2011, trang 70, bài “Chỉ nên xây dựng nhà máy điện hạt nhân khi làm chủ được các phần mềm vận hành các nhà máy đó?”.
Sau Stuxnet, thế giới đã trở nên bất ổn hơn, rủi ro hơn, đặc biệt với phần mềm. Có lẽ khó mà có đất sống cho những chính phủ, quốc gia nào cả tin vào những phần mềm sở hữu độc quyền với mã nguồn, dữ liệu và những thứ liên quan khác mà chúng chỉ phụ thuộc vào một doanh nghiệp duy nhất, khi mà, như được thừa nhận là điều hiển nhiên trên toàn thế giới, tiền là trên hết với mọi doanh nghiệp, và mã nguồn của phần mềm sở hữu độc quyền sẽ luôn được sẵn sàng để bán cho ai trả giá cao nhất, bất kể họ là ai, kể cả là cho kẻ thù của chính phủ, quốc gia bạn.
Như tổng thống Toomas Hendrik Ilves của Estonia, quốc gia từng bị tấn công không gian mạng vào năm 2007 làm tê liệt cả nước trong vài tuần liền, nói: “Tôi không tin bất kỳ thứ gì nữa”, bạn hãy luôn cảnh giác vì sẽ luôn sẵn có những người với đủ mọi lý do, từ ngây ngô ngớ ngẩn, tham tiền-chức-quyền, ích kỷ cố chấp, cơ hội cầu an ... thậm chí cho tới cả rắp tâm phản quốc, sẽ luôn tìm mọi cách để thuyết phục bạn tin vào điều ngược lại, vào những thứ phồn vinh giả tạo của phần mềm sở hữu độc quyền.
Bạn có thể tải về bản dịch tài liệu của Bộ Quốc phòng Mỹ ở địa chỉ: http://ubuntuone.com/5U4RZZVmXYXkiMH9vwe5ZF 
Trần Lê
Bài được đăng trên tạp chí Tin học & Đời sống, số tháng 06/2011, trang 72-75.

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.