浅析互联网软件发展

最近常常想一个问题。未来软件发展方向是什么。

我们都知道,最开始的计算机是单机的。有了多人协作需求才出现了局域网,然后最早的局域网成了现在的互联网,再然后呢?

现在软件领域的3个热点:云计算、大数据、移动互联。你们是怎么看的,我在此发表下个人看法。

1、云计算

    云计算相信大家都已经不陌生了,但即使这么多年过去了,我依然不能很透彻的理解,什么事云计算。

    目前广为接受的是美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。 (摘至:百度百科)。

    有时我觉得云计算更像众筹,一群基础服务商合在一起,组成庞大的基础服务提供群。然后租凭给所有需要的用户。

    有时我觉得云计算应该是挖掘整个网络中所有接入电脑的剩余价值,把多余的没有用到的计算量给别人用,然后找别人要你所不具备或者不足的。最通俗的,就是cpu计算;个人电脑通常cpu过剩,那么何不把多余的出租给别人,而服务器,常常遇到性能瓶颈,为什么不让更多的电脑帮它分担。纵然有p2p的出现,不过这还远远不过,网络流量只是其中的很小一部分而已。神经网络是每个神经元都具备一定的反射弧处理能力,只有他处理不了的才会给上级,这样才能最大可能利用整个网络资源。

    当然,还有很多的想法,在此不再一一描述了

2、大数据

    大数据(big data),或称巨量资料,指的是所涉及的资料量规模巨大到无法通过目前主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。(摘至:百度百科)

    个人自认为对大数据接触的不多,大多数还是通过看资料和学习别人的经验。因为本人现成处理的数据最大量一天只有几个G,最大几十个而已。这远远不算大数据。

    个人觉得,c/s到b/s的转变已经决定了大数据的必然。大量数据被统一存放,这必然造成服务存放着海量数据,给分析和攥取带来前所未有的挑战。这是事务发展到一定阶段的必然产物。

    就个人观点而言,大数据是专家玩的东西。受限于当前硬件设备条件,不得不使用大量的软件手段去解决性能问题。但是大量的算法,大量的分布式,大量集成。大量的节点交互已经不是普通正常人的大脑能够理清的了,这必须借助计算机可信计算。整个性能取决于最初的架构和设计思想。个人认为,不读个数学系博士,不再大数据问题上摸爬滚打数十年是不可能做到设计出真正好用适用的架构的。就我而言,学会如何使用当前的主流大数据分析技术;了解分布式和大数据主流思想就行了。当然,这取决于个人的职业规划,如果你是想把一个东西无限的深化下去;那么大数据是当下一个很好的选择。我个人还是比较喜欢玩结构,不想局限在一个领域。

3、移动互联网

    这是我最看好的方向。

    大家都知道c/s、b/s。那么大家是否觉得,移动互联网是这两种结构之外的第三种结构呢?

    无论是c/s、b/s,其核心都是service。我们会把大量工作放在服务器上,在这个阶段,客户端能够很容易的和服务的通讯,但是如果服务端需要主动向客户端通讯时,我们通常用的最多的技术是客户端轮询(当然个人觉得,这更多是受限ipv4的地址数和大量局域内网)。但这并不高效,而且不科学。而个人移动互联网的核心应该是双向通讯,互为服务端、客户端。

    随着移动互联网的兴起,很多时候都需要服务端主动请求客户端,消息通知、指令下达。长连接被再次提到了,基于Http的comet技术在被越来越多的人使用,html5的提出的WebSocket技术最近也在阿里云的网络上出现了。当然还有很多很多的网站已经在使用这些技术了。。。但是移动互联网的长连接呢?

    apple领域有一套自己完整的推送机制,具体使用了什么技术实现这里不再深究,网上有很多相关资料。

    android领域,google虽然提供了一套推送机制,不过受限于内地网络,这套机制在大陆是无法正常使用的。那么现在的android app有是怎样实现消息推送的呢?是不是通常都会用第三方的成熟方案,如百度云推送、极光等。。。其实有的时候自己实现也没有那么复杂,就java语音,想象一下nio,在对客户机来个hash分布。是不是socket长连接也不是什么难以做到的事情

 

    这些都是个人的一下见解和心得。我觉得无论是云计算还是大数据都只是以前c/s、b/s发展到一定阶段的产物。而只有移动互联网是一套新的理念。核心不再只是服务器,不再局限于客户端主动请求服务器。而是让所有的客户机和服务器互为客户端、服务端。平等、双向交流才是他的核心。只有一些统一的资源调配需要服务端统一去处理,再做些安全备份;把搜集到的数据交给大数据去分析,把云计算提供的基础服务做一些统一代理(甚至可以直接每个客户端有直接请求基础服务)。。。是不是觉得服务变成了一个调度器和一个大数据仓库了。这样不是很好吗?这样才有更多的性能和精力去玩大数据分析,去玩增值服务。

 

    移动互联网是连接用户的桥梁,让人与人、想法与实现变得无限接近。只有做好了这个才能留住用户。。。腾讯不就是一直这样玩的吗?

 

回过头来,未来软件的方向是什么?

1、移动互联网取代互联网,作为新的网络桥梁。

2、服务端多级划分更加明朗:基础服务提供商、数据分析提供商、基础开发框架提供商、基础服务平台提供商、行业产品服务商、定制产品服务商、增值业务服务商

就个人发展来看,精通一项技术,了解整个技术动态,熟悉主流技术。

就软件发展来看,要发展核心是要留得住用户,那么要学会站在用户的角度思考问题。产品专家会更多的出在深入理解行业并且了解软件的开发人群里

 

个人粗浅看法,仅供吐槽

 

你可能感兴趣的:(互联网,大数据,云计算,移动互联网,C/S,B/S)