出家如初,成佛有余

大唐的故事之感

Posted in Uncategorized by chuanliang on 2007/10/31

大唐系企业幕后:大股东与创业者间严重内耗信威十二年的轮回两篇文章写得真不错,好久没读过报告文学(?)写得这样令人扼腕长叹的,大唐丧失掉了那么多的千载难逢机会,为何中国的企业都这样?与我第一家公司中讯通信一样,同处前几年金矿一样的电信行业,面对众多的机会,拥有众多的一流人才,最终在丧失掉所有机会中死掉。故事的角色不同,但是其间的情节怎么又这么多的类似,制度的悲哀啊。同时可知TD是多么的垃圾。

一些自我感受:

1、好的核心技术能够改变世界,也能够改变人的命运

2、要成就大业必须有对事业坚定的信念和理想去支撑度过各种风雨,企业也必须有自己核心的价值观和愿景。

3、做事业几个优秀的人在一起不一定能够成就辉煌的事业,关键是要经历风雨始终“同心同德,志同道合”

唯有同心,始成大业
唯有同志,始成大道
唯有同德,始成大公

4、天下熙熙皆为利来,天下攘攘皆为利往。资本是天使也是魔鬼。

5、机会永远不会太少,关键要有能力去把握。机会也永远不会太多,机会的时间窗瞬间即逝。

6、内耗是事业最大的敌人,而非外来的竞争。

7、持久稳健的经营是企业运营的关键,昙花一现的辉煌说明不了什么。

 

 

关于TD、winmax几个相关的内容:

Cisco Announces Definitive Agreement to Acquire Navini Networks (Navini由陈五福和徐广涵共同创办,主要从事winmax硬件开发制造)

中国明确反对WiMAX成为全球3G标准 

说说TD反对WiMAX加入IMT-2000

 

Technorati 标签: , ,
Advertisements

大唐的故事之感

Posted in Uncategorized by chuanliang on 2007/10/31

大唐系企业幕后:大股东与创业者间严重内耗信威十二年的轮回两篇文章写得真不错,好久没读过报告文学(?)写得这样令人扼腕长叹的,大唐丧失掉了那么多的千载难逢机会,为何中国的企业都这样?与我第一家公司中讯通信一样,同处前几年金矿一样的电信行业,面对众多的机会,拥有众多的一流人才,最终在丧失掉所有机会中死掉。故事的角色不同,但是其间的情节怎么又这么多的类似,制度的悲哀啊。同时可知TD是多么的垃圾。

一些自我感受:

1、好的核心技术能够改变世界,也能够改变人的命运

2、要成就大业必须有对事业坚定的信念和理想去支撑度过各种风雨,企业也必须有自己核心的价值观和愿景。

3、做事业几个优秀的人在一起不一定能够成就辉煌的事业,关键是要经历风雨始终“同心同德,志同道合”

唯有同心,始成大业
唯有同志,始成大道
唯有同德,始成大公

4、天下熙熙皆为利来,天下攘攘皆为利往。资本是天使也是魔鬼。

5、机会永远不会太少,关键要有能力去把握。机会也永远不会太多,机会的时间窗瞬间即逝。

6、内耗是事业最大的敌人,而非外来的竞争。

7、持久稳健的经营是企业运营的关键,昙花一现的辉煌说明不了什么。

 

 

关于TD、winmax几个相关的内容:

Cisco Announces Definitive Agreement to Acquire Navini Networks (Navini由陈五福和徐广涵共同创办,主要从事winmax硬件开发制造)

中国明确反对WiMAX成为全球3G标准 

说说TD反对WiMAX加入IMT-2000

 

Technorati 标签: , ,

电子商务系统之规则引擎

Posted in Uncategorized by chuanliang on 2007/10/31

构建电信计费系统、保险系统、金融等交易系统之所以复杂,除了对诸如高性能、高可靠性、高可用性、高安全性、高扩展性的要求外,另外至关重要的原因是这些领域存在大量的业务规则,这些规则千差万别,甚至是相互冲突的(瞧瞧电信资费就知道有多么复杂)。在市场驱动的情况下,系统架构和模型必须对客户、竞争对手、合作伙伴和整个市场情况的各种变更及时响应,同时将这些变更产生的需求作为业务规则体现到系统中去。从业务的角度看,业务规则是一种原则,包含在特定活动或范围内关于指导、操作、实践或过程的行为规范;从信息系统的角度看,业务规则是一个定义或限制业务某些方面的声明。一个业务规则包含一组条件和在此条件下执行的操作,它们表示业务规则应用程序的一段业务逻辑。业务规则通常应该由业务分析人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技术人员使用面向对象的技术语言或脚本来定制。业务规则的理论基础是:设置一个或多个条件,当满足这些条件时会触发一个或多个操作。

1、应用场景:

  • 电信计费费率模型

一次批价:根据预处理提供的标准格式话单,结合费率表、号段表、区号表等计费资料对话单进行计费。费率表中记录的信息主要有:基本计费单元、基本通话费率、长途计费单元、长途通话费率、优惠时段起始时间、优惠时段终止时间、优惠时段费率等等。号段表记录了IMSI号、MSISDN号所对应的归属地,以此来判定用户的归属地,进而判定出用户是否漫游、是否拨打了异地手机而应收取长途费等等。区号表记录了各个长途区号,用以从用户所拨的对方号码中提取出长途区号供计费使用。

二次批价:在一次批价的基础上,根据用户入网所享受的各项优惠对话单进行重计费,以最终生成向用户收费的话单。用户所享受的各项优惠记录存在营业系统的用户资料中,因此二次批价必须结合营业资料进行。二次批价使是一个耗时耗资源的过程,一般在合帐前集中完成,为了提高速度,将二次批价中需要频繁用到的营业资料载入内存中。

  • 信用卡积分规则
凭XX信用卡消费1元人民币,即可获得1分的消费积分,在汽车类商户每消费100元人民币积8分,在房地产类商户每消费100元人民币积6分。

兑奖规则:100分~300分:兑换150元礼品,300分~500分兑换300元礼品,500分以上兑换400元礼品。

2、规则引擎

200724151850605

image

规则引擎的设计目的是使得规则的创建和维护变得简单,方便和代价低。好的规则引擎应该将业务逻辑的定义从一个系统中分离出来,而不是在代码中固化。同时规则引擎也将系统开发或者集成过程中不同角色的工作耦合程度大大降低,使得业务逻辑开发人员和具体系统开发等人员的工作可以接近并行的进行。在参考文档中有业务规则引擎基础较为详细的描述。

3、规则引擎使用思考

基于drools+MVEL或ognl来构建核心的业务规则处理部分。

需要考虑解决的几个问题:

  • 性能及压力测试。对于像企业应用问题还不大,但对于在线实时交易系统,尽管可以预先编译规则,但规则引擎是否会成为性能瓶颈。
  • drools与db的结合、内存数据库(berkeleydb)的结合

Loading and managing rules dynamically from a database

  • 与mule及SoA框架结合,用于做对外接口
  • 规则引擎用于系统部署及内容分发

5、参考资料

http://java-source.net/open-source/rule-engines

http://www.manageability.org/blog/stuff/rule_engines/view

http://www.ibm.com/developerworks/cn/java/j-drools/index.html

http://java.ccidnet.com/art/3737/20060427/531321_1.html

http://www.onjava.com/pub/a/onjava/2005/08/03/drools.html

http://www.infoq.com/articles/Brasilian-Healthcare-System

Technorati 标签:
,,,

电子商务的最佳实践模式-从adready新服务学到的

Posted in Uncategorized by chuanliang on 2007/10/25

  从 AdReady Transforms Online Display Advertising with Launch of Powerful and Easy-to-use Web-based Service

AdReady新服务拉近中小企业 和这两篇文章了解到了AdReady的新服务。AdReady的服务模式为:针对细分的行业(目前为15个行业),提供各种“广泛地、经过选择和领域测试”的广告创意库,帮助各种规模的企业从广告资料库中摘取最富成效的广告元素,加以个性化定制,然后助其在三大广告网络中推出和进行跟踪,并根据既时反馈提出优化建议。相对于国内各种门户站点或联盟站间大同小异的“独创性”的广告服务,各种“有效降低中小企业信息化门槛”、“有效降低中小企业电子商务门槛”的空洞口号,AdReady的服务的确颇具有创新性。

  尽管AdReady的创新说白了其实也并不复杂,尽管现在谈论其业务模式的成功尚太早,但是从其产品的思路来看,至少几个方面是值得做电子商务的企业学习和借鉴的:

1、AdReady通过提供广告“最佳实践模式”来帮助中小企业降低网络广告门槛。对于大部分中小企业来说,广告的最大门槛之一是:‘事前’的创意投资,并为保证在线广告活动的成效进行持续的测试。中小企业迫切需要有业已证明有效的“最佳”实践模式来指导其开展业务,以最大程度降低业务开展失败的风险。AdReady通过“广告创意库+个性化定制”的方式来降低中小企业的广告门槛,同时保证服务的高质量。对于电子商务提供商和电子支付提供商而言,中小企业进行电子商务或电子支付的“最佳实践模式”是什么呢?需要好好思考一下。

2、AdReady通过“广告制作”+“广告推广”+“广告优化”核心服务和诸如“最佳谈判知识”等增值服务结合的一条龙服务,以专业化服务为中小企业提供“一站式”的广告解决方案,帮助打通价值链的上下游。

3、AdReady对所从事的事物本身的聚焦,而不是只专注于手段。正如文中AdReady的主要投资者 所说:“大部分在线广告显示领域的公司专注于“谁看到广告”以及在“什么地方看到广告”。 AdReady不聚焦于“谁”和“哪里”,但是聚焦于“什么”—-广告本身。

4、针对不同垂直细分行业的解决方案。如果AdReady仍然像大多数广告公司一样,提供的是放之四海皆准的普适性广告模板,那其价值肯定大打折扣。对于电子商务企业或电子支付企业,深入了解行业需求和行业特点而定义的解决方案应该是产生“杀手级”应用的沃土。

5、懂得取舍之道才是最佳生存之道,只有舍弃部分利润,才能换来更多的利润。如果AdReady仍然拘泥于“广告创意费“、“广告制作费”这些费用,那么其核心价值很难从众多的广告服务提供商中凸显出来。取舍的标准关键还是在于理清自己在价值链中的核心价值。

FIREFOX / IE Word-Wrap:Word-Break问题

Posted in Uncategorized by chuanliang on 2007/10/23

用的是wpzone.netfresh wordpress主题,很烦人的是在Internet Explorer下如果content或sidebar的内容部分一行的内容过长,则经常出现sidebar被挤到页面最下端的情况,而在firefox下没有此种现象。一般出现在如下几种情况:

  • 图片太大超过了width
  • url太长没有正常换行,超过了width
  • 代码太长没有正常换行,超过了width

究其原因是因为对于无空格连续长字符,IE与Firefox将它看成是一个长单词了,因此不会自动换行。

对于IE,可以通过IE专有的CSS属性word-wrap即可实现自动换行:word-wrap:break-word;

对于Firefox,CSS2标准并没有定义类似word-wrap的属性,可以通过overflow属性将撑出的部分隐藏:overflow:hidden

因此为了兼容性,可以使用如下方法:

word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
overflow: hidden; /* fix for long non-text content breaking IE sidebar float */

.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, “Courier New”, courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }

修改fresh theme的style.css文件,在#content和#sidebar中增加上述属性以及pre属性

#content {
color:#000;
display:inline;
float:left;
font-size:14px;
line-height:1.5em;
text-align:left;
width:635px;
margin:13px 0 0 20px;
padding:0 0 20px 0px;
word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
overflow: hidden; /* fix for long non-text content breaking IE sidebar float */
}

#sidebar {
display:inline;
background-color:#fff;
float:right;
font-size:12px;
width:230px;
line-height:1.4em;
padding:20px 20px;
margin:15px 20px 15px 0;
word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
overflow: hidden; /* fix for long non-text content breaking IE sidebar float */
}
pre {
 white-space: pre-wrap;       /* css-3 */
 white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
 white-space: -pre-wrap;      /* Opera 4-6 */
 white-space: -o-pre-wrap;    /* Opera 7 */
 word-wrap: break-word;       /* Internet Explorer 5.5+ */
}

另外对于firefox和opera可以采用javascript方式来避免overflow:hidden的弊端,具体实现可以参考:

Script word-wrap to Firefox – updated version

.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, “Courier New”, courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, “Courier New”, courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }

参考文档:

http://users.tkk.fi/~tkarvine/pre-wrap-css3-mozilla-opera-ie.html

http://elmicoxcodes.blogspot.com/2007/06/script-word-wrap-to-firefox-updated.html

http://jiarry.bokee.com/5871385.html

http://bbs.blueidea.com/thread-2692909-1-1.html

http://www.positioniseverything.net/explorer/expandingboxbug.html

Technorati 标签:,,,,

ebay 电子商务平台研究(2)-ebay architecture

Posted in Uncategorized by chuanliang on 2007/10/21

4、ebay系统架构

4.1、架构度量标准

搭建高扩展性的系统架构是每一个架构师的口号,又有几个实现了这样的承诺?什么叫架构的高扩展性,我自己一直也没有明确的答案,ebay的架构师Dan Pritchett在其blog上的一篇文章You Scaled Your What?,对架构的高扩展性的维度要素进行了较为精辟的阐述:

  • Transactional
  • Data
  • Operational
  • Deployability
  • Productivity
  • Feature TTM

尤其值得注意的是他把系统的运营性、易部署作为架构扩展的重要指标提出,很好的实践性经验总结。对于大部分的互联网公司而言,“以软件作为服务”,运营效率、运营成本是核心的竞争力之一;在需求变更频繁、迭代时间较短、需要部署服务器众多的情况下,怎样在不影响生产系统业务运行的前提下,实现代码快速、安全的上线部署,直接影响能否及时响应需求变更和服务质量。因此在架构搭建、程序开发过程中一定要考虑系统的可维护性、可运营性以及部署上线的要求。

4.2、架构目标

高可用性、高可靠性、高扩展性、高安全性:支撑系统无缝的增长,保证大容量数据库和代码的扩展性

高可维护性,更快的产品交付:以加速度交付高质量的功能,更进一步精简和优化ebay的开发模型

为未来而架构:支撑10倍速的增长,支撑快速的业务革新

 

 

4.3、架构

image

 image

 

 

4.4、软件设计模式实践

http://au.sun.com/events/dev_forum/files/best_practices.pdf

http://gceclub.sun.com.cn/java_one_online/2003/TS-3264CHI(USA,2003)/ts3264ch.pdf

http://blog.spiralarm.com/richard/2006/12/billion-hits-a-day-ebay-javaone.pdf

image

image

 

5、架构最佳实践

• Scale Out, Not Up
– Horizontal scaling at every tier.
– Functional decomposition.
• Prefer Asynchronous Integration
– Minimize availability coupling.
– Improve scaling options.
• Virtualize Components
– Reduce physical dependencies.
– Improve deployment flexibility.
• Design for Failure
– Automated failure detection and notification.
– “Limp mode” operation of business feature

 

5.1、Data Tier(数据层)

5.1.1、功能分段(Functional Segmentation)

  通过对数据库数据按照功能进行分段(应该就是按照use case的领域模型或实体模型),可以将原来存储到一台数据库服务器的数据按照功能分布到不同数据库服务器上。例如User数据库、Item数据库、Account数据库等,ebay有多达70多种功能分类。 功能分段可以支持功能间的解耦和彼此独立性,在分段时候需要根据功能使用频率、扩展性等特征对不同数据进行分段。一个典型的例子就是应当把OLTP和OLAP的功能分段,分别在不同的服务器上进行处理。

  值得注意的是:ebay在应用服务器、数据库数据分区上是基于use case进行划分的,很好的度量标准,只是在use case的粒度定义上需要经验和技巧。

5.1.2、水平切割(Horizontal Split)

  按照所谓的主要存取路径“primary access path”进行水平切割。在模式上有多种。例如:写操作读取master数据库,读操作读取slave库;或者按照数据分段访问(按key、按Map to data location)

5.1.3、逻辑数据库主机(Logical Database Hosts)

    逻辑数据库主机应该是类似数据库中间件或统一的数据存取层以隔离数据的实际物理存储库。在自己实现时候最为简单的方案就是在应用层面各Use Case的DAO层应当能够使用不同的数据源(多个数据库),而不是只能使用统一的数据源配置信息。

5.1.4、降低数据库资源占用(Minimize DB Resources)

   不在数据库服务器处理具有业务逻辑的操作:无存储过程,只采用简单的触发器

   将CPU占用较大的操作移到应用程序来处理:包括对依赖完整性、Join、排序等操作都放到应用程序来处理。这也对,毕竟大部分应用数据库是瓶颈,而且应用服务器还是比数据库服务器配置低,成本也低。

   大量使用prepared statements 和绑定变量(bind variables)

5.1.5、减少数据库事务处理(Minimize DB Transactions)

  避免死锁情况,降低耦合性,并发更新,无缝处理切割数据的访问 

  对于大部分的数据库操作采用Auto Commit方式。

  完全没有使用客户端事务(程序代码):单数据库的事务采用数据库服务器端匿名的PL/SQL块来进行事务管理

  较少使用XA分布式事务。

      

5.2、Application Tier (应用层)

5.2.1、最大限度地扩展J2EE

没有使用大部分的J2EE特性,主要使用了JDBC、servlet和rewrite过得connection pool

保持应用层无状态性:在应用层没有session状态,状态迁移在cookie或数据库存取。

Cache所有能够cache的:Cache公用的metadata,采用复杂的cache刷新机制;Cache从本地存储重新装载(memory db?);Cache数据采用ThreadLocal模式,保证线程安全;

 

5.2.2、分层架构模型

严格按照J2EE规范,把应用画风华展现层(Presentation)、业务层(Business)、集成层(Integration)

应用服务器将不相互通信,不采用cluster方案。

 

5.2.3、数据访问层(Data Access Layer )

采用了ebay内部的存Java OR
mapping方案(类Hibernate)

所有的CRUD (Create Read Update Delete)操作都通过DAL的数据接口层操作。

在不变更代码的情况下支撑数据层的水平扩展(应该要修改配置文件吧?)

大量使用JDBC的Prepared Statements
动态的数据路由:Dynamic Data Routing(DDR) hides the physical location of data from developers by providing a mapping from logical names to physical tables and database servers on which they reside. eBay uses some scalability patterns to reduce complexity/latency. For example, on any given day, there are roughly 40 million distinct items for sale on eBay. These items are split amongst 20 different database servers. These details are hidden from developers-they access an Item object using its id (ItemID)-the exact server from which it is fetched is computed by DDR and queries are routed to that host+table at runtime.

DAL的failover机制:可以通过自动或手动方式监控数据源的可用性,在数据源不可用情况下能够自动按照预设的规则把数据源切换到备用主机,据说是在切换过程中用户的操作不会有中断。DAL的failover机制应该有点类似HA或Clsuter的功能(是F5?),只是其实时性、动态性怎样实现的,值得学习。

 
5.2.4、代码垂直分区(Vertical Code Partitioning)

按功能对代码进行分区:应用细粒度化,只操作单一区的数据(例如Selling,Buying等);Domain包含了扩应用的公用业务逻辑(应该就是公用组件)

严格限定应用间的相互依赖性:应用最多只能依赖Domain,而不能依赖其他的应用;在公用的Domain间没有相互依赖关系

image

 

5.2.5、功能分段(Functional Segmentation )

将功能切分层独立的应用池

降低或隔离DB的依赖性

允许平行的开发、部署和监控

 

5.2.6、平台解耦(Platform Decoupling)

将无事务操作的Domain从有事务的流程中解耦出来。

通过异步的EDA和同步的SOA模式对应用进行集成

采用JMS实现子系统之间和与数据库的松耦合。

 

 

6、运营最佳实践

6.1、系统部署

• Demanding Requirements
– Entire site rolled every 2 weeks
– All deployments require staged rollout with immediate rollback if necessary.
– More than 100 WAR configurations.
– Dependencies exist between pools during some deployment operations.
– More than 15,000 instances across eight physical data centers.
• Rollout Plan
– Custom application that works from dependencies provided by projects.
– Creates transitive closure of dependencies.
– Generates rollout plan for Turbo Roller.
• Automated Rollout Tool (“Turbo Roller”)
– Manages full deployment cycle onto all application servers.
– Executes rollout plan.
– Built in checkpoints during rollout, including approvals.
– Optimized rollback, including full rollback of dependent pool

6.2、网管监控

Centralized Activity Logging (CAL)
– Transaction oriented logging per application server
• Transaction boundary starts at request. Nested transactions supported.
• Detailed logging of all application activity, especially database and other external
resources.
• Application generated information and exceptions can be reported.
– Logging streams gathered and broadcast on a message bus.
• Subscriber to log to files (1.5TB/day)
• Subscriber to capture exceptions and generate operational alerts.
• Subscriber for real time application state monitoring.
– Extensive Reporting
• Reports on transactions (page and database) per pool.
• Relationships between URL’s and external resources.
• Inverted relationships between databases and pools/URL’s.
• Data cube reporting on several key metrics available in near real time.

7、搜索优化(Scaling Search)

eBay的搜索引擎系统原来使用的是Thunderstone的系统,但到2002年时候就遇到了性能瓶颈,当时更新一次索引需要9个小时,使用了最高档的设备也满足不了需求。eBay对全文检索的要求很高,产品列表、竞标等信息要求实时更新、很多查询要求返回所有结果、存储有按关键字、分类和结构化属性组织等多种形式。由于没有现成产品能满足所有需求,eBay开发了自己的全文检索系统。

实时供给器平台负责将更新从主数据库可靠广播到多个检索节点,索引支持实时更新,支持内存索引。

索引系统是高度分布式的,索引机有多组副本,一组又包含多台机器。

缓存技术也被应用于搜索系统中,主要是缓存常用搜索或非常耗资源的搜索的结果。

8、平台开发接口

 

9、网络解决方案

http://www.sinogrid.com/shownews.asp?news_id=72

http://www.sinogrid.com/show_solution.asp?solution_id=43&cat_id=15

10、参考资料

10.1、产品研发相关

http://pages.ebay.com/community/chatter/2005november/insideebay.html

http://pages.ebay.com/community/chatter/2005december/insideebay.html

http://www.lukew.com/ff/entry.asp?318

http://www.slideshare.net/lukew/design-patterns-defining-and-sharing-web-design-languages

10.2、架构相关

http://www.artima.com/forums/flat.jsp?forum=106&thread=188683

http://www.addsimplicity.com/downloads/eBaySDForum2006-11-29.pdf

http://www.addsimplicity.com/adding_simplicity_an_engi/2006/11/you_scaled_your.html

http://www.eweek.com/article2/0,1759,2041437,00.asp

http://highscalability.com/ebay-architecture

http://www.infoq.com/interviews/dan-pritchett-ebay-architecture

http://glinden.blogspot.com/2006/12/talk-on-ebay-architecture.html

http://www.ddj.com/blog/architectblog/archives/2007/08/ad_2007_the_eba.html

http://blogs.zdnet.com/service-oriented/?p=675

http://itmanagement.earthweb.com/service/article.php/3531291

http://article.pchome.net/content-123538.html

http://pages.ebay.com/community/chatter/2005november/insideebay.html

http://designcult.typepad.com/designcult/files/Design_Patterns_IA_Summit_public.pdf

http://au.sun.com/events/dev_forum/files/best_practices.pdf

http://gceclub.sun.com.cn/java_one_online/2003/TS-3264CHI(USA,2003)/ts3264ch.pdf 

http://download.oracle.com/oowsf2004/1235_wp.pdf

ebay 电子商务平台研究(1)-ebay 产品研发流程

Posted in Uncategorized by chuanliang on 2007/10/21

需要好好学习研究一下ebay的电子商务平台及paypal支付平台的开发方法论、系统架构模式,为搭建高可用性(high availability))、高可靠性(high reliability)、高扩展性(high scaliability))、高安全性(high security)、高性能(high performance)的电子支付及电子商务平台积累经验。

研究重点集中在两个方面:

  • ebay的产品研发管理
  • 软件架构

1、ebay业务情况

http://www.addsimplicity.com/downloads/eBaySDForum2006-11-29.pdf

  • 212 million registered users, 1 billion photos
  • eBay users worldwide trade more than $1590 worth of goods every second
  • eBay averages over 1 billion page views per day
  • At any given time, there are approximately 105 million listings on the site
  • eBay stores over 2 Petabytes of data – over 200 times the size of the Library of Congress!
  • The eBay platform handles 3 billion API calls per month
  • 26 Billion SQL executions/day!
  • On an average day, it runs through 26 billion SQL queries and keeps tabs on 100 million items available for purchase.
  • In 33 countries, in seven languages, 24×7
  • 300+ features per quarter,Roll 100,000+ lines of code every two weeks
  • 99.94% availability, measured as “all parts of site functional to everybody” vs. at least one part of a site not functional to some users somewhere

     

    2、ebay电子商务平台演进历史

    image

     

    版本 时间 核心系统技术框架
    (Language,Web Server,DB,OS)
    备注
    V1.0 1995-1997/9 Perl,Apache,GDBM,FreeBSD

    • Built over a weekend in Pierre Omidyar’s living room in 1995
    • System hardware was made up of parts that could be bought at Fry’s
    • Every item was a separate file, generated by a Perl script
    • No search functionality, only category browsing

    V2.0 1997/9-1999/2 C++,IIS,Oracle(Solaris),NT,

    • 3-tiered conceptual architecture (separation of bus/pres and db access tiers)
    • 2-tiered physical implementation (no application server)
    • C++ Library (eBayISAPI.dll) running on IIS on Windows
    • Microsoft index server used for search
    • Items migrated from GDBM to an Oracle database on Solaris

    V2.1 1999/2-1999/11 C++,IIS,Oracle(Solaris),NT

    • Servers grouped into pools (small soldiers)
    • Resonate used for front end load balancing and failover
    • Search functionality moved to the Thunderstone indexing system
    • Back-end Oracle database server scaled vertically to a larger machine (Sun E10000)

    V2.3 1999/6-1999/11 C++,IIS,Oracle(Solaris),NT

    • Second Database added for failover
    • CGI pools, Listings, Pages, and Search continued to scale horizontally
    • By November 1999, the database servers approached their limits of physical growth.

    V2.4 1999/11-2001/4 C++,IIS,Oracle(Solaris),NT

    • Database “split” technology.
    • Logically partition database into separate instances.
    • Horizontal scalability through 2000, but not beyond

    V2.5 2001/4–2002/12 C++,IIS,Oracle(Solaris),NT

    • Horizontal scalability through database splits
    • Items split by category
    • SPOF elimination

    V3.0 2002/12-present Java,Sun Java System Web Server,Oracle(Solaris),Solaris

    • Replace C++/ISAPI with Java.Re-wrote the entire application in J2EE application server framework
    • Leveraged the MSXML framework for the presentation layer
    • Implemented a development kernel as a foundation for programmers

     

    3、ebay产品研发方法论

    3.1、产品管理流程

    http://pages.ebay.com/community/chatter/2005november/insideebay.html

    http://pages.ebay.com/community/chatter/2005december/insideebay.html

    http://pages.ebay.com/community/chatter/2003Apr/InsideeBay.html

    http://pages.ebay.com/community/chatter/2005February/homevisits.html

    http://creativityandinnovation.blogspot.com/2007/05/innovation-and-leadership-lessons-from.html

    从软件产品管理流程的一级流程而言,ebay的产品管理流程与大部分软件公司的研发管理流程倒没有太多的差别,都大致遵循标准软件工程或CMMI之类的模型定义的流程,也即:项目策划(需求收集、业务需求规格说明书、市场分析、盈利分析等)->项目立项(产品需求规格说明书、立项评审会议、项目计划等)->需求分析设计->开发->测试->上线及市场推广。在核心流程定义清楚的情况下,软件开发流程至关重要的是执行力以及流程的持续完善,对此ebay的产品管理流程倒有很多值得借鉴的地方。

    InsideDec05

    ebay产品管理流程

     

    产品的管理流程的核心要素是对于需求的管理(需求的收集、组织、跟踪、审查、确认、变更和验证),ebay使用了“需求漏斗”的概念来描述需求在产品管理流程各个阶段中状态的迁移变化过程。通过对需求层层筛选过滤,保证

    InsideeBay1Nov05

    • ebay需求收集渠道

    Strategic Analysis:

    Community:除了通常的邮件、电话、社区论坛等沟通方式外,eBay’s “Voices” program类似于用户座谈会这样的重要的沟通形式

    Visits program:主要是侧重用户体验部分。

     

     

    3.2、软件开发方法论

    Our site is our product. We change it incrementally through implementing new features.
    • Very predictable development process – trains leave on-time at regular intervals (weekly).
    • Parallel development process with significant output — 100,000 LOC per release.
    • Always on – over 99.94% available.

    以此看来,ebay在开发方法上应该是采用了敏捷软件开发过程或RUP,采用迭代和增量开发方式。

    3.3、用户体验设计

    http://designcult.typepad.com/designcult/files/Design_Patterns_IA_Summit_public.pdf

    http://www.lukew.com/ff/entry.asp?318

    http://www.lukew.com/resources/articles/DesignPatterns_LW.pdf

    3.4、开发者社区

    电子商务网站平台的开放性可以让更多的人参与到价值链的完善中来,这也是Facebook比Myspace能够吸引更多人气的原因所在。而开放性必须依赖于开发者去实现,因此和谐的开发者社区对于构建一个完整的电子商务的生态圈是至关重要的。

    http://www.cioinsight.com/article2/0,1540,2074253,00.asp

    http://blog.programmableweb.com/2007/01/04/how-ebay-scales-their-devnet/ 

  • 电子商务及电子支付业务发展的思考之三-从电子支付服务提供商与网络营销关系想起

    Posted in Uncategorized by chuanliang on 2007/10/18

    要一下理清楚电子支付服务提供商在电子商务生态圈中的角色及价值很难,先按照CRM方法论分析一下电子支付服务提供商与网络营销的关系,以便为更好理清楚电子支付企业在整合电子商务价值链或生态圈中的价值所在。尚未完全想清楚,因此是思维混乱,姑且叫做乱弹。

    电子支付服务提供商与网络营销的关系从表层关系或从本质来看都很简单明了:

    • 从外部需求来说:电子支付厂商自己也需要进行网络营销,以扩大自己的影响力,强化自己的品牌形象;
    • 从内部需求来说:电子支付厂商为进行网络营销的公司提供支付服务。

    除此以外,似乎没有其他直接的关联了。

    从角色分析来说,网络营销、电子支付、电子商务这三个服务提供商最终的服务对象或目标群体都是客户本身,都需要“以客户为中心”。网络营销服务提供商通过合理利用互联网资源(如SEO、邮件、目录、联盟等网络营销工具),向目标受众群体(最终客户)实施有效的营销,实现企业网络营销信息的有效传递;电子商务提供商为最终客户提供有效的产品和服务,以促进企业经营目标的达成;电子支付提供商为最终客户提供支付服务,协助商家促成交易的达成。

    在尚未完全脱离支付网关角色的情况下(尽管每一家支付公司都声称自己并不是简单的支付网关),电子支付企业间产品的同质化极其严重,剩下就靠谁的战略及营销策略的执行力更为有效。不管是拓展更多的行业还是针对某一行业的深耕,电子支付企业能否从竞争的红海杀出,进入相对的蓝海,核心或许在于谁能够在电子商务价值链中扮演更为重要的角色,或许有一些方向值得深入思考:

    • 对关键行业需求更深入的了解,推出有针对性的行业电子支付解决方案;
    • 电子支付解决方案与企业业务流程及IT系统更为紧密的结合。
    • 更为个性化的支付产品
    • 在电子商务企业的客户生命周期管理闭环中角色前驱;例如能够参与企业的网络营销阶段,帮助电子商务企业将客户状态从“潜在客户”向“签单客户”更为积极的转变,而不只是单纯停留在销售阶段。

    先考虑电子支付在网络营销中的角色;按照CRM的概念来看,一个典型客户的销售过程可以分为:预期、计划、接近、销售展示、处理异议、结束销售、售后服务。而从客户状态来分,可以定义为:潜在客户、目标客户、意向客户、签单客户、长期客户。

    潜在客户:预期、计划 ;

    目标客户:评估、接近 ;

    意向客户:销售展示、处理异议 ;

    签单客户:最终竞争、结束销售 ;

    长期客户:售后服务、新价值挖掘

    image

    闭环的市场营销流程

    那么电子支付服务提供商在电子商务提供商的闭环的市场营销流程中有那些手段可以使用呢,先罗列一下想到的:

    1、联盟营销(affiliate marketing):与电子商务企业、网络营销联盟的联盟营销。

    2、整合营销、事件营销:

    3、社会化支付:基于sns的社会化商务所产生的支付需求。特征为基于信用、口碑的小群体化、个性化支付需求。

    4、客户价值交换:低层次为客户数据资料交换,稍高层次诸如组合支付,更高层次诸如信用支付

    5、信用担保:为客户或商家提供信用担保服务,促成交易的发生。

    6、客户消费习惯、客户价值的数据挖掘。尤其是客户在多个商家消费行为分析后推介。

    7、诸如呼叫中心、CRM、安全、财务、结算等产品的SaaS服务或外包服务。

     

    Technorati 标签: , , ,

    电子商务电子支付业务发展的思考之二-物流及快递服务社区

    Posted in Uncategorized by chuanliang on 2007/10/16

    物流永远都是要开展电子商务业务的企业胸口永远的痛,也是制约众多电子商务企业发展的因素。

    初创性的电子商务企业,是无法组建并运营一只庞大的物流配送配送队伍的,因此一般都依托于现实生活中的快递公司,这些快递公司可以有效帮助初创的电子商务企业专注于核心的电子商务活动及电子商务平台的运营,降低企业自建配送队伍的运营成本。但目前的将物流配送业务外包给专业的快递公司存在如下一些问题,因此目前已成为电子商务发展的主要瓶颈:

    1、电子商务企业与物流公司(这里暂时只考虑快递公司)双方的业务各自独立,缺少必要的监督和约束,很难保证服务的质量。 能否有一个中间平台来部分解决信用缺失的问题。

    2、对消费者而言,没有一个公正的中立性的服务平台来对快递公司的服务质量、服务价格等进行评定,只能是靠运气去一家一家比较。对于电子商务有一堆的比较购物网站可供选择,而物流及快递服务好像只有一些诸如快递小帮手深圳快递网这样一些较少的中立性网站可供选择,能否引入web2.0的诸如digg等功能,构建权威的消费者驱动的快递服务的点评榜。

    3、对需要物流配送服务的电子商务企业和能够提供物流配送服务的快递公司没有一个较好的社区来加强沟通和交流。

    4、对于中小型的物流快递企业,并没有太多的资金和能力来进行各种形式的网络营销活动,诸如SEO、联盟服务、整合营销等手段也尚未得到有效的使用,能否以联盟形式构建一个专为中小快递企业服务,帮助他们进行完整的网络营销。

    5、目前的快递企业有能力的自建呼叫中心平台来接单,而大部分的小型的快递企业还只能依赖于原始的电话系统来接单的,能否通过专业性的快递服务门户来为众多的中小型快递企业提供一体化的呼叫中心平台、订单管理、电子支付、CRM服务。

    6、社区本身也是一个开展电子商务的服务提供商,服务提供对象是快递企业、最终消费者、电子商务企业。

    7、在社区发展方向,初期可以专注于快递服务本身,等到用户群及口碑积累到一定程度,可以向专业化的物流服务社区进化。

    相信随着电子商务的迅猛发展,对专业化的快递及物流的要求会愈来愈高,而中立的专业化的物流服务社区也会有很大的市场机会。

     

    Technorati 标签: , , ,

    电子商务及电子支付业务发展的思考之一

    Posted in Uncategorized by chuanliang on 2007/10/15

         广大的传统企业是电子商务开展的基石,能否很好把握并挖掘这些企业的实际需求并推出相应的产品来满足这种需求是以提供电子商务服务为生的电子商务提供商的核心价值所在。在互联网时代,怎样帮助这些传统的企业充分利用互联网的各种技术手段来促进其商务活动及业务的开展是电子商务能否成功的关键所在。

         从企业所处行业及整个社会的商业环境或价值链来看,为企业提供各种服务的软件提供商分为三大类:内功性服务提供商、外功性服务提供商、内外结合性服务提供商。内功性服务提供商主要提供有竞争力的软件产品,从企业内部协助企业提高自身的管理水平、经营能力及产品研发能力,这类服务提供商包括HR、OA、Security等提供商等。外功性服务提供商主要偏重企业的营销、品牌建设等方面,因此主要都是诸如公关公司、广告公司、营销公司等,这些企业对于IT信息系统的依赖性较少(当然也需要,例如电话营销、目录营销等),因此在这传统的软件提供商中较少,而互联网为企业提供了低成本的营销、产品推介手段和第二种武器,能够较好地帮助企业开展营销,这也是目前电子商务应用能够快速开展起来的原因所在。内外结合性服务提供商是指帮助企业打通内外价值链、服务链、供应链的服务提供商,包括ERP、CRM、SCM等方面的服务商。

        目前来说,大部分企业的IT投资重点仍然在诸如HR、OA、ERP、CRM这样的传统软件需求上,实际上从整个行业来说,电子商务提供商和电子支付提供商最大的竞争对手不是彼此之间的竞争,而是与“习惯的力量”下的传统软件厂商们的竞争,尽管从业务发展趋势来说,电子商务及电子支付是企业未来的主宰。要加速这种转变,要在“传统厂商 VS. 电子商务提供商”之间的竞争以及提供同质化服务的竞争对手之间的竞争中生存下来,电子商务提供商多多学习传统的软件提供商对企业业务流程、行业需求、企业运营管理的理解以及产品研发、推广的策略,然后提供解决企业的“痛点”的电子商务产品服务,这样的服务肯定是有效的竞争武器。

         仅以此作为我对电子商务及电子支付业务发展的思考,先梳理一下需要思考的重点,后续继续努力思考。 

    1、与行业应用的深度结合,针对不同的细分行业市场推出相应的行业性解决方案。

    2、与商家业务流程、内部IT系统的深度结合,例如与企业财务、营销流程、客户服务流程。

    3、基于联盟、连锁形式的电子商务服务。(电子商务联盟、电子支付联盟)

    4、经营分析及数据挖掘(包括协同过滤),对用户消费行为及消费习惯的深度挖掘,推出更有针对性的支付服务及电子商务服务。

    5、电子商务与社区,电子商务与社区

    6、电子商务与网络营销(SEO、Blog营销、播客营销、目录营销、直销、整合营销),电子支付与网络营销。

    7、电子商务与SaaS(在线CRM、ERP、呼叫中心)

    8、电子商务与信用体系、风险控制

    Technorati 标签: , ,