Thứ Năm, 22 tháng 9, 2011

Từ nguồn mở đến công nghệ mở - Một hướng đi mặc định


Từ cách đây không lâu chúng ta mới chỉ nghe nói về phần mềm tự do nguồn mở, hoặc cùng lắm là chuẩn mở khi nói tới những gì có liên quan tới công nghệ thông tin và truyền thông. Thế nhưng mới chỉ vài tháng qua, thế giới cho thấy đã xuất hiện hàng loạt những khái niệm “mở” khác.
Dưới đây chúng ta thử tìm hiểu về những khái niệm “mở” với những định nghĩa và/hoặc giải thích tóm tắt, cơ bản nhất về chúng.
  1. Công nghệ mở. Công nghệ mở gồm 6 thành phần:
    1. Chuẩn mở
      • Chuẩn được áp dụng và được một tổ chức phi lợi nhuận duy trì, và sự phát triển hiện hành của nó diễn ra trên cơ sở của một thủ tục ra quyết định mở sẵn sàng cho tất cả các bên có quan tâm (quyết định đồng thuận hoặc theo số đông...).
      • Chuẩn đã được xuất bản và tài liệu đặc tả của chuẩn là sẵn sàng hoặc một cách tự do hoặc với một phí tượng trưng. Tất cả mọi người phải được phép sao chép, phân phối và sử dụng nó mà không mất phí hoặc với một phí tượng trưng.
      • Sở hữu trí tuệ - nghĩa là, các bằng sáng chế có thể là có - đối với (các phần) chuẩn và được làm cho sẵn sàng không thể hủy bỏ được trên cơ sở không có phí bản quyền.
      • Không có bất kỳ ràng buộc nào trong việc sử dụng lại chuẩn đó.
    2. Giao diện mở
      • Trong phần mềm, khái niệm thường được sử dụng là giao diện lập trình ứng dụng API (Application Programming Interface) mở (OpenAPI), thường được tham chiếu tới như là công nghệ mới OpenAPI. OpenAPI là một từ được sử dụng để mô tả các tập hợp công nghệ cho phép các website tương tác được với nhau thông qua việc sử dụng SOAP, Javascript và các công nghệ web khác. Trong khi các khả năng của nó không bị hạn chế chỉ cho các ứng dụng dựa trên web, thì điều này ngày càng trở thành một xu thế gia tăng trong các ứng dụng Web 2.0.
      • Khái niệm OpenAPI gần đây được sử dụng nhiều trong các phương tiện mạng xã hội và Web 2.0. Với sự ra đời của Facebook vào ngày 01/06/2007, thì Facebook đã kết hợp một OpenAPI vào trong mô hình nghiệp vụ của hãng.
      • OpenAPI cũng trở nên rất phổ biến trong kỹ thuật phần mềm, cho sự cộng tác giữa các kiến trúc sư và các kỹ sư các trường phái công nghệ khác nhau. Vì có các phần mềm khác nhau cho việc thiết kế các cấu trúc, những người này phải tìm ra một cách thức để sử dụng được công việc của nhau thông qua “OpenAPI”. Ví dụ, một kiến trúc sư phần mềm có thể vẽ trong một phần mềm CAD và các kỹ sư có thể triển khai được các bản vẽ đó trong các phần mềm của họ.
    3. Phần mềm tự do nguồn mở. Một chương trình là phần mềm tự do khi mà người sử dụng nó có được các quyền cơ bản sau:
      • Tự do chạy chương trình, vì bất kỳ mục đích nào (tự do 0).
      • Tự do nghiên cứu cách mà chương trình làm việc, và thay đổi nó để làm cho nó làm được những gì mà bạn muốn (tự do 1). Sự truy cập tới mã nguồn là một điều kiện tiên quyết cho điều này.
      • Tự do phân phối lại các bản sao để bạn có thể giúp được người hàng xóm của bạn (tự do 2).
      • Tự do phân phối các bản sao những phiên bản đã được sửa đổi của bạn cho những người khác (tự do 3). Bằng việc làm này bạn có thể trao cho toàn bộ cộng đồng một cơ hội hưởng lợi từ những thay đổi của bạn. Sự truy cập tới mã nguồn là một điều kiện tiên quyết đối với điều này.
    4. Thiết kế mở
      • Thiết kế mở là sự phát triển các sản phẩm vật lý, các máy móc và các hệ thống thông qua việc sử dụng các thông tin thiết kế được chia sẻ một cách công khai. Mục tiêu và triết lý là giống hệt như phong trào phần mềm nguồn mở, nhưng được triển khai để phát triển các sản phẩm vật lý hơn là các phần mềm. Chúng ta sẽ thấy rõ hơn khi đề cập tới khái niệm phần cứng mở ở bên dưới.
      • Ý tưởng của thiết kế mở được thực hiện, hoặc cùng một lúc hoặc nối tiếp nhau với sự tham gia của vài nhóm hoặc cá nhân khác nhau. Các nguyên lý của thiết kế mở gần tương tự như những nguyên lý về thiết kế phần cứng mở, nổi lên vào tháng 03/1998 khi mà Reinoud Lamberts của Đại học Công nghệ Delft đã đề xuất trên website của ông bài “Các mạng thiết kế mở” sự tạo ra một cộng đồng thiết kế phần cứng theo tinh thần của phần mềm tự do.
    5. Công cụ trực tuyến cộng tác và phân tán
      • Phần mềm tự do nguồn mở thường được các lập trình viên từ khắp nơi trên thế giới phát triển, thường với 2 nhánh: một nhánh với kho mã nguồn ổn định và nhánh còn lại với kho mã nguồn được kiểm thử, cả 2 nhánh đều có những phiên bản mới thường xuyên được đưa ra theo thời gian ngắn. Việc phát triển phần mềm vì thế thường cần tới một công cụ quản lý và kiểm soát phiên bản và mã nguồn đóng góp từ tất cả các lập trình viên đó. Thông thường, công cụ này làm giúp các lập trình viên làm việc tốt được một cách trực tuyến trên Internet.
      • Ví dụ về một công cụ trực tuyến cộng tác và phân tán là Git, một hệ thống kiểm soát phiên bản hiện đang được sử dụng trong nhiều dự án phần mềm tự do nguồn mở, đặc biệt là để phát triển nhân Linux với hàng ngàn lập trình viên từ vài trăm công ty và những người đóng góp tự nguyện nằm phân tán trên toàn thế giới thông qua môi trường Internet một cách trực tuyến.
      • c công cụ trực tuyến cộng tác và phân tán bây giờ được sử dụng một cách rộng rãi trong phát triển phần mềm.
    6. Sự thích nghi về công nghệ
      • Quá thường thấy tất cả các phần mềm và các hệ thống trong lịch sử đã và đang được phát triển như là những đồ nguyên khối. Những phần mềm hoặc hệ thống như vậy là khó để thay đổi và áp dụng khi công nghệ và và các nhu cầu thay đổi.
      • Khi phần mềm đã trở thành ngày một được kết nối mạng, thì thiết kế và các phương pháp luận kỹ thuật đã tiến bộ hướng tới các kiến trúc dựa vào dịch vụ mà chúng giao tiếp thông qua các giao diện mở và được tiêu chuẩn hóa. Một khi là dạng kiến trúc mở, dựa vào dịch vụ được triển khai, thì hệ thống về bản chất tự nhiên phân li thành một thiết kế theo module - mỗi dịch vụ là tự do để cải tiến và tiến hóa một cách độc lập miễn là nó giao tiếp thông qua các giao diện tiêu chuẩn.
      • Mấu chốt là hãy chia hệ thống thành các thành phần theo module, nhỏ hơn, có khả năng được sử dụng một cách riêng rẽ và có các giao diện tiêu chuẩn. Điều này cho phép thay đổi và thích nghi được khi công nghệ và các nhu cầu thay đổi.
  2. Phần cứng mở.
    1. Đưa các nguyên tắc của phần mềm tự do nguồn mở, như được nêu ở trên, vào cho phần cứng để điều hành việc sử dụng, sao chép, sửa đổi và phân phối các tài liệu thiết kế phần cứng, sản xuất và phân phối các sản phẩm phần cứng.
    2. Tài liệu thiết kế phần cứng bao gồm các sơ đồ, thiết kế, bản vẽ mạng và bảng mạch, các hình vẽ cơ khí, các đồ thị lưu trình và các văn bản mô tả, cũng như những tư liệu khác.
  3. Web mở.
    1. Định nghĩa thực sự của Web Mở vẫn còn trong quá trình hình thành, dù chắc chắn là nó sẽ được xây dựng dựa vào các nguyên lý cốt lõi của bản thân Web.
    2. Nguyên tắc quan trọng duy nhất cho Web mở là tính tương hợp, nghĩa là các hệ thống, phần mềm, các site, và các ứng dụng làm việc được với nhau mà không có xung đột.
    3. Khía cạnh đầu tiên và sống còn nhất đối với Web Mở là sự phi tập trung. Có nghĩa là Web Mở không bị bất kỳ cá nhân, công ty, hay tổ chức duy nhất nào kiểm soát. Thay vào đó, nó thuộc về bất kỳ ai muốn sử dụng nó. Có sự lựa chọn cách mà bạn được tham gia trong quá trình đó, từ việc sử dụng một dải rộng lớn các nhà cung cấp dịch vụ cho tới việc thiết lập site riêng tự làm của bạn.
    4. Về mặt kỹ thuật công nghệ, Web Mở có kiến trúc 4 lớp: cấu trúc, trình diễn, hành vi, và phương tiện.

Kiến trúc Web Mở
  1. Đám mây mở. Thời gian gần đây, điện toán đám mây (ĐTĐM) trở thành một cụm từ được nhắc tới rất nhiều trong thế giới công nghệ thông tin. Nhiều người cho rằng, khi sử dụng ĐTĐM thì ranh giới giữa “mở” và “đóng” sẽ không còn nữa. Tuy nhiên, thực tế triển khai thời gian qua đã cho thấy ĐTĐM cũng cần có sự phân biệt rạch ròi giữa “đóng” và “mở”. Vì vậy, nhân sự kiện hội nghị nguồn mở OSCON 2011 vừa diễn ra vào cuối tháng 07/2011 vừa qua tại Portland, Oregon, Mỹ, sáng kiến đám mây mở (ĐMM) đã ra đời với mục tiêu của nó là truyền toàn bộ các nguyên lý của phần mềm nguồn mở vào trong ĐTĐM để tạo nên những ĐMM.
    1. ĐMM mở là đám mây mà những người sử dụng phải có khả năng đến (không có rào cản khi vào) và đi (không có rào cản khi ra) bất chấp họ là ai (không phân biệt đối xử) và bất chấp là hệ thống nào họ sử dụng (trung lập về công nghệ).
    2. Các nhà cung cấp hỗ trợ vì thế phải cộng tác trong các tiêu chuẩn mở, triển khai những chuẩn mở đang tồn tại (ở những nơi có khả năng) và cộng tác thông qua một qui trình mở để phát triển chúng, với một quan điểm cạnh tranh công bằng về chất lượng.
    3. ĐMM phải đáp ứng các yêu cầu sau:
      • Các định dạng mở: Tất cả các dữ liệu và siêu dữ liệu phải được trình bày trong các định dạng của các chuẩn mở.
      • Các giao diện mở: Tất cả chức năng phải được thể hiện theo cách của các giao diện theo các chuẩn mở.
Vĩ thanh:
Bài viết có lẽ còn chưa nhắc tới hết được những khái niệm mở, như dữ liệu mở hay chính phủ mở... và bạn chắc chắn sẽ nghe thấy ngày một nhiều hơn về những khái niệm “mở” này trong một thế giới mà nguồn mở đã và đang trở thành mặc định để mọi người hướng tới phát triển công nghệ thông tin trong tương lai. Bạn sẽ không có cách gì để có thể bỏ qua chúng được!!!
Trần Lê
PS: Bài được đăng trên tạp chí Tin học và Đời sống, số 09/2011, trang 54-56.

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.