http://www.infoq.com/cn/articles/micro-soa-1/
按照亚马逊前著名员工Steve Yegge著名的“酒后吐槽”,2002年左右,CEO贝佐斯就在亚马逊强制推行了以下
六个原则(摘自酷壳):
1.所有团队的程序模块都要以通过Service Interface 方式将其数据与功能开放出来。
2.团队间的程序模块的信息通信,都要通过这些接口。
3.除此之外没有其它的通信方式。其他形式一概不允许:不能使用直接链结程序、不能直接读取其他团队的数
据库、不能使用共享内存模式、不能使用别人模块的后门、等等,等等,唯一允许的通信方式只能是能过调用
Service Interface。
4.任何技术都可以使用。比如:HTTP、Corba、Pubsub、自定义的网络协议、等等,都可以,贝佐斯不管这些。
5.所有的Service Interface,毫无例外,都必须从骨子里到表面上设计成能对外界开放的。也就是说,团队必
须做好规划与设计,以便未来把接口开放给全世界的程序员,没有任何例外。
6.不这样的做的人会被炒鱿鱼。
服务应具有精心选择的粒度
服务应是内聚而完整的,具体独立性的模块。
服务具有无状态接口
按照亚马逊前著名员工Steve Yegge著名的“酒后吐槽”,2002年左右,CEO贝佐斯就在亚马逊强制推行了以下
六个原则(摘自酷壳):
1.所有团队的程序模块都要以通过Service Interface 方式将其数据与功能开放出来。
2.团队间的程序模块的信息通信,都要通过这些接口。
3.除此之外没有其它的通信方式。其他形式一概不允许:不能使用直接链结程序、不能直接读取其他团队的数
据库、不能使用共享内存模式、不能使用别人模块的后门、等等,等等,唯一允许的通信方式只能是能过调用
Service Interface。
4.任何技术都可以使用。比如:HTTP、Corba、Pubsub、自定义的网络协议、等等,都可以,贝佐斯不管这些。
5.所有的Service Interface,毫无例外,都必须从骨子里到表面上设计成能对外界开放的。也就是说,团队必
须做好规划与设计,以便未来把接口开放给全世界的程序员,没有任何例外。
6.不这样的做的人会被炒鱿鱼。
服务应具有精心选择的粒度
服务应是内聚而完整的,具体独立性的模块。
服务具有无状态接口