CN107656782A - 一种基于事件的流程处理方法及*** - Google Patents
一种基于事件的流程处理方法及*** Download PDFInfo
- Publication number
- CN107656782A CN107656782A CN201611220334.5A CN201611220334A CN107656782A CN 107656782 A CN107656782 A CN 107656782A CN 201611220334 A CN201611220334 A CN 201611220334A CN 107656782 A CN107656782 A CN 107656782A
- Authority
- CN
- China
- Prior art keywords
- event
- server
- client
- state machine
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0633—Lists, e.g. purchase orders, compilation or processing
- G06Q30/0635—Processing of requisition or of purchase orders
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2393—Updating materialised views
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/045—Payment circuits using payment protocols involving tickets
- G06Q20/0457—Payment circuits using payment protocols involving tickets the tickets being sent electronically
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/04—Billing or invoicing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Economics (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- Technology Law (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种基于事件的流程处理方法及***,其中方法包括:当客户端监听到预设表单的画面按钮触发事件时,根据表单数据生成客户端事件;对客户端事件处理后发送给连接服务器,以便连接服务器自身处理或转由应用服务器处理;接收到服务器返回的结果,将处理结果转换成对应的客户端事件,执行对应的方法,更新客户端界面,应用服务器在处理时,预先将各业务流程的状态机信息缓存,通过状态机流转引擎线程读取状态机定义的流程数据,确定下个操作状态和处理该服务器事件的类,通过线程处理该事件得到处理结果。业务流程以java事件为驱动,以实现流程的快速流转,且应用服务器将状态机预先缓存的方式,便于快速读取,提高了响应的速度。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种基于事件的流程处理方法及***。
背景技术
票据是指出票人依法签发的由自己或指示他人无条件支付一定金额给收款人或持票人的有价证券,即某些可以代替现金流通的有价证券。票据的形式可以包括纸质票据和电子票据。随着互联网的发展,许多基于互联网的票据交易平台应运而生。
以银行承兑汇票为例,现有的票据交易平台的交易模式如下:用户可以在网上发送公开、定向的银行承兑汇票买断式、回购式转贴现报价,通过报价应答方式与业务人员联系,线下进行进一步议价交易。或者用户还可以通过网上填写承兑行类型、票面金额、汇票到期日等信息进行线下沟通议价等。
上述网络的交易平台的一个共同点在交易过程中,其主要作用还是发布交易信息,交易双方只能线下点对点进行票据议价,线下交易,一方面,银行承兑汇票进行交易要考虑的要素很多,在网站上找到自己想要的票据要花费很长的时间;另外一方面,当找到想要进行交易的票后要在线下通过一个一个打电话等方式跟对手方进行议价,费时费力还有可能失败从而需要重新寻找合适的票;最后,因为用户掌握的信息有限,所以用户在交易中的利益不能得到预期的保证。
基于上述问题,如何提供一种票据交易***,实现高效的票据交易流程流转,实现整个票据交易的电子化,解决用户之间信息不对称的问题,使交易双方都能够高效率地找到自身想要交易的票据或者交易者,成为亟待解决的问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于事件的流程处理方法及***。
第一方面,本发明提供一种基于事件的流程处理方法,包括:
当客户端监听到预设表单的画面按钮触发事件时,根据所述表单的数据生成对应的客户端事件;对所述客户端事件进行序列化并处理,并在处理后判断是否需要继续发送给服务器进行处理;若确定需要,则将处理后的客户端事件序列化并发送给连接服务器,以便连接服务器自身处理或转由应用服务器处理;
所述连接服务器将需要由应用服务器处理的事件发送给消息服务器,所述应用服务器按照下述方式进行处理:在启动时,将各类交易下业务流程对应的状态机信息缓存;当从消息服务器中监听到本应用服务器处理的服务器事件时,读取该服务器事件;根据该服务器事件对应流程,通过对应的状态机流转引擎线程,读取缓存的状态机信息中定义的流程数据,确定下个操作状态和处理该服务器事件的类;通过处理该服务器事件的类的线程,处理所述服务器事件得到处理结果;将处理结果生成服务器事件并发送至消息服务器,并更新数据库服务器中的数据库数据;
当客户端接收到连接服务器返回的处理结果时,将接收到的处理结果由服务器事件转换成对应的客户端事件,执行对应的方法,更新客户端界面。
在一个实施例中,对客户端事件进行处理,包括:
产生一个新的线程;
通过所述新的线程,执行所述表单预设的界面处理方法和/或表单的数据处理方法;
两者都执行时,执行表单的数据处理方法在先,执行表单的界面处理方法在后。
在一个实施例中,根据所述表单的数据生成对应的客户端事件,对所述客户端事件进行序列化,包括:
将所述表单的数据按照动作事件ActionEvent事件的方式组装数据,生成对应的ActionEvent事件;
执行ActionListener接口中的预设的actionPerformed方法,将表单的数据组装成序列化的java内对象。
在一个实施例中,所述连接服务器返回的处理结果包括:
连接服务器返回的提交应用服务器成功或失败的结果;
连接服务器返回的由连接服务器自身完成的数据查询结果;
连接服务器返回的由应用服务器处理后通过连接服务器返回的数据处理结果;
将接收到的处理结果由服务器事件转换成对应的客户端事件,执行对应的方法,更新客户端界面,包括:
将接收的处理结果的Sever Event转换成新的预设的Application Event事件,执行预设的表单的processAppliaction Event方法,更新客户端的界面。
在一个实施例中,连接服务器返回的由应用服务器处理后通过连接服务器返回的数据处理结果时,所述服务器返回的处理结果中包括:发生数据更新的视图模型的标识以及对应的更新的数据;所述视图模型是客户端对需要实时刷新的表格预先在连接服务器中注册的镜像;
所述更新客户端界面,包括:
根据所述视图模型的标识,使用所述更新的数据更新所述视图模型对应的表格内容。
在一个实施例中,所述状态机信息包括:
状态机的标识、状态标识、状态名称、当前状态对应的操作/事件、下一个状态的标识和下一个状态的名称和处理该事件的类。
在一个实施例中,所述根据该服务器事件对应流程,通过对应的状态机流转引擎线程,读取缓存的状态机信息中定义的流程数据,确定下个操作状态和处理该服务器事件的类,包括:
从所述服务器事件中解析出交易信息和流程信息;
从所缓存的状态机信息中,确定所述交易下所述流程对应的状态机信息;
通过对应的状态机流转引擎线程,查询所述状态机信息,根据所述交易下所述流程的当前状态、当前状态对应的操作/事件,得到下个状态的标识和处理该事件的类。
在一个实施例中,所述读取该服务器事件之后,还包括:将所述服务器事件所属的服务器之间的消息类型,转换成本应用服务器处理的消息类型;
所述处理结果生成服务器事件,包括:
将所述处理结果,按照所述服务器之间的消息类型进行封装,生成服务器事件。
在一个实施例中,所述方法还包括:
在启动时,分别启动用于处理服务器事件的线程池和状态机流转引擎线程池;所述处理服务器事件的线程池和状态机流转引擎线程池中包含预设数量的多个待调用的线程;
所述状态机流转引擎线程和所述处理该服务器事件的类的线程分别从所述服务器事件的线程池和状态机流转引擎线程池中调用。
在一个实施例中,所述方法还包括:
当通过处理该服务器事件的类的线程,处理所述服务器事件成功时,更新所述流程的状态为所述下一个状态;
将交易信息、流程的状态信息和处理结果生成服务器事件并发送给消息服务器;
否则,结束所述流程的处理,并通告中控客户端。
第二方面,本发明提供基于事件的流程处理***,包括:客户端、连接服务器和应用服务器;其中:
所述客户端,包括:
监听模块,用于对预设表单的画面按钮触发事件进行监听;
客户端事件生成模块,用于当监听到预设表单的画面按钮触发事件时,根据所述表单的数据生成对应的客户端事件;
序列化模块,用于对所述客户端事件进行序列化;以及对服务器事件进行序列化处理;
处理模块,用于对序列化后的客户端事件进行处理;
判断模块,用于判断是否需要将处理模块处理后的客户端事件发送给服务器继续处理;
发送模块,用于当判断模块确定需要,则将将处理后的客户端事件序列化并发送给连接服务器;
接收模块,用于从连接服务器接收返回的处理结果;
客户端界面更新模块,用于将接收到的处理结果由服务器事件转换成对应的客户端事件,执行对应的方法,更新客户端界面;
所述连接服务器,用于将需要由应用服务器处理的事件发送给消息服务器;
所述应用服务器,包括:
缓存模块,用于在启动时,将各类交易下业务流程对应的状态机信息缓存;
消息读取模块,用于当从消息服务器中监听到本应用服务器处理的服务器事件时,读取该服务器事件;
状态流转模块,用于根据该服务器事件对应流程,通过对应的状态机流转引擎线程,读取缓存的状态机信息中定义的流程数据,确定下个操作状态和处理该服务器事件的类;
事件处理模块,用于通过处理该服务器事件的类的线程,处理所述服务器事件得到处理结果;
生成模块,用于将处理结果生成服务器事件;
发送模块,用于将所述生成模块生成的服务器事件发送给消息服务器;
数据更新模块,用于根据所述处理结果,更新数据库服务器中的数据库数据。
在一个实施例中,所述客户端的处理模块,具体用于产生一个新的线程;通过所述新的线程,执行所述表单预设的界面处理方法和/或表单的数据处理方法;两者都执行时,执行表单的数据处理方法在先,执行表单的数据处理方法在后。
在一个实施例中,所述客户端事件生成模块,具体用于将所述表单的数据按照动作事件ActionEvent事件的方式组装数据,生成对应的ActionEvent事件;
所述序列化模块,具体用于执行ActionListener接口中的预设的actionPerformed方法,将表单的数据组装成序列化的java内对象。
在一个实施例中,所述连接服务器返回的处理结果包括:
连接服务器返回的提交应用服务器成功或失败的结果;
连接服务器返回的由连接服务器自身完成的数据查询结果;
连接服务器返回的由应用服务器处理后通过连接服务器返回的数据处理结果;
所述客户端界面更新模块,具体用于将接收的处理结果的Sever Event转换成新的预设的Application Event事件,执行预设的表单的processAppliaction Event方法,更新客户端的界面。
在一个实施例中,连接服务器返回的由应用服务器处理后通过连接服务器返回的数据处理结果时,所述服务器返回的处理结果中包括:发生数据更新的视图模型的标识以及对应的更新的数据;所述视图模型是客户端对需要实时刷新的表格预先在连接服务器中注册的镜像;
所述客户端界面更新模块,具体用于根据所述视图模型的标识,使用所述更新的数据更新所述视图模型对应的表格内容。
在一个实施例中,所述状态机信息包括:
状态机的标识、状态标识、状态名称、当前状态对应的操作/事件、下一个状态的标识和下一个状态的名称和处理该事件的类。
在一个实施例中,所述应用服务器的状态流转模块,包括:
解析子模块,用于从所述服务器事件中解析出交易信息和流程信息;
确定子模块,用于从所缓存的状态机信息中,确定所述交易下所述流程对应的状态机信息;
查询子模块,用于通过对应的状态机流转引擎线程,查询所述状态机信息,根据所述交易下所述流程的当前状态、当前状态对应的操作/事件,得到下个状态的标识和处理该事件的类。
在一个实施例中,上述所述应用服务器还包括:转换模块,用于在消息读取模块读取该服务器事件之后,将所述服务器事件所属的服务器之间的消息类型,转换成本应用服务器处理的消息类型;以及将所述事件处理模块得到的处理结果,按照所述服务器之间的消息类型进行封装,生成服务器事件。
在一个实施例中,上述所述应用服务器还包括:线程池启动模块,用于在启动时,分别启动用于处理服务器事件的线程池和状态机流转引擎线程池;所述处理服务器事件的线程池和状态机流转引擎线程池中包含预设数量的多个待调用的线程;
所述状态机流转引擎线程和所述处理该服务器事件的类的线程分别从所述服务器事件的线程池和状态机流转引擎线程池中调用。
在一个实施例中,上述所述应用服务器还包括:状态更新模块和异常处理模块;其中:
所述状态更新模块,用于当通过处理该服务器事件的类的线程,处理所述服务器事件成功时,更新所述流程的状态为所述下一个状态;
所述生成模块,还用于将交易信息、流程的状态信息和处理结果生成服务器事件;
所述异常处理模块,用于通过处理该服务器事件的类的线程,处理所述服务器事件出现错误时,结束所述流程的处理,并通告中控客户端。
本发明实施例提供的上述技术方案的有益效果至少包括:
本发明实施例提供的上述基于事件的流程处理方法及***,客户端在监听到表单的画面按钮触发事件时,根据表单的数据生成对应的客户端事件,然后判断是否需要继续发送给服务器进行处理,并在序列化后发送给连接服务器,当接收到连接服务器返回的处理结果时,再转换成对应的客户端事件,执行对应的方法,更新客户端的界面,整个业务流程以java事件为驱动,可以实现流程的快速流转,并且不同的业务类型会产生不同的客户端事件,也对应有不同的处理流程,为高效处理客户端事件创造了良好的基础。
另一方面,应用服务器预先将各类交易下业务流程对应的状态机信息缓存,当从消息服务器读取服务器事件时,通过状态机流转引擎线程,读取状态机定义的流程数据,确定下个操作状态和处理该服务器事件的类,再通过处理该服务器事件的类的线程,处理该事件得到处理结果,将处理结果通过新的服务器事件发给消息服务器,并更新数据库,在整个处理过程中,利用了状态机,实现了业务流程的准确快速的流转,并且,将状态机预先缓存的方式,便于快速读取,提高了响应的速度,并且将处理业务逻辑的类与处理状态机的类(状态机流转引擎)分开,分别独立执行服务器事件处理任务和执行状态机流转任务,进一步优化了处理的速度。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例提供的基于事件的流程处理方法的网络架构图;
图2为本发明实施例提供的基于事件的流程处理方法的流程图;
图3为本发明实施例提供的发起交易的界面示意图;
图4为本发明实施例提供的对客户端事件进行处理步骤的流程图;
图5为本发明实施例提供的根据所述表单的数据生成对应的客户端事件,对所述客户端事件进行序列化步骤的流程图;
图6为本发明实施例提供的发起钢材交易的客户端侧具体实施流程图;
图7为本发明实施例提供的确定下个操作状态和处理该服务器事件的类的步骤的具体流程图;
图8为本发明实施例提供的基于事件的流程处理的***的架构图;
图9A-9B为本发明实施例提供的客户端和应用服务器的架构图;
图10为本发明实施例提供的状态流转模块的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
下面分别对本发明实施例提供的基于事件的流程处理方法及***的各种具体实施方式进行详细的说明。
为了更好地说明本发明实施例提供的基于事件的流程处理方法,首先对该基于事件的流程处理方法适用的网络架构进行简单介绍,如图1所示,该网络架构中包含票据交易客户端(例如可包括银行客户端或企业客户端),连接服务器和其他类型服务器(例如应用服务器等等);连接服务器与各客户端之间相连,用于处理客户端的服务请求的接受、连接会话的建立、维持和中断服务;应用服务器(也叫核心业务服务器)用于对用户登录进行认证、对用户交易权限进行验证、执行对应的交易逻辑,并在必要时对数据库进行读写操作;各服务器可以采用服务器集群的方式,以应对数量巨大的业务处理量。
在同一个票据交易***中,应用服务器是负责处理业务逻辑的服务器;应用服务器可以有一个或多个,应用服务器有多个时,彼此可以组成应用服务器集群,应用服务器与其他服务器例如连接服务器、其他应用服务器等之间并不直接交互,而是通过消息服务器进行消息的中转,消息服务器起到消息中间件的作用,缓存和转发每个服务器所需的消息(服务器事件)。
基于上述网络架构,本发明实施例提供的一种基于事件的流程处理方法,如图2所示,包括下述步骤:
S21、当客户端监听到预设表单的画面按钮触发事件时,根据所述表单的数据生成对应的客户端事件;对所述客户端事件进行序列化并处理,并在处理后判断是否需要继续发送给服务器进行处理;若确定需要,则将处理后的客户端事件序列化并发送给连接服务器,以便连接服务器自身处理或转由应用服务器处理;
S22、所述连接服务器将需要由应用服务器处理的事件发送给消息服务器,所述应用服务器按照下述方式进行处理:在启动时,将各类交易下业务流程对应的状态机信息缓存;当从消息服务器中监听到本应用服务器处理的服务器事件时,读取该服务器事件;根据该服务器事件对应流程,通过对应的状态机流转引擎线程,读取缓存的状态机信息中定义的流程数据,确定下个操作状态和处理该服务器事件的类;通过处理该服务器事件的类的线程,处理所述服务器事件得到处理结果;将处理结果生成服务器事件并发送至消息服务器,并更新数据库服务器中的数据库数据;
S23、当客户端接收到连接服务器返回的处理结果时,将接收到的处理结果由服务器事件转换成对应的客户端事件,执行对应的方法,更新客户端界面。
本发明实施例提供的基于事件的流程处理方法,客户端在监听到表单的画面按钮触发事件时,根据表单的数据生成对应的客户端事件,然后判断是否需要继续发送给服务器进行处理,并在序列化后发送给连接服务器,当接收到连接服务器返回的处理结果时,再转换成对应的客户端事件,执行对应的方法,更新客户端的界面,整个业务流程以java事件为驱动,可以实现流程的快速流转,并且不同的业务类型会产生不同的客户端事件,也对应有不同的处理流程,为高效处理客户端事件创造了良好的基础。
另一方面,应用服务器预先将各类交易下业务流程对应的状态机信息缓存,当从消息服务器读取服务器事件时,通过状态机流转引擎线程,读取状态机定义的流程数据,确定下个操作状态和处理该服务器事件的类,再通过处理该服务器事件的类的线程,处理该事件得到处理结果,将处理结果通过新的服务器事件发给消息服务器,并更新数据库,在整个处理过程中,利用了状态机,实现了业务流程的准确快速的流转,并且,将状态机预先缓存的方式,便于快速读取,提高了响应的速度,并且将处理业务逻辑的类与处理状态机的类(状态机流转引擎)分开,分别独立执行服务器事件处理任务和执行状态机流转任务,进一步优化了处理的速度。
上述S21中,界面按钮都预设了***,当用户点击按钮时,***监听到此事件时,会自动生成对应的客户端事件。
例如图3所示的界面,在该界面中,用户赵六在交易发起面板上点击了发起交易的按钮,则客户端在后台会生成与发起交易对应的客户端事件。
上述步骤S21中,对客户端事件的序列化是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化主要是为了解决在对对象流进行读写操作时所引发的问题。
进一步地,上述步骤S21中,对客户端事件进行处理,如图4所示,包括:
S41、产生一个新的线程;
S42、通过所述新的线程,执行所述表单预设的界面处理方法和/或表单的数据处理方法;两者都执行时,执行表单的数据处理方法在先,执行表单的界面处理方法在后。
使用新的线程,来执行表单预设的界面处理方法、表单的数据处理方法中的两个或任一个。一般而言,起新线程的好处在于在用户提交请求后,其界面会发生变化,例如查询请求提交按钮的界面会在用户点击提交按钮之后消失,显示新的界面或者不进行任何新的界面的显示,直至查询结果的返回,用户体验较好。
上述数据处理方法和界面处理方法,针对不同的业务类型分别具有预先设定的执行逻辑,按照业务逻辑得到正确的数据处理结果后才能在相应的界面上正确显示出来,因此数据处理方法执行在先,界面处理方法执行在后。
在一个实施例中,具体而言,上述步骤S21中,根据所述表单的数据生成对应的客户端事件,对所述客户端事件进行序列化,如图5所示,可以通过下述步骤实现:
S51、将所述表单的数据按照动作事件ActionEvent事件的方式组装数据,生成对应的ActionEvent事件;
触发ActionEvent事件,通常可以包括下面的操作:1、点击按钮,2、双击列表中选项,3、选择菜单项,4、在文本框中输入回车,等等。
例如在文本框获得输入焦点之后,如果用户按回车键,Java***就自动用ActionEvent类创建一个对象,即ActionEvent事件;
使用ActionEvent事件将表单中的各项数据提取出来,而不在乎其具体的表单格式。
S52、执行ActionListener接口中的预设的actionPerformed方法,将表单的数据组装成序列化的java内对象。
以赵六发起钢材交易的简单例子说明:
如图6所示,在赵六在交易发起面板点击发起交易后,客户端生成客户端事件ActionEvent,ActionEvent***(DealPanel)监听到该事件,调用actionPerformed方法,构造请求数据BuildRequest(),然后启动一个新的ThreadWorker线程,进行数据处理(从连接服务器获取交易发送对象列表)和界面处理(弹出发起确认的界面),更新客户端界面至发起确认面板;
在确认面板中弹出发送给对象列表:张三、李四、王五,用户再次确认之后,客户端的交易请求管理监听类(InquiryManager)会调用函数submitinquiry(),生成对应的交易请求时间,将该画面的请求数据封装在该交易请求事件中。
交易请求事件中可包含:时间名称、事件数据(交易ID、交易类型、交易限定时间、交易价格和发送对象列表等);
然后事件对象(DealRequestEvent)通过Map将其数据序列化,最终通过socket通信函数将该交易请求事件发送给连接服务器。
客户端的请求发送给连接服务器之后,可能因为业务逻辑的不同,产生多种结果,例如,可以由连接服务器自身处理即返回给客户端,或者连接服务器自身不能处理而需要由连接服务器转发给其他的应用服务器去处理。
举例子来说,例如查询业务,具体例如票据持仓查询,由连接服务器直接访问缓存服务器或者数据库服务器即可实现,不用再转至应用服务器去处理。基于此,连接服务器返回的处理结果,可以包括:
1)连接服务器返回的提交应用服务器成功或失败的结果;不论请求由连接服务器处理还是转由其他服务器处理,在请求到达连接服务器(连接服务器自身就能够处理的情况)或者请求被连接服务器成功转发至对应的应用服务器的情况下,连接服务器会向客户端返回提交成功或失败的结果。
2)连接服务器返回的由连接服务器自身完成的数据查询结果;
3)连接服务器返回的由应用服务器处理后通过连接服务器返回的数据处理结果。
相应地,上述步骤S23中,将接收到的处理结果由服务器事件转换成对应的客户端事件,执行对应的方法,更新客户端界面,可以通过下述方式实现:
将接收的处理结果的Sever Event转换成新的预设的Application Event事件,执行预设的表单的processAppliaction Event方法,更新客户端的界面。
Sever Event事件是经服务器处理后返回的包含处理结果的服务器类型的事件,这种类型的事件客户端无法处理,需要通过转换,将其中包含的处理结果提取出来,重新转换成客户端能够识别和处理的Application Event事件,然后执行预设的表单的processAppliaction Event方法,最终实现客户端的界面的更新,显示最终的处理结果。
在一个实施例中,为了实现客户端侧表格的实时刷新,不需要用户手动刷新就能够及时获取变化的交易信息,连接服务器返回的由应用服务器处理后通过连接服务器返回的数据处理结果时,所述服务器返回的处理结果中包括:发生数据更新的视图模型的标识以及对应的更新的数据;所述视图模型是客户端对需要实时刷新的表格预先在连接服务器中注册的镜像;
相应地,上述步骤S21中,更新客户端界面,具体可以通过下述方式实现:
根据所述视图模型的标识,使用所述更新的数据更新所述视图模型对应的表格内容。
每个视图模型都与一个需要实时刷新的表格相对应。需要实时刷新的表格包括:现有持仓、持仓日志、交易动态等表格,一个票据交易状态的变化,可能会涉及到买家、卖家多个交易员当前显示界面中需要实时刷新的表格,这类表格的内容,不需要用户主动点击刷新,就能够智能刷新,实时地展示交易变化,使用户能够直观地、快速地了解当前交易行情。视图模型(MVC,Model-View-Controller)是客户端对需要实时刷新的表格预先在连接服务器中注册的镜像,也就是说,视图模型的数据内容始终保持与客户端的实时同步,至于是否需要将更新的数据交易推送给客户端展示,则需要根据当前客户端所展示的页面来决定。
通过视图模型的标识和需要刷新的数据,能够准确且快速地实现对用户界面上表格数据的实时刷新。
上述客户端与连接服务器之间可以通过多种通信方式,例如通过套接字(socket)方式进行通信,本发明实施例对采用何种具体的通信方式不做限定。
在本发明实施例中,票据交易***可以实现多类型的票据交易,例如买断、卖断、正回购、逆回购等等。每种票据交易类型都具有唯一的协议号,在每种交易类型下面,又包括多种交易流程,每种流程都对应一个状态机,状态机记录了相关流程流转的信息。
在应用服务器侧,参照下表1所示的例子,标识为32的状态机的描述为“TESTProcess”,标识为21的状态机的描述为“ticket Process”,分别对应不同的流程。
表1
状态机ID | 状态机ID | 初始化状态ID |
32 | TEST Process | 51 |
21 | ticket Process | 14 |
在一个实施例中,状态机信息包括多种,例如包括:状态机的标识、状态标识、状态名称、当前状态对应的操作/事件、下一个状态的标识和下一个状态的名称和处理该事件的类。
参照下表2所示的例子,标识为32的状态机中记录了多个流程流转信息。
表2
在一个实施例中,上述步骤S22中,应用服务器可以在启动时,将各类交易下业务流程对应的状态机信息缓存在内存中,并在关闭时,删除状态机信息,释放内存。
在一个实施例中,上述步骤S22中,消息服务器中的消息的发布者可能是连接服务器,或者其他应用服务器,或者票据交易***中的认证服务器等等,当本应用服务器订阅了这类消息时,对消息服务器中缓存的服务器事件进行监听,就能读取本应用服务器需要处理的服务器事件。
相应地,如图7所示,上述步骤S22中根据该服务器事件对应流程,通过对应的状态机流转引擎线程,读取缓存的状态机信息中定义的流程数据,确定下个操作状态和处理该服务器事件的类的步骤,可以通过下述步骤S71-S73实现:
S71、从服务器事件中解析出交易信息和流程信息;
服务器事件中包含了是哪类交易,以及是哪类交易下的哪类流程。
S72、从所缓存的各个状态机信息中,确定该交易下该流程对应的状态机信息;
S73、通过对应的状态机流转引擎线程,查询状态机信息,根据所述交易下所述流程的当前状态、当前状态对应的操作/事件,得到下个状态的标识和处理该事件的类。
例如,按照表2,当当前状态名称为等待回复时,且操作/事件为确定时,查询状态机信息可以知道下一个状态的名称为完成,对应处理该事件的类为OKHandler。
各流程对应的状态机的生成可以参照现有技术,本发明实施例在此不再赘述。
较佳地,上述步骤S22中,状态机流转引擎线程,可以从预先启动的状态机流转引擎线程池中调用。
类似地,在上述步骤S22中,处理服务器事件的类的线程,可以从预先启动的用于处理服务器事件的线程池中调用。
应用服务器在启动时,除了将各类交易下业务流程对应的状态机信息缓存之外,还可以执行下述步骤即:启动用于处理服务器事件的线程池和状态机流转引擎线程池。
线程池中包含预先创建的多个线程,当需要处理的任务产生时,可以直接调用预先已创建完成的线程,可以实现多线程同时执行,显著减少处理器的闲置时间,增加处理单元的吞吐能力。
线程池中线程初始化预设数量的线程,后续再根据任务量的多少,进行动态的增加或减少,每次增加或减少可以是固定数量的线程。
线程池适用于单个任务处理时间较短,但所需处理的任务数量大的情况,使用线程池的好处:1、减少在创建和销毁线程上所花的时间及***资源的开销(将线程预先创建出来),2、如果不使用线程池,则有可能造成***创建大量线程而导致消耗完***内存以及“过度切换”。
许多服务器应用都面向处理来自某些远程来源的大量短小的任务。构建服务器应用程序的一个过于简单的模型是:每当一个请求到达就创建一个新的服务对象,然后在新的服务对象中为请求服务。但当有大量请求并发访问时,服务器不断的创建和销毁对象的开销很大。所以提高服务器效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。
线程池是预先创建线程的一种技术。线程池在还没有任务到来之前,创建一定数量的线程,放入空闲队列中。这些线程都是处于睡眠状态,即均为启动,不消耗CPU,而只是占用较小的内存空间。当请求到来之后,缓冲池给这次请求分配一个空闲线程,把请求传入此线程中运行,进行处理。当预先创建的线程都处于运行状态,即预制线程不够,线程池可以自由创建一定数量的新线程,用于处理更多的请求。当***比较闲的时候,也可以通过移除一部分一直处于停用状态的线程。
线程池中的多线程并非越多越好,需要根据***运行的软硬件环境以及应用本身的特点决定线程池的大小。如果处理任务较多,线程运行时可能出现阻塞现象,可相应增加池的大小;如处理任务较少,必要时可采用自适应算法来动态调整线程池的大小,以提高CPU的有效利用率和***的整体性能。
在一个实施例中,本发明实施例提供的上述业务流程的处理方法,在服务器之间传递的消息类型与应用服务器内部处理事件的类型不同时,在读取该服务器事件之后,还需要执行下述步骤:将服务器事件所属的服务器之间的消息类型,转换成本应用服务器处理的消息类型;
相应地,上述步骤S22处理结果生成服务器事件,具体通过下述步骤实现:将服务事件的处理结果,按照所述服务器之间的消息类型进行封装,生成新的服务器事件(已不同于读取的服务器事件)。
进一步地,本发明实施例提供的上述业务流程的处理方法,还可以执行下述步骤:
当通过处理该服务器事件的类的线程,处理所述服务器事件成功时,更新所述流程的状态为所述下一个状态;
将交易信息、流程的状态信息和处理结果生成服务器事件并发送给消息服务器;
发送给消息服务器后,订阅了这类服务器事件的其他服务器就会从消息服务器中进一步读取该服务器事件,然后进一步处理。
否则,当通过处理该服务器事件的类的线程,处理所述服务器事件出现错误时,直接结束所述流程的处理,并通告中控客户端。
中控客户端接收到通告后,可以通过人工干预的方式,对流程中出错的原因进行排查。
比如票据议价的流程,如果一旦处理出错,则直接中断该流程的执行,使该流程回到起点,即通知发起交易的客户端重新发起交易,同时因为议价流程被锁定的持仓也被释放。
基于同一发明构思,本发明实施例还提供了一种基于事件的流程处理的***,由于该***所解决问题的原理与前述实施例提供的基于事件的流程处理方法相似,因此该***的实施可以参见前述方法的实施,重复之处不再赘述。
本发明实施例提供的基于事件的流程处理的***,如图8所示,包括:客户端81、连接服务器82和应用服务器83;其中:
所述客户端81,如图9A所示,包括:
监听模块811,用于对预设表单的画面按钮触发事件进行监听;
客户端事件生成模块812,用于当监听到预设表单的画面按钮触发事件时,根据所述表单的数据生成对应的客户端事件;
序列化模块813,用于对所述客户端事件进行序列化;以及对服务器事件进行序列化处理;
处理模块814,用于对序列化后的客户端事件进行处理;
判断模块815,用于判断是否需要将处理模块处理后的客户端事件发送给服务器继续处理;
发送模块816,用于当判断模块确定需要,则将将处理后的客户端事件序列化并发送给连接服务器;
接收模块817,用于从连接服务器接收返回的处理结果;
客户端界面更新模块818,用于将接收到的处理结果由服务器事件转换成对应的客户端事件,执行对应的方法,更新客户端界面;
所述连接服务器82,用于将需要由应用服务器处理的事件发送给消息服务器;
应用服务器83,如图9B所示,包括:
缓存模块831,用于在启动时,将各类交易下业务流程对应的状态机信息缓存;
消息读取模块832,用于当从消息服务器中监听到本应用服务器处理的服务器事件时,读取该服务器事件;
状态流转模块833,用于根据该服务器事件对应流程,通过对应的状态机流转引擎线程,读取缓存的状态机信息中定义的流程数据,确定下个操作状态和处理该服务器事件的类;
事件处理模块834,用于通过处理该服务器事件的类的线程,处理所述服务器事件得到处理结果;
生成模块835,用于将处理结果生成服务器事件;
发送模块836,用于将所述生成模块生成的服务器事件发送给消息服务器;
数据更新模块837,用于根据所述处理结果,更新数据库服务器中的数据库数据。
在一个实施例中,所述客户端81的处理模块814,具体用于产生一个新的线程;通过所述新的线程,执行所述表单预设的界面处理方法和/或表单的数据处理方法;两者都执行时,执行表单的数据处理方法在先,执行表单的数据处理方法在后。
在一个实施例中,客户端81的客户端事件生成模块812,具体用于将所述表单的数据按照动作事件ActionEvent事件的方式组装数据,生成对应的ActionEvent事件;
上述序列化模块813,具体用于执行ActionListener接口中的预设的actionPerformed方法,将表单的数据组装成序列化的java内对象。
在一个实施例中,所述连接服务器返回的处理结果包括:
连接服务器返回的提交应用服务器成功或失败的结果;
连接服务器返回的由连接服务器自身完成的数据查询结果;
连接服务器返回的由应用服务器处理后通过连接服务器返回的数据处理结果;
上述客户端界面更新模块818,具体用于将接收的处理结果的SeverEvent转换成新的预设的Application Event事件,执行预设的表单的processAppliaction Event方法,更新客户端的界面。
在一个实施例中,连接服务器返回的由应用服务器处理后通过连接服务器返回的数据处理结果时,所述服务器返回的处理结果中包括:发生数据更新的视图模型的标识以及对应的更新的数据;所述视图模型是客户端对需要实时刷新的表格预先在连接服务器中注册的镜像;
相应地,上述客户端界面更新模块818,具体用于根据所述视图模型的标识,使用所述更新的数据更新所述视图模型对应的表格内容。
在一个实施例中,在应用服务器侧,上述状态机信息包括:
状态机的标识、状态标识、状态名称、当前状态对应的操作/事件、下一个状态的标识和下一个状态的名称和处理该事件的类。
在一个实施例中,上述状态流转模块833,如图10所示,包括:
解析子模块8331,用于从所述服务器事件中解析出交易信息和流程信息;
确定子模块8332,用于从所缓存的状态机信息中,确定所述交易下所述流程对应的状态机信息;
查询子模块8333,用于通过对应的状态机流转引擎线程,查询所述状态机信息,根据所述交易下所述流程的当前状态、当前状态对应的操作/事件,得到下个状态的标识和处理该事件的类。
在一个实施例中,上述应用服务器,如图9B所示,应用服务器还包括:转换模块838,用于在消息读取模块读取该服务器事件之后,将所述服务器事件所属的服务器之间的消息类型,转换成本应用服务器处理的消息类型;以及将所述事件处理模块得到的处理结果,按照所述服务器之间的消息类型进行封装,生成服务器事件。
在一个实施例中,上述应用服务器,如图9B所示,应用服务器还包括:线程池启动模块839;
线程池启动模块839用于在启动时,分别启动用于处理服务器事件的线程池和状态机流转引擎线程池;所述处理服务器事件的线程池和状态机流转引擎线程池中包含预设数量的多个待调用的线程;
所述状态机流转引擎线程和所述处理该服务器事件的类的线程分别从所述服务器事件的线程池和状态机流转引擎线程池中调用。
在一个实施例中,如图9B所示,上述应用服务器,还包括:状态更新模块8310和异常处理模块8311;其中:
上述状态更新模块8310,用于当通过处理该服务器事件的类的线程,处理所述服务器事件成功时,更新该流程的状态为所述下一个状态;
上述生成模块835,还用于将交易信息、流程的状态信息和处理结果生成服务器事件;
上述异常处理模块8311,用于通过处理该服务器事件的类的线程,处理所述服务器事件出现错误时,结束所述流程的处理,并通告中控客户端。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种基于事件的流程处理方法,其特征在于,包括:
当客户端监听到预设表单的画面按钮触发事件时,根据所述表单的数据生成对应的客户端事件;对所述客户端事件进行序列化并处理,并在处理后判断是否需要继续发送给服务器进行处理;若确定需要,则将处理后的客户端事件序列化并发送给连接服务器,以便连接服务器自身处理或转由应用服务器处理;
所述连接服务器将需要由应用服务器处理的事件发送给消息服务器,所述应用服务器按照下述方式进行处理:在启动时,将各类交易下业务流程对应的状态机信息缓存;当从消息服务器中监听到本应用服务器处理的服务器事件时,读取该服务器事件;根据该服务器事件对应流程,通过对应的状态机流转引擎线程,读取缓存的状态机信息中定义的流程数据,确定下个操作状态和处理该服务器事件的类;通过处理该服务器事件的类的线程,处理所述服务器事件得到处理结果;将处理结果生成服务器事件并发送至消息服务器,并更新数据库服务器中的数据库数据;
当客户端接收到连接服务器返回的处理结果时,将接收到的处理结果由服务器事件转换成对应的客户端事件,执行对应的方法,更新客户端界面。
2.如权利要求1所述的方法,其特征在于,对客户端事件进行处理,包括:
产生一个新的线程;
通过所述新的线程,执行所述表单预设的界面处理方法和/或表单的数据处理方法;
两者都执行时,执行表单的数据处理方法在先,执行表单的界面处理方法在后。
3.如权利要求1所述的方法,其特征在于,所述连接服务器返回的处理结果包括:
连接服务器返回的提交应用服务器成功或失败的结果;
连接服务器返回的由连接服务器自身完成的数据查询结果;
连接服务器返回的由应用服务器处理后通过连接服务器返回的数据处理结果;
将接收到的处理结果由服务器事件转换成对应的客户端事件,执行对应的方法,更新客户端界面,包括:
将接收的处理结果的Sever Event转换成新的预设的Application Event事件,执行预设的表单的processAppliaction Event方法,更新客户端的界面。
4.如权利要求3所述的方法,其特征在于,连接服务器返回的由应用服务器处理后通过连接服务器返回的数据处理结果时,所述服务器返回的处理结果中包括:发生数据更新的视图模型的标识以及对应的更新的数据;所述视图模型是客户端对需要实时刷新的表格预先在连接服务器中注册的镜像;
所述更新客户端界面,包括:
根据所述视图模型的标识,使用所述更新的数据更新所述视图模型对应的表格内容。
5.如权利要求1所述的方法,其特征在于,所述状态机信息包括:
状态机的标识、状态标识、状态名称、当前状态对应的操作/事件、下一个状态的标识和下一个状态的名称和处理该事件的类。
6.如权利要求5所述的方法,其特征在于,所述根据该服务器事件对应流程,通过对应的状态机流转引擎线程,读取缓存的状态机信息中定义的流程数据,确定下个操作状态和处理该服务器事件的类,包括:
从所述服务器事件中解析出交易信息和流程信息;
从所缓存的状态机信息中,确定所述交易下所述流程对应的状态机信息;
通过对应的状态机流转引擎线程,查询所述状态机信息,根据所述交易下所述流程的当前状态、当前状态对应的操作/事件,得到下个状态的标识和处理该事件的类。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
在启动时,分别启动用于处理服务器事件的线程池和状态机流转引擎线程池;所述处理服务器事件的线程池和状态机流转引擎线程池中包含预设数量的多个待调用的线程;
所述状态机流转引擎线程和所述处理该服务器事件的类的线程分别从所述服务器事件的线程池和状态机流转引擎线程池中调用。
8.一种基于事件的流程处理***,其特征在于,包括:客户端、连接服务器和应用服务器;其中:
所述客户端,包括:
监听模块,用于对预设表单的画面按钮触发事件进行监听;
客户端事件生成模块,用于当监听到预设表单的画面按钮触发事件时,根据所述表单的数据生成对应的客户端事件;
序列化模块,用于对所述客户端事件进行序列化;以及对服务器事件进行序列化处理;
处理模块,用于对序列化后的客户端事件进行处理;
判断模块,用于判断是否需要将处理模块处理后的客户端事件发送给服务器继续处理;
发送模块,用于当判断模块确定需要,则将将处理后的客户端事件序列化并发送给连接服务器;
接收模块,用于从连接服务器接收返回的处理结果;
客户端界面更新模块,用于将接收到的处理结果由服务器事件转换成对应的客户端事件,执行对应的方法,更新客户端界面;
所述连接服务器,用于将需要由应用服务器处理的事件发送给消息服务器;
所述应用服务器,包括:
缓存模块,用于在启动时,将各类交易下业务流程对应的状态机信息缓存;
消息读取模块,用于当从消息服务器中监听到本应用服务器处理的服务器事件时,读取该服务器事件;
状态流转模块,用于根据该服务器事件对应流程,通过对应的状态机流转引擎线程,读取缓存的状态机信息中定义的流程数据,确定下个操作状态和处理该服务器事件的类;
事件处理模块,用于通过处理该服务器事件的类的线程,处理所述服务器事件得到处理结果;
生成模块,用于将处理结果生成服务器事件;
发送模块,用于将所述生成模块生成的服务器事件发送给消息服务器;
数据更新模块,用于根据所述处理结果,更新数据库服务器中的数据库数据。
9.如权利要求8所述的***,其特征在于,所述客户端的处理模块,具体用于产生一个新的线程;通过所述新的线程,执行所述表单预设的界面处理方法和/或表单的数据处理方法;两者都执行时,执行表单的数据处理方法在先,执行表单的数据处理方法在后。
10.如权利要求8所述的***,其特征在于,所述连接服务器返回的处理结果包括:
连接服务器返回的提交应用服务器成功或失败的结果;
连接服务器返回的由连接服务器自身完成的数据查询结果;
连接服务器返回的由应用服务器处理后通过连接服务器返回的数据处理结果;
所述客户端界面更新模块,具体用于将接收的处理结果的Sever Event转换成新的预设的Application Event事件,执行预设的表单的processAppliaction Event方法,更新客户端的界面。
11.如权利要求10所述的***,其特征在于,连接服务器返回的由应用服务器处理后通过连接服务器返回的数据处理结果时,所述服务器返回的处理结果中包括:发生数据更新的视图模型的标识以及对应的更新的数据;所述视图模型是客户端对需要实时刷新的表格预先在连接服务器中注册的镜像;
所述客户端界面更新模块,具体用于根据所述视图模型的标识,使用所述更新的数据更新所述视图模型对应的表格内容。
12.如权利要求8所述的***,其特征在于,所述状态机信息包括:
状态机的标识、状态标识、状态名称、当前状态对应的操作/事件、下一个状态的标识和下一个状态的名称和处理该事件的类。
13.如权利要求12所述的***,其特征在于,所述状态流转模块,包括:
解析子模块,用于从所述服务器事件中解析出交易信息和流程信息;
确定子模块,用于从所缓存的状态机信息中,确定所述交易下所述流程对应的状态机信息;
查询子模块,用于通过对应的状态机流转引擎线程,查询所述状态机信息,根据所述交易下所述流程的当前状态、当前状态对应的操作/事件,得到下个状态的标识和处理该事件的类。
14.如权利要求8所述的***,其特征在于,还包括:线程池启动模块,用于在启动时,分别启动用于处理服务器事件的线程池和状态机流转引擎线程池;所述处理服务器事件的线程池和状态机流转引擎线程池中包含预设数量的多个待调用的线程;
所述状态机流转引擎线程和所述处理该服务器事件的类的线程分别从所述服务器事件的线程池和状态机流转引擎线程池中调用。
Applications Claiming Priority (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610591965 | 2016-07-25 | ||
CN2016105919651 | 2016-07-25 | ||
CN201610606530.XA CN106227584A (zh) | 2016-07-28 | 2016-07-28 | 一种基于状态机的事件驱动方法和*** |
CN2016106072619 | 2016-07-28 | ||
CN201610606530X | 2016-07-28 | ||
CN201610607261.9A CN106326016A (zh) | 2016-07-28 | 2016-07-28 | 一种多线程事件分发方法和*** |
CN2016108035099 | 2016-09-06 | ||
CN201610803509 | 2016-09-06 | ||
CN2016108410855 | 2016-09-22 | ||
CN201610841085 | 2016-09-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107656782A true CN107656782A (zh) | 2018-02-02 |
Family
ID=61126735
Family Applications (31)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611218386.9A Pending CN107656818A (zh) | 2016-07-25 | 2016-12-26 | 一种票据交易的流程实现方法及相关*** |
CN201611218348.3A Pending CN107659546A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及装置和服务器 |
CN201611219280.0A Withdrawn CN107657419A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及相关装置和服务器 |
CN201611220307.8A Pending CN107656824A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及相关装置和服务器 |
CN201611220330.7A Withdrawn CN107657531A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及*** |
CN201611219325.4A Withdrawn CN107656778A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及*** |
CN201611220354.2A Withdrawn CN107659549A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及装置和服务器 |
CN201611220292.5A Withdrawn CN107657501A (zh) | 2016-07-25 | 2016-12-26 | 一种数据实时更新的方法及相关装置和服务器 |
CN201611220361.2A Withdrawn CN107656784A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及装置和服务器 |
CN201611219331.XA Withdrawn CN107656779A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及相关*** |
CN201611218383.5A Pending CN107656801A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及*** |
CN201611220338.3A Withdrawn CN107656783A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及*** |
CN201611220337.9A Pending CN107657532A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及*** |
CN201611218372.7A Withdrawn CN107659605A (zh) | 2016-07-25 | 2016-12-26 | 一种票据交易的流程实现方法及相关*** |
CN201611218388.8A Pending CN107659547A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及装置和服务器 |
CN201611218389.2A Withdrawn CN107657530A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及*** |
CN201611220312.9A Withdrawn CN107656781A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及*** |
CN201611220334.5A Withdrawn CN107656782A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及*** |
CN201611219329.2A Withdrawn CN107657420A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及*** |
CN201611218373.1A Withdrawn CN107657517A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及相关装置和服务器 |
CN201611219359.3A Pending CN107656822A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及相关*** |
CN201611218394.3A Pending CN107656819A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及相关*** |
CN201611219350.2A Withdrawn CN107656780A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及*** |
CN201611220324.1A Withdrawn CN107659548A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及装置和客户端 |
CN201611218380.1A Withdrawn CN107656808A (zh) | 2016-07-25 | 2016-12-26 | 一种票据交易的流程实现方法及相关*** |
CN201611219315.0A Pending CN107656821A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及相关装置和服务器 |
CN201611219367.8A Pending CN107656823A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及相关*** |
CN201611219300.4A Pending CN107656820A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及相关装置和服务器 |
CN201611220358.0A Withdrawn CN107657518A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及相关装置和服务器 |
CN201611219323.5A Withdrawn CN107656777A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及*** |
CN201611220322.2A Withdrawn CN107656809A (zh) | 2016-07-25 | 2016-12-26 | 一种票据交易的流程实现方法及相关*** |
Family Applications Before (17)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611218386.9A Pending CN107656818A (zh) | 2016-07-25 | 2016-12-26 | 一种票据交易的流程实现方法及相关*** |
CN201611218348.3A Pending CN107659546A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及装置和服务器 |
CN201611219280.0A Withdrawn CN107657419A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及相关装置和服务器 |
CN201611220307.8A Pending CN107656824A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及相关装置和服务器 |
CN201611220330.7A Withdrawn CN107657531A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及*** |
CN201611219325.4A Withdrawn CN107656778A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及*** |
CN201611220354.2A Withdrawn CN107659549A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及装置和服务器 |
CN201611220292.5A Withdrawn CN107657501A (zh) | 2016-07-25 | 2016-12-26 | 一种数据实时更新的方法及相关装置和服务器 |
CN201611220361.2A Withdrawn CN107656784A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及装置和服务器 |
CN201611219331.XA Withdrawn CN107656779A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及相关*** |
CN201611218383.5A Pending CN107656801A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及*** |
CN201611220338.3A Withdrawn CN107656783A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及*** |
CN201611220337.9A Pending CN107657532A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及*** |
CN201611218372.7A Withdrawn CN107659605A (zh) | 2016-07-25 | 2016-12-26 | 一种票据交易的流程实现方法及相关*** |
CN201611218388.8A Pending CN107659547A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及装置和服务器 |
CN201611218389.2A Withdrawn CN107657530A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及*** |
CN201611220312.9A Withdrawn CN107656781A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及*** |
Family Applications After (13)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611219329.2A Withdrawn CN107657420A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及*** |
CN201611218373.1A Withdrawn CN107657517A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及相关装置和服务器 |
CN201611219359.3A Pending CN107656822A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及相关*** |
CN201611218394.3A Pending CN107656819A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及相关*** |
CN201611219350.2A Withdrawn CN107656780A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及*** |
CN201611220324.1A Withdrawn CN107659548A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及装置和客户端 |
CN201611218380.1A Withdrawn CN107656808A (zh) | 2016-07-25 | 2016-12-26 | 一种票据交易的流程实现方法及相关*** |
CN201611219315.0A Pending CN107656821A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及相关装置和服务器 |
CN201611219367.8A Pending CN107656823A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及相关*** |
CN201611219300.4A Pending CN107656820A (zh) | 2016-07-25 | 2016-12-26 | 一种业务流程的处理方法及相关装置和服务器 |
CN201611220358.0A Withdrawn CN107657518A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及相关装置和服务器 |
CN201611219323.5A Withdrawn CN107656777A (zh) | 2016-07-25 | 2016-12-26 | 一种基于事件的流程处理方法及*** |
CN201611220322.2A Withdrawn CN107656809A (zh) | 2016-07-25 | 2016-12-26 | 一种票据交易的流程实现方法及相关*** |
Country Status (1)
Country | Link |
---|---|
CN (31) | CN107656818A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015393A (zh) * | 2020-08-25 | 2020-12-01 | ***股份有限公司 | 一种业务处理方法及装置 |
CN112766935A (zh) * | 2021-02-24 | 2021-05-07 | 中国工商银行股份有限公司 | 处理票据业务的方法、装置、计算设备和介质 |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122239A (zh) * | 2017-04-28 | 2017-09-01 | 武汉票据交易中心有限公司 | 一种多线程事件分发方法和*** |
CN108595530A (zh) * | 2018-03-30 | 2018-09-28 | 武汉楚鼎信息技术有限公司 | 一种后台处理和存储用户消息的方法及***装置 |
CN108519903A (zh) * | 2018-04-09 | 2018-09-11 | 平安普惠企业管理有限公司 | 静态资源适配方法、装置、计算机设备及存储介质 |
CN108616597B (zh) * | 2018-05-09 | 2021-06-15 | 四川华创世纪科技有限公司 | 一种实现服务永不中断的分布式运行方法 |
CN109032723A (zh) * | 2018-06-28 | 2018-12-18 | 北京潘达互娱科技有限公司 | 一种界面跳转方法、装置及设备 |
CN109104297B (zh) * | 2018-07-09 | 2022-01-21 | 中国银行股份有限公司 | 一种业务流程的处理方法及装置 |
CN109165994A (zh) * | 2018-07-17 | 2019-01-08 | 北京知果科技有限公司 | 一种信息推送方法和服务器 |
CN109213495A (zh) * | 2018-08-23 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种数据的读取方法及装置 |
CN109144701A (zh) * | 2018-09-05 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种任务流管理方法、装置、设备及*** |
CN109376054B (zh) * | 2018-09-25 | 2023-02-28 | 广州虎牙信息科技有限公司 | 一种数据分发的方法、装置、终端设备及存储介质 |
CN110968586B (zh) * | 2018-09-30 | 2023-08-25 | 北京国双科技有限公司 | 分布式事务处理方法及装置 |
CN109542592A (zh) * | 2018-11-22 | 2019-03-29 | 深圳墨世科技有限公司 | 事件处理方法及装置 |
CN109669791A (zh) * | 2018-12-22 | 2019-04-23 | 网宿科技股份有限公司 | 交互方法、服务器及计算机可读存储介质 |
CN109729410B (zh) * | 2018-12-29 | 2022-03-04 | 北京字节跳动网络技术有限公司 | 一种直播间交互事件处理方法、装置、设备及存储介质 |
CN109889373B (zh) * | 2019-01-22 | 2022-06-21 | 视联动力信息技术股份有限公司 | 一种告警信息的传输方法、装置和*** |
CN110009283B (zh) * | 2019-04-03 | 2021-09-07 | 北京思特奇信息技术股份有限公司 | 一种服务产品的电商化物流跟踪方法和*** |
CN110099111A (zh) * | 2019-04-26 | 2019-08-06 | 深圳智链物联科技有限公司 | 一种推送消息的显示***及其显示方法 |
CN110267228B (zh) * | 2019-06-13 | 2022-03-22 | 重庆邮电大学 | 一种v2x车载终端消息自适应调度管理***及方法 |
CN110532088B (zh) * | 2019-07-15 | 2022-09-23 | 金蝶汽车网络科技有限公司 | 连接处理方法、装置、计算机设备和存储介质 |
CN110490600B (zh) * | 2019-08-23 | 2022-04-26 | 中国联合网络通信集团有限公司 | 处理银行业务的方法、服务器、终端 |
CN110708356B (zh) * | 2019-09-06 | 2024-01-05 | 国云科技股份有限公司 | 一种注册中心管理第三方应用的方法和*** |
CN110597867B (zh) * | 2019-09-09 | 2023-04-28 | 珠海格力电器股份有限公司 | 图文数据处理方法及*** |
CN110995781B (zh) * | 2019-11-01 | 2022-01-11 | 腾讯科技(深圳)有限公司 | 点赞信息处理方法、装置及*** |
JP7385436B2 (ja) * | 2019-11-12 | 2023-11-22 | 株式会社野村総合研究所 | 管理システム |
CN110855529B (zh) * | 2019-11-26 | 2021-04-23 | 广东物壹信息科技股份有限公司 | 网络信息安全监护方法、装置、服务器及可读存储介质 |
CN111008069B (zh) * | 2019-12-02 | 2023-12-15 | 浙江大搜车软件技术有限公司 | 业务处理方法、装置、计算机设备和存储介质 |
CN111131425B (zh) * | 2019-12-18 | 2022-08-30 | 东软集团股份有限公司 | 分布式***以及分布式***的通信方法 |
CN111158928B (zh) * | 2019-12-18 | 2024-04-05 | 东软集团股份有限公司 | 分布式***及通信方法 |
CN111144982B (zh) * | 2019-12-20 | 2022-02-11 | 网联清算有限公司 | 订单状态转移方法、装置、电子设备和存储介质 |
CN111179081A (zh) * | 2019-12-24 | 2020-05-19 | 中国建设银行股份有限公司 | 一种消息的处理方法和处理装置 |
CN111210286A (zh) * | 2019-12-26 | 2020-05-29 | 大象慧云信息技术有限公司 | 一种基于税控服务器的***高效开具方法及*** |
CN111210288A (zh) * | 2019-12-26 | 2020-05-29 | 大象慧云信息技术有限公司 | 基于税控服务器的***批量开具作业优化调度方法及*** |
CN111277626B (zh) * | 2020-01-07 | 2023-08-22 | 平安科技(深圳)有限公司 | 服务器升级方法、装置、电子设备及介质 |
CN111352674B (zh) * | 2020-02-21 | 2023-07-07 | 中国平安财产保险股份有限公司 | 名单流转方法、服务器及计算机可读存储介质 |
CN111367694B (zh) * | 2020-03-18 | 2024-01-26 | 北京奇艺世纪科技有限公司 | 事件处理方法、服务器及计算机存储介质 |
CN111581114B (zh) * | 2020-06-04 | 2023-10-27 | 网易(杭州)网络有限公司 | 事件处理方法、装置、存储介质、处理器及电子装置 |
CN111880611B (zh) * | 2020-06-19 | 2022-06-28 | 深圳宏芯宇电子股份有限公司 | 用于快速交易的服务器及快速交易数据处理方法 |
CN111770171B (zh) * | 2020-06-29 | 2023-05-02 | 浪潮通用软件有限公司 | 一种微服务模式下多页面功能会话周期状态管理方法 |
CN112100187B (zh) * | 2020-08-31 | 2024-01-26 | 武汉美和易思数字科技有限公司 | 一种基于VueJS的学生学习数据存储方法及装置 |
CN112131238B (zh) * | 2020-09-30 | 2022-07-22 | 江苏苏宁银行股份有限公司 | 一种交易状态机设计方法、处理装置和处理方法 |
CN112702270B (zh) * | 2020-12-18 | 2023-05-02 | 深圳赛安特技术服务有限公司 | 基于事件分发机制的节点调用方法、***及存储介质 |
CN114760530B (zh) * | 2020-12-25 | 2023-08-01 | 深圳Tcl新技术有限公司 | 事件处理方法、装置、电视机及计算机可读存储介质 |
CN112559535B (zh) * | 2020-12-28 | 2023-08-22 | 平安银行股份有限公司 | 基于多线程的异步任务处理方法、装置、设备及介质 |
CN112667527A (zh) * | 2021-01-15 | 2021-04-16 | 北京云上曲率科技有限公司 | 一种确保客户端数据采集准确性的方法及客户端 |
CN112700310B (zh) * | 2021-01-19 | 2021-09-07 | 汇通数科智能科技有限公司 | 一种基于电商平台的交易订单数据优化处理方法 |
CN112860454B (zh) * | 2021-02-05 | 2024-04-19 | 百果园技术(新加坡)有限公司 | 业务处理***及方法 |
CN112860460B (zh) * | 2021-02-23 | 2022-01-04 | 创盛视联数码科技(北京)有限公司 | 用于实时课堂的事件分发方法及*** |
CN112988813A (zh) * | 2021-03-16 | 2021-06-18 | 武汉卓宇诚科技有限公司 | 一种农产品信息追溯方法 |
CN113031992B (zh) * | 2021-04-27 | 2023-04-07 | 中国平安人寿保险股份有限公司 | Annoy热更新方法、装置、设备及介质 |
CN113204442B (zh) * | 2021-05-31 | 2023-11-24 | 成都安恒信息技术有限公司 | 一种基于MVVM模式的操作IndexedDB的javascript库*** |
CN113742807B (zh) * | 2021-09-07 | 2024-05-14 | 广联达科技股份有限公司 | 交互处理方法、装置及电子设备 |
CN113761006A (zh) * | 2021-09-10 | 2021-12-07 | 南京星邺汇捷网络科技有限公司 | 基于多队列的事件时序性保障方法 |
CN114039981B (zh) * | 2021-11-11 | 2024-04-02 | 中国建设银行股份有限公司 | 一种消息处理方法、装置、服务器及存储介质 |
CN113821279A (zh) * | 2021-11-24 | 2021-12-21 | 深圳市永联科技股份有限公司 | 一种状态转换的方法、装置及嵌入式设备 |
CN114357029B (zh) * | 2022-01-04 | 2022-09-02 | 工银瑞信基金管理有限公司 | 业务数据的处理方法、装置、设备及介质 |
CN114385267B (zh) * | 2022-01-13 | 2024-06-18 | 平安壹钱包电子商务有限公司 | 一种用于出款交易业务的数据推送方法 |
CN114615318B (zh) * | 2022-01-24 | 2023-04-28 | 阿里云计算有限公司 | 一种数据处理方法及装置 |
CN115225633B (zh) * | 2022-06-24 | 2024-04-12 | 浪潮软件集团有限公司 | 基于对端网络信号的状态机状态转换方法及*** |
CN115309536B (zh) * | 2022-10-12 | 2023-01-24 | 青岛民航凯亚***集成有限公司 | 高并发的彩票交易场景下数据一致性方法 |
CN116841772B (zh) * | 2023-08-30 | 2023-11-07 | 成都中科合迅科技有限公司 | 基于事件队列的跨线程信号处理方法和*** |
CN117215755B (zh) * | 2023-11-07 | 2024-02-06 | 西安博达软件股份有限公司 | 一种基于时间轮算法的预约事件任务调度方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101201753A (zh) * | 2007-12-13 | 2008-06-18 | 浪潮通信信息***有限公司 | 一种多状态机管理引擎的配置管理方法 |
CN101957751A (zh) * | 2010-06-04 | 2011-01-26 | 福建星网锐捷网络有限公司 | 一种状态机的实现方法及装置 |
CN102255867A (zh) * | 2010-05-18 | 2011-11-23 | 华为技术有限公司 | 服务请求处理方法、装置及*** |
CN102843389A (zh) * | 2011-06-21 | 2012-12-26 | 国承斌 | 基于事件驱动的web***和方法 |
CN104793999A (zh) * | 2014-01-21 | 2015-07-22 | 航天信息股份有限公司 | 伺服服务器架构*** |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7441240B2 (en) * | 2003-01-07 | 2008-10-21 | Matsushita Electric Industrial Co., Ltd. | Process scheduling apparatus, process scheduling method, program for process scheduling, and storage medium recording a program for process scheduling |
CN1482566A (zh) * | 2003-01-22 | 2004-03-17 | 余育新 | 分布式工作流管理平台 |
CN1487446A (zh) * | 2003-06-24 | 2004-04-07 | 深圳市华磊网络技术有限公司 | 服务器端应用为浏览器客户端提供用户界面的方法 |
CN1983313B (zh) * | 2006-04-07 | 2011-08-10 | 华为技术有限公司 | 工作流数据处理装置及方法 |
CN101873334B (zh) * | 2009-04-24 | 2013-01-02 | 同济大学 | 一种状态驱动的可执行业务流程执行方法 |
CN101551745A (zh) * | 2009-05-13 | 2009-10-07 | 山东中创软件工程股份有限公司 | 大幅度提高工作流引擎性能的方法 |
CN101741850B (zh) * | 2009-12-25 | 2012-05-30 | 北京邮电大学 | 面向混合网络服务的多任务并发执行***及方法 |
CN102025650A (zh) * | 2010-06-04 | 2011-04-20 | 西本新干线股份有限公司 | 企业服务总线的消息处理***和消息处理方法 |
CN102340495B (zh) * | 2010-07-26 | 2014-09-03 | ***通信集团广东有限公司 | 一种支撑跨***业务联动的事件中心及其事件处理方法 |
CN102044089A (zh) * | 2010-09-20 | 2011-05-04 | 董福田 | 一种三维模型的自适应化简、渐进传输和快速绘制的方法 |
CN101982955B (zh) * | 2010-11-19 | 2013-09-04 | 深圳华大基因科技有限公司 | 高性能文件传输***及方法 |
CN102693434B (zh) * | 2011-03-22 | 2015-01-28 | 中兴通讯股份有限公司 | 射频识别设备接口层的通信装置及方法 |
CN102291416B (zh) * | 2011-09-14 | 2015-09-30 | 成都软智科技有限公司 | 一种客户端与服务器端双向同步的方法及*** |
CN102562162B (zh) * | 2011-12-14 | 2014-05-07 | 北京邮电大学 | 一种基于事件处理的煤矿报警***及方法 |
CN102594798A (zh) * | 2011-12-31 | 2012-07-18 | 苏州阔地网络科技有限公司 | 一种连接数据库的代理方法及*** |
CN102572954B (zh) * | 2012-01-31 | 2015-05-20 | ***(深圳)有限公司 | 一种漫游清算服务调度方法、中间件及*** |
CN102664934B (zh) * | 2012-04-06 | 2015-04-15 | 北京华夏电通科技股份有限公司 | 一种用于服务器自适应自反馈的多线程控制方法及*** |
CN102904887B (zh) * | 2012-09-26 | 2016-01-20 | 东软集团股份有限公司 | 一种Web客户端与服务器的数据同步方法和*** |
US9235464B2 (en) * | 2012-10-16 | 2016-01-12 | Microsoft Technology Licensing, Llc | Smart error recovery for database applications |
CN103093342A (zh) * | 2013-01-11 | 2013-05-08 | 北京掌上汇通科技发展有限公司 | 一种联机交易处理平台及其交易处理方法 |
CN103197968B (zh) * | 2013-03-18 | 2016-03-30 | 焦点科技股份有限公司 | 一种融合同步异步特点的线程池处理方法及*** |
CN103179133B (zh) * | 2013-04-12 | 2016-03-30 | 北京工业大学 | 基于实体类的客户端与服务器通信的方法 |
CN103366471B (zh) * | 2013-06-26 | 2015-08-12 | 福建联迪商用设备有限公司 | 一种联机业务并发处理方法、***及服务器 |
CN104253808B (zh) * | 2013-06-29 | 2018-05-08 | 北京新媒传信科技有限公司 | 即时通信***中的状态呈现方法和状态呈现服务器 |
CN103854168B (zh) * | 2014-02-17 | 2016-09-28 | 湖南中烟工业有限责任公司 | 异构流程待办集中处理方法及处理装置 |
CN103927218B (zh) * | 2014-04-30 | 2017-07-04 | 广州唯品会网络技术有限公司 | 事件分发方法及*** |
CN104615647B (zh) * | 2014-12-25 | 2018-05-01 | 百度在线网络技术(北京)有限公司 | 视图模型请求、下发方法及装置 |
CN104618432B (zh) * | 2014-12-30 | 2019-03-08 | 北京红马传媒文化发展有限公司 | 一种事件发送与接收的处理方法和处理*** |
CN104580226B (zh) * | 2015-01-15 | 2017-07-11 | 上海瀚之友信息技术服务有限公司 | 一种共享会话数据的***和方法 |
CN104820701B (zh) * | 2015-05-11 | 2018-02-06 | 北京瑞星信息技术股份有限公司 | 数据记录和同步方法及*** |
CN105573840B (zh) * | 2015-12-08 | 2019-06-14 | 东软集团股份有限公司 | 工作流运行期的事件处理方法和装置 |
-
2016
- 2016-12-26 CN CN201611218386.9A patent/CN107656818A/zh active Pending
- 2016-12-26 CN CN201611218348.3A patent/CN107659546A/zh active Pending
- 2016-12-26 CN CN201611219280.0A patent/CN107657419A/zh not_active Withdrawn
- 2016-12-26 CN CN201611220307.8A patent/CN107656824A/zh active Pending
- 2016-12-26 CN CN201611220330.7A patent/CN107657531A/zh not_active Withdrawn
- 2016-12-26 CN CN201611219325.4A patent/CN107656778A/zh not_active Withdrawn
- 2016-12-26 CN CN201611220354.2A patent/CN107659549A/zh not_active Withdrawn
- 2016-12-26 CN CN201611220292.5A patent/CN107657501A/zh not_active Withdrawn
- 2016-12-26 CN CN201611220361.2A patent/CN107656784A/zh not_active Withdrawn
- 2016-12-26 CN CN201611219331.XA patent/CN107656779A/zh not_active Withdrawn
- 2016-12-26 CN CN201611218383.5A patent/CN107656801A/zh active Pending
- 2016-12-26 CN CN201611220338.3A patent/CN107656783A/zh not_active Withdrawn
- 2016-12-26 CN CN201611220337.9A patent/CN107657532A/zh active Pending
- 2016-12-26 CN CN201611218372.7A patent/CN107659605A/zh not_active Withdrawn
- 2016-12-26 CN CN201611218388.8A patent/CN107659547A/zh active Pending
- 2016-12-26 CN CN201611218389.2A patent/CN107657530A/zh not_active Withdrawn
- 2016-12-26 CN CN201611220312.9A patent/CN107656781A/zh not_active Withdrawn
- 2016-12-26 CN CN201611220334.5A patent/CN107656782A/zh not_active Withdrawn
- 2016-12-26 CN CN201611219329.2A patent/CN107657420A/zh not_active Withdrawn
- 2016-12-26 CN CN201611218373.1A patent/CN107657517A/zh not_active Withdrawn
- 2016-12-26 CN CN201611219359.3A patent/CN107656822A/zh active Pending
- 2016-12-26 CN CN201611218394.3A patent/CN107656819A/zh active Pending
- 2016-12-26 CN CN201611219350.2A patent/CN107656780A/zh not_active Withdrawn
- 2016-12-26 CN CN201611220324.1A patent/CN107659548A/zh not_active Withdrawn
- 2016-12-26 CN CN201611218380.1A patent/CN107656808A/zh not_active Withdrawn
- 2016-12-26 CN CN201611219315.0A patent/CN107656821A/zh active Pending
- 2016-12-26 CN CN201611219367.8A patent/CN107656823A/zh active Pending
- 2016-12-26 CN CN201611219300.4A patent/CN107656820A/zh active Pending
- 2016-12-26 CN CN201611220358.0A patent/CN107657518A/zh not_active Withdrawn
- 2016-12-26 CN CN201611219323.5A patent/CN107656777A/zh not_active Withdrawn
- 2016-12-26 CN CN201611220322.2A patent/CN107656809A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101201753A (zh) * | 2007-12-13 | 2008-06-18 | 浪潮通信信息***有限公司 | 一种多状态机管理引擎的配置管理方法 |
CN102255867A (zh) * | 2010-05-18 | 2011-11-23 | 华为技术有限公司 | 服务请求处理方法、装置及*** |
CN101957751A (zh) * | 2010-06-04 | 2011-01-26 | 福建星网锐捷网络有限公司 | 一种状态机的实现方法及装置 |
CN102843389A (zh) * | 2011-06-21 | 2012-12-26 | 国承斌 | 基于事件驱动的web***和方法 |
CN104793999A (zh) * | 2014-01-21 | 2015-07-22 | 航天信息股份有限公司 | 伺服服务器架构*** |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015393A (zh) * | 2020-08-25 | 2020-12-01 | ***股份有限公司 | 一种业务处理方法及装置 |
CN112015393B (zh) * | 2020-08-25 | 2024-05-03 | ***股份有限公司 | 一种业务处理方法及装置 |
CN112766935A (zh) * | 2021-02-24 | 2021-05-07 | 中国工商银行股份有限公司 | 处理票据业务的方法、装置、计算设备和介质 |
CN112766935B (zh) * | 2021-02-24 | 2024-03-01 | 中国工商银行股份有限公司 | 处理票据业务的方法、装置、计算设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107656780A (zh) | 2018-02-02 |
CN107659548A (zh) | 2018-02-02 |
CN107659605A (zh) | 2018-02-02 |
CN107656822A (zh) | 2018-02-02 |
CN107659549A (zh) | 2018-02-02 |
CN107656779A (zh) | 2018-02-02 |
CN107656808A (zh) | 2018-02-02 |
CN107656783A (zh) | 2018-02-02 |
CN107659547A (zh) | 2018-02-02 |
CN107656777A (zh) | 2018-02-02 |
CN107656801A (zh) | 2018-02-02 |
CN107657517A (zh) | 2018-02-02 |
CN107656784A (zh) | 2018-02-02 |
CN107657532A (zh) | 2018-02-02 |
CN107656821A (zh) | 2018-02-02 |
CN107657501A (zh) | 2018-02-02 |
CN107657518A (zh) | 2018-02-02 |
CN107657530A (zh) | 2018-02-02 |
CN107657531A (zh) | 2018-02-02 |
CN107656824A (zh) | 2018-02-02 |
CN107656823A (zh) | 2018-02-02 |
CN107656819A (zh) | 2018-02-02 |
CN107656778A (zh) | 2018-02-02 |
CN107656820A (zh) | 2018-02-02 |
CN107656818A (zh) | 2018-02-02 |
CN107656809A (zh) | 2018-02-02 |
CN107656781A (zh) | 2018-02-02 |
CN107657420A (zh) | 2018-02-02 |
CN107657419A (zh) | 2018-02-02 |
CN107659546A (zh) | 2018-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107656782A (zh) | 一种基于事件的流程处理方法及*** | |
US11030681B2 (en) | Intermediate blockchain system for managing transactions | |
US8121888B1 (en) | Facilitating improvement of results of human performance of tasks | |
US8285633B2 (en) | System and method for direct client access for management of securities transactions | |
US20110219054A1 (en) | Method and System for Processing Online Joint Guarantee | |
KR101254358B1 (ko) | 자체 자원 상호작용, 전자 거래 정보 처리 방법 및 시스템 | |
US20060224424A1 (en) | Business context services for adaptable service oriented architecture components | |
KR20150015163A (ko) | 금융 자동화 기기를 이용하여 상담 도중에 다른 상담원에게 추가 상담을 이관시키는 서버 및 그 서버를 이용한 서비스 제공 방법 | |
CN112598512A (zh) | 一种基于通用转让引擎的数据处理方法及数据处理*** | |
US12020222B1 (en) | Apparatuses, methods, and computer program products for event-based payment orchestration | |
US11997145B1 (en) | Account registration session management operations using concurrent preliminary risk scoring | |
CN107169738B (zh) | 一种基于信息主题股份化的信息服务平台、***及方法 | |
CA3177799A1 (en) | Computer-based systems of microservice orchestration based on bounded contexts and methods of use thereof | |
WO2024150143A1 (en) | Gasless decentralized token swaps | |
CN116860814A (zh) | 资源的管理方法、计算机设备、存储介质和程序产品 | |
TWI238327B (en) | Message delivery system transmitting massive messages in short period of time | |
CN114677220A (zh) | 交易自动处理方法、装置、电子设备、介质和程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180202 |
|
WW01 | Invention patent application withdrawn after publication |