专注于人工智能、大数据、物联网与新科技动态
(ID:bdnews01)
“服务”在生活中的应用非常广泛。员工为企业提供的劳动是一种服务,企业回报员工的方式就是工资。企业为我们提供工资又称为支付服务,可见,“服务”是一个相对的概念,不能够孤立存在。
软件经历了面向过程、面向对象、面向组件、面向服务的发展过程,最终,软件如同我们日常生活中的水电一样,成为一种服务。下面我们看一下软件从面向过程、面向对象、面向组件、面向服务的发展历程。
面向过程阶段:为了解决在软件危机,人们提出了不同的软件工程方法论。最初,计算机采用汇编等低级语言进行编程,由于这种编程方式效率低,为了解决这一问题,人们提出了面向过程的编程方法,程序以函数形式存在,函数定义中包含输入和输出参数,同时也有函数库的支持。面向过程阶段的典型编程语言有C、Pascal、Fortran等。
面向对象阶段:随着软件项目的规模的日益扩大,支持项目的软件代码规模越来越庞大,面向过程的语言难以满足快速应对需求变化的要求。为了解决这一问题,人们提出了面向对象的编程方法。面向对象即是采用面向现实世界对象的思维来进行需求的分析、设计、编码和测试。例如,现实世界中存在学生张三、李四、王五等,那么在软件设计时也把它抽象成一个学生类,这个抽象的类可以实例化为张三、李四这样的学生。学生的属性包含学生名称、所在年级、归属班级、所选课程等,学生的行为包括入学登记、选课、考试等行为。由于面向对象的方法将现实世界中的对象与软件中的对象对应起来,因此软件的可读性、灵活性方面都有了很大提升,软件不再是那么晦涩难懂的事情,与现实世界的距离更近了。
面向组件阶段:虽然面向对象的分析与设计方法解决了软件可读性和可维护性问题,但是软件的复用还是限制在程序代码一级,为此提出了面向组件的设计方法。组件好比一个机器零件,由于组件是一个独立的软件部件,可以嵌入到外部环境中,通过接口的形式与外界交互,因此可以在机器代码层面实现软件的复用。参与组件规范制定的各方由于利益的不同,逐步形成了以微软公司主导的COM组件模型、太阳系统公司主导的EJB组件模型以及对象管理联盟主导的CORBA组件模型。
面向服务阶段:组件虽然在很大程度上解决了软件的复用性问题,但是组件仍然是基于特定操作系统平台之上的复用,软件组件能力难于在异构平台之间调用,为此,人们提出了软件服务的概念,即以服务形式对软件进行封装并对外提供。软件以服务形式的提供与消费,进一步提高了软件的复用性。
面向服务的架构(SOA),将IT资源以服务的形式进行封装,使得无论是企业内部还是组织之间,都能够通过IT服务进行顺畅的衔接。借助SOA,组织可以像搭积木一样快速的集成来自组织内外的各种服务,快速形成新的业务,对于企业,可以提升快速响应市场的能力。当前,信息系统的所有层面都可以以云服务的形式对外提供,包括基础设施即服务、平台即服务、软件即服务、安全即服务、桌面即服务、网络即服务等。
从面向过程到面向服务的发展路线如下图所示:
图3-1-1从面向过程到面向服务,软件复用性不断提升
在大数据时代,同样需要具备面向服务的思维方式。作为以提高组织决策能力的大数据服务,尽管并非所有大数据服务都像事务型应用那样需要快速的响应能力,大数据服务的响应时间也许是几个小时,甚至可以是几天或者一周,但是随着人们对大数据服务认识的逐步深入,许多大数据服务可以通过数据模型,逐步量化模型参数,使得大数据服务的决策结果逐步接近“准确”,因此,从长远看,企业仍然需要采用面向服务的思维方式,以各种大数据服务的形式将大数据的能力固定下来。
(本文摘自:李福东《大数据运营-服务型企业架构新思维》,经作者授权转发,图片来自网络)
领取专属 10元无门槛券
私享最新 技术干货