Bỏ qua để đến nội dung
getnextpdf.com

Open core, không bị khóa chân

Spec: Apache License 2.0

NextPDF là open core. Engine bạn xây dựng dựa trên — nextpdf/core — được phát hành theo Apache License 2.0, nên bạn có thể dùng, sửa đổi, và phân phối lại nó, kể cả vì mục đích thương mại. Pro và Enterprise là các phần bổ trợ độc quyền mà bạn chỉ trả tiền khi muốn những gì chúng thêm vào. Phần nền tảng là của bạn để giữ; các năng lực nâng cao là tùy chọn.

Câu hỏi tốn kém với bất kỳ engine tài liệu nào không phải là “nó tốn bao nhiêu hôm nay”. Đó là “điều gì xảy ra vào ngày tôi muốn rời đi”. Với một engine đóng, ngày đó là một dự án di trú: chuyển nền tảng, kiểm thử lại, chứng nhận lại đầu ra mà các kiểm toán viên của bạn đã phê duyệt. Chi phí chuyển đổi chính là sự khóa chân, và nó được trả đủ vào đúng thời điểm tệ nhất có thể.

Open core loại bỏ câu hỏi đó bằng chính cấu trúc của nó. Phần bạn phụ thuộc vào nhiều nhất — engine render, mô hình đối tượng, sự tuân thủ chuẩn — được cấp phép dễ dãi và sẽ giữ nguyên như vậy cho phiên bản bạn đã áp dụng. Bạn không bao giờ cách mất quyền truy cập vào mã mà sản phẩm của bạn được xây dựng trên đó chỉ một lần gia hạn.

  • Engine core là Apache-2.0: dùng, sao chép, sửa đổi, phân phối lại, và dùng vì mục đích thương mại, không có ràng buộc phi thương mại nào.
  • Giấy phép bao gồm một quyền cấp sáng chế minh thị từ các bên đóng góp, kèm một điều khoản chấm dứt phòng vệ (Spec: Apache License 2.0, §3).
  • Pro và Enterprise là các phần bổ trợ độc quyền. Bạn trả tiền cho các năng lực nâng cao, không bao giờ trả tiền cho quyền tiếp tục dùng phần open core.
  • Việc phân phối lại đi kèm nghĩa vụ ghi nhận — giữ lại các thông báo, kèm theo giấy phép, nêu rõ các thay đổi của bạn, mang theo NOTICE (Spec: Apache License 2.0, §4).
  • Bạn có thể fork và xuất xưởng ; bạn không được xuất xưởng nó dưới tên hay logo NextPDF (Spec: Apache License 2.0, §6).

Mô hình được cố ý làm cho đơn giản, và sự đơn giản chính là điểm mấu chốt. Có ba thứ, và chúng trả lời ba câu hỏi khác nhau.

  1. Open-source corenextpdf/core under the Apache License 2.0 — use, modify, redistribute, commercialise. This is the foundation you build on, and it is yours to keep.
  2. Proprietary add-onsNextPDF Pro and Enterprise add advanced capabilities under a commercial license. You pay for what they add, not for continued use of the core.
  3. TrademarkThe NextPDF name and logo are reserved. The code license does not grant brand rights — that boundary is what keeps 'NextPDF' meaning the official software.
Ba lớp của mô hình cấp phép NextPDF: phần core mã nguồn mở Apache-2.0, các phần bổ trợ Pro và Enterprise độc quyền, và nhãn hiệu trên tên cùng logo NextPDF. Quyền về mã chảy từ lớp thứ nhất; quyền truy cập năng lực từ lớp thứ hai; quyền về thương hiệu vẫn thuộc về chủ sở hữu nhãn hiệu.

Apache License 2.0 là một giấy phép mã nguồn mở dễ dãi được Open Source Initiative phê duyệt. Đối với core, nó cấp các quyền sử dụng rộng rãi — mã nguồn hay đã biên dịch, độc lập hay là một phần của một tác phẩm lớn hơn — không có điều khoản phi thương mại nào. Bạn có thể đặt core bên trong một sản phẩm đóng mã nguồn, trả phí, hoặc nội bộ.

Có hai điều khoản đáng được gọi tên, vì chúng là chỗ mà “dễ dãi” trở thành “bền vững”. Giấy phép mang theo một quyền cấp sáng chế minh thị: các bên đóng góp cấp cho bạn một giấy phép sáng chế miễn phí bản quyền đối với các phần đóng góp của họ, và quyền đó chỉ chấm dứt mang tính phòng vệ, nếu bạn khởi xướng một số vụ kiện sáng chế đối với phần mềm (Spec: Apache License 2.0, §3). Đó là một sự bảo vệ mà một giấy phép kiểu “làm gì cũng được” trần trụi không phải lúc nào cũng trao cho bạn. Và việc phân phối lại được cho phép nhưng không phải không có nghĩa vụ: bạn giữ lại các thông báo bản quyền, sáng chế, nhãn hiệu, và ghi nhận hiện có, kèm theo giấy phép, nêu rõ các thay đổi bạn đã thực hiện trên các tập tin đã sửa đổi, và mang theo bất kỳ tập tin NOTICE nào (Spec: Apache License 2.0, §4). Tôn trọng những nghĩa vụ đó là cái giá của sự tự do, và đó là một cái giá thấp.

Cái bạn trả tiền, khi bạn trả, là năng lực — không phải tính liên tục. Sự phân chia sạch sẽ: cùng một writer bị giới hạn bộ nhớ, cùng một mô hình đối tượng, cùng một sự tuân thủ chuẩn nằm trong core dù bạn có bao giờ mua một thứ gì hay không.

The open-source core engine (nextpdf/core) — edition availability
EditionAvailability
Core

Apache-2.0. The full rendering engine, object model, and PDF 2.0 output — free to use, modify, redistribute, and commercialise. This is the foundation, and it is the same engine under every edition.

Pro

Pro builds on the identical Apache-2.0 core and adds proprietary capabilities. It does not replace the core or change your rights to it.

Enterprise

Enterprise builds on the identical Apache-2.0 core and adds proprietary capabilities. It does not replace the core or change your rights to it.

Pro và Enterprise không phải mã nguồn mở. Các gói của chúng khai báo "license": "LicenseRef-NextPDF-Commercial", và các điều khoản của chúng nằm trong NextPDF Commercial License Agreement (Version 3.0) — không nằm trong Apache License 2.0, và không suy ra từ phần open core. Chúng thêm vào những thứ; chúng không lấy đi gì khỏi những gì core trao cho bạn.

Ranh giới hiện rõ ở nơi bình thường nhất có thể có: tập tin composer.json của bạn. Việc áp dụng phần open core là một thành phần phụ thuộc từ registry công khai.

<?php
declare(strict_types=1);
// composer require nextpdf/core
//
// nextpdf/core declares "license": "Apache-2.0" and ships the full
// Apache License 2.0 text in its LICENSE file. This single dependency
// is the open foundation — yours to use, modify, and redistribute.
use NextPDF\Core\Document;
use NextPDF\Contracts\OutputDestination;
$document = Document::createStandalone();
$document->setTitle('Open core, no lock-in');
$document->addPage();
$document->setFont('helvetica', 'B', 16);
$document->cell(0, 12, 'Built on an Apache-2.0 foundation', newLine: true);
// Output uses only the open core. Nothing here is gated, time-limited,
// or contingent on a paid edition. A Pro or Enterprise add-on, if you
// ever choose one, layers on top of this — it does not stand between
// you and the engine.
$bytes = $document->output(dest: OutputDestination::String);

Không có gì trong chương trình đó là đi mượn. Không có một lần kiểm tra giấy phép nào nằm giữa bạn và engine, không có phiên bản nào phải hiện diện để core chạy. Nếu về sau bạn muốn một năng lực mà Pro hay Enterprise cung cấp, bạn thêm nó vào. Nếu bạn không bao giờ làm vậy, core vẫn chạy đúng như nó chạy hôm nay.

Sự hiểu sai thường gặp là “open core nghĩa là tôi cũng có cả thương hiệu”. Không phải vậy. Apache License 2.0 không cấp quyền nào đối với các tên giao dịch, nhãn hiệu, hay logo của bên cấp phép vượt quá việc tham chiếu hợp lý, thông thường tới nguồn gốc của tác phẩm (Spec: Apache License 2.0, §6). Vậy nên bạn có thể fork nextpdf/core, sửa đổi nó, và phân phối lại nó — đó là quyền về mã — nhưng bạn không được xuất xưởng bản fork đó với tư cách “NextPDF” hay dưới logo NextPDF. Hãy chọn tên của riêng bạn.

Sự phân chia đó không phải một cái bẫy giấu trong sự hào phóng. Nó chính là thứ khiến sự hào phóng trở nên an toàn. Một giấy phép dễ dãi có thể trao đi phần mã chính xác là vì luật nhãn hiệu giữ cho “NextPDF” vẫn có nghĩa là phần mềm chính thức, không bị sửa đổi, ngay cả sau khi mã đã được fork. Không có ranh giới đó, bất kỳ bản dựng nào đã bị thay đổi cũng có thể tự gọi mình là NextPDF, và không ai phân biệt được engine chính thức với bản vá của một người nào đó. Lằn ranh bảo vệ người dùng, chứ không chỉ bảo vệ nhãn hiệu. Toàn bộ phần xử lý mã-đối-thương-hiệu nằm trên trang nhãn hiệu.

Một hiểu lầm thứ hai là “open core” bằng cách nào đó khiến các phiên bản trả phí cũng mở theo. Không phải vậy. Việc core là Apache-2.0 chẳng nói gì về Pro hay Enterprise — chúng là độc quyền bất kể giấy phép của core là gì.

Open core là một lợi thế thực sự, được nêu thẳng thắn — không phải một tuyên bố rằng mọi thứ đều miễn phí. Các năng lực nâng cao trong Pro và Enterprise thực sự là độc quyền và thực sự là trả phí; trang này không giả vờ điều ngược lại, và nó không hứa hẹn gì về các điều khoản của những phiên bản đó, vốn nằm trong thỏa thuận thương mại của bạn.

“Không bị khóa chân” là một phát biểu chính xác. Nó nghĩa là phần nền tảng bạn xây dựng dựa trên được cấp phép dễ dãi và vẫn dùng được theo các điều khoản của bạn. Nó không có nghĩa là mọi tính năng đều nằm trong core, và nó không có nghĩa là việc di trú rời khỏi một năng lực Pro hay Enterprise bạn đã áp dụng là không tốn chi phí — một năng lực độc quyền, về bản chất, là một thành phần phụ thuộc bạn đã chủ động nhận lấy. Sự tự do nằm ở phần core.

Các nghĩa vụ ghi nhận theo Apache-2.0 §4 là nghĩa vụ, không phải tùy chọn. Một bản phân phối lại bỏ đi các thông báo, lược bỏ giấy phép, hoặc che giấu các thay đổi đã thực hiện trên các tập tin đã sửa đổi là một vi phạm giấy phép cho dù giấy phép là dễ dãi. Sự tự do ở đây đi kèm một danh sách nghĩa vụ ngắn, trung thực.

Trang này là một bản tóm tắt bằng ngôn ngữ thông thường về mô hình cấp phép, không phải bản thân giấy phép và không phải tư vấn pháp lý. Khi bản tóm tắt này và các văn bản có thẩm quyền khác biệt nhau — tập tin LICENSE trong gói, và thỏa thuận thương mại của bạn đối với các phiên bản trả phí — những văn bản đó là chuẩn mực. Toàn bộ phần xử lý đầy đủ, ràng buộc nằm trên trang cấp phép.

  • Cấp phép sản phẩm — bản trình bày có thẩm quyền, bằng ngôn ngữ thông thường về giấy phép nào áp dụng cho phiên bản nào, và mỗi giấy phép cấp những gì.
  • Nhãn hiệu và sử dụng thương hiệu — ranh giới mã-đối-thương-hiệu đầy đủ, kèm các cách dùng được chấp nhận và không được chấp nhận.
  • Công ty đứng sau NextPDF — ai nắm giữ nhãn hiệu và vì sao một sản phẩm thương mại lại trở thành mã nguồn mở.
  • Khi nào không nên dùng NextPDF — một bản trình bày trung thực về nơi core dừng lại và một phần bổ trợ bắt đầu.
  • Open core — một mô hình trong đó một core mã nguồn mở được cấp phép dễ dãi được bao quanh bởi các phần bổ trợ độc quyền, trả phí. Phần core là miễn phí để dùng và giữ; các phần bổ trợ là tùy chọn.
  • Apache License 2.0 — một giấy phép mã nguồn mở dễ dãi, được OSI phê duyệt. Nó cấp các quyền sử dụng, sửa đổi, và phân phối lại rộng rãi, bao gồm một quyền cấp sáng chế minh thị, yêu cầu ghi nhận khi phân phối lại, và không cấp quyền nhãn hiệu nào.
  • Quyền cấp sáng chế — một giấy phép minh thị, miễn phí bản quyền đối với các sáng chế của bên đóng góp bao trùm các phần đóng góp của họ, kèm chấm dứt phòng vệ nếu bạn kiện một số sáng chế đối với phần mềm (Apache-2.0 §3).
  • Tập tin NOTICE — một tập tin ghi nhận mà, khi hiện diện trong tác phẩm, phải được mang theo trong bản phân phối lại của bạn theo Apache-2.0 §4.
  • Khóa chân — chi phí chuyển đổi khiến việc rời bỏ một nhà cung cấp trở nên tốn kém. Open core loại bỏ nó đối với phần nền tảng bằng cách cấp phép dễ dãi cho core.