专利名称:应用软件的开发平台、生成方法及运行平台、运行方法
技术领域:
本发明涉及计算机软件技术领域,特别涉及一种应用软件的开发平台、生成方法及运行平台、运行方法。
背景技术:
目前我国商业银行的各种业务发展迅速,尤其是为了辅助柜面处理繁重的现金流通和各种中间代理业务,自助设备的发展尤为显著。
自助设备包括由银行提供的各种由客户自行操作即可完成银行业务交易的自动柜员机,其具体包括自动取款机、自动存款机和现金循环机等。自助设备上运行的应用程序提供了人机交互的界面。随着银行各种业务的展开和升级,需要对自助设备应用程序进行调整,以支持和完善自助交易的各项功能。能够对自助设备应用程序进行怎样的调整,与该应用程序的开发方法和平台有着紧密的联系。
现有的自助设备应用程序是由各个自助设备厂商提供的。各厂商在开发自助设备应用程序时,往往是通过直接编写C代码的方式,将该设备支持的应用程序开发成为一个单一的业务流程,其运行机制也是针对该单一的业务流程。
这样,一方面,当银行业务人员执行维护流程的操作时或当银行网点人员执行监控流程的操作时,不能同时运行其它业务流程;另一方面,对自助设备应用程序进行调整时,尽管只是需要对流程中的某一操作进行微小的调整,都需要对应用程序进行大量的修改和反复的测试,还有当银行开展和普及新的业务时,需要召集各个自助设备厂商对应用程序进行升级,整个过程工程浩大,还需要相关人员具有较高的专业技能,不利于银行业务的迅速开展和普及。
发明内容
本发明的目的是提供一种应用软件的开发平台、生成方法及运行平台、运行方法,以克服现有技术中的应用程序同时只能运行单一的业务流程和对应用程序进行调整和升级时需要进行大量修改和测试的缺点。
为解决上述技术问题,本发明提供一种应用软件的开发平台、生成方法及运行平台、运行方法是这样实现的一种应用软件的开发平台,包括,业务类型模块,用于保存至少一个业务类型及其包含的工作单元组中的工作单元;状态机流程模块,用于创建并保存至少一个状态机流程;状态点建立模块,用于判断需求的操作对应的业务类型中工作单元组内的工作单元,并将该工作单元置为所述状态机流程中的状态点;迁移关系建立模块,用于根据所述状态机流程模块中各状态点包含的工作单元的属性建立状态点之间的迁移关系;编译模块,用于将经过迁移关系建立模块处理的状态机流程编译为状态机文件。
所述状态点建立模块包括工作单元对应模块和状态点设置模块,其中,工作单元对应模块用于将需求的操作对应为业务类型中工作单元组内的工作单元;状态点设置模块用于将经对应后的工作单元置为状态机流程中的状态点。
所述迁移关系建立模块包括动作触发关系建立模块和通信关系建立模块,其中,动作触发关系建立模块用于根据所述状态机流程模块中各状态点包含的工作单元的属性建立各工作单元之间的动作触发关系;通信关系建立模块用于根据所述状态机流程模块中各状态点包含的工作单元的属性建立各工作单元之间的通信关系。
该平台基于Windows开发系统架构/可扩展金融服务。
该平台提供图形化界面。
一种应用软件的生成方法,预先设置不同功能的业务类型,该业务类型包含各自的工作单元组,包括创建至少一个状态机流程;该状态机流程对应一个业务类型;
判断需求的操作对应的业务类型中工作单元组内的工作单元,并将该工作单元置为所述状态机流程中的状态点;根据所述状态机流程中各状态点包含的工作单元的属性建立状态点之间的迁移关系;将所述状态机流程编译为状态机文件。
还包括增加、减少和/或更改所述业务类型。
还包括增加、减少、和/或更改所述业务类型中工作单元组内的工作单元。
所述根据各工作单元的属性建立状态点之间的迁移关系由以下方式实现根据所述状态机流程中各状态点包含的工作单元的属性建立同一状态机流程内各状态点之间的迁移关系,和/或根据所述状态机流程中各状态点包含的工作单元的属性建立不同状态机流程的各状态点之间的迁移关系。
所述迁移关系包括各状态点之间的动作触发关系和/或通信关系。
所述动作由脚本语言描述。
所述动作触发关系和/或所述通信关系采用配置文件的方式存储。
一种应用软件的运行平台,包括解析模块和状态机引擎,其中,解析模块用于将应用软件包含的状态机文件解析为状态机流程;状态机引擎用于按照状态点的迁移关系从状态机流程中的初始状态点开始遍历,并在遍历到每个状态点时执行该状态点包含的操作。
所述状态机引擎包括至少一个状态机流程遍历模块和与之对应的状态点操作执行模块,其中,状态机流程遍历模块用于按照状态点的迁移关系从该状态机流程中的初始状态点开始遍历,和/或按照状态点的迁移关系触发其它状态机遍历模块中状态机流程的相关状态点;状态点操作执行模块,用于遍历到每个状态点时执行该状态点包含的操作。
所述状态机流程遍历模块包括动作触发关系遍历模块和通信关系遍历模块,其中,
动作触发关系遍历模块用于按照状态点的动作触发关系从该状态机流程中的初始状态点开始遍历,和/或按照状态点的动作触发关系触发其对应的状态机遍历模块中状态机流程的相关状态点;通信关系遍历模块用于按照状态点的通信关系从该状态机流程中的初始状态点开始遍历,和/或按照状态点的通信关系触发其对应的状态机遍历模块中状态机流程的相关状态点。
一种应用软件的运行方法,包括将应用软件包含的状态机文件解析为状态机流程;从状态机流程中的初始状态点开始,按照状态点的迁移关系遍历状态机流程中的状态点,并在遍历到每一状态点时完成该状态点对应工作单元包含的操作。
所述按照状态点的迁移关系遍历状态机流程中的状态点由以下方式实现按照状态点的迁移关系完成同一状态机流程内和/或不同状态机流程间各状态点之间的遍历。
所述按照状态点的迁移关系遍历状态机流程中的状态点由以下方式实现按照状态点迁移关系中的动作触发关系和/或通信关系遍历各状态点。
由以上本发明提供的技术方案可见,本发明在自助设备应用程序开发过程中引入状态机机制,每个状态机流程对应一个业务流程,这样,自助设备可以同时运行多个业务流程,且各个业务流程之间相互独立。本发明将每个操作设置为一个工作单元,将该工作单元置为状态机流程中的一个状态点,在这些状态点之间建立迁移关系,则在对应用软件进行调整和升级时可以只针对相应的模块,升级方便,且不影响其他模块。
图1为各种业务类型及其工作单元的流程图;图2为本发明开发平台的框图;图3为应用本发明的开发平台生成应用程序的流程图;图4为本发明运行平台的框图;
图5为由本发明运行平台运行自助设备应用程序的原理图;图6为本发明运行方法的流程图。
具体实施例方式
本发明的核心是提供一种应用软件的开发平台、生成方法及运行平台、运行方法,在应用程序开发过程中引入状态机机制,每个状态机流程对应一个业务流程,并将各个操作设置为一个工作单元,将该工作单元置为状态机流程中的一个状态点,在这些状态点之间建立迁移关系;对应的,在自助设备应用程序运行过程中引入状态机引擎,执行各个状态机流程,完成状态点的操作并完成状态点的迁移。
计算机编译原理中提出了“有限状态机”的概念,可以实现多状态机同时运行,并且多个状态机之间可以交互。每个状态中包含多个状态点,表明该状态机的运行状态。本发明正是采用了这种多状态机原理。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明作进一步的详细说明。
首先介绍自助设备应用程序的开发平台。
本领域技术人员知道,自助业务的各项应用需求复杂,如果单纯的设计在一个业务流程中,则实现各种功能时相互关系非常繁琐。本发明首先按照业务的功能进行分类,例如可以分为交易业务类、监控业务类和管理员业务类等。每个业务类型中包含各种操作,例如交易业务类包含等待插卡、读卡、输入密码、发送数据、接收数据等操作,并且各种操作之间需要进行切换。图1示出了各种业务类型及其工作单元的一个流程图。
本发明的实施例中预先设置的每个不同功能业务类型中包含一系列的工作单元,这些工作单元构成该业务类型中的工作单元组。这些工作单元对应的是某个操作,这些工作单元具有属性即是该操作的条件、过程和/或产生的结果,例如显示哪些页面和执行那些动作。开发过程中,可以根据需要增加、减少和/或更改业务类型。也可以根据需要增加、减少、和/或更改所述业务类型中工作单元组内的工作单元。
以下介绍本发明的自助设备应用程序的开发平台。图2示出了本发明开发平台的框图。
自助设备应用程序开发平台包括业务类型模块21、状态机流程模块22、状态点建立模块23、迁移关系建立模块24和编译模块25。其中业务类型模块21,用于保存至少一个业务类型及其包含的工作单元组中的工作单元。
状态机流程模块22,用于创建并保存至少一个状态机流程。
状态点建立模块23,与业务类型模块21和状态机流程模块22相连,用于判断需求的操作对应的业务类型中工作单元组内的工作单元,并将该工作单元置为所述创建的状态机流程中的状态点。
状态点建立模块23包括工作单元对应模块231和状态点设置模块232,其中,工作单元对应模块231,与业务类型模块21相连,用于将需求的操作对应为业务类型中工作单元组内的工作单元。
状态点设置模块232,与工作单元对应模块231和状态机流程创建模块32相连,用于将经对应后的工作单元置为创建的状态机流程中的状态点。
迁移关系建立模块24,与状态机流程模块22,用于根据所述状态机流程模块中各状态点包含的工作单元的属性建立状态点之间的迁移关系。
迁移关系建立模块24包括动作触发关系建立模块241和通信关系建立模块242,其中,动作触发关系建立模块241,与状态机流程模块22相连,用于根据所述状态机流程模块22中各状态点包含的工作单元的属性建立各工作单元之间的动作触发关系。
通信关系建立模块242,与状态机流程模块22相连,用于根据所述状态机流程模块22中各状态点包含的工作单元的属性建立各工作单元之间的通信关系。
编译模块25,与迁移关系建立模块24相连,用于将经过迁移关系建立模块处理的状态机流程编译为状态机文件。
现有的自助设备有很多种,这些自助设备及其应用程序由不同的厂商开发。往往不同厂商开发手段不同,大部分是基于IBM的OS2,有一小部分是基于Windows,而IBM已宣布不再对OS2操作系统进行支持,并且各个厂商开发的应用程序与其自助设备联系很紧密,导致不同厂商之间的应用程序不能通用,甚至同一厂商的不同型号自助设备上的应用程序都不能通用。因此,在本发明实施例提供的开发平台中,可以统一采用Windows开发系统架构(Windows Open System Architecture,WOSA)/可扩展金融服务(eXtension forFinancial Service,XFS)的国际标准,具体的,在开发平台提供WOSA/XFS的应用程序接口(Application Programming Interface,API),使得应用本发明开发平台生成的应用程序可以通用于各种自助设备,解决了通用性的问题。
另外,本发明的开发平台适于提供图形化的开发界面,即将预先设置的业务流程及其工作单元以图形显示在开发平台中,开发人员只需要简单的拖动工作单元到状态机流程中,并设置相应的属性和迁移关系即可生成应用程序,从而极大的加快了开发速度,并保证了开发质量。并且,由该方式生成的应用程序界面统一,客户在交易过程中易于掌握各种操作,能提高客户的满意度。
当需要生成一套应用程序时,应用上述开发平台即可实现。图3示出了利用该开发平台生成应用程序的流程。
步骤301创建状态机流程。
本步骤由状态机流程模块创建至少一个状态机流程,以满足不同功能的业务类型需求。每个状态机流程对应一个业务类型需求。
步骤302判断操作对应的工作单元并设置该工作单元为状态机流程中的状态点。
由于在业务类型模块中预先设置了不同类的业务类型,且在每一业务类型中设置了包含不同工作单元的工作单元组,因此,当一个业务类型所在的状态机流程中需要增加一个操作时,即在状态机流程中增加一个状态点时,可以首先根据需要操作的方式和内容得到工作单元组中对应的工作单元,例如由状态点建立模块中的工作单元对应模块得到该操作对应的工作单元组中的工作单元,再由状态点设置模块将该工作单元设置为该状态机流程中的状态点。
步骤303根据各状态点对应工作单元的属性建立状态点间的迁移关系。
一个业务类型中的不同操作之间是互相有关联的,例如交易业务类中插卡之后才执行读卡操作,读卡成功后才执行输入密码操作,进一步的,不同业务类型也是相互关联的,一个业务类型中的某个操作可以触发其它业务类型中的某个操作,或者是一个业务类型中的某个操作的结果通知给其它业务类型中的某个操作。
由前面提到的,每个操作对应一个工作单元,该工作单元具有表明与该操作相关的特定的属性,而每个设置的状态点是一个工作单元,这样,各个状态点之间可以根据工作单元的属性,即工作单元间动作触发和/或通信关系建立关系,这种关系即为迁移关系。而且,根据状态机流程中各状态点包含的工作单元的属性,可以是由迁移关系建立模块建立同一状态机流程内各状态点之间的迁移关系,也可以由迁移关系建立模块根据状态机流程中各状态点包含的工作单元的属性建立不同状态机流程的各状态点之间的迁移关系。具体的,可以是由动作触发关系建立模块和通信关系建立模块实现。其中,每个工作单元对应的动作可以是由脚本语言编写的代码段描述,动作触发关系和/或通信关系可以存储于配置文件中。
步骤304将状态机流程编译为状态机文件。
该步骤是编译过程,编译后可以在自助设备的运行平台上执行该文件。
由以上实施例提供的开发平台生成的应用程序,不同的状态机流程同时独立的运行,且不同状态机之间可以实现交互,完成通信和动作触发,更重要的是,当对应用程序进行调整,例如修改业务流程中的某个操作时,可以仅对该操作对应的工作单元进行改动和测试,不需要对整个程序进行修改;再如升级和完善功能时,只需添加、减少和/或修改业务流程,或者是添加、减少和/或修改工作单元,即按照需求进行,不需要对已有的工作单元或业务流程进行大的改动。
下面介绍本发明中自助设备应用程序的运行平台。图4示出了该平台的框图。
该运行平台包括解析模块41和状态机引擎42,其中,解析模块41与用于将应用软件包含的状态机文件解析为状态机流程。
状态机引擎42与解析模块41相连,用于按照状态点的迁移关系从状态机流程中的初始状态点开始遍历,并在遍历到每个状态点时执行该状态点包含的操作。
状态机引擎42包括至少一个状态机流程遍历模块421和与之对应的状态点操作执行模块422,其中,状态机流程遍历模块421用于按照状态点的迁移关系从该状态机流程中的初始状态点开始遍历,和/或按照状态点的迁移关系触发其它状态机遍历模块中状态机流程的相关状态点。
状态机流程遍历模块421包括动作触发关系遍历模块4211和通信关系遍历模块4212,其中,动作触发关系遍历模块4211用于按照状态点的动作触发关系从该状态机流程中的初始状态点开始遍历,和/或按照状态点的动作触发关系触发其对应的状态机遍历模块中状态机流程的相关状态点。
通信关系遍历模块4212用于按照状态点的通信关系从该状态机流程中的初始状态点开始遍历,和/或按照状态点的通信关系触发其对应的状态机遍历模块中状态机流程的相关状态点。
状态点操作执行模块422与状态机流程遍历模块421相连,用于遍历到每个状态点时执行该状态点包含的操作。
状态机引擎负责每个工作单元具体操作动作的执行,工作单元之间的迁移,工作单元的页面显示,状态机之间的交互,与自助P和自助V系统的报文收发,以及与设备模块的通信,是核心控制程序。图5示出了一个由运行平台运行的自助设备应用程序的例子。如图所示,状态机引擎同时运行三个业务流程,每个业务流程都是独立运行的,不同类的业务流程之间的交互都是通过状态机引擎来完成的;每个业务流程运行时,不断地在工作单元之间进行迁移,执行不同的动作,显示不同的页面,而与硬件设备之间的通信,以及与外部系统的交互都是通过状态机引擎来协调控制的。
下面介绍本发明中自助设备应用程序的运行方法。图6示出了该方法的流程。
步骤601将应用软件包含的状态机文件解析为状态机流程。
该步骤是解析过程,将经过编译的状态机文件解析为可执行的状态机流程。
步骤602执行状态机流程中的初始状态点对应工作单元包含的操作。
步骤603按照该状态点的迁移关系定位到下一状态点。
步骤604执行该状态点对应工作单元包含的操作后,返回步骤603。
实际上步骤602至604是从状态机流程中的初始状态点开始,按照状态点的迁移关系遍历状态机流程中的状态点,并在遍历到每一状态点时完成该状态点对应工作单元包含的操作。
按照状态点的迁移关系可以完成同一状态机流程内和/或不同状态机流程间各状态点之间的遍历。可以按照状态点迁移关系中的动作触发关系和/或通信关系完成各状态点间的遍历。
由于本发明的开发平台中引入了多状态机机制,不同业务类型作为一个单独的状态机流程,可以彼此独立的工作,而且各状态机之间可以进行交互。
本发明的开发平台和运行平台都可以采用C++语言编写,与外界系统的通信可以采用TCP/IP协议。
由以上实施例可见,本发明在自助设备应用程序开发平台中引入状态机机制,每个状态机流程对应一个业务流程,这样,自助设备可以同时运行多个业务流程,且各个业务流程之间相互独立。本发明将各个操作设置为一个工作单元,将该工作单元置为状态机流程中的一个状态点,在这些状态点之间建立迁移关系,则在调整和升级时可以只针对相应的少量模块,升级方便,且不影响其他业务。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。
权利要求
1.一种应用软件的开发平台,其特征在于,包括,业务类型模块,用于保存至少一个业务类型及其包含的工作单元组中的工作单元;状态机流程模块,用于创建并保存至少一个状态机流程;状态点建立模块,用于判断需求的操作对应的业务类型中工作单元组内的工作单元,并将该工作单元置为所述状态机流程中的状态点;迁移关系建立模块,用于根据所述状态机流程模块中各状态点包含的工作单元的属性建立状态点之间的迁移关系;编译模块,用于将经过迁移关系建立模块处理的状态机流程编译为状态机文件。
2.如权利要求1所述平台,其特征在于,所述状态点建立模块包括工作单元对应模块和状态点设置模块,其中,工作单元对应模块用于将需求的操作对应为业务类型中工作单元组内的工作单元;状态点设置模块用于将经对应后的工作单元置为状态机流程中的状态点。
3.如权利要求1所述平台,其特征在于,所述迁移关系建立模块包括动作触发关系建立模块和通信关系建立模块,其中,动作触发关系建立模块用于根据所述状态机流程模块中各状态点包含的工作单元的属性建立各工作单元之间的动作触发关系;通信关系建立模块用于根据所述状态机流程模块中各状态点包含的工作单元的属性建立各工作单元之间的通信关系。
4.如权利要求1所述的平台,其特征在于,该平台基于Windows开发系统架构/可扩展金融服务。
5.如权利要求1所述的平台,其特征在于,该平台提供图形化界面。
6.一种应用软件的生成方法,其特征在于,预先设置不同功能的业务类型,该业务类型包含各自的工作单元组,包括创建至少一个状态机流程;该状态机流程对应一个业务类型;判断需求的操作对应的业务类型中工作单元组内的工作单元,并将该工作单元置为所述状态机流程中的状态点;根据所述状态机流程中各状态点包含的工作单元的属性建立状态点之间的迁移关系;将所述状态机流程编译为状态机文件。
7.如权利要求6所述的方法,其特征在于,还包括增加、减少和/或更改所述业务类型。
8.如权利要求6或7所述的方法,其特征在于,还包括增加、减少、和/或更改所述业务类型中工作单元组内的工作单元。
9.如权利要求6所述的方法,其特征在于,所述根据各工作单元的属性建立状态点之间的迁移关系由以下方式实现根据所述状态机流程中各状态点包含的工作单元的属性建立同一状态机流程内各状态点之间的迁移关系,和/或根据所述状态机流程中各状态点包含的工作单元的属性建立不同状态机流程的各状态点之间的迁移关系。
10.如权利要求6或9中所述的方法,其特征在于,所述迁移关系包括各状态点之间的动作触发关系和/或通信关系。
11.如权利要求10所述的方法,其特征在于,所述动作由脚本语言描述。
12.如权利要求10所述的方法,其特征在于,所述动作触发关系和/或所述通信关系采用配置文件的方式存储。
13.一种应用软件的运行平台,其特征在于,包括解析模块和状态机引擎,其中,解析模块用于将应用软件包含的状态机文件解析为状态机流程;状态机引擎用于按照状态点的迁移关系从状态机流程中的初始状态点开始遍历,并在遍历到每个状态点时执行该状态点包含的操作。
14.如权利要求13所述的平台,其特征在于,所述状态机引擎包括至少一个状态机流程遍历模块和与之对应的状态点操作执行模块,其中,状态机流程遍历模块用于按照状态点的迁移关系从该状态机流程中的初始状态点开始遍历,和/或按照状态点的迁移关系触发其它状态机遍历模块中状态机流程的相关状态点;状态点操作执行模块,用于遍历到每个状态点时执行该状态点包含的操作。
15.如权利要求14所述的平台,其特征在于,所述状态机流程遍历模块包括动作触发关系遍历模块和通信关系遍历模块,其中,动作触发关系遍历模块用于按照状态点的动作触发关系从该状态机流程中的初始状态点开始遍历,和/或按照状态点的动作触发关系触发其对应的状态机遍历模块中状态机流程的相关状态点;通信关系遍历模块用于按照状态点的通信关系从该状态机流程中的初始状态点开始遍历,和/或按照状态点的通信关系触发其对应的状态机遍历模块中状态机流程的相关状态点。
16.一种应用软件的运行方法,其特征在于,包括将应用软件包含的状态机文件解析为状态机流程;从状态机流程中的初始状态点开始,按照状态点的迁移关系遍历状态机流程中的状态点,并在遍历到每一状态点时完成该状态点对应工作单元包含的操作。
17.如权利要求16所述的方法,其特征在于,所述按照状态点的迁移关系遍历状态机流程中的状态点由以下方式实现按照状态点的迁移关系完成同一状态机流程内和/或不同状态机流程间各状态点之间的遍历。
18.如权利要求16所述的方法,其特征在于,所述按照状态点的迁移关系遍历状态机流程中的状态点由以下方式实现按照状态点迁移关系中的动作触发关系和/或通信关系遍历各状态点。
全文摘要
本发明提供了一种应用软件的开发平台,包括业务类型模块,用于保存至少一个业务类型及其包含的工作单元组中的工作单元;状态机流程模块,用于创建并保存至少一个状态机流程;状态点建立模块,用于判断需求的操作对应的工作单元,并将该工作单元置为状态机流程中的状态点;迁移关系建立模块,用于根据状态机流程模块中各状态点包含的工作单元的属性建立状态点间的迁移关系;编译模块,用于将状态机流程编译为状态机文件。本发明还提供应用软件的生成方法及运行平台、运行方法。利用本发明,自助设备可以同时执行多个业务流程,且各业务流程相互独立,而且,在调整和升级时可以只针对相应模块,升级方便,且不影响其他模块和业务。
文档编号G07F19/00GK1987781SQ200610156428
公开日2007年6月27日 申请日期2006年12月31日 优先权日2006年12月31日
发明者苏明源, 郑小晖, 张涛, 杨卫乾, 陈文极, 黄斌, 姜昆才, 信怀义 申请人:中国建设银行股份有限公司