图 1 个人金融应用程序和服务通常由独立的团队分别负责同时开发这两个独立的部分。一个团队负责开发 SOA-SC——对用户而言的应用程序。另一个团队负责开发 SOA-SP,或许存在多个负责此项任务的团队,而每个团队负责开发若干服务。虽然可能已经实现了一些提供程序,但可能仍然需要专门为此应用程序实现其他的提供程序。而这给我们提出了第一个问题:假如某些提供程序尚未实现,协调程序开发团队如何开发其负责的应用程序部分呢?这两个团队——开发服务的团队和开发协调程序的团队——需要使其活动同步。他们必须就服务 API 达成一致;服务 API 可以是简单的 java™ 接口或 Java Message Service (JMS) 消息格式和队列名称,但必须就此达成一致。但仅就接口达成一致是不够的;服务具有行为,因此团队必须就服务的行为达成一致。服务并不会始终成功地工作,因此团队还必须就错误情况和相应的响应达成一致。在理想的情况下,多个团队可以非常轻易地协调工作,最初的决策可以稍后进行修改,而所造成的影响却非常小,并且评估工作非常灵活,此外还会不断地进行改进。在现实世界中,团队之间经常存在协作问题,往往较早地(甚至不成熟地)做出不可更改的决策,而且评估方法是固定的。这样就带来了第二个问题:协调程序和提供程序团队如何较早而可靠地就服务如何工作达成一致?经常通过多个提供程序来实现服务冗余。这样就可以在提供程序之间提供负载平衡和故障转移功能,从而使得协调程序的服务体验更为一致和可靠。冗余可以通过多次部署同一服务实现来实现。不过,当不同的供给商部署了不同的提供程序时,服务几乎肯定具有不同的实现。尽管如此,对于协调程序,所有提供程序的全部实现的工作方式都必须一致,以便协调程序可以采用可交换的方式来调用提供程序。服务的不同实现(非凡是来自不同供给商的不同实现)是由不同的团队开发的,而这些团队必须加以协调,以确保开发的是相同的服务。因此,第三个问题就是:多个提供程序团队如何实现相同的服务,以确保他们的实现具有兼容性?以上是使用 SOA 进行开发的主要问题。必须实现尚未开发的服务来开发协调程序,协调程序团队和提供程序团队必须就服务如何工作达成一致,而且,多个提供程序团队也必须就服务如何工作达成一致。假如没有良好的流程,这就会导致一片混乱,假如不对其进行检查,将会导致 SOA 项目失败。SOA 开发流程下面给出用于对协调程序和提供程序团队进行同步的简单流程,以帮助确保可重用服务以及使用这些服务的应用程序能够成功地进行开发:
图 1 个人金融应用程序和服务通常由独立的团队分别负责同时开发这两个独立的部分。一个团队负责开发 SOA-SC——对用户而言的应用程序。另一个团队负责开发 SOA-SP,或许存在多个负责此项任务的团队,而每个团队负责开发若干服务。虽然可能已经实现了一些提供程序,但可能仍然需要专门为此应用程序实现其他的提供程序。而这给我们提出了第一个问题:假如某些提供程序尚未实现,协调程序开发团队如何开发其负责的应用程序部分呢?这两个团队——开发服务的团队和开发协调程序的团队——需要使其活动同步。他们必须就服务 API 达成一致;服务 API 可以是简单的 Java™ 接口或 Java Message Service (JMS) 消息格式和队列名称,但必须就此达成一致。但仅就接口达成一致是不够的;服务具有行为,因此团队必须就服务的行为达成一致。服务并不会始终成功地工作,因此团队还必须就错误情况和相应的响应达成一致。在理想的情况下,多个团队可以非常轻易地协调工作,最初的决策可以稍后进行修改,而所造成的影响却非常小,并且评估工作非常灵活,此外还会不断地进行改进。在现实世界中,团队之间经常存在协作问题,往往较早地(甚至不成熟地)做出不可更改的决策,而且评估方法是固定的。这样就带来了第二个问题:协调程序和提供程序团队如何较早而可靠地就服务如何工作达成一致?经常通过多个提供程序来实现服务冗余。这样就可以在提供程序之间提供负载平衡和故障转移功能,从而使得协调程序的服务体验更为一致和可靠。冗余可以通过多次部署同一服务实现来实现。不过,当不同的供给商部署了不同的提供程序时,服务几乎肯定具有不同的实现。尽管如此,对于协调程序,所有提供程序的全部实现的工作方式都必须一致,以便协调程序可以采用可交换的方式来调用提供程序。服务的不同实现(非凡是来自不同供给商的不同实现)是由不同的团队开发的,而这些团队必须加以协调,以确保开发的是相同的服务。因此,第三个问题就是:多个提供程序团队如何实现相同的服务,以确保他们的实现具有兼容性?以上是使用 SOA 进行开发的主要问题。必须实现尚未开发的服务来开发协调程序,协调程序团队和提供程序团队必须就服务如何工作达成一致,而且,多个提供程序团队也必须就服务如何工作达成一致。假如没有良好的流程,这就会导致一片混乱,假如不对其进行检查,将会导致 SOA 项目失败。SOA 开发流程下面给出用于对协调程序和提供程序团队进行同步的简单流程,以帮助确保可重用服务以及使用这些服务的应用程序能够成功地进行开发:
图 1 个人金融应用程序和服务通常由独立的团队分别负责同时开发这两个独立的部分。一个团队负责开发 SOA-SC——对用户而言的应用程序。另一个团队负责开发 SOA-SP,或许存在多个负责此项任务的团队,而每个团队负责开发若干服务。虽然可能已经实现了一些提供程序,但可能仍然需要专门为此应用程序实现其他的提供程序。而这给我们提出了第一个问题:假如某些提供程序尚未实现,协调程序开发团队如何开发其负责的应用程序部分呢?这两个团队——开发服务的团队和开发协调程序的团队——需要使其活动同步。他们必须就服务 API 达成一致;服务 API 可以是简单的 Java™ 接口或 Java Message Service (JMS) 消息格式和队列名称,但必须就此达成一致。但仅就接口达成一致是不够的;服务具有行为,因此团队必须就服务的行为达成一致。服务并不会始终成功地工作,因此团队还必须就错误情况和相应的响应达成一致。在理想的情况下,多个团队可以非常轻易地协调工作,最初的决策可以稍后进行修改,而所造成的影响却非常小,并且评估工作非常灵活,此外还会不断地进行改进。在现实世界中,团队之间经常存在协作问题,往往较早地(甚至不成熟地)做出不可更改的决策,而且评估方法是固定的。这样就带来了第二个问题:协调程序和提供程序团队如何较早而可靠地就服务如何工作达成一致?经常通过多个提供程序来实现服务冗余。这样就可以在提供程序之间提供负载平衡和故障转移功能,从而使得协调程序的服务体验更为一致和可靠。冗余可以通过多次部署同一服务实现来实现。不过,当不同的供给商部署了不同的提供程序时,服务几乎肯定具有不同的实现。尽管如此,对于协调程序,所有提供程序的全部实现的工作方式都必须一致,以便协调程序可以采用可交换的方式来调用提供程序。服务的不同实现(非凡是来自不同供给商的不同实现)是由不同的团队开发的,而这些团队必须加以协调,以确保开发的是相同的服务。因此,第三个问题就是:多个提供程序团队如何实现相同的服务,以确保他们的实现具有兼容性?以上是使用 SOA 进行开发的主要问题。必须实现尚未开发的服务来开发协调程序,协调程序团队和提供程序团队必须就服务如何工作达成一致,而且,多个提供程序团队也必须就服务如何工作达成一致。假如没有良好的流程,这就会导致一片混乱,假如不对其进行检查,将会导致 SOA 项目失败。SOA 开发流程下面给出用于对协调程序和提供程序团队进行同步的简单流程,以帮助确保可重用服务以及使用这些服务的应用程序能够成功地进行开发:新闻热点
疑难解答