• Thứ Năm, 05/05/2005 21:50 (GMT+7)

    Bên dưới tảng băng trôi

    Bài viết này khẳng định chỗ đứng tất yếu của phần mềm nguồn mở (PMNM) nhưng cũng cảnh báo về những khó khăn, rủi ro và thách thức trong việc quản trị (bản quyền và hỗ trợ kỹ thuật) những giải pháp CNTT được nhúng mã nguồn mở.

    Bài viết này khẳng định chỗ đứng tất yếu của phần mềm nguồn mở (PMNM) nhưng cũng cảnh báo về những khó khăn, rủi ro và thách thức trong việc quản trị (bản quyền và hỗ trợ kỹ thuật) những giải pháp CNTT được nhúng mã nguồn mở.

    Không phải món đồ miễn phí

    Bài viết “Linux và PMNM so với PMTM: Có phải điểm yếu là hỗ trợ kỹ thuật” trong TGVT - PCW B số tháng 11/2004 đã có những phân tích khá lý thú và mới mẻ về vấn đề hỗ trợ kỹ thuật cho PMNM. Tuy nhiên, tác giả Nguyễn Anh Tuấn mới chỉ ra những thuận lợi của hỗ trợ kỹ thuật cho PMNM, trấn an tinh thần cho những “trái tim run rẩy” chứ chưa phân tích hết được những khó khăn và vấn đề cần kiểm soát để thuyết phục những “cái đầu” còn nghi ngại quyết định chuyển sang một lĩnh vực mới. Nói như vậy không có nghĩa là chúng tôi phản đối việc sử dụng PMNM. Trái lại, chúng tôi cho rằng sử dụng PMNM là một xu thế không thể cưỡng lại vì PMNM được coi là giải pháp đôi bên cùng có lợi: nhà cung cấp giải pháp (NCCGP) tiết kiệm được chi phí phát triển, người dùng mua với giá rẻ hơn, vấn đề là người lãnh đạo phải chủ động tìm hiểu để có thể quản trị những rủi ro mà chúng đem lại. Với phần mềm thương mại, chi phí cho hỗ trợ kỹ thuật là điều hiển nhiên. Ngược lại, thói quen coi PMNM như một thứ đối lập với phần mềm thương mại khiến phần đông xem PMNM như một món đồ miễn phí, không phải lo lắng gì khi sử dụng. Nhưng miễn phí chỉ là bề nổi của “tảng băng” PMNM. Nỗi lo ngại của các nhà quản lý đang “chực chờ” bên dưới tảng băng. Quản trị PMNM là lĩnh vực mới mẻ với những rủi ro không lường trước. Nếu những hãng phần mềm lớn thường chủ động sử dụng PMNM và khai thác chúng để thu lợi thì người dùng cuối không có được lợi thế đó. Họ không thể nghiên cứu, phân tích khối PMNM khổng lồ nên chỉ có thể “dùng đại” hoặc buộc phải dùng khi PMNM đã được nhúng trong các giải pháp. Do các NCCGP tích hợp PMNM trong sản phẩm của họ nên việc sử dụng PMNM trở nên “không thể tránh khỏi”. Vì vậy, không nên mất thời gian bàn luận về việc có nên dùng PMNM mà hãy xét xem việc sử dụng PMNM có thể đem lại rủi ro gì và làm sao tối thiểu hóa chúng.

    Rủi ro: bản quyền và hỗ trợ kỹ thuật

    Rủi ro đầu tiên và dễ thấy nhất của việc sử dụng PMNM là vấn đề bản quyền. Cần phải làm cho những nhân viên liên quan hiểu rõ sự cần thiết của việc rà soát định kỳ giấy phép sử dụng của những PMNM, đảm bảo chúng vẫn còn nguyên giá trị và tuân thủ các chính sách của công ty, phát hiện kịp thời những rắc rối về pháp lý có thể nảy sinh để có biện pháp xử lý. Không những thế, chính sách của công ty còn phải quy định rõ những ai và trong hoàn cảnh nào được phép sửa đổi mã nguồn của những PMNM đang sử dụng, phân định trách nhiệm, xác minh những trường hợp vi phạm, đảm bảo mọi sửa đổi mã nguồn của PMNM đều tuân thủ những tiêu chuẩn lập trình,...

    Ngay cả khi đã có những quy định về sử dụng PMNM, công ty vẫn phải đối mặt với một rủi ro khác: hỗ trợ kỹ thuật cho PMNM trong các sản phẩm thương mại trọn gói. Điều này cực kỳ khó khăn vì nó liên quan tới những NCCGP - đối tượng công ty không thể và không có quyền kiểm soát một cách trực tiếp và chặt chẽ như nhân viên. Một sự thật hiển nhiên là Linux và các PMNM khác đang ngày càng được dùng phổ biến, được “nhúng” trong các sản phẩm. Với các thiết bị phần cứng, sự hiện diện của PMNM không đáng ngại lắm vì hoạt động của chúng gắn liền với thiết bị và người dùng có thể tạm yên tâm. Trong khi đó, sự có mặt ngày càng nhiều của PMNM trong các giải pháp PM lại đem đến rất nhiều mối bận tâm cho các nhà quản lý.

    Hãy xét một ví dụ tương đối phổ biến là một ngân hàng mua hệ thống backoffice (để xử lý và thống kê, phân tích dữ liệu) với giá nhiều triệu đô la, phí bảo trì và hỗ trợ hàng năm cũng không nhỏ. Giấy phép sử dụng và tài liệu đi kèm của NCCGP không nói gì đến các phần mềm thứ ba, chứ đừng nói đến PMNM. Ngân hàng cũng hiểu sự có mặt của các phần mềm thứ ba đồng nghĩa với việc họ có thể phải trả thêm tiền bản quyền, thời hạn và điều kiện sử dụng cũng có thể bị hạn chế. Vì thế, các nhà quản lý thường yêu cầu nhà thầu đảm bảo PM của họ không chứa PM của bất kỳ bên thứ ba nào. Nhà thầu gửi lại một danh sách hàng chục phần mềm mã nguồn mở “nhúng” trong giải pháp của họ. Văn bản cũng chứa hàng trăm trang giấy phép sử dụng những PMNM đó. Mặc dù không phải trả thêm một chút phí bản quyền nào nhưng người dùng sẽ phải đối mặt với rất nhiều rắc rối do sự có mặt của PMNM trong giải pháp trọn gói trên:

    Ai chịu trách nhiệm hỗ trợ những PMNM trong giải pháp tổng thể?

    Nếu lỗi xảy ra, NCCGP có phải là điểm liên hệ duy nhất để giải quyết sự cố? Việc cập nhật các cấu phần mã nguồn mở đã được bao gồm trong phí hỗ trợ tổng thể?

    Ai chịu trách nhiệm triển khai những cấu phần mã nguồn mở?

    Điều gì xảy ra nếu NCCGP PMNM ngừng hỗ trợ phần mềm đó?

    Các cấu phần mã nguồn mở đã được kiểm tra chất lượng để đảm bảo tính ổn định và bảo mật như thế nào?

    Thông thường, chúng ta sẽ coi NCCGP thương mại là người chịu trách nhiệm vì họ đã quyết định sử dụng PMNM trong giải pháp của mình. Tuy nhiên, những vấn đề về pháp lý không phải là chuyện chơi. Trong trường hợp ngân hàng bị một công ty kiện vì PMNM dùng trong giải pháp mà ngân hàng mua vi phạm bản quyền, số phận của khoản đầu tư hàng triệu đô la sẽ ra sao?

    Để trả lời cho những câu hỏi trên, NCCGP thường đòi thêm một khoản phí đáng kể cho việc hỗ trợ và quy mô của dự án cũng sẽ tăng lên nhiều. Tuy nhiên phần lớn các NCCGP thường không đả động gì đến những vấn đề trên. Nhưng những ứng dụng thương mại lớn có chứa cấu phần mã nguồn mở ngày càng trở nên phổ biến vì việc sử dụng PMNM được coi là giải pháp đôi bên cùng có lợi: NCCGP tiết kiệm được chi phí phát triển, người dùng mua với giá rẻ hơn. Hơn nữa, việc sử dụng một số cấu phần mã nguồn mở còn có thể làm tăng khả năng tương tác của ứng dụng vì chúng thường được chuẩn hóa.

    Một số giải pháp

    Mặc dù vậy, với người dùng thì điều cốt tử là buộc NCCGP xác định rõ những PMNM trong hệ thống mà họ cung cấp. Tốt nhất là người mua nên buộc nhà thầu cam đoan bằng văn bản rằng giải pháp của họ không sử dụng PMNM. Điều này sẽ khiến nhà thầu công bố danh sách những cấu phần mã nguồn mở trong ứng dụng của mình. Khi đó, người mua có thể xác định những bước đi tiếp theo . Nếu nhà thầu yêu cầu bổ sung về phí, người mua có thể xem xét khả năng hỗ trợ thực tế của nhà thầu và mức độ hợp lý của khoản phí phát sinh (trong trường hợp ứng dụng có chứa quá nhiều cấu phần mã nguồn mở, có thể đặt ra vấn đề công sức thực tế của NCCGP và giá cả của ứng dụng - phần mềm iCMS là một ví dụ nhỏ).

    Quy mô giao dịch và tầm quan trọng của ứng dụng liên quan chặt chẽ tới trách nhiệm bảo trì và hỗ trợ kỹ thuật cho nó. Người bán những phần mềm rẻ tiền có thể buộc người mua chấp nhận rủi ro của một vài cấu phần mã nguồn mở. Nhưng đối với những hệ thống thông tin trọng yếu thì không thể chấp nhận những rủi ro đó. Người mua những hệ thống quan trọng phải đòi hỏi những điều khoản trong hợp đồng ràng buộc trách nhiệm của NCCGP với các cấu phần mã nguồn mở mà họ đưa vào, ví dụ:

    Đảm bảo tất cả các thành phần mã nguồn mở được liệt kê và kèm giấy phép sử dụng với hợp đồng.

    Đảm bảo NCCGP có đủ quyền để phân phối những PMNM đó hay đưa những phần đã sửa đổi của chúng vào sản phẩm của mình.

    Đảm bảo NCCGP sẽ hỗ trợ những PMNM.

    Đảm bảo PMNM sẽ được đối xử như với phần mềm của NCCGP.

    Nghe qua, việc quản lý PMNM và những rủi ro liên quan có vẻ quá phức tạp nhưng thực tế thì không hẳn như vậy. Sau bước đánh giá ban đầu, các công ty có thể quản trị PMNM bằng những quy trình và thủ tục sẵn có. Hơn thế nữa, phân tích ở trên đã cho thấy vấn đề không phải là nên hay không nên sử dụng PMNM. Doanh nghiệp phải sẵn sàng sử dụng và quản trị PMNM – thành phần không thể trốn tránh trong hệ thống CNTT.

     

    6 CÔNG VIỆC CHÍNH TRONG QUẢN TRỊ PMNM

     
      1. Kiểm kê phần mềm trong hệ thống: Lên danh sách tất cả các ứng dụng trong doanh nghiệp, ít nhất phải xác định những yếu tố sau: tên và phiên bản; tên và địa chỉ NCCGP; ngày cài đặt và ngày cập nhật cuối cùng; bản sao giấy phép sử dụng với các điều kiện đi kèm.

    2.
    Đảm bảo việc sử dụng tất cả các phần mềm đều hợp lý. Nhân viên hay bộ phận yêu cầu sử dụng PMNM phải nêu rõ (tại sao cần dùng, dùng như thế nào, với những điều kiện như thế nào, có phần mềm thương mại tương ứng hay không...).

    3.
    Xây dựng chính sách PMNM rõ ràng, cụ thể, quy định trong những trường hợp nào có thể cài đặt và sử dụng PMNM, khi nào có thể sửa đổi và phân phối PMNM, những ai có quyền truy cập mã nguồn...
     
     
      4. Đào tạo nhân viên: Triển khai những khóa ngắn ngày cho các nhân viên có liên quan, nhất là các lập trình viên, về những vấn đề riêng có của PMNM;

    5. Xây dựng và triển khai những quy trình, thủ tục ký kết hợp đồng nghiêm ngặt để đảm bảo xác định rõ những cấu phần mã nguồn mở trong mỗi ứng dụng thương mại. Xây dựng danh sách chi tiết những yêu cầu đối với các nhà thầu sử dụng cấu phần mã nguồn mở trong giải pháp thương mại.

    6. Liên tục cập nhật danh mục PMNM khi có các ứng dụng mới được triển khai.
     

    Lê Mạnh Hùng _ Bùi Huy Đạo
    le_manh_hung2000@yahoo.com
    daobh2004@yahoo.com

    ID: B0505_12