技术开发 频道

面向构件的SOA架构设

 
    构件技术与构件化
 

    构件技术与构件化的区别在于,构件化的关注点不在于构件本身的技术实现,而在于如何把应用系统分解成稳定、灵活、可重用的构件,在于如何利用已有的构件库组装出随需应变的应用软件,从一个面向构件的环境中去分析应用,如何做出灵活、重用的构件来思考。但是,构件技术是构件化的基础,它为构件的工厂化生产提供技术保障。传统的软件方法学是从面向机器、面向数据、面向过程、面向功能、面向数据流等反映问题的本质;而构件技术关注的是在构件已经可用的情况下,在更高层次上的组装和复用。面向构件的软件设计方法把装配和制造分离,构件运行时负责提供标准接口和框架,负责软件装配,而构件负责软件的制造,使软件开发变成构件的组装。 

    接下来,我们将开始介绍面向服务(SOA)的设计。 

    面向服务设计 

    服务代表一段完整的业务单元,并且可以根据特定用户的需求组织成为更大和新的服务。服务可以由一个或多个构件组合而成。服务开发者必须考虑构件的粒度,以及构件的流程和组装,这样他们在改变服务的实现时,可以尽可能少的影响其它构件、应用和服务。而服务的设计者则更关心选择合适的服务,并将它们以可管理的方式组织,并最终将它们组装为完整的业务流程。 

    “面向服务”表示一种分离系统关注面的方法,其实质是将一个比较大的问题分解成一系列较小的、互相关联的子问题,从而降低问题的复杂度,使得我们能够较从容地分析、解决和管理它。传统的面向对象的设计方法其实也是一种分离系统关注面的方法,只不过它是在对象层面来分离关注面,相对业务逻辑较远,而面向服务则是在服务层面来分离关注面,直接关注的是业务逻辑,从而使面向服务能够(至少在理论上)更好地满足业务需求。 

    其实,就现实世界而言,到处都是面向服务的业务。一座城市向居住或来到这个城市的人提供各种各样的服务。这些服务分别由不同的服务提供者提供,这些服务提供者包括政府部门、企业、社会团体和自由职业者等。人们早已习惯为享受某种服务而参与某种业务,商业机构也早已习惯为发展某项业务而向公众或其他团体提供某种服务。可以说,服务和业务是有着某种天然联系的,具有很强的业务亲和力和包容度。面向服务的架构就是要通过将信息技术直接作用于服务的实现,从而实现信息技术与实际业务的优质对接。 
0
相关文章