incubator-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Incubator Wiki] Update of "DubboProposal" by HuxingZhang
Date Mon, 15 Jan 2018 08:55:30 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Incubator Wiki" for change notification.

The "DubboProposal" page has been changed by HuxingZhang:
https://wiki.apache.org/incubator/DubboProposal

New page:
= Dubbo Proposal =

== Abstract ==

Dubbo is a high-performance, lightweight, java based RPC framework open-sourced by Alibaba.
As in many RPC systems, Dubbo is based around the idea of defining a service, specifying the
methods that can be called remotely with their parameters and return types. On the server
side, the server implements this interface and runs a Dubbo server to handle client calls.
On the client side, the client has a stub that provides the same methods as the server.

== Proposal ==

Dubbo has a fairly huge community today, and is widely adopted by many companies and organizations,
but unfortunately most of them are in China. We believe running Dubbo in Apache Software Foundation
can facilitate development of a stronger and more diverse community.

Alibaba submits this proposal to donate Dubbo's source code and its side projects to the Apache
Software Foundation under the Apache License Version 2.0.  Dubbo source code and its side
projects are hosted on github right now:

 * Dubbo code base: https://github.com/alibaba/dubbo
 * Web site: https://github.com/dubbo/dubbo.github.io
 * Documentations: [[http://dubbo.io/books/dubbo-user-book-en|User Guide]], [[http://dubbo.io/books/dubbo-dev-book-en|Development
Guide]], [[http://dubbo.io/books/dubbo-admin-book-en|Admin Manual]]
 * Other side projects hosted under [[https://github.com/dubbo|dubbo group]]

== Background ==

Dubbo was developed at Alibaba in 2011 and has been widely used in many production lines there
since then. Dubbo offers three key features, which include interface based remote call, fault
tolerance & load balancing, and automatic service registration & discovery. Since
Dubbo is open-sourced on github, it's been received up to 15k stars, and has been forked for
more than 10k times. Besides being widely adopted inside Alibaba, Dubbo is also used in approximately
80% of internet companies in China, including [[http://www.jd.com|JingDong]], [[http://www.dangdang.com|DangDang]],
[[https://www.qunar.com|Qunar]], [[https://www.kaola.com|NetEase Kaola]], etc. In 2017, Dubbo
has won the [[http://www.oschina.net/project/top_cn_2017|TOP 10 most popular open source projects
in China]] for 2 consecutive years since 2016.

We'd like to share this outstanding framework via apache software foundation, and start developing
a wider community through the apache way. We believe more people and organizations can be
benefit from it by doing so. 

== Rationale ==

Remote procedure call (RPC) is one of the cornerstones to build distributed system, especially
useful in today's e-commercial industry and cloud computing providers. Dubbo is the java-based
RPC implementation. By using Dubbo, developers can call the remote service just like call
a local method but without worrying about the details for the remote interaction. We expect
more interesting features and use cases to emerge from the community from microservices to
cloud computing, and many other areas.

== Current Status ==

=== Meritocracy ===

The intent of this proposal is to start building a diverse developer and user community around
Dubbo following the ASF meritocracy model. Since Dubbo was open sourced, many companies in
China adopted Dubbo to build up their own contributing system, moreover, we received many
enhancements or issue reports from them at the same time. The codebase is now mainly managed
by the development team inside Alibaba who's responsible for building internal distributed
system too. Any suggestion or issue is discussed on [[https://github.com/alibaba/dubbo/issues|github
issue]] and more casual talk happens in [[https://gitter.im/alibaba/dubbo|gitter channel]].
We plan to invite more people as committer if they contribute significantly to this project.


=== Community ===

Dubbo is currently being developed by the development team inside Alibaba who's responsible
for building internal distributed system too. Since it's open-sourced, Dubbo is widely adopted
by many other companies including CNUCC (China Nets Union Clearing Corporation), ICBC (Industrial
and Commercial Bank of China), [[https://www.chinalife.com.cn|China Life Insurance]], [[http://www.didichuxing.com/en|DiDi]],
[[https://www.qunar.com|Qunar]], [[http://www.dangdang.com|Dangdang]], [[https://www.kaola.com|NetEase
Kaola]], [[http://maoyan.com|Maoyan Movie]], [[https://www.gome.com.cn|GOME]], [[http://www.haier.com|Haier]],
CSDC (China Securities Depository and Clearing Corporation Limited), [[http://www.asiainfo.com.cn|AsiaInfo]],
and many more. We hope to grow the base of contributors by inviting all those who offer significant
contributions and excel through the use of The Apache Way. Contributions from outside of Alibaba
 are constantly accepted by Dubbo project and its [[https://github.com/dubbo|side projects]].
 Right now, we make use of github as code hosting as well as both Google Group and gitter
for community communication.

=== Core Developers ===

Dubbo is currently being developed by engineers from Alibaba, Dangdang,  Qunar and WeiDian:
William Liang, Ding Li, Ian Luo, Jun Liu, Liujie Qin, Mercy Ma, Von Gosling, Huxing Zhang,
and Xin Wang from WeiDian, Liang Zhang from DangDang, Zhaohui Yu from Qunar. William Liang
and Ding Li, both are co-creators of Dubbo project from Alibaba. Ian Luo, Jun Liu, Liujie
Qin, Mercy Ma, are all working in Alibaba middleware team, most of them are also the core
members of internal RPC framework, HSF (high speed service framework), Von Gosling is the
co-creator of the RocketMQ project, Huxing Zhang is one of Apache Tomcat PMC members, Xin
Wang from WeiDian, Liang Zhang from DangDang, Zhaohui Yu from Qunar, they all are in charge
of building and maintaining distributed system in their organizations, and have great passion
in contributing back into Dubbo project.

=== Aligment ===

The ASF is the natural choice to host the Dubbo project as its goal of encouraging community-driven
open source projects fits with our vision for Dubbo. The ASF is also the home to many other
projects with which we are familiar with and hope to integrate better with Dubbo including
[[http://thrift.apache.org|Thrift]], [[http://zookeeper.apache.org|Zookeeper]], etc. We believe
that there will be mutual benefit by close proximity to these and other projects. 

== Known Risks ==

=== Orphaned products ===

The core developers currently work full-time on RPC area for Alibaba. Dubbo is widely adopted
by many companies and individuals. There's no realistic chance of it becoming orphaned.

=== Inexperience with Open Source ===

The core developers are all active contributors, users and followers of open source. They
are all already committers and contributors to Dubbo project, and have gained good experience
in running open-source project in Github way and interacting with the community. Moreover,
Von Gosling and Huxing Zhang from the initial committer, both are working on Apache projects
(RocketMQ and Tomcat respectively), will guide others to practice the Apache Way together
with incubator mentors we invite.

=== Homogenous Developers ===

The current set of developers work across a variety of organizations including Alibaba, DangDang,
Qunar, and WeiDian. Furthermore, many other companies forked Dubbo and continued to enhance
in their own private repositories. We plan to encourage them to pull back and invite them
as contributors to work on one common code base.

=== Reliance on Salaried Developers ===

Currently, most of core developers are paid to work on Dubbo project by Alibaba. We look forward
to attracting more people outside Alibaba to join this project, either payed engineers working
on RPC area, or individual volunteers, as long as they have enthusiasm on Dubbo project.

=== Relationships with Other Apache Products ===

Dubbo integrates [[http://thrift.apache.org|Thrift]] as one of RPC protocols it supports,
and [[http://zookeeper.apache.org|Zookeeper]] as one of service registration/discovery machanisms.
We look forward to collaborating with those communities which may relevant to/use RPC. 

=== A Excessive Fascination with the Apache Brand ===

While we respect the reputation of the Apache brand and have no doubt that it will attract
new contributors and users, our interest is primarily to give Dubbo a solid home as an open
source project following an established development model. More reason are provided in the
Rationale and Alignment sections. 

== Documentation ==

A complete set of Dubbo documentations is provided on dubbo.io in both English and Simplified
Chinese.

 * Dubbo user guide: [[http://dubbo.io/books/dubbo-user-book-en|English]], [[http://dubbo.io/books/dubbo-user-book|Chinese]]
 * Dubbo development guide: [[http://dubbo.io/books/dubbo-dev-book-en|English]], [[http://dubbo.io/books/dubbo-dev-book|Chinese]]
 * Dubbo admin manual: [[http://dubbo.io/books/dubbo-admin-book-en|English]], [[http://dubbo.io/books/dubbo-admin-book|Chinese]]

== Initial Source ==

Dubbo was initially developed within Alibaba, and then was open-sourced with [[https://github.com/alibaba/dubbo/blob/master/LICENSE|The
Apache License]] under Alibaba Group on [[https://github.com/alibaba/dubbo|github]] in 2011.
Besides the core code base, Dubbo also hosts its side projects on github but in a [[https://github.com/dubbo|dedicated
group]] instead of Alibaba.

== External Dependencies ==

As all dependencies are managed using Apache Maven, none of the external libraries need to
be packaged in a source distribution. 

  ||Dependency         ||||   	License      ||
  ||httpclient         ||||     Apache License ||
  ||bsf-api            ||||   	Apache License||
  ||zookeeper          ||||   	Apache License||
  ||zkclient           ||||   	Apache License||
  ||curator-framework  ||||   	Apache License||
  ||cxf-rt-transports-http||||	Apache License||
  ||cxf-rt-frontend-simple||||	Apache License||
  ||libthrift    ||||         	Apache License||
  ||commons-logging   ||||    	Apache License||
  ||spring       ||||         	Apache License||
  ||netty          ||||       	Apache License||
  ||mina          ||||        	Apache License||
  ||fastjson       ||||       	Apache License||
  ||xmemcached      ||||      	Apache License||
  ||hessian        ||||       	Apache License||
  ||jetty          ||||       	Apache License||
  ||validation-api  ||||      	Apache License||
  ||hibernate-validator  |||| 	Apache License||
  ||cache-api      ||||       	Apache License||
  ||log4j           ||||      	Apache License||
  ||easymock       ||||       	Apache License||
  ||cglib-nodep     ||||      	Apache License||
  ||javassit       ||||       	Apache License||
  ||slf4j-api      ||||       	MIT           ||
  ||jmockit        ||||       	MIT           ||
  ||slf4j-log4j12   ||||      	MIT           ||
  ||sorcerer-javac  ||||      	MIT           ||
  ||jedis           ||||      	MIT           ||
  ||grizzly         ||||      	CDDL          ||
  ||servlet-api     ||||      	CDDL          ||
  ||javax.el         ||||     	CDDL          ||
  ||logback-classic ||||      	EPL           ||
  ||junit           ||||      	EPL           ||
  ||xstream          ||||     	BSD           ||

== Required Resources ==

=== Mailing lists ===

 * dubbo-private (PMC discussion) 
 * dubbo-dev (developer discussion) 
 * dubbo-user (user discussion) 
 * dubbo-commits (SCM commits) 
 * dubbo-issues (JIRA issue feed)

=== Subversion Directory ===

Instead of subversion, Dubbo prefers to git as source control management system: git://git.apache.org/dubbo

=== Issue Tracking ===

JIRA Dubbo (Dubbo)

=== Other Resources ===

The existing source code already has unit tests so we will make use of existing Apache continuous
testing infrastructure. The resulting load should not be very large. 

== Initial Committers ==

 * William Liang (liangfei0201 at gmail.com)
 * Ian Luo (ian.luo at gmail.com)
 * Ding Li (oldratlee at gmail.com)
 * Jun Liu (ken.lj.hz at gmail.com)
 * Liujie Qin (765152203 at qq.com)
 * Mercy Ma (mercyblitz at gmail.com)
 * Xin Wang (ovepoem at hotmail.com)
 * Liang Zhang (terrymanu at 163 dot com)
 * Zhaohui Yu (yuyijq at gmail.com)
 * Von Gosling (vongosling at apache.org)
 * Huxing Zhang (huxing at apache.org)
 * Justin McLean  (jmclean at apache.org)
 * John D. Ament (johndament at apache.org)

== Affiliations ==

 * William Liang: Alibaba 
 * Xin Wang: WeiDian
 * Ian Luo: Alibaba 
 * Ding Li: Alibaba 
 * Liang Zhang: DangDang
 * Jun Liu: Alibaba
 * Liujie Qin: Alibaba
 * Zhaohui Yu: Qunar
 * Mercy Ma: Alibaba
 * Von Gosling: Alibaba
 * Huxing Zhang: Alibaba

== Additional Interested Contributors ==

 * Jerrick Zhu (diecui1202 at gmail.com)
 * Peng Wei (weipeng2k at 126.com)
 * Yuneng Xie (xieyuneng at gmail.com)
 * Hanson Huang (hanson19921129 at gmail.com)
 * Zhixuan Cheng (hengyunabc at gmail.com)

== Sponsors ==

=== Champion ===

 * Justin McLean  (jmclean at apache.org)

=== Nominated Mentors ===

 * John D. Ament (johndament at apache.org)

==== Unofficial Mentors ====
 
 * Von Gosling (vongosling at apache.org)
 * Huxing Zhang (huxing at apache.org)

=== Sponsoring Entity ===

We are requesting the Incubator to sponsor this project.

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@incubator.apache.org
For additional commands, e-mail: cvs-help@incubator.apache.org


Mime
View raw message