• [置顶] 某大型银行深化系统技术方案之十三:服务层之服务接口模式


    传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229

    服务层

            服务层主要体现了SOA体系下的组件复用和业务复用机制。服务的边界定义决定于粒度和耦合度。
            粒度表示的是一个服务的大小,它可以理解为服务操作的范围,粗粒度的服务,操作的内容广而且杂;细粒度的服务,操作的内容细而且简单。粗粒度的服务设计,可以减小服务之间的耦合性,但付出的代价就是增加服务的复杂性,服务具备了太多的功能,增加了设计的复杂性和维护的难度;细粒度的服务,可以让服务的实现变得简单,但这样会增加服务的数量,服务过细过多,这样必然有一些服务需要组合才能实现一定的功能,那样就增加了服务之间的耦合度,只要其中一个服务发生了变动,势必牵一发而动全身。

            耦合代表的是服务与服务之间的关系。SOA的初衷就是为了降低系统各个部分之间的耦合性,使得服务可以重用。但很显然,耦合性是受到服务粒度很大的影响,而且从某种程度上讲,粒度的选择就决定了系统内部的耦合性。

    服务接口模式
            服务接口主要包括WebAPI、WebService、EJB、RMI等。
    一、WebAPI
            Web API简单来说,便是透过开放的因特网传输协议,将提供的服务内容以标准的界面来定义,以便进行点对点之间的服务整合。由于运行的平台是在Web架构之上,故常见的技术像是HTTP中的GET/POST、SOAP/HTTP, XML/RPC等,都是主要的组成架构,所定义的数据交换大都是属应用层以上。由于HTTP为企业对外及对内均会开放的传输协议,业已发展成熟,故以HTTP为基础的Web API也降低了应用服务在整合上的门坎。
    系统中,Mashup技术机制下,调用每个录入、扫描等业务服务组件时,访问内容都包括了服务提供的页面,因此,在这种情况下采用的糅合技术调用。主要形式为REST,即建立创建、读取、更新和删除(create, read, update, and delete,CRUD)操作,对于HTTP的POST、GET、PUT、DELETE方式,主要用于影像传输、录入等服务接口上。
    二、WebService
            Web Service主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。 Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL等,所以Web Service可以在任何支持这些标准的环境(Windows,Linux)中使用。 SOAP协议(Simple Object Access Protocal,简单对象访问协议),它是一个用于分散和分布式环境下网络信息交换的基于XML的通讯协议。在此协议下,软件组件或应用程序能够通过标准的HTTP协议进行通讯。它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问。
    系统中,对于外记账等接口将采用WebService的方式来调用。
    三、EJB
            EJB提供了一个标准的分布的、基于 OO 的组件架构屏蔽复杂的系统级功能。EJB的上层的分布式应用程序是基于对象组件模型的,低层的事务服务用了API技术。EJB技术定义了一组可重用的组件:Enterprise Beans,从而简化了用JAVA语言编写的企业应用系统的开发,配置,和执行。你可以利用这些组件,象搭积木一样的建立你的分布式应用程序。
    系统中,流程引擎调度在监控等方面将提供EJB的调用方式。
    四、RMI
            RMI是J2EE的网络机制,允许你编写分布式对象,使得对象的通信范围能够在内存中,跨Java虚拟机,跨物理设备。RMI应用程序通常包括两个独立的程序:服务器程序和客户机程序。服务器应用程序将创建多个远程对象,使这些远程对象能够被引用,然后等待客户机调用这些远程对象的方法。而客户机程序则从服务器中得到一个或多个远程对象的引用,然后调用远程对象的方法。RMI为服务器和客户机进行通信和信息传递提供了一种机制。
    系统中,为保证实时性和并发性等性能需求,在队列抓取器服务中将采用RMI的调用机制。

  • 相关阅读:
    CAAnimation动画相关文章
    [源代码]List的增加与删除
    [原创]c# 类中 Collection 字段初始化的特殊之处
    c# 多数值区间判断是否有重叠
    将M个客服随机分配给N个客户
    c# IList.ToList()后更改元素值会不会影响原列表的值
    java单元测试之Mock静态方法
    java的Spring学习2- junit和mock
    java mybatis学习二
    java8 方法引用与lambda
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3155380.html
Copyright © 2020-2023  润新知