发表于: 2016-09-21 09:32:16
2 2476
今天完成的事情:学习了关于SOA和SCA的东西。关于SCA的前世今生在这里分享一下:
今天丁杰师兄,给java组分享了SCA的思想。之前我对任务九也开展了一部分,由于网上的资料比较少,加上没有在实战中真正的体会他价值所在,很多东西还是很陌生,通过今天的讲解,和大家的交流,更深层次的体会到其中的魅力。下面让我们一起走进SCA的世界。
SCA到底是什么东西,可能只有当初设计这种思想的人以及后来真正体会到他的好处的人才更有说服力。闲话少叙,回归主题。在了解SCA之前,必须要提一下SOA,面向服务的体系结构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。
SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML(标准通用标记语言的子集)/Web Service技术之后的自然延伸。
SOA将能够帮助软件工程师们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。
这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。松耦合系统的好处有两点,一点是它的灵活性,另一点是,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。与之相反,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常脆弱。
对松耦合的系统的需要来源于业务应用程序需要根据业务的需要变得更加灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质。我们称能够灵活地适应环境变化的业务为按需(On demand)业务,在按需业务中,一旦需要,就可以对完成或执行任务的方式进行必要的更改。
这样长篇的深谈阔论可能让你存在20多年的人生观和价值观有些动摇了,那么问题来了,SOA到底能为我们带来什么好处,我可以用面向服务的体系结构做什么?
对 SOA 的需要来源于需要使业务 IT 系统变得更加灵活,以适应业务中的改变。通过允许强定义的关系和依然灵活的特定实现,IT 系统既可以利用现有系统的功能,又可以准备在以后做一些改变来满足它们之间交互的需要。
下面举一个具体的例子。一个服装零售组织拥有 500 家国际连锁店,它们常常需要更改设计来赶上时尚的潮流。这可能意味着不仅需要更改样式和颜色,甚至还可能需要更换布料、制造商和可交付的产品。如果零售商和制造商之间的系统不兼容,那么从一个供应商到另一个供应商的更换可能就是一个非常复杂的软件流程。通过利用 WSDL 接口在操作方面的灵活性,每个公司都可以将它们的现有系统保持现状,而仅仅匹配 WSDL 接口并制订新的服务级协定,这样就不必完全重构它们的软件系统了。这是业务的水平改变,也就是说,它们改变的是合作伙伴,而所有的业务操作基本上都保持不变。这里,业务接口可以作少许改变,而内部操作却不需要改变,之所以这样做,仅仅是为了能够与外部合作伙伴一起工作。
另一种形式是内部改变,在这种改变中,零售组织决定它还将把连锁零售商店内的一些地方出租给专卖流行衣服的小商店,这可以看作是采用店中店(store-in-store)的业务模型。这里,虽然公司的大多数业务操作都保持不变,但是它们需要新的内部软件来处理这样的出租安排。尽管在内部软件系统可以承受全面的检修,但是它们需要在这样做的同时不会对与现有的供应商系统的交互产生大的影响。在这种情况下,SOA 模型保持原封不动,而内部实现却发生了变化。虽然可以将新的方面添加到 SOA 模型中来加入新的出租安排的职责,但是正常的零售管理系统继续如往常一样。
为了延续内部改变的观念,IT 经理可能会发现,软件的新配置还可以以另外的一种方式加以使用,比如出租粘贴海报的地方以供广告之用。这里,新的业务提议是通过在新的设计中重用灵活的 SOA 模型得出的。这是来自 SOA 模型的新成果,并且还是一个新的机会,而这样的新机会在以前可能是不会有的。
SCA服务组件模型,中提出了一些新的概念,比如服务组件,模块,共享库,导入和导出等。下面将分别解释这些服务组件中的基本概念。服务组件是SCA中的基本组成元素和基本构建单位,也是我们具体实现业务逻辑的地方。
上图为一个组合构件的装配示例图
组件A引用了组件B,这种关系称为连接,二者合起来为组合构件。其中组件A的服务接口被提升为组合构件的服务,组件B的引用提升为组合构件的引用,组件A有一个属性(黄色),组件B有两个属性,组件A的属性被提升为组合构件的属性。
通过以上的分析和总结,得出的结论如下:
SOA:属于面向服务的体系结构-----是一个组件模型------可以跨平台,跨操作系统,跨语言,跨传输协议------SCA架构思想是SOA的标注之一------SCA能自由绑定各种传输协议。
遇到的问题:原型还不太清晰,接口还不怎么会写,再给我一天的时间。我搞定它。。。
收获:(通过今天的学习,学到了什么知识)
评论