Cuộc chiến Oracle - Google về Java và tương lai của Android

MT  | 27/04/2012 05:00 PM

Google và Oracle đang đấu đá dữ dội vì bản quyền của công nghệ Java.

20/3 vừa qua có thể nói là ngày đang làm "rúng động" làng báo công nghệ quốc tế khi hai công ty công nghệ hàng đầu thế giới Google và Oracle lôi nhau ra tòa án San Francisco để đối chất về các tranh chấp bản quyền và bằng sáng chế liên quan đến Java - một ngôn ngữ lập trình được sử dụng phổ biến được các hãng công nghệ sử dụng để viết ứng dụng. Sở dĩ vụ kiện thu hút sự quan tâm của báo giới bởi nó có thể sẽ làm ảnh hưởng tới tương lai của Android, HĐH di động lớn nhất thế giới. Một khi Google thua kiện, công ty này, hoặc sẽ phải trả tiền bản quyền cho Oracle, hoặc sẽ phải xây dựng Android lại từ đầu. Vậy Java là gì? Nó liên quan gì đến Android? Chúng ta hãy cùng tìm hiểu thêm về cuộc chiến đang làm nóng báo giới công nghệ này.

(Oracle là công ty công nghệ máy tính đa quốc gia của Mỹ chuyên phát triển và tiếp thị hệ thống phần cứng máy tính phần mềm doanh nghiệp - đặc biệt là hệ thống quản lý cơ sở dữ liệu - theo từ điển Wiki)

Java là gì?

Java do hãng công nghệ Sun phát minh ra vào những năm đầu 1990 và thuộc sở hữu của Oracle khi công ty này mua lại Sun cách đây 2 năm. Java là một ngôn ngữ lập trình - ngôn ngữ được chuẩn hóa và được dùng để miêu tả những quá trình, những ngữ cảnh một rất chi tiết giúp máy tính thực hiện một tác vụ nào đó. Java thường đi kèm với máy ảo (virtual machine) chạy các chương trình được viết bằng chính nó. Bằng việc xây dựng các máy ảo Java phù hợp với các biến thể máy tính khác nhau, một chương trình Java, trên lý thuyết có thể chạy được trên cả máy Mac lẫn Windows. Do đó, khẩu hiệu của Java khi nó được viết ra là: viết 1 lần, chạy được trên nhiều hệ thống. 

Java chứa các đoạn mã được viết sẵn được gọi là thư viện (class libraries) - thư viện các công cụ mà ứng dụng Java có thể gọi ra trong quá trình chạy (runtime). Các đoạn mã này thực hiện mọi loại tác vụ, từ mã hóa cho đến giao tiếp bằng Bluetooth. Một lập trình viên Java muốn sử dụng các công cụ sẵn có này phải dùng đến giao diện lập trình ứng dụng API. Một lượng lớn đáng kể các công ty định nghĩa giao diện lập trình này cho Java.

Tựu chung lại, cả 3 yếu tố trên được gọi là môi trường thực thi (Java runtime environment hay JRE). Đó là yếu tố cần thiết để máy tính người dùng có thể chạy các phần mềm Java.

Sun, Google từng có nhiều quan điểm tương đồng về phát triển Java vào năm 2005, nhưng sau đó hai bên lại bất đồng dưới thời CEO Scott McNealy của Sun.

Tuy nhiên, Java đang ngày càng trở nên phức tạp hơn so với những gì vốn đã...phức tạp.

Đang có nhiều biến thể khác nhau được tạo ra để dùng vào các mục đích sử dụng khác nhau. Phiên bản chuẩn Java ban đầu được thiết kế cho máy tính cá nhân. Sau đó, phiên bản Enterprise Edition - định nghĩa giao diện lập trình ứng dụng API dành cho các tác vụ của máy chủ như quản lý cơ sở dữ liệu; phiên bản Micro Edition, định nghĩa giao diện lập trình ứng dụng API cho các tác vụ di động như gửi tin nhắn trên điện thoại. 

Bản Micro Edition lại được chia nhỏ thành nhiều biến thể khác nhau, bản Connected Limited Device Configuration (Cấu hình thiết bị kết nối giới hạn) Personal Profile Specification, the Mobile Information Device Profile, the Mobile Information Device Profile 2.0, và nhiều biến thể khác.

Kết quả là lập trình viên không thể biết được một thiết bị nào đó sẽ hỗ trợ giao diện lập trình ứng dụng nào - một yếu tố quan trọng khi xây dựng các ứng dụng, đặc biệt là game. Sự thiếu nhất quán khiến cho khẩu hiệu ban đầu khi Java được xây dựng - viết 1 lần, chạy được nhiều nền tảng bị phá vỡ.

Oracle cho rằng Google làm phân mảnh Android, phá hoại nguyên tắc "viết 1 lần, chạy được nhiều nền tảng" của công nghệ này.

Android liên quan gì đến Java?

Java có những hạn chế trên thiết bị di động, do đó, Sun và các đồng minh sử dụng Java như Motorola đã tinh chỉnh kỹ thuật này rất nhiều cho phù hợp. Lợi thế nền tảng của Java có sức hút mạnh mẽ cho bất cứ công ty nào nuôi tham vọng xây dựng một hệ sinh thái di động mới.

Khi Google và các đồng minh tìm kiếm một nền tảng lập trình cho Android, Java như là một sự lựa chọn tự nhiên. Theo một báo cáo, Google đã chuẩn bị kế hoạch này từ năm 2005.

Bên cạnh chính công nghệ Java, có rất nhiều lập trình viên Java. Điều đó có nghĩa các lập trình viên muốn viết ứng dụng cho Android không phải bắt đầu từ con số không. Tuy nhiên, Java đang bị lạm dụng khi bị đính kèm các chuỗi (string). Điều này có thể khiến nhiều người khó hiểu bởi bản chất Java là một công nghệ mở, có nghĩa nó cung cấp rất nhiều quyền tự do cho bất cứ tổ chức nào sử dụng nó. 

Năm 2006, Sun phát hành giấy phép GNU GPL (General Public License) cho OpenJDK - phiên bản nguồn mở của dự án Java Standard Edition và PhoneME - phiên bản nguồn mở của Java Micro Edition. Tuy nhiên, giữa 2 dự án này có một sự khác biệt.

Với OpenJDK, Sun bổ sung "tham số ngoại lệ (classpath exception) cho thư viện Java". Với tham số ngoại lệ này, lập trình viên không còn phải lo lắng việc họ sử dụng thư viện dưới giấy phép GPL sẽ gây ảnh hưởng đến phần mềm của họ. Tuy nhiên, PhoneME không có tham số ngoại lệ này bởi Sun cho rằng điều đó không cần thiết.

Đó chính là những gì liên quan đến Android, và Google không thích thú với điều này. Công ty muốn một dự án nguồn mở, nhưng đó phải là nguồn mở mà bất cứ ai cũng có thể chỉnh sửa cho phù hợp với mục đích của mình. Google muốn được quyền chỉnh sửa tất cả, từ giao diện người dùng cho đến gói phần mềm decode video hay một bàn phím có khả năng tùy chỉnh.

"Chúng tôi đang xây dựng một nền tảng mà toàn bộ mục đích là để nhiều người có thể điều khiển nó" - chủ tịch phụ trách Android - Andy Rubin - cho biết năm 2007.

Google đã làm gì?

Google đã vay mượn một cách tự do công nghệ Java của Sun, bao gồm bản thân ngôn ngữ lập trình, cú pháp của nhiều giao diện ngôn ngữ lập trình, các phương pháp tiếp cận máy ảo. Bên cạnh đó, gã khổng lồ tìm kiếm còn xây dựng máy ảo cho riêng mình có tên Dalvik. Google còn sử dụng một dự án Java mã nguồn mở có tên Harmony cho thư viện Android - một dự án mà Google được ưu ái cấp phép, từng được sự ủng hộ của IBM, do Apache License quản lý. 

Năm 2007, Sun bày tỏ mối quan ngại Google đang làm phân rã Java, tuy nhiên, Google không đả động gì đến lời cảnh báo này. Đồng thời, Google đang ngày càng muốn loại bỏ thương hiệu Java ở các sản phẩm dịch vụ của hãng. Nói cách khác, đây là động thái của Google nhằm muốn Sun cấp quyền sử dụng Java Technology Compatibility Kit (công cụ tương thích công nghệ Java) để đảm bảo cho các ứng dụng Java hoạt động chính xác.

Oracle làm gì?

Kiện Google.

Google cho rằng họ chỉ sao chép 9 dòng mã của Java trong 15 triệu dòng mã của HĐH Android.

Oracle cho rằng Google phải trả tiền bản quyền sử dụng Java, đồng thời cho rằng Google đang phá hủy công nghệ này với việc làm phân mảnh nó với những phiên bản không tương thích. Điều này đã phá hoại nguyên tắc "viết 1 lần, chạy được trên nhiều nền tảng", làm giảm giá trị của Java. Theo Oracle, Google đã vi phạm bằng sáng chế và bản quyền thuộc sở hữu của mình.

Để phản pháo lại, Google dẫn ra những bằng chứng cho thấy công ty này đã mua lại quyền sử dụng Java từ Sun vào năm 2009 với giá được cho là từ 100 triệu đến 500 triệu USD.Tuy nhiên, CEO của Oracle là Larry Ellison không chấp nhận điều này và 2 công ty lôi nhau ra tòa.

Để bảo vệ quan điểm, Oracle đưa ra một số dẫn chứng. Oracle cho rằng Google đã sao chép mã nguồn trong chức năng RangeCheck của Java. Joshua Bloch, một cựu lập trình viên của Google, người từng làm việc cho Sun, cũng thừa nhận ông từng sao chép mã nguồn của Java. Oracle cho rằng việc API truy cập vào thư viện Java cũng phải được giữ nguyền tác giả (copyright). Các API được thiết kế để hoạt động cùng nhau, và việc thiết kế từng API riêng biệt và 1 thư viện tương ứng thực chất là 2 mặt của một đồng tiền.

Về phần Google, công ty cho rằng thư viện của mình hoàn toàn khác biệt, một "hệ thống sạch", có nghĩa rằng các đoạn mã được viết mà không phải tham khảo bất cứ nguồn nào khác. Google cho rằng họ chỉ sao chép 7 dòng code trong tổng thể 15 triệu dòng mã của HĐH Android.

Oracle còn kiện thêm Google vi phạm bằng sáng chế. Ban đầu, hãng này khẳng định Google vi phạm bảy bằng sáng chế của mình, nhưng sau chỉ rút lại chỉ còn hai.

Bản quyền phần mềm là một khái niệm phức tạp, bản quyền API cũng như bằng sáng chế lại là một thứ phức tạp hơn nữa. Thành viên bồi thẩm đoàn tại Tòa án quận San Francisco sẽ còn có rất nhiều việc phải làm. Chỉ biết rằng, nếu Google thua kiện, Android sẽ đứng trước những thách thức không nhỏ. Trong trường hợp Google thỏa thuận được để trả tiền bản quyền cho Oracle, nếu không, rất có thể HĐH di động lớn nhất thế giới sẽ phải viết lại từ đầu. Tương lai của những chú robot xanh vẫn còn là một dấu hỏi.

Theo: CNet
Xem thêm:

google

android