浅析SOA框架演化

说到SOA的兴起,已经是几年前的事情咯。

按我的理解,SOA框架的演化,主要按四条路来进行的:

第一条路,就是从CORBA衍生,可以作为CORBA的替代品。
这一条路上,典型代表为ICE、Thrift,Avro,ProtocolBuffer+GRPC
其典型行为是,定义idl,对每种语言提供编译器及运行库,然后提供RPC调用功能

第二条路,就是语言框架需要
这一条路上,主要代表为DCOM,EJB,DUBBO,最初目的都是为了给语言框架提供更好的分布式功能。
其典型行为是,语言或框架本身不具备改功能,对其进行了扩展。自身对原语言框架依赖比较严重。

第三条路,就是HTTP中新规范的出现
这一条路上,主要代表为SOAP,REST。
其典型行为是,每种语言都有多种实现,定义schema,每种语言会有多种库支持,最后通过HTTP通讯进行调用

第四条路,就是功能整合
这一条路上,主要代表为WCF,各类ESB产品
其典型特征为:提供多种SOA解决方案

具体使用的时候,其实大家可以看到,这些框架都是万变不离其宗。
那就是,都需要接口描述语言(无论是IDL、WSDL还是什么),都提供良好的支持功能开发较为简单,都是SOA框架解决通讯问题,对于开发人员透明。
大家具体使用是,根据实际情况选取即可。

如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?


如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?
作者:猫爱吃鱼不吃耗子(转自知乎)

你去饭店,坐下来。
“服务员,给我来份宫保鸡丁!”
“好嘞!”
——————这叫原始需求

大厨做到一半。
“服务员,菜里不要放肉。”
“不放肉怎么做啊?”
“不放肉就行了,其它按正常程序做,不就行了,难吗?”
“好的您稍等”
——————中途需求变更

厨房:
大厨:“你大爷,我肉都回锅了”
服务员:“顾客非要要求的嘛,你把肉挑出来不就行了吗”
大厨:“行你大爷”
然而还是一点点挑出来了
——————改动太大,部分重构

餐厅:
“服务员,菜里能给我加点腐竹吗?”
“行,这个应该简单。”
——————低估改动成本

厨房:
大厨:“你TMD,不知道腐竹得提前泡水?炒到一半才说?跟他说,想吃腐竹就多等半天”
服务员:“啊你怎么不早说?”
大厨:“早说你MLGB我怎么知道他要往宫保鸡丁里放腐竹”
然而还是去泡腐竹了
——————新需求引入了新研发成本

餐厅:
“服务员,还是把肉加回去吧”
“您不是刚说不要肉吗”
“现在又想要了”
“…好的您稍等”
——————某一功能点摇摆不定

厨房:
大厨:“日你啊,菜都炒过火了你让我放肉?还好肉我没扔”
服务员:“客户提的要求你日我干嘛?”
大厨:“你就不能拒绝他啊?啊?”
服务员:“人家是客户嘛。”
——————甲方是大爷

餐厅:
“服务员!服务员!”
“来了来了,你好?”
“怎么这么半天啊?”
“稍等我给您催催啊”
——————改动开始导致工期延误

厨房:
大厨:“催你M催,腐竹没泡好,我还得重新放油,他要想吃老的也行,没法保质保量”
——————开发者请求重新排期

餐厅:
服务员:“抱歉,加腐竹的话得多等半天,您别着急哈”
“我靠要等那么久?我现在就要吃,你们能快点吗?”
“行…您稍等”
——————甲方催活

厨房:
大厨:“我日他仙人板板,中途改需求又想按期交付,逗我玩呢?”
服务员:“那我问问,要不让他们换个菜?”
大厨:“再换我就死了”
——————开发者开始和中间人pk

餐厅:
“服务员,这样吧,腐竹不要了,换成蒜毫能快点吗?对了,顺便加点番茄酱”
——————因工期过长再次改动需求

厨房:
大厨:“我日了狗啊,你TM不知道蒜毫也得焯水啊?还有你让我怎么往热菜里放番茄酱啊??”
服务员:“焯水也比等腐竹强吧,番茄酱往里一倒不就行了吗?很难吗?”
大厨:“草。腐竹我还得接着泡,万一这孙子一会又想要了呢。”
——————频繁改动开始导致大量冗余

餐厅:“服务员,菜里加茄丁了没有?我去其它饭店吃可都是有茄丁的”
“好好好您稍等您稍等”
——————奇葩需求

厨房:
大厨:“我去他二大爷他吃的是斯里兰卡三流技校炒的宫保鸡丁吗?宫保鸡丁里放茄丁??”
服务员:“茄丁抄好了扔里边不就行了吗?”
大厨:“那TM还能叫菜吗?哪个系的?”
服务员:“客户要,你就给炒了吧。”
大厨:“MB你顺道问问他腐竹还要不要,我这盆腐竹还占着地方呢不要我就扔了”
——————奇葩你也得做

餐厅:
“服务员,还要多久能好啊”
“很快,很快…”
“再给我来杯西瓜汁。”
“…好”
“我再等10分钟,还不好我就走了,反正还没给钱。”
“很快,很快…”
——————黑暗前的最后黎明10分钟后

“咦,我上次吃的不是这个味啊?”
从厨房杀出来的大厨:“我TM就日了你的狗…”
——————最终决战

——————
你=客户
服务员=客户经理+产品经理
大厨=码农
请自行转换…
——————
注:以上场景已极度夸张,实际生产生活中码农和PM是和睦友好的相亲相爱的一家人
——————
注:对于做2C产品的公司,你=公司大boss

转自知乎,原文链接

浅析海量小文件的存储

海量小文件(LOSF,lots of small files)的存储是很多公司都遇到的难题,不管是互联网公司(如社交网站)还是传统的IT企业(如医疗IT的PACS厂商),都会遇到这个难题。

问题的根源在与,无论是文件系统还是网络传输,小文件都需要很多额外操作,如
1、数据布局没有优化,寻址次数大大增加,寻道时间及旋转延迟大大增加,从而每秒的输入输出量 (IOPS,Input/Output Per Second) 、数据吞吐量(Throughput)都明显下降
其实很简单,大家考虑下,拷贝一个1G的文件,和拷贝一个都是零散文件的1G文件夹,其速度差距如何,就清楚了
2、网络通信开销增加,网络延迟变大
其实很简单,大家考虑下,网络传一个1G的文件,和传一个都是零散文件的1G文件夹,其速度差距如何,就清楚了
3、分布式存储,网络交互次数增加,数据存储位置频繁变化,网络通信增加,速度变慢
其实也不难,比如,从一个服务器上拉取10000个文件,与从10个服务器上拉取10000个文件(每次都要问下,下一个文件存储在那个服务器上),谁快谁慢,就清楚了

大家应对这个问题时,采用的方法无非是4种:
1、砸硬件,用硬件性能提升,让传输效率提供
2、用缓存,通过缓存,减少磁盘访问次数,减少交互环节,提高传输效率
3、改变存储策略
4、减少询问次数,比如一次通信,找到1000个文件的地址,400个在服务器A,600个在服务器B,不按文件顺序,而是先从A取400个,再从B取600个,通信就会减少很多,速度就会有所提升(但业务场景要合适才行)

这里主要说一下第3点。
传输一个都是零散文件的1G文件夹时,我们可以这样做,先压缩一下,然后再传递,再解压,发现很多时候居然会节约时间。
也就是说:
压缩+传输压缩文件+解压用的时间 < 直接读取并传送零散文件的时间

但如果直接存储压缩文件,那压缩我们只需要上传时做一次,平时读取时,其实为:
传输+解压用的时间 < 压缩+传输传输压缩文件+解压用的时间 < 直接传送零散文件的时间

那如果压缩和解压的时候,我们只做归档,不做压缩岂不是更节约时间?
传输+归档读取用的时间 < 传输+解压用的时间 < 直接传送零散文件的时间

恩,对了,其实大家的解决方案就是,将大量小文件,写到一个大文件里,这样读取效率就飞一样上来了。
无论是Facebook的Haystack还是淘宝的TFS,用的都是类似的方案。(实际上要复杂的多,请参考论文”Finding a needle in Haystack:Facebook’s photo storage”)

那HDFS呢?当然也支持咯,但要写代码处理一下,大家可以自行找一下Hadoop Archive, Sequence file, CombineFileInputFormat等。

互联网后面10年的重点

当今互联网,已经基本解决了吃、穿、用、住、行、娱乐的问题。

下馆子吃,已经被大众点评、美团、饿了么等刮分完毕。
不下馆子吃、穿、用,各大商城都在做,被淘宝、京东、亚马逊、一号店等刮分完毕。
住、行被携程、艺龙、滴滴快的、神州等刮分完毕。

旅游类的娱乐项目,很大一部分开支为吃、住、行。除去这一部分,组团、自由行等也已经慢慢向成熟市场变化,包括马蜂窝等很多都在做。
非旅游类的娱乐项目,在大众点评、同城等也有了立足之地,更何况这铺天盖地的购票软件咯。

上述市场,一些已经局势明朗很难有大的变化,一些仍是杀得难解难开,一些还待开发。

依据互联网的长尾效应,后面大家要做的是差异化竞争,现在国内互联网巨头中,还没有特别好的、在红海中的差异化竞争案例。大家刚刚从实体店的红海杀到了互联网的蓝海,并正在把互联网蓝海杀红。我相信这方面还是有很多可以做的事情的。

另外,当一个人吃、穿、用、住、行、娱乐的问题解决了,就会有更高的追求。按以往的历史规律,医疗、健康、教育、艺术、科技、政治的需求会逐渐增强。而且,当下各大公司正在努力向医疗领域进军,互联网这10年,应该是医疗健康的十年。

远程预诊存在的问题

现在不少公司在推远程预诊,或者视频问诊,但没有一家真正解决了下面的问题:
1、没有足够的专业医疗队伍资源,在我的另一篇博文中已经说明原因,并指出医学院学生及退休医生是可以考虑的资源
2、没有专业设备,可以获取患者的第一手资料。必须有设备的技术变革,例如大白去掉AI功能。(高清视频音频、心率、血压、脉搏、血糖、呼吸等等等等)
3、没有好的盈利模式,单纯靠吸引患者就诊不太可取,单纯靠卖保健品。。。
4、没有解决患者实际问题,预诊后要做什么呢(请到XX医院做进一步治疗?),患者仅仅多排了一次队浪费时间而已
5、患者不信任,不愿意承担风险,需要一个漫长的过程

那现在能做的是什么呢?
1、慢性病的跟踪治疗,比如高血压、糖尿病等
2、私人诊所的个人咨询
3、私人护理的定期巡诊

与上面最大的区别是什么呢?
1、医患之间有过接触,有了信任
2、医生了解患者的病情
3、患者病情不是很紧急
4、医院可以持续盈利

要预防什么呢?
1、高大上的产品变成了产品推销平台
2、打擦边球,因此医疗事故,触犯法律
3、乱烧钱,最后不了了之

下一次技术进步是什么呢

恩,我说的是技术进步,不是技术革命哦。

个人认为,比较近的一次技术进步有可能为能源的进步,或者说是电池的进步。
电池现在其实是遇到了很大的瓶颈。
随便打开一个智能手机后盖,至少三分之一是电池,而且瞬间会耗光。

另一个进步,就是屏幕的进步,
或者说,可能不再需要特定的屏幕了,
桌面,皮肤,衣服,都可以作为屏幕,甚至这些都不需要。

然后,就是可穿戴设备的进步,
前两个进步完成后,可穿戴设备才会真的牛起来。
现在的可穿戴设备,还没有真正能超越智能手机的。

另外,AI还没有跟上来哦,需要真正天才的指引,这个需要的是技术革命哦。

其他的吗,就要看物理的发展啦。

移动医疗不应该按打车模式推进

现在一些移动医疗的厂商,在做产品的时候,完全采用了打车模式进行推进。

甚至开始照抄出租、专车模式,出来了现有医院、新建医院模式。

但他们忽略了一个问题。

那就是医疗,并不像打车,有如此多的线下资源可以调用。

有几个明显的现象要注意:
1、中国的医疗资源十分匮乏
2、中国的医疗资源过于集中
3、越好的医生越忙,越难以到线上
4、好的医院,不缺患者;
5、看病和打车不一样,不是是个医院你就敢去,是个人你就让他给你治疗
不信?那我问下,如果是你关心的人生病了,你会随便找家医院看看,还是各种打听哪里靠谱?

那问题就来了,即使能有医生到线上,人数有限不说,水平也不会很高。
新建医院,需要有医院的实体,这样成本就高了,而且医生整体数量,不会呈爆炸性增加。
所以,不会像打车软件这样,一呼百应,这个并非不能为的事情,而是一个要持之以恒的工作。

那有哪些是讨巧,现在又能推进的呢:
1、把学医的学生拉到线上,他们不一定有行医资格,但有医疗知识,可以做咨询、网上导诊,这是个不错的开始,比如丁香园就在做
2、用好退休医生队伍,他们经验丰富,有一定闲散时间,但对互联网及移动设备使用不熟练,需要更易用的软件及设备
3、推动国内的社区医院,我们现在的社区医院形同虚设,社区医院的价值根本没有体现出来,其实小问题就应该在社区医院搞定。这个出现的原因,上面已经说到了。解决的方式应该是与政府合作,才会长久。
4、私人诊所,比如牙医、私人医生,这样的服务,这个有美国模式可以借鉴。但要等待政策。
5、远程预诊,缺少专业易用廉价的设备
6、大集团化医院,这个建议几个巨头联合起来,在一二线城市,进行推动。打响品牌战。
7、快速做好远程会诊、诊断、手术等

其实,大家烧钱的地方太集中,另外有几个市场被低估了:
1、运动健身。没有特别专业厂商在做,其实已经可以开展起来了。
2、健康咨询。营养咨询、健身指导、心理咨询、幼儿护理、产前培训。
3、幼老年护理。你懂的。
4、真正的可穿戴设备,现在都是Baby Product,呵呵。
5、需要一个很强势的协会,制定标准,造福人类。

哪些医疗数据可以用HDFS

其实,几年前就有人和我建议,希望在医院用Hadoop,用云计算,来处理医院的日常业务。
但他们苦于找不到接入点。

在建设平台的过程中,更有口号说,不管数据格式如何,先收集上来再说。
但这样做的结果,往往是,数据收上来了,但获取数据的时候,却无法提供。

更有很多供应商,买了第三方的ESB、MQ等商业软件,直接卖给医院,告诉医院,这就是平台。
结果,医院根本就不会用这些产品,整个一悲剧。

但到今天,放眼望去,在医院中,建立私有云的,还是少之又少,主要原因如下:
1、缺少专业人才。医院的运维人员有限,主要以Windows系统的维护为主,日常工作十分的繁杂。没有精力及经验来维护以Linux为基础的云。
2、医疗行业相对保守,出了问题责任重大。很多医院不是不愿意,而是不敢使用新技术,不敢做第一个吃螃蟹的人。
3、现在没有好的厂商,提供优质的私有云建设服务。而医院用Windows、SQL Servr、Oracle远远多于Linux+MySQL+开源非关系数据库的原因,就是商业产品出了问题,还有人帮忙解决,而开源产品出了问题,可是举目无亲。
4、医疗资源的保密性,让医院不敢将资料放到公有云上
5、多数医疗资源,变更频繁,不适合与云存储(云存储适合量大、变更少、变更时尽量不要更新而要追加)
6、很多医院的各个科室,互联互通都没有做好,还在补课阶段

其实,从文件特性上看,还是有不少内容可以放到云上的:
1、影像数据。其实医院的影像文件,采集后,一般经过无损压缩,会N年不再修改。所以放射、核医学、超声、内镜、病理的影像数据,完全可以放到HDFS上。取回速度,会快很多。
2、归档后的病历数据。归档后的病历资料,也是很少变化的,数量也比较巨大,种类也很多,很适合HDFS存储。
3、医院的OA及资产等历史资料,也可以进行HDFS存储

待续。。。

O2O必须能调动线下资源

最近看来,国内O2O的商业模式主要在拼命覆盖“吃、穿、住、用、行”,而且出现很明显的行业排名。

问题是,为什么会有公司成功,而多数的公司失败了呢?

个人感觉,以下几点比较重要:

1、O2O必须可以让用户和服务提供者的需求match起来,将线下资源调动到线上,让大家得到真正的收益(解决问题省钱省时间)
很简单的例子,就是打车软件。以打车为例,打车软件出现以前,打车的人无车可用,出租车找不到乘客。滴滴和快的,解决的问题是将打车需求及出租车资源带到线上,将双方match了起来。

2、时机很重要,该出手时就出手,赢家通吃
这个很容易理解。一旦有人搞出一种新模式,很多人就会一起上,然后就是大乱斗,最后尘埃落定,赢家通吃。

3、资金链超级重要,该出手时再出手,资金链断裂等于突然死亡
比如团购,雨后春笋般出现了几百家,资金链断裂,乱烧钱公司突然集体死亡。最后美团用剩下的资金占领了很大的市场,成功的活了下来。

4、从优惠及免费开始
不管是打车、团购还是外卖,在初期用过的话,你懂的。

5、从竞争走向合作
快的和滴滴的垄断优势,你懂的。
(再比如,互联网中的优酷和土豆)

6、积极寻找盈利点
站稳脚跟后,大家首先要考虑的问题就是盈利,毕竟是开公司,不是做慈善咯。
(再比如,互联网中的天猫)

7、改变规则
比如1号专车对出租车的冲击
(再比如,互联网中微信对短信的冲击,支付宝和微信支付对网银的冲击)

8、现在赢家通吃现象比较严重,长尾效应暂时没有显现

9、个人预测

外卖的战争开始了,诸位要加油哦。

超市资源还没有人调动到线上,超市的话很多时候是资源过剩,一些时候资源紧张。这是个不错的突破口。虽然B2C做的火热,但O2O还是有很大市场的呢。

解决了吃穿住用行,然后就是医疗健康,一定会有很多新的模式出现的。现在主流厂商的模式,根本没有成型,战争刚刚开始拉开序幕。

解决了吃穿住用行,人们就会开始追求自我价值,享受及艺术的时代,应该不远了。

维修、保洁类的上门服务,也可以考虑哦。

今天先写这么多吧。

感悟20150331

上周年假到期了,于是休了三天年假,加上周末,舒舒服服的休了五天(当然,被骚扰是避免不了的)。

假期看了两本书,都是放假前刚买的。

第一本是《淘宝技术这十年》,说实话书的含金量不高,收获也有限,但看完后信心增强了很多。
1、最快的办法是买一个,这个深有感触,而且也用过;
2、淘宝的架构经历了使用开源-》初级企业级应用-》高级企业级应用-》自定义开源-》贡献开源的过程,而我们公司现在正在经历第三步(数据量比淘宝小多了,但是上亿的数据量还是很常见的);
3、作者是多面手,和我很像,但我在工作中用的语言比他要多几种(c,c++,c#);
4、自己身处的环境很重要,身边有牛人,对自己成长会有很大好处;身边有志同道合的人,才可能成事;
5、大家都苦逼过;
6、牛人也是逼出来的;
7、用钱买最优秀的人,为的是时间;

第二本是《带人的技术》,说实话,这本书唯一打动我的地方就是副标题:不懂带人你就自己做到死。
全书对我最有启示的地方是:在日常生活中,很多新人都让他去自生自灭了,根本就没有一个带教的过程,自己也不是一个合格的Team Leader,没有给组员提供应有的帮助。
还有一个小启示:员工离职的原因之一是“主管评语”。
以后要多和组员聊聊家常,帮他们规划一下发展道路,让公司像家一样。

还有两件事情:

第一件是,我们公司对于年假的处理。
去年下半年,公司发出邮件,正式声明:年假到期作废。同时,员工手册有相矛盾的说明:过期后可以申请换钱。
鉴于前年对于年终奖从入职还是转正开始,公司和员工手册也有相互矛盾的声明,最后用了公司的声明看来,员工手册不可靠,公司想怎么解释就怎么解释。
我觉得让组员把年假全部休完。
这件事情,公司处理是欠妥的。应该的处理方法为:员工调休先用年假,年假要强制休完,如果有特殊情况,公司应该直接将年假换钱给员工。
原因很简单:
A、公司制度自相矛盾,而且没有说明,公司就不会有信用
B、公司不保护员工利益,员工就不会保护公司利益
C、员工没有休完年假,是为了工作在忙,不是为了那点儿钱,还要员工去申请,只能让员工感觉公司很冷漠,自己付出没有意义
D、其他出差申请单,加班申请单,都是很傻的叫法。员工出差和加班,是为了公司付出了自己的时间来完成工作。不是员工要申请“求求你让我加班吧”,“求求你让我出差吧”,“求求你让我把年假换钱吧”,而仅仅是作为项目成本的一个凭证,应该修改为出差单和加班单。

第二件是,潘爷请我们去了海底捞。
海底捞的员工都很热情,服务很积极,给人很阳光的一种感觉。
我们的团队,就是缺少这种凝聚力。
管理是一门艺术啊。

调动大家的积极性,留住要留的人,赶走混日子的人,一家公司才能繁荣昌盛。
现在我们的公司,管理层有些人员不接地气,要留的人留不住,难啊。
问了问,其他同行也差不多,好诡异啊,好的人才都去哪里了呢?