2009-04-06 29 views
7

Cách tốt nhất để triển khai thực thi giấy phép trong ứng dụng Java là gì để ứng dụng không thể "phân phối" và sử dụng mà không cần người dùng mua giấy phép?Thực hành tốt nhất: Thực thi giấy phép cho ứng dụng Java Desktop

+0

Lưu ý rằng bạn đang nói về thực thi giấy phép tại đây. Không cấp phép. Cấp phép không phải là một vấn đề kỹ thuật, đó là một vấn đề pháp lý. –

Trả lời

8

Tôi đề nghị bạn thậm chí không cố gắng thêm bảo vệ bản sao. Bạn sẽ chỉ làm phiền mọi người. Bạn có nhiều khả năng bán hàng hơn nếu mọi người thích sản phẩm của bạn. Là người nhỏ nhặt và đối xử với khách hàng như kẻ trộm sẽ không giúp được gì. (Trừ khi sản phẩm thực sự hút và bạn phải ngăn mọi người thử trước khi mua.)

Bạn có thể muốn gửi khóa cấp phép nhằm mục đích duy nhất là thỏa mãn người dùng muốn nhận thứ gì đó vì tiền của họ. Chỉ cần thêm một trạng thái ở đâu đó để cho biết liệu nó có được trả tiền hay không. Tình trạng cần phải rõ ràng một cách hợp lý để rõ ràng rằng có điều gì đó đã xảy ra (một sản phẩm tôi làm việc cùng thời gian trước đây xuất hiện trên đĩa mềm - một nửa số cuộc gọi hỗ trợ là vì trình cài đặt không yêu cầu [win32] thứ hai đĩa).

+0

Tôi hoàn toàn đồng ý, 'nagware' và các cơ chế bảo vệ chống sao chép phức tạp khiến tôi không muốn trả tiền cho phần mềm. – karim79

+1

Có rất ít điểm trong việc bảo vệ mã java. Tôi làm việc trên một phần mềm java rất tốn kém, theo như tôi quan tâm, giấy phép lỏng lẻo nhất được biết đến với con người. –

+3

Tôi không đồng ý. Nhiều người sẽ không mua giấy phép nếu dễ sử dụng chương trình mà không có giấy phép. Bạn phải đảm bảo rằng người dùng cảm thấy rằng họ phải trả tiền cho phần mềm. – Jules

7

Hãy xem truelicense là một khung nguồn mở để thực hiện điều đó. Nếu bạn muốn làm cho riêng bạn có một số tài liệu giải thích các khái niệm và bạn có thể có thể có được một số ý tưởng tốt bằng cách nhìn vào mã là tốt.

chỉnh sửa: đáng nói rằng nó không phải là một chương trình chống sao chép

2

Cá nhân tôi nghĩ IntelliJ được nó ngay: phiên bản đầy đủ tính năng trong 30 ngày. Bạn không nên hạn chế hơn thế.

Phần "đầy đủ tính năng" rất quan trọng. Nếu phiên bản chưa đăng ký của bạn bị tê liệt như vô dụng, bạn mong đợi mọi người quyết định mua nó như thế nào? Họ phải thử các tính năng trước khi họ quyết định họ thích họ và muốn họ nhưng khái niệm một số nhà cung cấp có người sẽ mua một cái gì đó trên lời hứa của các tính năng họ đã không thể thử là lố bịch.

Oracle đang ở cuối tự do nhất của quang phổ. Về cơ bản bạn có thể tải về một phiên bản đầy đủ tính năng của phần mềm của họ và chỉ cần sử dụng nó. Họ coi việc cấp phép là một vấn đề xã hội và có rất nhiều công đức cho lập luận đó.

Bạn không bao giờ nên làm phiền hoặc làm phiền khách hàng tiềm năng của bạn (ngoài khả năng hết hạn phần mềm sau một khoảng thời gian định trước). Thông báo nhất bạn nên đưa ra là "X hết hạn trong N ngày" trên màn hình giật gân hoặc thứ gì đó.

Điều khác bạn có thể và cần làm là cung cấp một rào cản thấp để nhập cho phần mềm của bạn.

Cung cấp phiên bản học tập hoặc cá nhân giá rẻ (nếu không miễn phí). Tiếp thị cũng là một ý tưởng hay. Bằng cách này tôi có nghĩa là có IntelliJ: nó được cung cấp miễn phí cho các dự án nguồn mở được phê duyệt.

Đối với các khía cạnh kỹ thuật của việc thực thi: đừng quá lo lắng về các khía cạnh kỹ thuật. Không bao giờ chọn bất kỳ chương trình nào làm phiền người dùng của bạn hoặc, tệ hơn, làm chậm phần mềm của bạn (như một số chương trình làm) hoặc (thậm chí tệ hơn) vi phạm bảo mật của hệ điều hành của người dùng (ví dụ như fiasco rootkit của Sony). Việc thực thi của bạn không có nghĩa là hack-proof. Nếu mọi người muốn ăn cắp phần mềm của bạn, họ sẽ. Hệ thống thực thi là có một lời nhắc nhở nhẹ nhàng (và không có gì nhiều hơn) cho một xã hội không phải là một vấn đề kỹ thuật.

5

Không có sơ đồ cấp phép nào mà tôi biết điều đó không dễ bị phá vỡ. Tôi sẽ không đi vào chi tiết cụ thể, nhưng như một ví dụ, trong trường hợp Java nếu nó được thực hiện trong Java thì nó có thể được giải mã (như C++ hoặc bất kỳ ngôn ngữ biên dịch nào, nhưng Java dễ hơn C++ chẳng hạn).Nếu nó được thực hiện tự nhiên sau đó bạn cần các phương pháp bản địa, và DLL/như vậy có thể được thay thế bằng một cho phép truy cập.

Ví dụ C/C++ tôi biết ai đó đã giải mã CL (trình biên dịch của Microsoft) để tìm hiểu cách họ làm tên mangling. Tất cả những gì họ có là nhị phân, và họ có thể làm điều đó với một bộ tách rời và rất nhiều thời gian.

Đừng bận tâm với loại điều này, nó làm phiền người dùng trung thực và làm chậm lại những người muốn sao chép nó. Take a look at World of Goo (great game!) and their take on DRM (ý tưởng tương tự với những gì bạn đang nói đến).

Các nhà phát triển của World of Goo nhận thấy rằng product was pirated 90% of the time của họ (họ giải thích cách số đó có thể không chính xác), tương phản với một trò chơi khác đi kèm với DRM và đã bị sao chép 92% thời gian.

Nếu bạn đang nói về các doanh nghiệp hợp pháp thì họ muốn tuân thủ giấy phép thường xuyên, để đảm bảo rằng họ không sao chép là một sự lãng phí. Nếu bạn đang nói về những người không mua sản phẩm để bắt đầu, hoặc chỉ không muốn trả tiền cho nó, bạn sẽ không thay đổi số người nhận phần mềm của bạn bất hợp pháp, bạn sẽ chỉ làm chậm người đầu tiên nhận được nó - sau đó con mèo ra khỏi túi.

0

Sau khi đọc BCL của oracle (đã xác nhận quyền tự do thương mại). Sau đó tôi đã có một cuộc trò chuyện với một đại diện oracle người nói JavaSE là miễn phí cho sử dụng thương mại !.

+2

Câu hỏi đặt ra là về việc thực thi giấy phép của một ứng dụng Java. Câu trả lời của bạn là về việc cấp phép bản thân Java mà không liên quan đến câu hỏi. – xhochy

Các vấn đề liên quan