作者:传智播客Java教研部高级讲师 栾博
云计算、物联网是近几年IT界热议的两个词语。但是初入软件编程的应届毕业生经常将一些基本的概念混淆,从而将目光一直锁定在宽泛的概念层次,不能很好地找到这些热点与我们的学习内容有哪些联系。从而好高骛远,不能踏实地学习具体技术。我认为有必要在这里对这些概念做一个辨析,并以笔者参与的一个2009年的云计算项目HiService做一个简单的介绍。
——题记
云计算仅仅是一个概念
很多朋友说要开始云计算的学习,但是很少人知道云计算的真正意思。其实云计算是一个非常庞大的概念。单独的一两个定义并不能完全解释云计算。归结起来,大概有这样三点:
1.通过分布式计算机集群处理计算及相关数据;
2.使我们脱离“一台本地电脑或者“一台服务器端服务器”,使我们始终认为是在上网而不是在访问某一台计算机。好比我们用水不会认为是只是从一个桶里接水而是整个的自来水服务。这个比喻可能并不恰当,但是当你掌握一定的互联网及软件常识之后,笔者认为应该是可以理解到位的;
3.通过许多具体载体来实现云计算的功能。
第一点:通过分布式计算机集群处理计算及相关数据。这点更符合一般常识下的云计算概念。即我们要做的是将海量数据以及这些数据的计算工作交给分布式集群处理,从而总结出一些更为客观的规律。比如,某互联网公司经过大量数据的计算得出百事可乐选择吴莫愁代言会增加其销量。官方给出的结果也正是如此。去除这个事件的计算结果正确性与真实性不谈,单是从数据增长的趋势来讲,分析数据将成为信息化社会的杀手锏之一。
然而请注意,这些实际上是与大数据等新技术紧密相关的。是云计算这个概念的重要一面 ,并非是全部。
第二点:使我们脱离“一台本地电脑”或者“一台服务器端服务器”,使我们始终认为是在上网而不是在访问某一台计算机。其实这点才是云计算的最初的一个想法。即将网络,服务,计算,软件等这些完全整合到互联网当中,这时,只要有互联网,这些都可以实现。就像上文自来水的比喻一样。它是一种公共资源,而不是单独的”谁”来与我们交易。
这点理解起来可能会比较抽象,完全为概念的理解。如果说第一点为技术的核心之一。那么这第二点才是互联网世界竞争的核心。无论是Oracle、Google、Microsoft还是国内的百度、腾讯、360,他们都在使出浑身解数来争取用户。各种云盘,各种桌面,各种门户都是为云计算的市场争夺做铺垫。好比移动、联通、电信,基于云计算的概念,谁的用户基数大,谁将是下一个赢家。
第三点:通过许多具体载体来实现云计算的功能。如果说前两点与编程初学者离的太远的话,那么第三点则是跟刚刚开始进行开发工作的朋友息息相关的。对于云计算这种相对飘渺的概念而言,最终是要接地气的,即需要有一个具体东西来实现。前边说的物联网,桌面,云盘等都是互联网巨头要琢磨的事情。对于绝大多数身处中小软件公司的朋友来说,只能起来指导方向的作用,而无法参与到游戏当中。那么中小软件企业在处理云计算业务时,大多使用的是具体的云计算的载体,如PaaS,SaaS,IaaS等。而最常用即为SaaS(Soft as a Service)。也就是说,大公司不谈,如果大家在中小公司进行开发的话,可能性最大的便可能是SaaS了。而说到底,这些均为JavaEE项目。一个掌握JavaEE项目的开发人员,只需要在原有技术上增加一个云计算的概念就可以进行云计算SaaS开发,无需掌握更多的新技术。
什么是SaaS?
前边已经说过了,SaaS是一种云计算的载体,是云计算的具体实现形式。
美国国家标准与技术研究院对云计算的定义如下:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。
如果按照定义的描述来看,SaaS无疑是最标准的实现形式。它多为企业服务,是将软件作为一个服务,直接通过互联网提供给消费者。这与传统软件不同的是,传统软件需要为用户直接去机房配置服务器,安装调试软件,之后培训使用,如果出现故障需要到客户的机房中修改BUG或重新实施。SaaS免去了这些麻烦。软件服务直接使用服务提供商的机房,一切维护,运行工作均由服务商承担。传统软件是以项目为单位收取费用,即一个项目的交易额。而SaaS这种模式是软件公司为所有客户提供同样的一个系统,各个用户以租用的形式,即按照每单位时间每使用单位进行租用收费。比如某公司租用(创建)一个系统,该租户下1个用户每年80元,共有20个用户使用。这样就做到了按需进行网络访问,按量收费。
HiService是笔者参加的一个09年的SaaS项目。很遗憾是一个流产的项目。该项目于2012年上线,2014年交易给某理工大学作为了研究生院的研究项目。虽然产品流产,但是其作为国内第一批SaaS的实践者,总结出了非常多可贵的经验。同时也让我们意识到SaaS这种运营模式在国内的适应情况。
我将从IT市场背景,HiService功能及研发初始目标,研发所遇问题,SaaS未来展望4个方面来介绍HiService。
IT市场背景
虽然2006年Google就已经将云计算的概念提出,但是国内开始尝试还是从08、09年开始。国外做的标志性的SaaS是salesforce,但是遇到中国国情,它在国外的运作方式并不是很成功。而在其入股的八百客是比较成功的国内SaaS运营商。当时我们的HiService也是参照以上两个业界前辈进行开发。
SaaS所遵循的规律是长尾理论,这与传统的二八理论相反。以ERP为例,全球前500强的绝大部分公司使用的均为SAP,占领了绝对的软件利润空间。而使用SaaS进行大规模公司的业务支持几乎是不可能的。因为大公司业务复杂,不能使用一套SaaS系统就将所有的业务包含进去。所以SaaS的目标为利润低廉的中小企业,这些企业没有经济能力自己构建ERP,但是其业务相对简单,可以参与低廉的租用方式,与其他公司使用雷同的ERP服务,即我们提供的SaaS。有长尾理论推断,虽然利润低,但是其用户基数大(尾巴长),所以长期利润应该同样可观。
同时期的还有思特奇,友商,用友企业云端等。就是在这样的背景下,我们开始了SaaS的研发。
HiService功能及研发初始目标
HiService可以理解成一套通用的ERP。它将许多公司常用的功能,融入进去,供公司使用。公司的个性业务使用自定义的形式进行动态配置,如果出现不能配置的情况,我们会进行对应的定制化开发。
HiService主要包含这样几个核心功能:动态表单,CRM,SCM,基本报表,工作流配置等。
CRM,SCM来完成一般公司拥有的类似ERP的功能。动态表单完成企业个性化的需求。如北京某有线电视公司的电缆管理。如果想配置电缆设备管理相关的业务使用动态表单都可以配置完成。如果遇到供应商采购,客户关系处理,仓存问题则可以使用已经存在的CRM,SCM来完成相关内容。如果有一些工作安排即任务派发,可使用工作流完成。当然,一些必要的报表也是同样可以进行工作的。
这样,一个HiService系统就可以通过这种一套软件,租用给不同的公司,各公司使用自己的账户配置公司系统,并进行自己公司系统的使用。
这时,我们发现,概念已经转换了,即我软件公司销售的是一种管理公司的服务,并没有卖给公司任何的软件。便实现了软件及服务的目的。
研发所遇问题
如果你是一个在职程序员,很理所应当地会提出,租用的概念如何实现,动态表单如何实现,通用业务能满足企业要求吗这样三个问题。
对于租用的概念,解决起来非常简单,我们在访问数据库权限之前,使用过了LDAP这种树型目录结构来完成租户的概念。之后,通过租户的确认,再到数据库中访问这个租户下所有的用户信息。
对于动态表单,使用了元数据的概念。即所有表单的表名,字段名,字段类型等DDL级别的信息均存储到一些元数据表中。用户在创建动态表单时,根据用户的定义情况,元数据表会创建相应的表单信息。之后,通过拼写SQL语句的形式,完成对一些“拼凑”起来的表单的查询。当时我们使用的是hibernate+spring+struts2。但是由于hibernate的使用技术瓶颈,并没有过多体现ORM的思想。绝大部分仍然使用的是拼写SQL的做法。并且由于要完成动态灵活的表单配置。大量地使用了外键的关联,使得后期有大量的脏数据产生,导致数据错误,系统崩溃。
而通用任务确实无法满足不同客户的要求,于是出现了大量的定制化开发。这直接导致了人力不足。许多模块经过5、6个人的开发,基本无法维护。
核心开发人员蔺皓(坚果云创始人)的离开也是该项目流产的重要原因。
这便是我们遇到的三大核心问题和核心人员流失问题,也是流产的主要技术原因。而流产的业务原因则在于系统信息安全性与公司实力无法保障产生的信用危机。
SaaS未来展望
与HiService不同的是,八百客、思特奇等SaaS厂商顺利地解决了这些问题。对于个性化定制问题,笔者猜测无非是更强大的动态配置、更全面的既有业务模块或者是笨拙地进行手动自定义开发。对于国内的SaaS形式而言并不乐观,处于高不成低不就的态势。如何打破这种僵局确实是一道难题,即使是当今最成功的八百客,也仍然处于摸索阶段。
然而SaaS这种云计算的载体绝对是未来的发展趋势之一,只是时间与国情的博弈。对于广大初入软件开发行业的新手来说,请牢记,云计算只是一个概念,不要被这样一个美好的陷阱所迷倒,其基础仍然是在传统开发之上的。如果没有良好的传统开发的编程思想,那么对于云计算开发而言,也只是空中楼阁,飘渺的建筑。
所以,请朋友们切勿好高骛远,在没有具体的创业方案之前,最稳妥的方式仍然是学好基础知识,从基层开发做起。
最后,祝每位朋友脚踏实地,一步一个脚印地迈向IT界精英的大门。
备注:转载请注明出处,本篇文章内容均为个人观点,如果不准确之处欢迎指正。
原文地址:http://blog.csdn.net/u010339531/article/details/30064095