Chủ Nhật, 26 tháng 5, 2013

Các kho ứng dụng và tính mở

App stores and openness
By Rowan Wilson, Published: 04 January 2011, Reviewed: 11 January 2013
Bài được đưa lên Internet ngày: 11/01/2013
Lời người dịch: Với sự bùng nổ các ứng dụng trong các kho ứng dụng dành cho các thiết bị di động, vấn đề sở hữu trí tuệ của phần mềm một lần nữa lại bị thách thức khi mà một số thỏa thuận của kho với các lập trình viên cản trở họ sử dụng lại các mã được những người khác viết trước đó, rất thường thấy trong thế giới của PMTDNM. “Chắc chắn chúng là thời điểm thú vị cho sự tạo ra và phân phối phần mềm. Trong 2 thập kỷ qua, phong trào PMTDNM đã làm việc để san phẳng và dân chủ hóa mô hình phân phối phần mềm, và trong 2 năm qua sức mạnh của kho ứng dụng đã nổi lên để thách thức qui trình đó. Tương lai sẽ được xác định bằng cách mà chúng ta chọn để viết, nhận và chạy phần mềm của chúng ta”.
Khi các thiết bị di động trở nên phức tạp hơn và phổ biến hơn, các cơ sở giáo dục đang chịu sức ép tạo ra phần mềm và nội dung web di động giúp được các sinh viên và các nhân viên của họ có được thông tin và chức năng họ cần, trong khi dịch chuyển. Tại OSS Watch, chúng tôi đã thấy ngày càng nhiều yêu cầu thông tin về việc phát triển các giải pháp phần mềm nguồn mở (PMNM) cho các nền tảng di động. Tài liệu này giải thích một số ngữ cảnh và vấn đề chung xung quanh sự phát triển nguồn mở di động, và làm như vậy sẽ thảo luận được về một số xu thế chung hơn trong cách mà phần mềm được phân phối.
Di động đang tuần hành
'Điện thoại thông minh' và các thiết bị hỗ trợ số cá nhân (PDA) từng có ở dạng này dạng kia đâu đó từ nhiều năm qua. Tuy nhiên, hầu hết khi đó, chúng từng là sự gìn giữ rõ ràng của những người có thú chơi riêng về công nghệ, các chuyên gia CNTT và các lãnh đạo doanh nghiệp. Điều này một phần vì công nghệ đó còn khá là đắt, nhưng cũng là vì sự cuốn hút của chúng còn bị hạn chế vì sự phức tạp trong vận hành được thừa nhận của chúng. Từ lâu, sự chấp nhận dòng chính cũng từng bị cản trở vì lợi ích bổ sung thêm khá nhỏ mà một người sử dụng thông thường có thể thu được đối với một điện thoại di động có giới hạn hơn hoặc thậm chí đút được trong một cái ví cá nhân.
Tuy nhiên, trong những năm gần đây, sự phổ biến bùng nổ của web và, đặc biệt, các ứng dụng web xã hội như Facebook và Twitter, đã làm gia tăng đột biến mong muốn của công chúng thông thường đối với kết nối và các ứng dụng Internet. Sự phát triển và đơn giản hóa trong thiết kế giao diện cũng đã giúp các điện thoại thông minh - và gần đây hơn là các máy tính bảng - đột phá vào dòng chính. Các hệ điều hành cho điện thoại như Android của Google và iOS của Apple đã làm cho những người tiêu dùng mong đợi các giao diện cuốn hút mà đơn giản cho chức năng và dữ liệu hữu dụng.
Cùng quãng thời gian đó, các cơ sở giáo dục đã và đang làm việc cật lực để làm cho các dữ liệu và các hệ thống của họ truy cập được qua web vì sự thuận lợi của các nhân viên và sinh viên của họ. Có ý nghĩa đối với các cơ sở đó mở rộng nỗ lực này để có được số lượng người sử dụng gia tăng, những người đang đến với họ thông qua các thiết bị điện toán di động, nhưng không may, còn có một số sự phức tạp.
Sự nổi lên của các kho ứng dụng
Một phần của động lực làm cho các điện thoại thông minh và máy tính bảng dễ dàng hơn để sử dụng từng là một sự thống nhất các phương tiện phân phối các ứng dụng. Khi iPhone được tung ra vào năm 2007, nhà sản xuất của nó, Apple, ban đầu đã từ chối ý tưởng rằng các lập trình viên của các bên thứ 3 có thể được phép chạy các phần mềm của riêng họ trên điện thoại. Không bộ công cụ phát triển phần mềm nào đã được phân phối, và thay vào đó các lập trình viên mà muốn có chức năng của họ trong thiết bị đã được nói phải hiện thực hóa nó trong một ứng dụng web - về cơ bản một website với các thành phần tích cực được triển khai trong Javascript có khả năng được xem thông qua trình duyệt web được xây dựng sẵn trong điện thoại đó.
Trong vòng 18 tháng kể từ khi tung ra điện thoại, Apple đã xem xét lại chiến lược của hãng, đã phát hành một bộ công cụ phát triển phần mềm cho các lập trình viên các bên thứ 3 và đã tung ra một trung tâm phân phối thống nhất cho tất cả các ứng dụng trên nền tảng của họ: cái gọi là 'App Store' ('Kho Ứng dụng') là cách duy nhất mà các lập trình viên của các bên thứ 3 có thể có được phần mềm của họ trong iPhone.
Khái niệm này từng cực kỳ thành công cho Apple, với hơn 500.000 ứng dụng sẵn sàng sau chỉ hơn 2 nưm. Nó đặc trưng rất nhiều trong quảng cáo của Apple, và bây giờ đang được các nhà sản xuất thiết bị khác nhân bản với hy vọng rằng họ có thể có được sự thành công của mình. Trong thực tế, bản thân mô hình đó không thực sự mới: các cổng phần mềm cho điện thoại thông minh như Handango từng thực hiện một chức năng tương tự nhiều năm qua, trong khi các kho phần mềm thống nhất chạy cho các phát tán Linux như Debian và Maemo (bây giờ là Tizen) đã có nhiều đặc trưng của App Store của Apple. Tuy nhiên, những gì những người đi trước đó đã không có là yếu tố cưỡng bức. Chúng là các nguồn thuận tiện của phần mềm, mà một người sử dụng có thể luôn tìm chấy phần mềm của họ ở đâu đó khác, hoặc quả thực tự họ tạo ra và cài đặt nó mà không cần tư vấn bất kỳ nhà chức trách nào bên ngoài. Về cơ bản chỉ bằng cách thức có được phần mềm của bên thứ 3 trong iPhone của ạn, App Store đã đảm bảo rằng nó có thể giành được một cái thân phần mềm rộng lớn và một số lượng lớn sự chú ý của người sử dụng.
Trung gian và giám tuyển
Tiếp cận này không chỉ làm việc tốt cho Apple, mà cũng đã phục vụ cho những người sử dụng của nó tốt theo một số cách thức. Trong khi những người sử dụng điện thoại thông minh trước đó phải chải web để tìm phần mềm chạy được trong các thiết bị của họ - và gặp một số rủi ro như đối với an ninh và chức năng của nó - thì dịch vụ phần mềm giám tuyển của Apple làm cho qui trình này dễ dàng hơn và ít rủi ro hơn. Tuy nhiên, đối với những người bảo vệ PMTDNM, việc thu thập phương tiện phân phối này nằm trong tay của một thực thể duy nhất là đáng lo ngại, và đặt ra một mối đe dọa có thực cho ý tưởng của việc chia sẻ tự do, không có trung gian của phần mềm giữa những người sử dụng.
Để ép tuân thủ các kiểm soát mà xác định mô hình này, Apple ép buộc cả các lập trình viên và người sử dụng đầu cuối vào trong những thỏa thuận hợp đồng với họ nếu họ muốn sử dụng App Store. Những hợp đồng đó đặt ra trách nhiệm pháp lý lên các lập trình viên và những người sử dụng sẽ không làm những điều mà phá vỡ mô hình đó. Ví dụ, người sử dụng không thể phân phối lại phần mềm mà họ nhận - dù nó có lấy tiền hay không - và các lập trình viên phải sử dụng App Store như là điểm phân phối duy nhất của họ.
Những cố gắng sau này để sử dụng mô hình này, giống như Android Market của Google và Blackberry App World của RIM, đã thấy hổ thẹn của việc tự họ tạo ra một điểm phân phối duy nhất một cách bắt buộc bằng hợp đồng. Nhưng trong làn sóng của hiện tượng thành công của App Store, còn gây tranh cãi rằng họ đã có ít nhu cầu để làm thế. Sau tất cả, các lập trình viên và những người sử dụng di động đã nhận thực được rồi rằng mô hình đối với sự phân phối phần mềm đã thay đổi, và rằng một thành phần sống còn của một tỷ lệ giá trị thiết bị di động 'thông minh' bây giờ là khác nhau và tính sẵn sàng của các ứng dụng để chạy trên nó. Vì thế thậm chí dù sự phân phối không có trung gian của phần mềm của các bên thứ 3 là có khả năng trên những nền tảng như Android và Blackberry OS, thì các lập trình viên vẫn còn có động lực mạnh mẽ để sử dụng các kênh trung gian phổ biến nhất để phân phối nếu họ muốn sự chú ý cuaru đa số những người sử dụng. Vì các mục đích của phần còn lại của tài liệu này, tất cả các phương án của khái niệm App Store sẽ được tham chiếu tới như là 'các kho ứng dụng'.
Nguồn mở và các kho ứng dụng
Trong thực tế có nhiều ví dụ về PMNM trong các kho ứng dụng khác nhau. Để giải thích các vấn đề đang diễn ra chúng ta cần phân biệt ở đây giữa mã mà hoàn toàn là tác phẩm của một lập trình viên duy nhất và mã có chứa PMTDNM được những người khác viết. Trong trường hợp đầu, thường sẽ không có vấn đề gì về cấp phép với mã xuất hiện cả thong qua một kho ứng dụng lẫn tách bạch như là nguồn mở. Các giấy phép PMTDNM là không độc quyền, vì thế miễn là các điều khoản của kho ứng dụng cũng là không độc quyền, thì một lập trình viên có thể đồng ý đối với các điều khoản và điều kiện của kho ứng dụng đó và, cùng một lúc, làm cho mã của chúng sẵn sàng thong qua kênh khác (như web) như là nguồn mở. Tất nhiên, nếu cách duy nhất để có được mã thực thi thực sự để chạy trong thiết bị của bạn là phải có nó được nhà sản xuất thiết bị ký - như trường hợp với các thiết bị iOS của Apple - thì sự phân phối nguồn mở của bạn vẫn sẽ bị cản trở một chút trong khả năng sử dụng lại của nó; các lập trình viên khác mà muốn tiến hành những thay đổi và sử dụng mã được sửa đổi trong thiết bị theo đó nó đã có ý định cũng sẽ phải đồng ý với những điều khoản và điều kiện của kho ứng dụng để thực sự phân phối các phiên bản sửa đổi của họ. Chính sự sử dụng lại mã nguồn mở của những người khác này sẽ là có nhiều vấn đề hơn.
Trong trường hợp thứ 2, các lập trình viên uốn đưa mã PMTDNM thuộc về những người khác (một hoạt động cốt lõi trong mô hình nguồn mở) phải thực hiện nhiệm vụ khó khăn trong việc chắc chắn rằng các trách nhiệm pháp lý mà họ mang theo trong hợp đồng của kho ứng dụng hoàn toàn sẽ tương thích với giấy phép PMTDNM, theo đó mã nguồn mở của các bên thứ 3 mà họ muốn sử dụng được làm cho sẵn sàng. Các lập trình viên nguồn mở làm việc theo mùa vụ lùi bước ngã lòng trước triển vọng của việc kiểm toán các bộ mã cho tính tương thích của các giấy phép nguồn mở, nhưng ít nhất trong trường hợp đó các giấy phép là có từ lâu và nổi tiếng, và những tương tác của chúng sẽ được công khai hóa tốt.
Việc xác định liệu một thỏa thuận của kho ứng dụng - mà sẽ thường sẽ rất lâu và cũng có khả năng thay đổi thường xuyên - là tương thích với giấy phép nguồn mở của các bên thứ 3 của bạn thậm chí là một đề xuất còn ít hấp dẫn hơn. Đã có những trường hợp trong đó các lập trình viên nguồn mở đã từ chối đối với tác phẩm của họ được phân phối thông qua một kho ứng dụng - ví dụ, Quỹ Phần mềm Tự do đã có một cổng chuyển iOS của trò chơi GNU Go phần mềm tự do của họ được loại bỏ, khi họ cảm thấy rằng những điều khoản và điều kiện của App Store của Apple là không tương thích với sự lựa chọn của riêng họ để làm cho mã sẵn sàng theo giấy phép GPLv3. Gần đây hơn, một lập trình viên đã đóng góp cho phần mềm chơi đa phương tiện VLC được cấp phép GPLv2 đã từ chối sự xuất hiện của phần mềm đó trong App Store, và một tranh luận đã đảm bảo giữa lập trình viên đó và quản lý dự án VLC, người không tán thành về việc liệu các điều khoản của App Store và GPLv2 có là tương thích với nhau hay không. Thư viện cốt lõi của VLC kể từ đó đã được cấp phép lại theo LGPL mà có thể cho phép các ứng dụng di động theo các giấy phép tương thích của App Store sẽ được viết. Tuy nhiên, trong khi một giấy phép của PMNM có xu hướng không thay đổi, thì những điều khoản và điều kiện của App Store thường xuyên được rà soát lại, nên việc cấp phép lại mã của bạn để phù hợp với chúng thể hiện thứ gì đó của việc dịch chuyển mục tiêu.
Mã nguồn mà sẵn sàng theo các giấy phép nguồn mở dễ dãi hơn, như BSD và Apache, có khả năng ít có vấn đề hơn. Các lập trình viên vẫn nên đọc các thỏa thuận cho lập trình viên của kho ứng dụng một cách thận trọng để kiểm tra về tính tương thích. Các lập trình viên trong các viện trường giáo dục cũng sẽ cần phải nhìn vào cách mà họ có thể đi vào dạng các thỏa thuận cần thiết cho sự phân phối của kho ứng dụng. Nếu họ đồng ý với hợp đồng một cách cá nhân, thì không có khả năng vai trò của họ như một lập trình viên được thuê làm việc sẽ được bao trùm, nên một đại diện viện trường sẽ cần phải được thấy ai có thể đồng ý với các điều khoản hợp đồng nhân danh viện trường. Các lập trình viên mà là bên ký hợp đồng độc lập có thể có khả năng đồng ý với các điều khoản đó một cách cá nhân, dù họ sẽ vẫn thảo luận điều này với viện trường của họ để đảm bảo rằng nó trao cho họ mức kiểm soát mà họ muốn đối với ứng dụng và sự phân phối nó.
Tương lai
Với sự ra đời của iPad, mô hình kho ứng dụng đã chuyển sang môi trường điện thoại di động và đã thực hiện được một bước rõ ràng hướng tới cái gọi là vũ đài 'điện toán chung'. Apple bây giờ cũng đã tung ra một kho ứng dụng cho nền tảng điện toán chung của Macintosh. Microsoft đã công bố một sáng kiến tương tự để bổ sung cho sự sát nhập di động - máy để bàn của họ cho Windows 8. Những quan ngại mà nhiều người trong thế giới nguồn mở có về các kênh trung gian phân phối chỉ tăng cường với từng sáng kiến mới. Vì thế liệu mô hình kho ứng dụng có là mối đe dọa thực sự cho tính mở hay không?
Các tình huống tương tự đã nổi lên trong quá khứ. Vào năm 2006, Module Nền tảng Tin cậy – TPM (Trusted Platform Module) đã được công bố như một thành phần có thể ngồi lên bo mạch chủ của máy tính cá nhân PC và kiểm tra gốc gác lai lịch phần mềm của bạn thông qua việc ký mã mật mã. Việc sử dụng công nghệ này, một lớp mơi scuar phần mềm 'được kiểm soát an ninh' có thể được xác định bằng máy tính của bạn và bằn ccs dịch vụ mạng ở xa và có lẽ được trao các quyền ưu tiên về an ninh bổ sung đối với mã mà lai lịch gốc gác của nó có thể không kiểm tra được.
Ý định đằng sau sơ đồ này từng là để đấu tranh chống các virus và các sửa đổi không được phép đối với phần mềm máy trạm mạng, nhưng một hệ quả bổ sung và có thể không được mong đợi của kế hoạch đó là hệ sinh thái của PMTDNM có thể bị cản trở đáng kể. Nó có thể phải tồn tại trong chủng loại 'không tin cậy' trừ phi phương tiện để kiểm toán và ký mã có thể được thấy. Thậm chí nếu điều này có thể đạt được, thì các phiên bản của mã được sửa đổi có thể cần phải được nuôi ngược lại thông qua qui trình kiểm toán y hệt nếu họ muốn hưởng thụ các quyền ưu tiên về an ninh được cải thiện. Trong trường hợp đó, ý tưởng đó đã không theo kịp và trong năm 2010 một khai thác đã được thấy cho sự triển khai công nghệ đó, trả nó về gần như vô dụng. Công nghệ 'Khởi động An ninh' (Secure Boot) gần đây nhất, mà cũng ngăn chặn một máy tính khỏi việc chạy mã không được ký, đang giành được xung lượng. Đối với một thiết bị để nhận được chứng chỉ Windows 8 thì nó phải triển khai công nghệ đó, dù đối với các thiết bị có sử dụng các vi xử lý truyền thống x86 thì nó có thể bị tắt.
Tuy nhiên, những gì TPM không làm được trong năm 2006, thì các kho ứng dụng làm được thành công ngày nay. Có lẽ vì chúng đưa ra những ưu điểm thực sự trong các điều khoản của khả năng khai thác phần mềm và sự truy cập, chúng này càng trở thành mọt bước cần thiết trong chuỗi phân phối phần mềm. Điều này sẽ không nghi ngờ gì tác động tới PMTDNM. Nếu các lập trình viên phần mềm muốn sử dụng PMTDNM được những người khác viết trong các chương trình được các kho ứng dụng của họ phân phối, thì họ phải định vị những điều không tương thích tiềm tàng giữa các điều khoản của kho ứng dụng và những thứ được gắn với mã mà họ muốn sử dụng lại. Nếu họ bỏ qua kho ứng dụng, thì họ sẽ đánh mất sự truy cập hoàn toàn tới các nền tảng điện toán rõ ràng và có liên quan tới bản thân họ đối với hậu phương không được công khai của những người khác.
Tuy nhiên, không phải mọi tin đều xấu. Như được nêu ở trên, trình duyệt web đưa ra con đường khác cho sự xuất bản chức nawngn trong một dải các thiết bị. Trong khi là đúng rằng - vào lúc này - sự truy cập tới các chức năng tiên tiến của thiết bị như các dữ liệu vị trí, máy chụp ảnh và microphone từ các ứng dụng web bị hạn chế và khác nhau từ thiết bị này tới thiết bị khác, nhiều sáng kiến khác nhau để chỉnh tình huống này đang diễn ra. Dự án WAC, ví dụ, đã và đang làm việc về các phương pháp truy cập được tiêu chuẩn hóa đối với các tính năng tiên tiến hơn của các thiết bị. Gần đây nhất, dự án Webinos do EU tài trợ đã thiết lập để tạo ra một nền tảng ứng dụng thống nhất xuyên khắp các thiết bị dựa vào các tiêu chuẩn web. Cái gọi là 'widgets' - về cơ bản là các ứng dụng nhỏ bé được chất đống để phân phối và thực thi thông qua một trình duyệt web - có thể cung cấp một cách thức cho các ứng dụng để đạt được xuyên khắp tất cả các nền tảng mà không có sự trung gian của nhà sản xuất phần cứng. Với sự giới thiệu của các hệ điều hành dựa vào trình duyệt như Firefox OS và Chrome OS, chúng ta đã thấy các công nghệ web đã đưa ra một chiếc ghế phía trước trong các thiết bị, và được phân phối thong qua các kho ứng dụng tương ứng của chúng.
Chắc chắn chúng là thời điểm thú vị cho sự tạo ra và phân phối phần mềm. Trong 2 thập kỷ qua, phong trào PMTDNM đã làm việc để san phẳng và dân chủ hóa mô hình phân phối phần mềm, và trong 2 năm qua sức mạnh của kho ứng dụng đã nổi lên để thách thức qui trình đó. Tương lai sẽ được xác định bằng cách mà chúng ta chọn để viết, nhận và chạy phần mềm của chúng ta.
OSS Watch đã tổ chức một hội thảo về các ứng dụng di động xuyên nền tảng nguồn mở, nơi mà các đoàn đại biểu từ giới công nghiệp và hàn lâm đã thảo luận các vấn đề thích hợp đối với sự phát triển nguồn mở trong các công nghệ và cơ đội di động vì sự cộng tác xuyên khu vực trong môi trường này.
As mobile devices become more complex and more popular, educational institutions are under increasing pressure to create software and mobile web content that helps their students and staff get the information and functionality they need, on the move. At OSS Watch, we have seen more and more requests for information on developing open source software solutions for mobile platforms. This document explains some of the general context and issues around mobile open source development, and in doing so discusses some more general trends in how software is distributed.
Mobile marches on
‘Smartphones’ and personal digital assistants have been around in one form or another for many years. For most of that time, however, they have been the exclusive preserve of technology hobbyists, IT professionals and business executives. This has partly been because the technology has been relatively expensive, but also because their appeal has been limited by their perceived complexity of operation. For a long time, mainstream acceptance was also hampered by the relatively small additional benefit that an average user would realise over a more limited mobile phone or even a filofax.
In recent years, however, the ballooning popularity of the web and, in particular, social web applications like Facebook and Twitter, has massively increased the general public’s appetite for mobile internet connectivity and applications. Developments in interface design and simplification have also helped smartphones – and more recently tablet-based computers – break into the mainstream. Phone operating systems like Google’s Android and Apple’s iOS have made consumers expect simple compelling interfaces to useful functionality and data.
Over the same period, educational establishments have been working hard to make their data and systems accessible over the web for the convenience of their staff and students. It makes sense for these establishments to extend this effort to accommodate the growing number of users who are coming to them via mobile computing devices, but there are, unfortunately, some complications.
The rise of the app store
Part of the drive to make smartphones and tablets easier to use was a unification of the means of distributing applications. When the iPhone launched in early 2007, its manufacturer, Apple, initially rejected the idea that third-party software developers would be allowed to run their own software on the phone. No software development kit was distributed, and instead developers who wanted to get their functionality onto the device were told to embody it in a web application – essentially a website with active elements implemented in Javascript that would be viewed via the phone’s built-in web browser.
Within 18 months of the phone’s launch, Apple had revised its strategy, released a software development kit to third-party developers and launched a unified distribution centre for all applications on their platform: the so-called ‘App Store’. With a small exception (a separate scheme for businesses that wished to distribute their own private applications to a private group of handsets), the App Store was the only way third-party developers could get their software onto the iPhone.
This concept has been extremely successful for Apple, with over 500,000 applications available after just over two years. It features very heavily in Apple’s advertising, and is now being replicated by other device manufacturers hopeful that they can match its success. In fact, the model itself was not really novel: smartphone software portals like Handango had been fulfilling a similar function for many years, while the unified software repositories run for Linux distributions like Debian and Maemo (now Tizen) had many of the characteristics of Apple’s App Store. What these forerunners did not have, however, was the element of compulsion. They were convenient sources of software, but a user could always seek their software elsewhere, or indeed create and install it themselves without consulting any external authority. By being essentially the only way to get third-party software onto your iPhone, the App Store ensured that it would gain a large body of software and a large amount of user attention.
Mediated and curated
This approach has not only worked well for Apple, but has also served its users well in some ways. While earlier smartphone users would have to comb the web for software that ran on their devices – and take some risks as to its security and functionality – Apple’s curated software service makes the process easier and less risky. However, for proponents of free and open source software, this gathering of the means of distribution into the hands of a single entity is troubling, and poses a genuine threat to the ideal of a free, unmediated sharing of software between users.
In order to enforce the controls that define this model, Apple compels both developers and end users to enter into contractual arrangements with them if they wish to make use of the App Store. These contracts place responsibilities on the developers and users to not do things that break the model. For example, users cannot redistribute the software they receive – whether it costs money or not – and developers must use the App Store as their only point of distribution.
Later attempts to use this model, like Google’s Android Market and RIM’s Blackberry App World, have fought shy of making themselves a contractually mandated single point of distribution. But in the wake of the phenomenal success of the App Store it is arguable that they had little need to do so. After all, mobile developers and users had already recognised that the model for software distribution was changing, and that a crucial component of a ‘smart’ mobile device’s value proposition is now the variety and availability of applications to run on it. So even though unmediated distribution of third-party software is possible on platforms such as Android and Blackberry OS, developers are still strongly motivated to use the most popular mediated channels for distribution if they want the attention of the majority of users. For the purposes of the rest of this document, all variants of the App Store concept will be referred to as ‘app stores’.
Open source and the app store
There are in fact many instances of open source software on the various app stores. In order to explain the issues that come into play we need to make a distinction here between code that is entirely the work of a single developer and code that contains free or open source software written by others. In the former case, there should generally be no licensing problem with the code appearing both via an app store and separately as open source. Free and open source licences are non-exclusive, so as long as the app store terms are also non-exclusive, a developer can agree to an app store’s terms and conditions and, at the same time, make their code available via another channel (such as the web) as open source. Of course, if the only way to get actual executable code to run on your device is to have it signed by the device manufacturer – as is the case with Apple’s iOS devices – then your open source distribution is still going to be somewhat hampered in its reusability; other developers who want to make changes and use the modified code on the device for which it was intended will also have to agree to the app store’s terms and conditions in order to actually distribute their modified versions. It is this reuse of others’ open source code that is more problematic.
In this second case, developers wanting to include free and open source code belonging to others (a core activity in the open source model) must undertake the difficult task of making sure that the responsibilities they take on in the app store’s contract are entirely compatible with the free or open source licence under which the third-party open source code they want to use is made available. Seasoned open source developers quail at the prospect of auditing code collections for open source licence compatibility, but at least in that case the licences are long standing and well known, and their interactions are well publicised.
Determining if an app store’s agreement – which will generally be a lot longer and is also likely to change on a regular basis – is compatible with your third-party open source licence is an even less attractive proposition. There have been cases in which open source developers have objected to their work being distributed via an app store – for example, the Free Software Foundation had a iOS port of their free software game GNU Go removed, as they felt that the Apple App Store’s terms and conditions were incompatible with their own choice to make the code available under the GPL v3. More recently, a developer who has contributed to the GPL v2-licensed media player VLC has objected to its appearance on the App Store, and an argument has ensued between the developer and the VLC project’s management, who differ on whether the App Store’s terms and the GPL v2 are compatible. VLC’s core library has since been relicenced under LGPL which may allow mobile apps under App Store compatible licences to be written. However, while an open source software licence tends to not change, App Store terms and conditions are constantly being revised, so relicencing you code to fit within them represents something of a moving target.
Code that is available under the more permissive open source licences, such as BSD and Apache, is likely to be less problematic. Developers should still read app store developer agreements carefully to check for compatibility. Developers within educational institutions will also need to look into how they can enter into the kind of agreements necessary for app store distribution. If they agree to the contract personally, it is unlikely that their role as an employed developer will be covered, so an institutional representative will need to be found who can agree to contractual terms on behalf of the institution. Developers who are independent contractors are likely to be able to agree to the terms personally, although they should still discuss this with their institution to ensure that it gives them the level of control that they want over the application and its distribution.
The future
With the launch of the iPad, the app store model moved out of the mobile phone sphere and took a definite step towards the so-called ‘general computing’ arena. Apple have now also launched an app store for their Macintosh general computing platform. Microsoft have announced a similar initiative to complement their mobile-desktop fusion Windows 8. The concerns that many in the open source world have over these mediated channels of distribution only intensify with each new initiative. So is the app store model a real threat to openness?
Similar situations have arisen in the past. In 2006, the TPM (Trusted Platform Module) was announced as a component that would sit on your PC’s motherboard and check the provenance of your software via cryptographic code-signing. Using this technology, a new class of ‘security audited’ software could be identified by your computer and by remote network services and perhaps granted additional security privileges over code whose provenance could not be checked.
The intention behind this scheme was to combat viruses and unauthorised modifications to network client software, but an additional and perhaps unintended consequence of the plan was that the ecosystem of free and open source software would be considerably hampered. It would have to exist in the ‘untrusted’ category unless means to audit and sign the code could be found. Even if this could be achieved, modified versions of the code would need to feed back through the same auditing process if they wanted to enjoy enhanced security privileges. In the event, the idea did not catch on and in 2010 an exploit was found for the implementation of the technology, rendering it near useless. More recently ‘Secure Boot’ technology, which also prevents a computer from running unsigned code, is gaining momentum. For a device to receive Windows 8 certification it must implement the technology, although for devices using traditional x86-based processors it can be turned off.
However, what TPM failed to do in 2006, app stores are successfully doing today. Perhaps because they offer real advantages in terms of software discoverability and access, they are increasingly becoming a necessary step in the software distribution chain. This will undoubtedly affect free and open source software. If software developers want to use free and open source software written by others in their app-store distributed programs, they must navigate the potential incompatibilities between app store terms and those attached to the code they wish to reuse. If they ignore the app store, they will lose access entirely to certain computing platforms and relegate themselves to the unpublicised hinterland of others.
It is not all bad news, however. As mentioned above, the web browser offers another route to publication of functionality on a range of devices. While it is true that – at the moment – access to advanced device functions like location data, camera and microphone from web applications is limited and varies from device to device, various initiatives to rectify this situation are underway. The WAC project, for example, has been working on standardised methods of access to more advanced device features. More recently, the EU-funded Webinos project has set out to create a unified application platform across devices based on web standards. So-called ‘widgets’ – essentially mini-applications bundled for distribution and execution via a web browser – may provide a way for applications to reach across all platforms without hardware-manufacturer mediation. With the introduction of browser-based operating systems such as Firefox OS and Chrome OS, we’ve seen web technologies given a front seat on devices, and distributed through their respective app stores.
Certainly these are interesting times for software creation and distribution. In the last two decades, the free and open source movement has worked to flatten and democratise the software distribution model, and in the last two years the power of the app store has risen to challenge that process. The future will be determined by how we choose to write, receive and run our software.
OSS Watch has organized a workshop on open source cross-platform mobile apps, where delegates from industry and academia discussed issues relevant to open source development in mobile technologies and opportunities for cross-sector collaboration in this space.
Dịch: Lê Trung Nghĩa

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.