公司SOA架构演化

最开始的时候,公司没有采用任何SOA架构。
(虽然用到了COM,但没有用到DCOM)
(用到了SOAP,但仅仅是做接口使用)

2011年,开始用EJB,但只在一个项目使用了EJB。

2012年,突然涌进了大量的接口,于是求救于ESB,成为了下面的样子。
ESB+SOAP
ESB+HL7
ESB+REST

2015年,开始向RPC框架求救。
ESB+Dubbo+(SOAP/REST/HLU)

浏览器插件的演化

浏览器插件,主要使用了两种,一种是微软的ActiveX插件,一种是Java Applet。

说实话,两种插件的引入,主要是为了突破浏览器的本地访问限制。而且,很多控件都是内网使用,是自签名的,你懂的。

ActiveX插件,主要用于了调用WindowsAPI,调用本地EXE等。
这种模式,在2013年-2014年,逐步被CS+BS的模式所替代。

Applet插件,主要用于了多线程下载控制,调用JS等。总体来说,JVM对Applet的沙盒控制还是越来越严格了。
在2013年引入了Java Web Star,但效果也一般。

BS架构的演化

==========================================================
2010年下半年,公司开始BS开发,主要语言为java。以Sevlet+JSP为主,只用了Struts1框架。

2011年,引入三大框架Struts2、Hibernate、Spring。

2012年-2013年,以后台通信业务为主,主要使用了Hibernate、Spring。负载均衡采用了APACHE+TOMCAT的方式。

2013年-2014年,引入了Maven及模块式开发,引入了ESB,开始推行单元测试。Struts2逐步切换到SpringMVC,Hibernate逐步切换到MyBatis,并进行了二次封装。

2015年,引入监控机制,版本发布机制,开始抽离SQL语句。引入Reids+Nginx,引入MongoDB,引入消息中间件。

2016年,引入CI,引入eXistDB。

==========================================================
自从2010年开始使用C#以来,也有不少BS项目是C#开发的。

2010年-2014年,主要采用ASPX+ADO.net的开发模式。

2015年,引入了EntityFramwork+MVC的开发模式

2016年,引入单元测试及CI。

CS架构的演化

最开始,公司的CS开发语言,主要有三类:BCB、VC、C#。SVN及自动更新功能已经完善。

2009年,我们组采用的开发工具为VS2008,UI框架为MFC,没有任何框架,为纯Native的C++开发,通过ODBC直连数据库。

2010年,开发工具切换到VS2010,UI框架直接切换到了WPF,程序功能开始进行切分,将后台功能从前端UI分离,封装为Windows服务,但仍然为纯Native的C++开发,仍然通过ODBC直连数据库。

2011年~2014年,个人转战BS,公司CS期间架构相对稳定。

2015年,开始组件式开发,转型很痛苦。

2015年,开始混用CS及BS,将两层CS架构,转换为CBS架构。

2016年,引入应用中间层,将两层CS架构,转换为三层CS架构,开始面向接口编程。