代理服务是一种复杂的技术,具有很多可配置的移动组件。详细信息如下:
信息
信息是指在服务代理应用程序中调用的基本信息单元。对于服务代理来说,信息的接收总是按照其被发送的顺序进行,并且保证仅发送和接收一次。同时保证信息不丢失。有时发送的信息不能立即被收到。如果遇到这种情况,服务代理保存信息,并尝试以后再次发送。确认书将在信息之前被发送,来确保被他们传输的数据是所需要的。信息传输的最大值非常大,达2GB。
会话
当在服务代理应用程序中发送一个信息时,它需要使用一个会话(或对话)。会话被创建成一个特殊任务,当任务完成时即被删除,事实上,初级信息交流构建在服务代理中,而不是信息中。会话发生在两个端点服务中:开始会话服务(发起者),以及接受会话请求服务(目标)。
队列
在一个服务代理应用程序中,信息被存储在一个队列中直到被处理。在内部,服务代理队列是一种特殊类型的表格,能够通过队列的名称在SELECT语句中查看。然而,你不能在一个队列中发布INSERT, UPDATE, 或DELETE语句。你安置在一个队列的信息支持服务器重启,这保证信息不丢失。
服务
服务程序是从一个队列中读取信息然后处理它们。服务可以是一个ad hoc,一个存储程序,或者一个连接到数据库的不同程序。每个服务必须与一个队列相关联。如前所述,会话发生在服务之间。
会话群
会话群用于使信息处理连续化并使它们相互关联。每个会话是一个会话群的成员。主要观点是一些信息与其它相关,会话群使它们在一起保持一种整齐的方式。事实上,事务处理给予会话群中的所有信息独有的连续访问,直到处理过程结束。
与服务代理应用程序相关有很多其它移动部件。上述这些组成是服务代理游戏的主要玩家。你对它们越熟悉,你越能写出好的服务代理程序。现在让我们研究你如何能够使用服务代理程序来执行商业事务处理。
商业处理
在商业程序中的任务很少以同步方式执行。这些事务的处理经常包含独立的任务,它们可能在同步发生,可能互相交迭,也可能在处理过程中不依赖于其它步骤。这通常是适用于产品制造,特别是客户预订购买的产品,比如汽车。
当有人预订了一款自定义汽车,创建汽车部件的步骤不必彼此依赖。例如,这些部件中很多可以同时建造。然而,在加工过程结束时,他们要装配成汽车。你将遇到:
在过程中的步骤依赖前面的步骤
如果步骤遇到失败,其对于总体项目的成功显得更重要
步骤需要来自购买者的额外投入
除了这些情况,如果潜在买家撤销了订单,按照过程处理逻辑有必要偿还。你可能熟悉具有这些特点的一种类型的商业过程。
当类似的过程在数据库中执行时,通常执行一系列数据库处理事务,并且每个处理过程执行一个独立的原子水平任务。当一个数据库处理过程前进或者返回时,这些一系列相关的商业事务通常不能用这样的一种方式完成。它们必须有计划的设计,以便如果失败,逻辑用于使商业处理事务重新返回。整个商业过程很难执行,由于这些独立的过程实际上彼此联系,包含一个整体的目标。这是一个队列体系结构的真正价值所在,比如服务代理。
在一个服务代理应用程序中,并行的处理过程是可能的,并且经常需要。你可以根据你的商业过程来使你的应用程序服从这种模式。在我们的客户汽车例子中,你能够用这样的方式设计你的程序,以便遵照底盘建筑模式,以及同时遵照发动机建筑模式。最好的是,使用会话群使这些独立的部件加工过程彼此联系。