现在的位置: 首页 > 综合 > 正文

JBoss 系列七十七: 2014跨年篇 – 年终总结随笔,企业应用软件的来年展望

2013年01月14日 ⁄ 综合 ⁄ 共 3027字 ⁄ 字号 评论关闭
文章目录

写在开篇

人生就是一场编码(https://github.com/kylinsoong)与码字(http://blog.csdn.net/kylinsoong),套用CSDN的一句话,不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累,2014我将继续坚持不懈地积累!“子曰:无欲速,无见小利;欲速则不达,见小利则大事不成”。这是论语子路篇孔子告诫年轻人做事应该掌握渐变的道理,凡事应用从容稳定的心态去面对,切忌不能急功近利,成功是一种持续不断努力的过程,学而时习之,不亦说乎!2013我的主旋律的码字,码字10万,It's
awesome, 好多个周末,但最后没能出版,失败是成功之母,或许我过于欲速,应切记孔老夫子的话欲速则不达,我还需要继续积累,继续积累!我喜欢的一句英文,Every dog has its day,让我过一种从容人生,在努力进取中期待生命鲜花怒放的时刻。

互联网淘宝交付平台

我所从事的行业研究的技术是传统企业应用行业,但互联网企业技术引领潮流,这个毋庸置疑。说到国内互联网离不开淘宝,淘宝交付平台双十一高并发访问,350亿元RMB交易额,等等这些好多人在津津乐道,我认为它与传统企业应用有些许渊源。淘宝架构师Ben
Wang
 来自 JBoss(淘宝平台也使用JBoss), Ben Wang 是JBossCache的核心开发者,他与JGroups(JBoss 集群核心框架)作者Bela Ban 曾同在JBossCache团队,JBossCache是分布式集群缓存,新一代产品叫Infinispan,互联网高并发的的原因是将事务放在缓存中(企业应用不同),所以我认为淘宝交付平台与JBoss及JBossCache是有渊源的,以后有机会我可以去研究研究淘宝的技术。在年终总结中说互联网淘宝交付平台技术的原因是过去一年我码的字与这些相关,主要涉及数据网格,分布式缓存,No-SQL数据库,Key/Value数据存储,大家可以到我的博客查看究竟,我给出一些快速连接:

企业应用软件的来年展望

本部分转自WildFly官方博客,出自JBoss核心架构师Jeff Zhang之笔,我将原文转载如下。Jeff主要围绕传统企业应用软件和互联网相关的竞争和融合来进行企业应用软件的来年展望,内容如下:

  • 首先是强烈的对比,传统企业软件的不景气,相对照的是互联网公司的欣欣向荣。软件越来越多的从原来套装销售产品转变为提供在线服务。

  • 软件的技术领导者,从传统的大型软件厂商分出一大部分转到互联网公司,并且开放和开源成为技术推进的强劲动力。这里有三个大类的代表,NoSQL, Hadoop, OpenStack。

  • Google技术依然遥遥领先,但Twitter, Linkedin, Netflix在Java的投入很大,使得JVM/Java成为互联网公司有力的基础平台。传统企业软件依然是Java和dotNET的领地。

  • 多种语言混合编程成为共识,除了Java, C/C++为各大软件公司的基础语言外,Javascript作为浏览器的解释语言和Nodejs的流行而广泛接纳,DSL是业务描述的领域语言,除了Java/dotNET擅长此道外,Ruby/Lua也有适合场景。Python逐渐成为系统脚本的首选。ObjC因为Mac/IOS持续成功而继续流行。Scala等基于JVM的语言也有很强的生命力。Go需要更多的杀手级应用和大型公司的支持。

  • 分布式和异步化是主要潮流,和多核能力提升和海量用户需求有关,应用的可扩展性变得非常重要。所以编程思路,模式等都需要发生变化,过去习以为常的同步调用式思想需要进行转变。所有的主流语言和框架,中间件都开始适应这个改变。C#5.0加入async,await,Java的Future/ForkJoin,JavaEE的各种异步方法的加入。响应式框架层出不断,Java为例就有Finagle,Akka,RxJava,Vertx等优秀开源项目。

  • 软件开发的四大关键基础技术,RPC,消息,数据库和缓存依然是最重要的。RPC可以分为两大类,基于HTTP协议的,目前以Rest为主来访问互联网上的资源,幂等性无状态是扩展能力的保证,Webservice在业务集成方面还有用武之地;另一大类是组织内部采用的高效二进制RPC,RPC的好处是和面向对象思维一致,减少开发者心智负担和维护成本。消息是系统的动力所在,也可以减少耦合性和提高扩展性,多线程争用资源产生的死锁,阻塞和事务陷阱,很多可以用队列和消息来化解。消息和RPC在软件设计时结合使用。同样的,数据库和缓存也是一对技术选择,按照持久化能力和数据结构表现可以划分为不同种类的数据库。关系数据库作为最成熟的方案和对事务能力的最好支持,依然占据主导地位。文档,KV,图等类别的NoSQL/NewSQL数据库,会有适合的应用场景。分布式内存数据库/DataGrid这个类别会有进一步的发展,根本原因是多核化,大内存,分布式,异步化带来软件设计潜移默化的变革,原来的面向对象一统到现在需要适应函数式编程。软件设计需要向管理学学习很多东西。

  • 移动应用需要快速跟进。移动设备的普及潮水般来临,手机等移动终端已经成为个人能力的外延,帮助查询信息,保存知识,提升生活质量。手机让每个人都用上电脑和互联网成为现实,对应的PC上面的浏览器,类似微信的可以让人和人以及设备等联接的沟通软件成为移动端的第一软件。移动应用可以做到随时随地的和感兴趣的人和事物进行沟通,这个是企业应用软件的破局所在。过去的企业软件绝大多数是传统销售忽悠企业关键人物,部署在企业里面的,大多华而不实的功能,傻大黑粗的界面,根本没有考虑过软件使用者的感受。没有使用者发自内心的喜爱,这样的软件最后的结局就是摆设。软件是人用出来的,企业软件成功的关键有两个方面,第一要对企业商业有价值,第二也是更重要的是要对使用的员工也有价值。传统PC冷冰冰的界面让员工只是一个信息录入者罢了,如今的移动设备可以做到更有意思,一个照片,一句话,一个定位,辅助网络计算能力,基本的数据采集就完成了。我相信企业软件会从和消费者贴近的应用处开始,比如CRM等,逐步改变设计基因,立足于帮助一线员工,让他们更好的利用软件和互联网进行工作,高效并快乐。

  • 软件虚拟化会更加深入人心。企业应该去尝试采用虚拟化计算平台,更好的规划和统一使用计算能力,私有公有云会一起成为移动应用的后台支持。Linux+Openstack(开源Iaas方案代表)会成为这方面的最佳选择,中大型企业可以进一步定制自己的中间件平台或者使用PAAS平台来开发部署自己的应用。

  • 软件平台监控管理,互联网运维,企业软件的图表报表等其实都可以归结为管理运营能力的体现,通过技术手段来掌握业务运行的情况。通用的信息收集,内容整理,数据挖掘,决策分析等技术手段已经相当的完善,大数据很火也是互联网海量用户和应用的增长和盈利模式的转变带来的必然。无论是在互联网做平台还是做服务,这些功能都是及其重要的,企业软件可以从中学习。说到底就是围绕企业业务,利用技术手段来更好的管理业务数据,处理流程,服务用户和帮助员工更好的工作。

抱歉!评论已关闭.