现在的位置: 首页 > 综合 > 正文

Java技术、Java规范与Java知识产权 (转载)

2013年12月13日 ⁄ 综合 ⁄ 共 6965字 ⁄ 字号 评论关闭

转载注:

最近Oracle起诉Google关于Android侵犯专利的事情,中文读者可以参考邵正强(Jason Shao) 2009年的一篇<<Java技术、Java规范与Java知识产权>>。 就这个问题解释得很清楚。完全遵守Java规范就可以免费使用;没有完全遵守,只部分使用规范,那JCP组织成员都有起诉的权利。权利可以用,也可以不用。

=======================================================

作者: 邵正强
Sun Microsystems, Inc. 软件部 中国区高级经理

 

自从Sun公司于1995年正式推出Java技术以来,Java已经在企业计算(中间件及解决方案)、个人电脑及桌面计算(如嵌入到浏览器中)、无线通信增值服务(手机终端等)、数字电视中间件(机顶盒等)、蓝光光盘格式(播放机和盘片内容)、智能卡(SIM卡及ID、金融卡等)等各个领域得到了广泛的应用。据不完全统计,到2008年中全球已累计有18亿部Java手机、2300万台Java电视机顶盒和蓝光播放机、30亿张Java智能卡,已有超过180家移动通信运营商提供基于Java技术的增值服务。

Java技术为什么受到如此的广泛接受和普遍应用?以我看来,除了Java技术本身的先天优势如安全、跨平台等外,最重要的原因之一就是Java首先是一种开放技术。什么是开放技术?开放技术最重要的特点,就是其技术标准的确定、修改和发展方向不由单独一家公司决定或控制,而是由整个社区或许多公司参与的联盟或由国际标准化组织一起来决定的。并且,开放标准过程的参与是非排他性的,即便是竞争对手,也可以共同参与。虽然有些公司声称他们的技术是开放技术,如开放了某些API,或提供(开放)了程序开发工具,甚至开放了一些源代码,但实际上技术标准都是由该公司或少数公司以排它的方式控制的或决定的,这就不是真正的开放技术。为什么需要开放技术?开放技术的最大好处,就是可以形成产品的市场竞争机制,用户有充分的产品选择权。基于同一个开放技术标准,各厂家都可以开发出符合标准的产品,以自己的产品性能、价格、服务等展开市场竞争,可以谁也不能单凭标准来垄断或独霸市场。有了充分的竞争,用户才有可能得到最好的产品、最合理的价格和最完善的服务,并且,用户今天选择的产品,并不妨碍该用户明天对产品的选择。

Java技术或Java规范已经被许多国际标准组织、国际社区或联盟标准机构、国家或行业标准化机构以及相关企业等采纳作为国际化标准、国家标准、行业标准、企业标准或规范的一部分,或作为基础参考。这样,采用、应用Java后所涉及到的知识产权方方面面的问题,就势必成为人们关注的焦点。目前,市场有很多有关Java知识产权的议论、说法和猜测,其中的大部分可能是错误的或不完全正确的。如,有人说用Java每年要交纳巨额的专利费,有人认为使用Java是免费的、是不需要支付任何费用的,还有人看到Java源代码开放了,觉得使用这些源代码就无须考虑知识产权问题,等等。本人以多年的Java工作经历,试图在这里用通俗、简单的语言,就相关的问题做一较详细的解释说明,以期给大家一个较为清晰的认识。需要特别说明,本文并不是法律上的说明或公司的官方解释,许多地方也没有采用法律用词,仅供大家参考,最终的结论以官方的文件、合同、协议等为准。

一、Java社区(国际组织)与Java规范及其知识产权处理

Sun公司发明了Java语言,开发了许多的Java技术,如Java EE(Enterprise Edition企业计算级)、Java SE(Standard Edition标准或桌面计算级)、Java ME(Micro Edition嵌入式领域)和Java Card(智能卡领域)等,并将Java向全世界开放。Sun公司为Java技术发展、应用做出了巨大的贡献。作为开放标准、开放技术,几乎所有的Java规范都是在Java社区或国际组织(JCP: Java Community Process)范围内制定和管理的。JCP的成员包括世界各地的各种相关的组织机构、公司和个人。JCP成员中的任何组织或任何人认为有必要或市场上有需求,都可以提出发起制定一个新的Java规范,即发起一个新的JSR(Java
Specification Request)。通过一定的程序得到批准后,就可以组成规范专家组,并邀请其他JCP成员加入专家组。发起规范的人往往成为规范的牵头人(Spec Lead),JCP的成员都可以申请成为该规范专家组的成员,一般并不限制每个规范专家组的人数。在规范制定的过程中,要经多次JCP“执行委员会”(Executive Committee)的投票通过,才能完成。其间要经过多种版本,如Early Draft Review(早期征求意见版本)、Public Review(广泛征求意见版本)以及Final
Release即最终发布的规范版本等。正式发布的JSR规范以后还可能有修改或升级,称为Maintenance Review(可称为升级版或改进版),其发起和操作的流程与JSR规范的流程类似。

所有Java规范都是公开的和免费的,任何人都可以从JCP的网站(http://www.jcp.org/)上自由下载各种Java规范,进行学习、研究或在其上进行商业开发。

一般地,一个典型的Java技术规范最终发布(Final Release)时,三个方面的条件必须都完成:即规范文本、参考实现RI(Reference Implementation)和规范符合性(兼容性、一致性)测试工具包TCK(Technology Compatibility Kit)。(注:往往规范文本最先完成发布,这时发布的规范文本叫做Proposed Final Draft,RI和TCK按照这个规范版本开发,如果在开发中发现问题,规范还可能做小的修改。)

JAVA手机网[www.cnjm.net]

这里还要提前讨论一下“royalty”的中文说法。Royalty通常被翻译成版权费、版税、专利权税、特许费、权利金等。本文采用“权利金”,一般指被许可或被授权使用后需按产品数量支付给许可人或授权人的费用。业界常用的另一个词是RTU,即Right-to-Use。当你获得使用某种技术或某个软件产品的授权并支付了一定的费用后,你就获得了相应技术或软件产品的使用权即RTU。

JCP的成员都有可能参与到Java规范的各种工作中,这里面必然涉及规范中各成员提供到规范中的内容的知识产权问题。因此,每个参加JCP组织的成员,都必须签署一个“Java规范参与协议”(JSPA: Java Specification Participation Agreement,下载地址:http://jcp.org/aboutJava/communityprocess/JSPA2.pdf)。该协议的部分条款阐明了参与规范过程的参与人的知识产权处理原则。JSPA确定,Java规范的版权归规范的牵头人即Spec
Lead所有。在规范的起草和制定过程中,规范专家组成员们都贡献了他们自己的技术和知识,但成员必须承诺在Java规范中其知识产权贡献和专利部分对Java规范的授权,并免除收取这部分知识产权和专利的权利金(royalty-free),也就是对Spec Lead、规范专家组其他成员以及其他实现Java规范者的授权。这里所说的知识产权主要包括版权(copyright)、专利(patent)和商业秘密(trade secret)等。但是,特别是对于那些实现(implement)这些Java规范或基于或按照这些Java规范来开发商业产品的实现者来说,这种“免费”的知识产权授权建立在满足三个基本条件的前提下:

1)该实现必须满足Java规范的必要要求,不能只实现一个“子集”;
2)该实现不能改变或修改规范里的名称、包以及类等要求;
3)该实现必须通过符合性测试工具包TCK的测试。

否则,以上的知识产权授权就不能成立,也就是不构成免除权利金的授权。换句话讲,如果基于Java规范的实现没有按照Java规范的要求,或该实现没有通过相应TCK的测试,那么该Java规范实现的实现者就可能涉嫌侵犯该Java规范中知识产权拥有者的知识产权,或知识产权的拥有者就可能向该侵权的实现者主张知识产权费用。

二、Java规范的参考实现及其知识产权处理

Java规范的参考实现RI就是基于某个计算平台(操作系统)对该Java规范的实现软件或计算机程序,对于Java规范十分重要。开发参考实现的过程实际上也是对Java规范可行性的验证过程,并且参考实现也可以给以后实现Java规范提供一个范本,以降低开发成本、缩短开发时间。实践中,许多Java商业产品都是在参考实现基础上通过移植、优化而来的。

按照JCP的规定,Java规范的参考实现RI由规范的牵头人Spec Lead负责开发完成。参考实现可以是源代码形式的,也可以是二进制码形式的,放在网站上供大家下载。一般地,较早期的Java规范参考实现多以源代码形式,如CDC 1.0规范,而后来的多为二进制码形式,如CDC 1.1规范。规范牵头人Spec Lead开发参考实现投入了人力物力,按照JCP组织的规定,规范牵头人可以提出参考实现的收费方式或采取什么样的商业模式,并且要在提出制定规范申请(JSR)时就必须讲清楚并公开,必须是合理的和无歧视性的;如果该收费模式不合理,规范专家组成员和JCP成员就会反对,就不会通过投票,该规范的后续流程就进行不下去。当涉及相关费用时,获得授权的参考实现使用人按使用情况向规范牵头人支付该费用(如权利金等)。

参考实现的知识产权收费或商业模式是如何安排的?我们以一个具体的实例来说明:Sun公司作为规范牵头人的JSR 36即CDC 1.0。CDC 1.0的参考实现是源代码形式,在相应网页上通过点击“同意”的方式“签署”授权协议,或在某种情况下(如对于位于中国的公司等)与Sun公司签署书面的授权协议,都可以免费下载该源代码。按照这个授权协议,下载者可以把这个参考实现的源代码用于三个用途:

1) 用于科学研究:免付参考实现的权利金;

2) 用于内部部署使用:必须通过TCK测试,免付参考实现的权利金;

3) 用于商业目的:必须通过TCK测试,需要向规范牵头人Sun公司支付参考实现的权利金。

三、Java规范的符合性测试工具TCK及其知识产权处理

JAVA手机网[www.cnjm.net]

Java规范是开放标准,任何人都可以来实现Java规范,所以就非常有必要以通过规范符合性测试的要求来保障各个Java实现之间的兼容性,而TCK就是这样的符合性测试工具。TCK主要由测试内核或框架JavaTest Harness和许多的测例组成。只有通过TCK测试的实现或产品,才能称其为符合Java规范的实现或产品,或称其为Java实现或产品,才能获得使用Java兼容标志(Logo)和Java商标的授权。Java应用的核心一环是所有符合Java规范的产品都必须一致或兼容才有意义,所以TCK所起到的作用是至关重要的,而通过TCK的测试就成了Java产品的基本要素。

按照JCP的规定,TCK一般由规范牵头人Spec Lead来开发和维护。TCK的工作不是一次性的,开发完公布后,还需要根据使用者的意见、反馈和软件存在的问题(bug)不断改进,会出现一些小的版本,并且Java规范本身也会有维护或改进小版本(maintenance review),相应地TCK也必须修改,因此与TCK有关的工作是一个持续性的工作。实际上,这种安排可以看成是在Java组织中大家共同制定Java规范,并由JCP和Java规范组委托一个有能力的公司提供该规范的技术支持。所以,Spec Lead开发和维护TCK的成本可以由大家来支付,也就是由将来开发该Java规范实现或进行产品化的公司来支付。按照JCP组织的规定,Spec
Lead在TCK上如何收费,或要采取什么样的商业模式,在提出制定规范申请(JSR)时也必须讲清楚并公开,必须是合理的和无歧视性的,如果该收费模式不合理,规范专家组成员和JCP成员就会反对,就不会通过投票,该规范的起草、制定工作就无法进行下去。

JAVA手机网[www.cnjm.net]

理论上,TCK的收费通常包括两个部分,一个是年费,或称为年维护费或支持费,另一个是每个商业化的实现或产品的权利金(royalty),这与大部分软件或技术的商业授权模式类似。实际操作中,一般有两种授权收费模式:一是在一个固定的年限内(如三年或五年),被授权人得到TCK和对TCK的支持,支付一个包括年费和版权费的固定费用,而不论这期间被授权人商业上销售多少产品;另一个是交付TCK的年费,得到授权的TCK和对TCK的支持,并为每个销售的商业化产品缴纳一个权利金(单价与销售量和付款方式有关)。当然,Spec Lead也可以选择免费提供TCK的方式。

要实现Java规范或开发Java产品的人,需要向该规范的Spec Lead申请得到TCK的授权并获得TCK,然后自己对实现或产品进行测试。TCK的架构设计合理,可以对每个API进行测试,并且最终可以再总体测试并自动产生测试报告;这样,Java产品的开发者在开发的同时拥有TCK就很重要,可以边开发边测试,避免产品开发全部完毕后在最终测试时发现许多问题而难以解决。

在实际操作中,Spec Lead往往采取“打包”的形式,把TCK的权利金和参考实现的权利金合并处理。当有的Java实现或产品涉及到多个Java规范时(如Java手机和Java数字电视机顶盒的情景),也就是涉及多个参考实现和多个TCK时,这些Java规范的Spec Lead一般都是把这些TCK等打成一个包来授权,这样被授权者就需要支付比分别单个授权少得多的费用。当你签署了授权协议并支付了TCK和参考实现的知识产权费用后,你就获得了相应的使用权利或RTU。
另外,开发、销售、使用Java应用程序是不需要支付任何Java规范、TCK、参考实现等的“知识产权”费用的。

四、Sun公司的“开放Java源代码”

源代码指的是(计算机)程序的源程序或源代码,源代码经过编译就形成(计算机)可以执行的二进制代码或机器码。开放源代码就是将该程序的源代码开放。开放的源代码所对应的技术不一定是开放技术,而实现开放技术标准的(计算机)程序或实现的源代码不一定开放。例如,用于手机的Symbian操作系统和Andriod操作系统(由谷歌公司拥有)都开放了其源代码,但其演进和发展方向都是由单独公司确定的,并没有一个业界共同决定的“标准”,很难将其称为真正的开放技术;另一方面,许多公司基于开放技术、开放标准开发出的产品,并没有开放其源代码。

Sun公司已经通过各种不同开源许可方式开放了其技术或软件的源代码,如SCSL(Sun Community Source License,下载:

http://www.jcp.org/aboutJava/communityprocess/SCSL3.0.rtf)方式。许多Java规范的参考实现早已公开了源代码,如前面提到的JSR 36 CDC 1.0。Sun公司于2006年11月开放了其Java
SE和Java ME的商业实现源代码(Sun公司的许多Java EE的商业实现源代码早已开放),并采取了GPLv2(General Public License Version 2 – 通用公共许可证第二板)的源代码开放模式(与Linux的开放规则相同)。这次开放的源代码主要包括Java SE的JDK商业源代码、Java ME的Feature Phone商业源代码(基于CLDC)和Java ME的Advanced OS Phone商业源代码(基于CDC),以及TCK的内核(JavaTest harness)的源代码和Java无线终端性能测试工具的内核(Java
Device Test framework)的源代码等。任何人都可以在Java开源社区的网站上免费下载这些源代码(如下载Java ME的源代码可以访问:

https://phoneme.dev.java.net/downloads_page.html)。按照GPLv2的授权规则,为研究、开发和商业的目的使用通过GPLv2开放的源代码不需要支付使用该源代码的费用,但必须把基于该源代码或使用了该源代码开发出的产品的源代码全部以同样的GPL规则免费向社区开放。

虽然Sun公司将其Java的商业实现的源代码开放,但这并没有改变整个Java社区既定的规范原则和商业模式,任何一个针对Java规范的商业实现或商业产品,包括使用了按GPLv2开放的Java源代码的实现或产品,必须通过相应TCK的测试后,才能称其为Java产品或Java相容产品或Java兼容产品,才能使用Java兼容标志(Logo)和Java商标,也才能真正符合该Java规范并与其他的Java产品相一致或相兼容。

=======================================================

抱歉!评论已关闭.