高通量基因测序数据分析服务管理系统外文翻译资料

 2022-10-31 14:45:11

英语原文共 7 页,剩余内容已隐藏,支付完成后下载完整资料


一个基于web的工作流管理系统

Xinfeng Ye

Department of Computer Science

Auckland University

New Zealand

email: xinfengQcs. auckland. ac. nz

摘要

本文描述了一个基于web的出租车公司的工作流管理系统。Web浏览器是系统和用户之间的接口。该系统包含两种类型任务:事务性和非事务性。事务性任务是原子事务。它们可以接受一个或多个数据库。因此,该系统在多个数据库的基础上提供原子操作。

1 介绍

工作流管理系统提供了一个自动化框架来管理内部和企业间的业务流程[5]。本文描述了一个基于web的出租车公司的工作流管理系统。Web浏览器是系统和用户之间的接口。该系统是基于web的,由于web的两个特性:无处不在的自然和扎实的通信基础设施。这些特性允许计算平台的用户使用该系统不需要额外的硬件或专业培训。

该系统有两种类型的任务:事务性和非事务性。事务性任务是原子事务。就是说,在失败面前,事务性任务的更新或者全部成功进行或者没有事务更新。因为一个任务可能访问的资源存储在不同的机器上,为了实现原子性,两阶段提交协议被用在事务性任务上。为了使系统可移植,所有任务都是用java编写。

系统提供方便的途径访问数据库管理系统(DBMSs)。因为一个组织可能有不同的DBMS,为了实现最大的灵活性,通过JDBC API来访问数据库。因此,一种DBMSs,例如Oracle,MS SQL Server,等等可以被嵌入该系统。许多现有的基于web的工作流管理系统[4, 6, 7],不支持在多个数据库上的原子更新。本文中的系统允许事务性任务访问多个数据库。因此,该系统在多个数据库提供原子操作。

2 公司架构

公司在澳大利亚有几个位于主要城市的区域办事处。区域办公室负责调度和收集来自客户的汽车。每个区域办公室持有一个记录(a)汽车信息(例如:汽车是否已经订了或派)和(b)客户预定的数据库。总部监视区域办事处的操作。总部市场部负责分析销售和预订信息。根据分析,市场部介绍了针对不同客户群体的包。

不能自动处理客户的查询转发到总部客户服务中心。这些查询通过Email或HTML格式提交。该中心负责处理这些客户提交的查询。

该公司已与世界上许多旅行代理商合作。旅行代理商被标记为代理如图Figure 1。该代理负责处理客户的预订和收取客户支付的钱币。

3 系统

3.1 系统概述

系统的结构如Figure 2所示。该系统是基于web的。用户使用浏览器来发出请求(如预定和启动任务处理公司内部的业务)。该系统有两种用户。一种是来自公司外部的人,例如:旅游代理商和客户;另一种是公司员工。外部员工只可以访问公司的公共web网址,而公司员工可以访问公司私有的web网址。

总部包含有公司的公共web网址。该web网址持有公司产品的所有信息。因此,代理商和客户可以通过互联网连接浏览产品信息。总部持有个人信息(例如:顾客的年龄,客户的起源国家等)区域办事处持有预定信息(如:车的类型被保留,保留的持续时间等)。预订被用户通过互联网发送到总部。总部处理请求并将预订转发到相关区域办事处。在收到预订,区域办事处更新器数据库。这个模式可能会更有效率,如果每个区域办事处都有自己的web网址。在这种情况下,代理商或客户的预订可以直接发送到相关的区域办事处,而不是再次发送到总部。然而,这种方法要求每个区域办事处维护自己的网站。这对公司来说是额外的花费。当分析总部网站访问模式时,可以看到访问在一天中传播得相当好。这是因为代理商和客户遍布世界各地。由于世界不同地区之间的时间差,对总公司网站的访问不会集中在一定的时间段。因此,总公司的网站不会接近访问瓶颈。因此,总公司重定向消息似乎不会明显降低系统的性能。总部和每个区域办事处都有一个私人网站。私有网站存储用于指定和启动任务的各种HTML表单。当公司员工希望启动任务时,员工从本地网站下载表单。填写表格后,员工提交表格。该表单 触发本地网站上的CGI程序。CGI程序执行员工要求的任务。用于处理这些表单的HTML表单和CGI程序是工作流管理系统的核心。表单和方案在每个区域办事处和总部复制。这允许用户在本地下载表单。结果,提高了访问效率。

任务可能更新系统中多个资源的值。这些资源可能存储在系统中的不同计算机上。由于机器和机器之间的通信链路可能失败,为了保持存储在系统中的信息的一致性,一些任务必须被原子化。也就是说,或者更新被执行或者没有更新被执行。具有原子性属性的任务称为事务任务。其他任务称为非事务性任务。系统处理公司以外的各方(例如旅行社和客户)发送的请求以及公司日常运行中的活动。有公司之外的用户发送的任务可以触发需要公司雇员注意的任务(例如,当客户提交查询时触发的任务),反之亦然。因此,由不同类型的用户发起的任务彼此交互。然而,由于处理由不同用户发起的任务的过程不同,因此下面分别讨论由不同类型的用户发起的任务。

3.2 处理外部用户发起的任务

首先,讨论由旅行社和客户发起的任务。Figure 3显示了控制流程。当用户从公司的公共网站(Figure 3 标记为1)下载HTML表单时,操作开始。用户将表单提交到公司的web服务器(Figure 3 标记为2)。Web服务器上的CGI程序处理用户提交的表单。程序从表单中提取信息。根据提交的表单类型,CGI程序调用以下任务:

  • 如果表单是由潜在客户提交的查询form2,则预期客户的信息存储在总公司的数据库(Figure 3中标记为3)中。 一些查询需要访问区域办事处的数据库(例如关于汽车可用性的查询)。 在这种情况下,查询由总公司转发到区域办事处(Figure 3中标记为4)。
  • 如果表格是预订表格,客户的信息存储在总公司的数据库(Figure 3中标记为3)中,并且预约被转发到相关的区域办公室并被添加到区域办公室的数据库(Figure 3 中标记为4和5)。
  • 如果表格是取消表格,必须删除记录在总部数据库中的客户信息(Figure 3中标记为3),并且必须从相关区域办事处的数据库(Figure 3中标记为4和5)删除预订 )。

用于处理表单的CGI程序是用Java编写的。 这允许系统容易地移植到各种平台。 ODBC是一个标准的低级API,可用于许多当今流行的DBMS(例如Oracle和MS SQL Server)。 Java包括一个包,它将JDBC中的API调用转换为ODBC中的API调用。 因此,具有JDBC API调用的应用程序可用于访问各种各样的DBMS。 由于这个原因,系统中的CGI程序使用在JDBC中提供的API来查询和更新系统中的数据库。

查询表和预订表都包括客户的个人详细信息。 这些信息被收集并存储在总公司的数据库中。营销部门将使用这些数据来分析销售的趋势。

可以自动处理一些查询(例如,检查一种类型的汽车的可用性的查询)。 在这种情况下,查询的结果立即发送回旅行社或客户。 查询结果以HTML表单形式发送给用户。 因此,用户可以使用web浏览器读取结果。 如果查询需要区域办事处参与,则区域办事处进行JDBC API调用以查询数据库(图3中标记为5和7)。 查询的结果被发送回总公司(在图3中标记为8)。 总公司构建一个保存查询结果的HTML表单,并将表单发送给客户。

不能自动处理的查询(例如,客户请求未包括在任何标准包中的项目)触发通知服务中心人员的任务。 工作人员手动处理这些查询。 客户在查询中指定的需求将存储在数据库中。 当公司推出新产品时,检查数据库以查看新产品是否符合预期客户的要求。 通过新产品匹配的客户通过电子邮件或通过邮件了解新产品的介绍。

3.2.1强制原子性

预订和取消任务需要总部和区域办事处的参与。 在这种情况下,总公司将信息转发到相关的地区办事处。 图4所示的客户端/服务器模型用于实现这些操作。

服务器进程(用Java编写)在每个区域办公室的机器上运行。 该过程等待来自总公司的消息。当进行预订或取消时,总部的数据库和相关区域账单被同时更新。 但是,由于计算机崩溃或通信故障,可能无法成功执行数据库的更新。为了确保存储在总公司和区域办公室的数据库中的信息的一致性,更新操作必须作为事务任务来进行。

两阶段提交协议[Z]通常用于实现更新原子性。 然而,协议导致长延迟。 为了减少使用两阶段提交协议的延迟,可以探究任务的语义。 可以看出,预留和取消任务仅涉及将记录插入到数据库中并从数据库中删除记录。 这些任务不影响或依赖于其他任务。 因此,当它们与其他任务混合时,在执行插入和删除操作时没有严格的排序约束。 因此,增强的两阶段提交协议用于保证预留和取消任务的更新原子性。 协议在下面描述并在图4中示出。在图4中,实线箭头表示正常操作,虚线箭头表示在存在故障时发出的操作。

当启动预约或取消任务时,总公司建立与在相关区域办公室的机器中运行的服务器进程的链接。在将更新请求发送到数据库之前,总公司机器建立日志以记录更新 要进行。 日志存储在可靠的存储设备上。 因此,日志总是能够在故障后生存。 然后,更新请求被发送到区域办公室。 总部和区域办公室的流程将使JDBC API调用更新数据库

区域办事处的更新可能不会成功,原因有三:

  1. 总公司和区域办事处之间的通信链路中断。
  2. 区域办事处的机器崩溃。
  3. 由于汽车不可用,不能进行预订。

为了发现问题1和2的发生,在总部运行的过程周期性地轮询在区域办公室运行的过程。 如果在超时期限内没有收到答复,则假定更新不能由区域办公室的机器执行。 在这种情况下,已经由总公司的数据库执行的更新必须撤消。 总部的进程发出JDBC API调用以撤消更新。

如果由于系统故障而无法成功地进行预订,则提交预订的人将被通知并被询问他/她是否想保留预订。 如果保留保留,则当故障被修复时,总公司机器处的处理将使用日志中保存的信息来再次尝试更新数据库。 如果更新成功,将通知客户。 由于系统故障,客户可能决定取消无法成功完成的预订。 在这种情况下,当系统返回正常操作时,总公司机器上的处理将发送中止请求以指示区域办公室中的机器取消在故障发生之前执行的对数据库的更新。 当区域办公室的机器撤销对数据库的更新时,它确认总部。 此时,任务的日志可以删除。

如果区域办公室成功地执行了更新而不被系统故障中断,则向总部发送就绪消息以通知更新的完成。 由于已在总公司和区域办公室的数据库上成功执行更新,任务的日志将被删除。

除了系统故障,如果没有可用的汽车满足客户需求,也可以中止对区域办公室数据库的更新。在区域办公室机器上运行的过程首先检查在预订中请求的汽车的可用性。 除非有汽车满足客户的请求,否则不会更新数据库。 如果没有可用的汽车,则通过中止消息通知总公司。 结果,总公司撤消对总公司数据库的更新。

在总公司的机器也可能崩溃。 如果在任务日志设置之前发生崩溃,则总部和区域办事处的数据库未更新。 这是因为数据库的更新只发生在日志设置之后。 在这种情况下,当系统从故障中恢复时,无需执行任何操作。 如果在日志设置之后发生总公司机器的故障,则根据在发生故障之前是否已经将更新请求发送到数据库,总部和区域办公室的数据库可能(部分地)被更新。 因此,必须首先撤消对数据库的更新。

当总公司的机器从故障中恢复时,它检查任务的日志。 根据日志,总公司机器向其自己的数据库和区域办公室发出指令以撤销在故障发生之前已经执行的更新3.然后,将记录在日志中的更新发送到适当的数据库; 以便可以重新执行更新。

3.3管理公司内部的工作流程

用于管理公司内的工作流的系统的结构如图5所示。该系统是基于web的。 用户通过向系统提交HTML表单来启动任务。 总部和每个地区办事处称为网站。 每个网站都有一个网站,只有该网站上的机器才能访问。 网站存储用于启动任务的各种形式。 用户需要填写一些表格。 表单中包含的信息用作传递给要启动的任务的参数。 例如,发起安排会议的任务的表格应该指定应当与谁安排会议。 每个站点都有一个任务管理器。 经理负责(a)在该站点处理工作流程,以及(b)与其他站点的任务管理器通信和合作。

使用系统涉及的活动如图6所示。首先,用户使用浏览器下载用于指定和触发任务的HTML表单。 填写表单后,用户将表单提交到本地网站。 表单由CGI程序处理。 CGI程序首先向任务管理器注册任务。 管理器创建一个Java线程,负责协调任务对公司资源的访问。 如果任务需要访问其他站点的资源,线程将负责将任务的请求传递给相关站点的任务管理器。 如果需要,任务执行的结果将返回给用户。

这里有一个例子说明了如何在系统中处理任务。 区域办事处A的秘书发起一项任务,为区域办事处A和B的主任安排一次会议。两个主任的分组存储在各自站点的数据库中。 为了找到会议时间,必须检查两位董事的时间表,以找出适合两位董事的时间。 因此,任务需要访问站点A和B处的数据库。当站点A处的任务管理器接收到任务时,它创建处理任务的线程TA。 线程TA联系站点B处的任务管理器。站点B处的任务管理器创建线程TB以处理与TA的交互。 TA和TB在他们的本地站点访问数据库,以找出两个董事可用的时间。 然后,TA和TB更新董事的时间表并发送消息以通知董事和其他有关各方。lt;

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[141656],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。