Java User Groups and the JCP: a winning combination

Download Report

Transcript Java User Groups and the JCP: a winning combination

JCP.next:重振 Java 标准
您如何能够有所作为
JCP 主席 Patrick Curran
1
2013 年 7 月
欢迎!
2
议题
• 为何标准非常重要
• 我们如何制定 Java 标准
• JCP.next:JCP 正在发生何种变化
• 您如何能够参与其中
3
标准推动世界运转
4
语言和协议
5
界面
6
规范
7
蓝图
8
认证
9
不依赖供应商
10
工业级系统
11
Java 标准
12
社区享有,社区治理
• Java Community Process (JCP) 是一个既开放又包容的
流程,我们通过它开发和修订 Java 技术规范 (JSR)。
• JCP 计划现已拥有 1,000 多名企业和个人成员。
• 通过 JCP 计划,总计开发了 350 多个 Java 技术规范;
其中的三分之二实现了最终发布。
13
Java SE
14
Java ME
15
Java EE
16
实现方法
• Java 规范请求 (JSR)
• 一个 JSR 是 Java 规范的一个单独版本。
• JSR 由一个社区成员(规范领导者)牵头,对其感兴趣
的一组成员(专家组)将为日常决策和工作提供帮助。
• 任何 JCP 成员均可以提交并领导一个 JSR。
• 每个专家组必须提供:
• 规范
• 参考实现 (RI)
• 技术兼容性工具包 (TCK)
17
兼容性三角形
• 规范
规范是否
明确?
您能否构建
实现?
参考实现
技术兼容性工具包
TCK 是否正确?
RI 是否适合?
18
组织
19
相关人员及其职责
20
• JCP 主席
• 领导该组织并管理 PMO。
• 计划管理办公室 (PMO)
• 管理组织的日常运营。
• 执行委员会
• 根据流程中定义的各阶段,针对 JSR 进行投票。
• 决定 JCP 的治理、流程和成员的合同条款。
• 专家组
• 创建 JSR(编写规范、开发 RI 和 TCK)。
• 成员
• 审核规范,可以参加专家组,在执行委员会选举中投票。
执行委员会
• 执行委员会 (EC) 的职责:
• 随着流程的推进,对 JSR 进行审核和投票。
• 完善组织的章程。
• EC 大约每个月召开一次电话会议,每年召开 3 次现场会议。
• 会议纪要和材料对外公开。
• 请参阅 http://jcp.org/en/resources/EC_summaries.
• 我们每年会召开两次公开的电话会议和一次公开的现场会议。
• 我们设置了一个用于反馈的公开邮件列表。
• 注册网址为 http://java.net/projects/jcp-ec/lists.
21
执行委员会选举
• 我们曾经设置了两个执行委员会(一个针对 Java ME,另一个针
•
•
•
•
22
对 Java SE 和 Java EE)。
• JSR 355 将二者合并为一个具有 25 名成员的委员会。
Oracle 拥有一个永久席位。
16 个席位经推举 产生(Oracle 提名候选人,然后必须由所有
JCP 成员通过投票批准)。
剩余的 8 个席位经选举 产生(任何 JCP 成员都可以毛遂自荐,
由所有成员通过投票选出)。
每一年,该委员会一半的成员必须接受改选,争取连任。
• 2013 年,为了完成合并为一个委员会的过程,所有现有成员
都必须接受改选,争取连任。
执行委员会的成员
Stefano Andreani
Aplix
ARM
Azul Systems
CloudBees
Credit Suisse
Eclipse
Ericsson
Fujitsu
Gemalto
Goldman Sachs
Google
HP
IBM
Intel
Werner Keil
London Java Community
Nokia
Oracle
Red Hat
SAP
SouJava
TOTVS
Twitter
以红色列出的成员是从 2012 年 11 月起新加入 EC 的成员。
23
规范领导者
• 负责开发 JSR 的 JCP 成员。
• 必须提供规范、RI 和 TCK。
• Oracle 是三个现有平台的规范领导者:Java ME、Java
SE 和 Java EE。
24
专家组
• 专家组由规范领导者招募和带领。
• 所有 JCP 成员均有资格加入。
• 应该代表 Java 社区所有感兴趣的部门。
• 通过团队协作定义 JSR 并开发规范。
• 必须透明地运作,以便 JCP 成员和公众能够进行审核并
参与工作。
25
成员
• 任何人都可以加入。
• 成员总数约为 1200 名。
• jcp.org 拥有 3700 名注册的用户。
• 费用:
•
•
•
•
•
26
Java 许可证持有者:免费。
个人:免费。
Java 用户群:免费。
非营利性组织:免费。
商业组织:5000 美元/年。
成员构成
• 按类型的成员分布:
• 77% 个人。
• 21% 企业。
• 2% 非营利性组织。
• 按所在地的成员分布:
• 50% 北美。
• 32% 欧洲和俄罗斯联邦。
• 13% 亚洲和中东。
• 5% 南美。
27
JSR 开发周期
• 包含由执行委员会进行的正式公开审核和投票。
• 请参阅流程文档 以了解详细信息。
28
更改章程
29
法律框架和治理
• Java 规范参与协议 (JSPA)
• 成员和 Oracle 之间的法律合同。
• 解决知识产权 (IP) 授予,以及规范、RI 和 TCK 许可必须遵循的条
款。
• http://www.jcp.org/aboutJava/communityprocess/JSPA2.pdf.
• 流程文档
• 确定组织的治理。
• 确定用于提交定义、开发、审核、批准和维护规范的流程。
• 确定制作 RI 和 TCK 的义务。
• http://jcp.org/en/procedures/jcp2.
30
借助流程来更改流程
• 我们通过归档 JSR,实现流程的修改(按照 JSPA 和流程
•
•
•
•
31
文档中的定义)。
主席是这些 JSR 的规范领导者,执行委员会成员组成这些
JSR 的专家组。
流程更改 JSR 经历与常规 JSR 相同的所有阶段。
输出是一个新版本的章程。
自 2012 年起,我们一直致力于开发三个系列 JSR,我们将
其统称为 JCP.next,用于改革我们的流程。
JCP.next.1 (JSR 348)
32
JSR 348
• JSR 348:转向一个新的 Java Community Process 版本,
刻意专注于大约可在六个月内实施的相对简单的更改。
• 该 JSR 在 2011 年 10 月完成,并定义了流程文件的 2.8 版
本。
• 所有复杂的问题,包括任何需要更改 JSPA 的问题,均延期
至 JCP.next.3。
• 本 JSR 实施了一系列相对简单,但能够提高流程透明度,
并鼓励更广泛参与的显著更改。
33
JCP.next.2 (JSR 355)
34
JSR 355
• 由于 Java 是一个平台,并且由于我们预期 Java ME 和
Java SE 会随时间推移逐渐靠拢,因此引入 JSR 355 以便
将两个执行委员会合并为一个。
• 本 JSR 将 EC 成员的数量减少为 25 名,并且保持了相同
的推举与选举 席位比例 (2:1)。
• 该 JSR 未对流程进行其他显著更改。
• 该 JSR 于 2012 年 8 月完成。
• 于 2012 年 10 月 JCP 选举期间开始实施,并将于 2013 年
10 月本年度的选举期间完成实施。
35
就是这么简单!
36
JCP.next.3 (JSR 358)
37
修改 JSPA
• JSPA 自 2002 年以来未进行过显著修改。
• 但自此以后,我们的组织和运营环境都发生了显著的变化。
• 最重要的一点,开源许可和开发实践的广泛采用。
• 该文档的更新和清理早就应该进行。
• 但是,这项工作非常复杂并且难以理解。
• 我们在做出更改时必须非常小心。
• 此外……
38
现在,律师已经介入!
39
为何如此重要
• JSPA 定义了知识产权 (IP) 的授予方式,以及规范、RI 和
TCK 许可必须遵循的条款。
• 我们必须确保自己整合到 Java 的技术从知识产权角度“安
全”,以便人们可以放心地实施和使用它们。
40
我们的工作任务清单
•
•
•
•
•
•
•
•
独立实现
兼容性
许可和开源
透明性
专利政策
个人的角色
费用结构
RI 的角色
•
•
•
•
•
•
•
•
TCK 更改
专家组解散
IP 流
IP 的撤回
JSR 的生命周期结束
担保流程
重构 JSPA
与其他 SDO 开展协作
请参阅 本演示文稿 和 问题跟踪器 以了解全部详细信息。
我们目前工作专注于以红色列出的项目。
41
目前的进展
• 我们最初的关注集中在两个领域:
• IP 策略、许可和开源。
• JCP 中个人成员的角色。
• 每个领域由一个工作组 推动。
• 工作组会定期会面,并在 EC 的每月会议上向执行委员会
(本 JSR 的专家组)汇报情况。
• 请参阅公开的 EC 会议摘要 以了解其最新的报告。
42
JSR 358 的目标
• 维护兼容性保证。
• 采用开源许可和开发流程。
• 简化 IP 流和许可模式。
• 实现更高的开放性、透明度和参与度。
43
强大的兼容性
• 所有 JSR 都将由一个包含强兼容性要求的标准规范许可涵盖。
• 所有实现必须通过 TCK 的检验。
44
采用开源
• 参考实现必须通过开源计划开发,并根据开源许可发布。
45
开发人员获得 TCK
• 所有 TCK 必须根据社区 TCK 许可 向参与 RI 开发计划的
人员提供。
46
降低个人成员的门槛
• 针对个人的新关联成员类型,具有大幅简化的成员协议。
(无需律师!)
47
请在 java.net 上关注我们
• 当然,我们的一切工作都是公开的。
• 开始于我们的 公开 java.net 计划.
• 您将在这里发现以下链接:
• 观察器邮件列表(所有专家组邮件将在此复制)。
• 问题跟踪器.
• 文档归档 (我们的会议纪要和工作文档会在此发布)。
• 告诉我们您的想法。
• 帮助我们做正确的事!
48
还有……
49
将社区带回到 JCP
• JSR 348 允许您参与 Java 规范的开发。
• 现在,我们采用了开源的开发流程和许可。
• JSR 358 将允许您参与这些规范的实现。
• RI 将根据开源许可提供。
• 您可以通过社区 TCK 许可获得 TCK。
• 甚至您将可以更加轻松地加入 JCP。
• 为您扫清了参与其中的障碍。
• 如果您关心 Java 的未来,那么您已没有理由不来加入
……
50
赶快参加吧!
51
为何要参与?
• 作为企业:
• 影响推动市场的技术。
• 成本低于完全独立开发。
• 为您的开发人员提供机会。
• 扩大市场规模。
• 获得竞争优势(加快新产品推出速度)。
• 作为个人:
• 广结人脉!
• 积累经验。
• 名利双收。
52
如何参与?
• 作为个人 — 没问题。
• 作为团队的一部分 — 锦上
添花。
• 通过您的 JUG 开展工作。
• 互相帮助。
• 互相学习。
• 互相合作。
53
一次国际性的行动
54
JUG 成员
55
BeJUG(比利时)
JUGF(德国)
BreizhJUG(布列塔尼)
JUG Indonesia
Central Ohio JUG(美国)
JUG-MK(马其顿)
Connecticut JUG(美国)
JUG-RU(俄罗斯)
Detroit JUG(美国)
JUG-USA
Duchess(女性)
London Java Community(英国)
FASOJUG(布基纳法索)
Malaysia-JUG
Houston JUG(美国)
MoroccoJUG
iJUG e.V.(德国)
Nashville JUG(美国)
IndiJava(印度)
Oklahoma City JUG(美国)
Japan JUG
Rio JUG(巴西)
Java Student User Group(维也纳)
Riviera JUG(法国)
Java Web User Group(伦敦)
Ruhrjug(德国)
Jozi JUG(南美)
Silicon Valley JavaFX User Group(美国)
JUG-AFRICA
SouJava(巴西)
JUG Chennai(印度)
Utah JUG(美国)
Green Tea JUG(中国)
Vancouver Island JUG(加拿大)
JUG-EG(埃及)
Peru JUG
首个加入 JCP 的中国 JUG
http://q.weibo.com/1906868
56
加入 JCP
• 作为企业、非营利性组织或个人加入 JCP 计划。
• 对非营利性组织、Java 用户群和个人免费。
• 请参阅 http://jcp.org/en/participation/membership.
• 在 JCP.org 上注册帐户。
• 下载、填写 JSPA 表单,然后扫描、传真或邮寄至 JCP
计划办公室。
57
EC 中的 JUG 代表
• SouJava(Bruno Souza、Fabio Velloso、Yara Senger):
• 在 2011 年 5 月的特别选举中由 Oracle 提名,赢得
SE/EE EC 的推举席位。
• London Java Community(Ben Evans、Martijn Verburg、
Trisha Gee):
• 在 2011 年 5 月的特别选举中赢得一个 SE/EE EC 的选举
席位,并于 2012 年连任。
• 都为 JCP 做出了重大贡献。
58
Adopt a JSR!
谢谢
59
和
Adopt a JSR 是什么?
• 一项由 JUG 领导,旨在改进 Java 标准的计划。
• JUG 成员组从事 JSR 工作。
• 请参阅http://java.net/projects/adoptajsr 以了解全部详细信息。
60
如何加入?
• 与当地的 JUG 负责人联系,或者……
• 前往 http://java.net/projects/adoptajsr 并按照该处描述
的简单设置步骤操作:
• 加入 Adopt-a-JSR java.net 计划。
• 加入邮件列表: http://java.net/projects/adoptajsr/lists.
• 向其他人求助!
61
Adopt-a-JSR 在中国
https://www.java.net/community/adoptajsr/cn
62
为何应该参与?
• 帮助确定 Java 的未来。
• 加速标准开发流程。
• 成为解决方案的一部分,打破沉默。
• 引领新技术的潮流。
• 学习新的技能。
• 确保 Java 标准切合实际,打破闭门造车的状态。
• 我们需要来自最终用户和开发人员的专家意见。
• 确保 Java 标准具有真正意义上的全球性。
• 我们需要来自非英语国家/地区的专家意见。
63
它对您的 JUG 有何帮助?
• 获得来自行业的关注。
• 大型供应商和本地公司将看到您的工作的价值。
• 提高专业性。
• 参与本计划需要组织和付出,这将有助于提升小组的专
注度。
• 吸引人才。
• 开发人员的共同努力将产生全球性的影响,并且个人也
可从中获益。
• 与其他 JUG 协作。
• 成为更大集体中的一员!
64
我能从中获得什么?
• 推进您的事业。
• 拓宽您的人脉,传播您的
声誉。
• 建立新的联系。
• 提升您的“软实力”。
• 口头及书面表达能力。
• 协商。
• 协作。
• 团队合作。
• 收获快乐!
65
您能提供的帮助
66
• 帮助主持邮件列表;引导对话良性发展
• 通过社交媒体、博客或快速演讲宣传 JSR。
• 在用户群中或在线发表演讲。
• 帮助编写文档。
• 翻译为您的母语。
• 帮助维护 FAQ/Wiki。
• 改进计划基础架构和 JSR 可见性。
• 帮助建立 JSR 托管(java.net、GitHub 等)
• 帮助实施网站的搜索引擎优化。
• 确保下载、邮件列表和问题跟踪器易于查找。
您能提供的其他帮助
• 测试早期 RI 版本;使用其查找难点,报告错误,提供功
•
•
•
•
67
能增强建议。
帮助诊断问题;重现问题,清除/合并重复,设置优先级/
类别等。
针对设计提供反馈;讨论问题并提供反馈,思考作为开发
人员将如何使用该 JSR。
帮助构建 RI;编写该规范实际实现的代码。
帮助构建 TCK;所有实现必须通过测试套件的检验 — 积
累测试经验的绝佳机会。
提供反馈
• 下载并审核规范的最新版本(可通过 JSR 页面或相应
•
•
•
•
68
的 java.net 计划获得)。
• 您不必审核整个规范;如果愿意,您可以专注于特定
的部分。
下载并审核 javadoc 的清晰性和完整性。
借助实现构建示例应用程序。
尝试将这些技术集成到现有应用程序中。
在相应的规范或 RI 计划中记录错误。
Adopt-a-JSR 和 Java EE 7
• 18 个不同的 JUG 来自 北美和南美、欧洲、非洲和亚洲 采用的
11 个 Java EE 7 JSR:
•
•
•
•
•
•
•
•
•
•
•
69
JPA (JSR 338):印度
JAX-RS (JSR 339):巴西、印度尼西亚、英国、西班牙、摩洛哥、秘鲁
Java EE 7 (JSR 342):英国
JMS (JSR 343):布基纳法索、印度尼西亚、英国、秘鲁
JSF 2.2 (JSR 344):巴西、印度、德国
EJB (JSR 345):巴西
CDI (JSR 346):印度、印度尼西亚、英国
Bean Validation (JSR 349):巴西
Batch (JSR 352):印度、巴西
JSON (JSR 353):巴西、刚果、英国、乌干达、秘鲁、加拿大、摩洛哥
WebSocket (JSR 356):比利时、印度、摩洛哥、英国、印度、美国
一次全球性的行动
70
谢谢!
71
参加 OpenJDK
• 前往 http://java.net/projects/adoptopenjdk.
• 加入邮件列表。
• 加入 IRC 频道。
• 或与当地的 JUG 负责人联系。
72
或 Glassfish 计划
http://glassfish.org
https://glassfish.java.net/adoptajsr/
73
打造未来的 Java
74
存在疑问?
75