CN103339636B - 创建用于认证应用的签名 - Google Patents
创建用于认证应用的签名 Download PDFInfo
- Publication number
- CN103339636B CN103339636B CN201280007736.0A CN201280007736A CN103339636B CN 103339636 B CN103339636 B CN 103339636B CN 201280007736 A CN201280007736 A CN 201280007736A CN 103339636 B CN103339636 B CN 103339636B
- Authority
- CN
- China
- Prior art keywords
- module
- document
- application
- hash
- signature
- 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.)
- Expired - Fee Related
Links
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Bioethics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
一种认证应用的方法和系统。该系统包括多个便携式电子设备、至少一个过程组织者、至少一个模块开发者、至少一个任务执行者和工作流服务器。过程组织者生成应用。过程组织者可以从模块开发者请求被并入应用的模块。替选地,过程组织者与任务执行者达成协议,来执行任务以完成应用。应用被传输至工作流服务器,该工作流服务器包括用于显示和出售应用的在线市场模块。用户通过商店购买应用。路由模块生成签名并将签名与应用、模块或文档元数据和密钥进行比较,以在路由应用、模块或文档之前确定数据的一致性。
Description
技术领域
本发明的实施例涉及生成和修改应用、模块和文档。具体地,本发明涉及文档每次在实体之间传输文档时生成签名,以及用于在传送该文档之前认证该签名的系统。
背景技术
对于很多用户来说,使用便携式计算设备变得很常见。除了拥有传统的台式计算机之外,很多用户还拥有某些类型的便携式计算设备。现代便携式计算设备的例子包括用于阅读的电子设备,例如,索尼公司的Reader、亚马逊的电子Kindle和Barnes&.Noble的Nook等。更小型的便携式计算设备包括很多智能手机,包括苹果电脑公司的iPhone、行动研究(ResearchInMotion)的黑莓手机和Palm公司的Pre,这只是其中的一些例子。提供不同处理能力水平和尺寸的笔记本膝上电脑和平板计算机的销售也在上升。
用户时常将应用下载到便携式计算设备,用于娱乐或者交易目的。例如,诸如增值转销商之类的过程组织者为医生创建应用,以将数据输入到病人的医疗表格中。过程组织者征招模块开发者在文档上执行各种活动,例如,转录附加到文档上的音频、或者当医生在文档上手写记录时执行笔迹分析。一旦文档被完成,过程组织者将文档上传到存储器,在该存储器中管理员可以购买该文档。
这种机构的一个具体问题是,由于文档被传输给至少一个过程组织者和多个模块开发者或任务执行者,因此会存在一些不法行为的机会。过程组织者、模块开发者或任务执行者可能未被授权,文档可能被其他方拦截等。由于交易的发展能力依靠于保持客户信息的安全,因此,这是有问题的。因此,需要确保文档在各方之间被安全地传输。
发明内容
本发明的实施例通过提供一种创建用于验证应用的签名的方法和系统来克服现有技术中的缺陷和不足。在一个实施例中,本发明实施例的系统包括多个便携式电子设备、至少一个过程组织者、至少一个模块开发者、至少一个任务执行者和工作流服务器。过程组织者生成应用。过程组织者请求合并入应用的模块。替选地,过程组织者与任务执行者达成协议来执行任务,以完成应用。当过程组织者善于创建文档的总体结构而缺少诸如转录、手写识别等专业领域的知识时,这是很有帮助的。应用程序被传输至工作流服务器,该工作流服务器包括用于显示和出售应用的在线市场模块。用户通过商店购买应用。
在一个实施例中,系统还包括请求并购买在便携式计算设备上使用的定制文档的管理员。管理员可以与过程组织者联系并请求用于生成定制文档的应用。例如,运输包裹的公司可能需要特定用户接口或者专业功能。过程组织者创建应用并将其上传至商店。管理员购买应用并将该应用传输至在便携式计算设备上使用该文档的各个雇员。
便携式计算设备、过程组织者、任务执行者和模块开发者是分别包含日志模块的计算设备。当计算设备之一接收应用、模块或文档并执行行为时,日志单元生成将与应用相关的动作的哈希生成为元数据。当计算设备传输应用、模块或文档时,工作流服务器验证应用、模块或文档并将其路由至目的地。工作流服务器通过生成签名并将该签名与元数据和应用、模块或文档的密钥进行比较来验证应用、模块或文档。如果比较结果是一致的,则将应用、模块或文档路由至它的下一个目的地。如果比较结果是不一致的,则将错误通知给将应用、模块或文档传输至工作流服务器和/或目的地计算设备的最后一个计算设备。
本发明的实施例还包括多个新方法,包括用于路由文档并校验文档真实性的方法。在一个实施例中,工作流服务器接收应用、模块或文档。工作流服务器检索元数据和密钥,并计算哈希。工作流服务器将签名与元数据、密钥和计算的哈希进行比较。如果比较结果显示为矛盾,则传输错误消息。如果没有矛盾,则工作流服务器将目的地与在元数据中指定的目的地进行比较。如果有矛盾,则传输错误消息。如果没有矛盾,则工作流服务器将应用路由到它的目的地。
本文中描述的特征和优点并非详尽的,并且对于本领域普通技术人员来说,在考虑到附图和说明书的情况下,很多其他特征和优点是显而易见的。而且,需要注意的是,说明书中使用的语言主要被选择为可读性和教导的目的,而并非限制本发明主题的范围。
附图说明
通过例子示出本发明,而绝不限于附图中的图,其中,相似的参考数字被用于表示相似的部件。
图1是根据本发明的实施例,用于路由文档的系统的实施例框图;
图2A是根据本发明的实施例,便携式计算设备、过程组织者、任务执行者或者模块开发者的实施例框图;
图2B是根据本发明实施例的工作流服务器的框图;
图3A是根据本发明实施例的注册模块的实施例框图;
图3B是根据本发明实施例,包含具有多个页的文档的应用的图示;
图3C是根据本发明实施例的日志记录的图示;
图4是根据本发明实施例的路由模块的实施例框图;
图5是根据本发明实施例的在线市场模块的实施例;
图6A是说明了本发明实施例的用户、应用和模块的注册过程的流程图;
图6B是说明了应用的注册过程的流程图,所述应用合并来自模块开发者的模块;
图6C是说明了应用的注册过程的流程图,所述应用从任务执行者购买任务;
图7是说明根据本发明实施例的生成应用签名的流程图;
图8是说明根据本发明实施例,修改文档和生成文档签名的流程图;
图9是说明根据本发明实施例的用于路由文档的步骤的流程图。
具体实施方式
将描述一种用于在工作流系统中认证并路由应用、模块和文档的系统。为了解释的目的,在以下的描述中,给出了多个特定的细节以便提供对本发明的深入理解。但是,对于本领域普通技术人员来说很明显的是,本发明可以不使用这些特定细节而实施。在其他实例中,在框图文档中显示了结构和设备,以避免模糊本发明。例如,在以下的一个实施例中参考便携式计算设备描述了本发明实施例,所述便携式计算设备的例子可以是类似于使用电子纸件、电子纸或者电子墨水显示的亚马逊Kindle的硬件和软件平台。然而,本发明实施例应用于能够捕捉墨水痕迹、数据和指令并且电子发送文档的任意形式的便携式计算设备。
说明书中提及的“一个实施例”或者“实施例”表示结合实施例描述的具体特征、结构或者特性被包含在本发明的至少一个实施例中。在说明书中很多地方出现的短语“在一个实施例中”不一定都指相同的实施例。具体地,以下以两种不同结构的内容描述本发明的实施例,并且一些组件在两种结构中都可以操作而其他组件不行。
以在计算机内存中的数据位上的操作的符号表示和算法给出以下详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员使用的方法,以最有效地向本领域其他技术人员传达他们的工作实质。一般来说,本文中的算法被设想为导致期望结果的自洽序列的步骤。步骤需要物理量的物理操作。虽然是非必要的,但一般来说,这些量采用能够被存储、传输、合并、比较和其他操作的电子文档或者磁信号文档。主要是为了公用的原因,已经时常证明了将这些信号指代为如比特、数值、元件、符号、字符、术语、数字等是方便的。
然而,需要记住的是,所有这些和相似的术语与合适的物理量相关,并且仅是应用到这些量上的方便的标签。除非在以下讨论中出现特别的说明,应当理解为,在全文中,使用如“处理”、“计算”、“算”、“确定”或者“显示”等术语的讨论指的是计算机系统或者相似的电子计算设备的行为和处理,这些行为和处理将在计算机系统的寄存器和存储器中表示为物理(电子)量的数据操作和转换为在计算机系统存储器、寄存器或其他这种信息存储、传输或者显示设备中类似地表示为物理量的其他数据。
本发明实施例还涉及一种用于执行本文中的操作的装置。为了所需要的目的,可以特别地构造该装置,或者该装置可以包含由存储在计算机中的计算机程序来选择性激活或者重新配置的通用计算机。这种计算机程序可以存储在计算机可读存储介质中,例如但不限于,分别耦接到计算机系统总线上的包括软盘、光盘、CDROM和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或光卡的任意形式的磁盘,或者适于存储电子指示的任意形式的媒介。
本发明可以采用全部硬件装置、全部软件装置或者包含硬件和软件元件两者的装置的文档。在优选实施例中,本发明可以以软件实现,该软件包括但不限于固件、常驻软件、微代码等。
进一步地,本发明可以采用在可以从计算机可用或者计算机可读介质访问的计算机程序产品的文档,所述计算机可用或者计算机可读介质提供由计算机或者任意指令执行系统使用或者与其结合使用的程序代码。为了这个描述的目的,计算机可用或者计算机可读介质可以是任意装置,该装置能够容纳、存储、通信、传播或者传输由指令执行系统、装置或者设备使用或者与其结合使用的程序。
媒介可以是电子的、磁的、光的、光磁的、红外线的或者半导体系统(或者装置、设备)或传播介质。计算机可读介质的例子包括半导体或者固态存储器、磁带、可移动计算机磁盘、随机读取存储器(RAM)、只读存储器(ROM)、刚性磁盘和光盘。光盘的当前的例子包括只读光盘(CD-ROM)、读/写光盘(CD-R/W)和DVD。
适用于存储和/或执行程序代码的数据处理系统将包括通过系统总线直接或间接地与存储元件相耦接的至少一个处理器。存储元件可以包括在程序代码的实际执行过程中使用的本地存储器、大型存储器(bulkstorage)和缓存存储器(cachememory),这些存储器提供至少某些程序代码的暂时存储,以便减少在执行期间必须从大型存储器检索代码的次数。
输入/输出(I/O)设备(包括但不限于键盘、显示器、点设备(pointdevice)等)可以直接或者通过中间I/O控制器来耦接到系统。
网络适配器也可以耦接到系统,以使得数据处理系统能够通过中间专用网络或者公共网络耦接到其他数据处理系统、远程打印机或者存储设备。调制解调器、电缆调制解调器和以太网卡仅是网络适配器的一些当前可用类型。
最后,本文中给出的算法和显示与任何特定计算机或者其他装置都没有内在的关联。根据本文的教导,各种通用系统都可以与程序一起使用,或者可以证明构建更专用的装置来执行需要的方法步骤是方便的。以下的描述中将出现各种各样的这些系统的所需结构。另外,本发的明实施例是结合特定程序语言来描述的。容易理解的是,如本文所述,各种各种的程序语言都可以用于实现本发明的教导。
系统概述
图1显示了用于生成和认证应用的系统100的实施例。参见图1,系统100的本实施例包括:多个便携式计算设备102a-102n、网络104、过程组织者108、模块开发者135、任务执行者139和工作流服务器106。
多个便携式计算设备102a-102n分别经由耦接112a-112n无线耦接到网络104。便携式计算设备102被耦接到工作流服务器106,在一个实施例中,所述便携式计算设备还耦接到过程组织者108、任务执行者139和模块开发者135。便携式计算设备102a-102n包括显示器、笔画捕捉功能、音频捕捉功能、手势识别功能和无线通信功能。便携式计算设备102a-102n适于接收图像(例如文档或表格),将笔画注解添加到接收到的图像,并且发送经过注解的接收到的图像。以下将结合图2A更详细的描述便携式计算设备102a-102n的实施例。
网络104是传统类型,有线的或者无线的,并且可以有很多配置,例如星形配置、令牌环配置或者本领域已知的其他配置等。进一步地,网络104包括局域网(LAN)、广域网(WAN)(例如,互联网),和/或任意其他互相连接的数据路径,多个设备可以在该路径中通信。在另一个实施例中,网络104也可以是点对点网络。网络104还可以耦接到或者包括以各种不同的通信协议传输数据的部分通信网络。在另一个实施例中,网络104包括经由短信息服务(SMS)、多媒体消信服务(MMS)、超文本传输协议(HTTP)、直接数据连接、WAP、电子邮件等发送和接收数据的蓝牙通信网络或者蜂窝通信网络。
过程组织者108是用于生成应用并且经由信号线118使用网络104将该应用传输到工作流服务器106的计算设备。过程组织者108耦接到工作流服务器106、模块开发者135、任务执行者139,并且在一个实施例中,过程组织者108耦接到便携式计算设备102。过程组织者108生成应用,该应用已经注册过并上传到工作流服务器106,并且在工作流服务器106主持的在线市场出售。在另一个实施例中,管理员(未显示)从过程组织者108请求定制的应用,该应用也已经上传并且在商店出售。
过程组织者108将应用生成为合作过程。在一个实施例中,过程组织者108从模块开发者135购买合并在应用中的模块。在另一个实施例中,便携式计算设备102经由在线市场购买模块。模块开发者135是计算设备,用于生成合并在由过程组织者108开发的应用中的模块。模块开发者135经由信号线137使用网络104通信。模块开发者135耦接到过程组织者108、工作流服务器106,并且在一个实施例中,模块开发者135耦接到便携式计算设备102。
例如,过程组织者108生成用于创建医疗表格的应用。医疗表格用于医生办公室中。首先,病人使用触控笔将个人信息输入到计算设备102。用户的输入是手写的。因此,应用包括用于将笔迹转换为文本的模块。之后,医生添加他的注解,口头地提供在表格的最后。因此,应用包括用于将语音转换为文本的模块。最后,医生的注解包括给病人的药方。一旦药方被转换,则应用需要包括用于将药方传输到病人的药房,用于抓药的模块。
在另一个实施例中,过程组织者108生成用于购买和建立与任务执行者139达成协议的应用以执行各种所需任务。任务执行者139是用于执行由过程组织者108开发的应用的任务的计算设备。任务执行者139经由信号线141使用网络104通信。任务执行者139耦接到过程组织者108、工作流服务器106,并且在一个实施例中,任务执行者139耦接到便携式计算设备102。
例如,以医疗应用为例,过程组织者108经由被工作流服务器106主持的在线市场将应用出售给用户。客户将表格从便携式计算设备102a传输到工作流服务器106,其中音频被转化。工作流服务器106将音频传输到任务执行者139,任务执行者139完成转化并且将转化经由信号线141传输回工作流服务器106。之后,工作流服务器106将完成的表格传输回便携式计算设备102a。
在一个实施例中,便携式计算设备102的用户从工作流服务器106购买应用。应用生成文档,该文档显示在便携式计算设备102上。在另一个实施例中,管理员(未显示)委任过程组织者108生成定制的、显示在便携式计算设备102上的应用。例如,管理员经营快递公司并且请求过程组织者108生成定制的应用,用于跟踪包裹的传输和邮递。由邮递包括的雇员使用便携式计算设备102。
工作流服务器106经由信号线116耦接到网络104,以与便携式计算设备102a-102n、过程组织者108、模块开发者135和任务执行者139通信。工作流服务器106包括在线市场模块270、路由模块272和注册模块275(参见图2B)。工作流服务器106维持在线市场模块270,用于向便携式计算设备102a-102n出售应用,利用注册模块275生成唯一标识符和密码,以及利用路由模块272验证应用、模块和文档的真实性并将它们路由到网络104中的计算设备。以下将结合图2B、3A和4-9更详细的描述工作流服务器106。
虽然图1的系统仅显示了一个工作流服务器106,应该理解的是,可以存在任何数量的额外的工作流服务器,例如,用于其它功能、公司、指令和组织结构的工作流服务器。计算设备102a-n可以与一个以上的工作流服务器106通信。文档的特殊页或者特殊部分可以与不同的工作流服务器相关联。此外,可以转发复合文档的部分而非发送完整的复合文档。
计算设备202
现在参见图2A来描述计算设备202的组件。计算设备202包括显示设备206、笔画获取设备和模块208、输入设备210、输出设备215、处理器302、存储器304、通信单元306、唯一设备ID308、时钟310、元数据模块312、其它输入/输出(I/O)设备326、日志模块314、应用模块318、呈现模块222和传输模块316。在一个实施例中,计算设备202是便携式计算设备102a-n。在另一个实施例中,计算设备202是过程组织者108。在另一个实施例中,计算设备202是模块开发者135。在另一个实施例中,计算设备202是任务执行者139。
处理器302包括算术逻辑单元、微处理器、通用控制器或者某种其它处理器阵列,来执行计算、将电子显示信号提供到显示设备206、并且检测和处理笔画输入。处理器302耦接到总线220,用于与计算设备202的其他组件进行通信。处理器302处理数据信号,并且可以包含各种计算架构,包括复杂指令集电脑(CISC)架构、精简指令集计算机(RISC)架构、或者实现指令集组合的架构。虽然图3中仅显示了一个处理器,但是可以包含多个处理器。计算设备202的处理能力可以被限制为支持图像的显示以及记录笔画和传输笔画。处理能力可以是足以执行更多的复杂任务,包括各种类型的图像处理、笔画处理或者识别任务。对于本领域技术人员来说显而易见的是,也可以是其他处理器、操作系统、传感器、显示器和物理配置。计算设备202还包括可由处理器执行的操作系统,例如但不限于,基于MacOSX、Android、或者的操作系统。
存储器304存储可以由处理器302执行的指令和/或数据。该指令和/或数据包括用于执行本文中描述的任意和/或所有的技术代码。存储器304可以是动态随机读取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪存或者本领域已知的某些其他存储设备。在一个实施例中,存储器304还包括例如硬盘驱动器或者闪存驱动器之类的非易失性存储器,用于在更长期的基础上存储日志信息。存储器304通过总线220耦接,用于与计算设备202的其他组件进行通信。
通信单元306与天线和总线220耦接。在替选实施例中,通信单元306提供用于直接物理连接到网络104的端口。通信单元306包括用于发送和接收组合文档的收发器。在一个实施例中,通信单元306包括用于与访问点进行无线通信的WiFi收发器。在另一个实施例中,通信单元306包括(蓝牙)收发器,用于与其他设备进行无线通信。在另一个实施例中,通信单元306包括蜂窝通信收发器,用于在蜂窝通信网络上发送和接收数据,例如经由短消息服务(SMS)、多媒体消息服务(MMS)、超文本传输协议(HTTP)、直接数据连接、WAP、电子邮件等。在另一个实施例中,通信单元306包括用于有线连接的端口,例如但不限于,USB、SD或者CAT-5等。通信单元306将处理器302连接到可以包括多个处理系统的网络104。处理系统的网络可以包括局域网(LAN)、广域网(WAN)(例如,互联网),和/或任意其他互相连接的数据路径,多个设备可以通过该路径通信。通信单元306还提供了与网络104的其他的传统连接,用于利用标准网络协议分配文件(媒体对象),如本领域技术人员可以理解的,标准网络协议诸如是TCP/IP、HTTP、SSH、gitHTTPS和SMTP。
计算设备202包括用于唯一设备标识符308的存储器。计算设备202被耦接到总线220,以按照需要将唯一标识符提供给其他元件。在一个实施例中,存储器是用于存储唯一设备标识符308的只读存储器。在另一个实施例中,唯一设备标识符308是存储公钥-密钥对的非易失性存储器。在另一个实施例中,公钥-密钥对被存储在集成有设备CPU或者主板的专业可靠的计算存储器中。计算设备202具有唯一标识符是有用的,所述唯一标示符用于验证用户的真实性以确保对应用做出的改变是由经过授权的实体执行的。
在一个实施例中,唯一标识符是计算设备202中网络芯片的硬件MAC地址。唯一标识符308可以是另一功能块的内部元件,例如,通信单元306、或者存储单元304中的非易失性存储器。在另一实施例中,唯一标识符是与计算设备上的存储卡相关联的唯一ID,在这种关联方式中,可以预料到的是,当移动存储卡时,与特定设备的相关性会移动到不同设备上。唯一标识符在各种操作中是游泳的,但是一般不会提供很多的安全性。例如,硬件MAC地址可以被其他设备仿造。因此,有时,使设备与来自例如的公钥密码系统的一对密钥相关联是有价值的。在一个实施例中,使用公布的私钥和公钥制造或者配置计算设备202。之后,计算设备202可以对设备上的笔画、图像、日志或者其他媒体创作的数字签名使用其私钥。其他人可以使用公钥验证这样的媒体。公钥还可以被用于提供与设备之间的保密通信。对加密使用设备公钥将限制其他人对只能被特定计算设备202访问的页面图像或者元数据的访问。时钟310是传统类型,并且为计算设备202指示本地时间。特别地,时钟310被用于提供处理复合文档的本地时间。还使用日志模块314将该时间值与数据一起存储在本地日志文档中。时钟310适于使用系统总线220将该信息传给处理器302和日志模块314。
取决于计算设备202是过程组织者108还是模块开发者135,应用模块318是包括生成应用的程序的软件或者模块。过程组织者108包括用于生成应用的应用模块318。模块开发者包括用于生成模块的应用模块318。在一个实施例中,应用模块318存储在存储器304中并且可由处理器302访问和执行。
元数据模块312是包括从文档提取元数据并且将元数据作为文档的一部分进行存储的程序的软件。在一个实施例中,元数据模块312是可由处理器302执行的指令,以提供访问图像/页元数据和文档元数据的功能,以下结合图7-10描述该功能。在一个实施例中,元数据模块312存储在存储器304中,并且可由处理器302访问和执行。总之,元数据模块312适于使用处理器302和计算设备202的其他组件进行合作和通信。
日志模块314是包括用于在存储器304中创建和存储本地日志的程序的软件,更具体地,在存储器304的非易失性存储部分中创建和存储。在一个实施例中,日志模块314是可由处理器302执行的程序集,用于在计算设备202和工作流服务器106中的复杂日志中存储元数据。日志模块314对于在交易中提供工作流验证的完成尤为重要。在一个实施例中,日志模块314还包括用于将它的特定计算设备的日志公布或者存储在网络上的公开可用位置上。日志模块314通过总线220耦接到处理器302、存储器304和通信单元306。以下的图3C示出了存储在日志中的信息类型的例子。
日志模块314生成与每个日志条目哈希数据相关的加密哈希,其中,日志条目哈希数据包括先前日志条目的加密哈希。存储或者公布加密哈希为日志中的所有先前条目提供了校验和。因此,如果公布的哈希是“可信任的”,之后可以重新计算所有先前的日志哈希并且看看是否为得出相同的最终哈希。可以检测到对日志的任意部分或者任何经过哈希的数据进行的修改(以生成日志条目)。在于2005年12月29日提交的名称为“CoordinationandTrackingofWorkflows”的美国专利No.7,849,053,于2008年10月2日提交的名称为“MethodApparatusforTamperProofCameraLogs”的美国专利No.12/244,714以及于2004年7月9日提交的名称为"SynchronizingDistributedWorkThroughDocumentLogs"的美国专利申请No.10/887,998中(他们的全部内容都以引用的方式合并于本文中),描述了这种日志和日志条目的哈希计算和验证的格式和细节。
加密哈希也被称为基于标识符的内容(CBI),因为除了用于验证之外,他们还可以用于索引数据。最近的加密哈希可以被发布给其他信任的日志或者经由电子邮件,如同在于2008年10月2日提交的名称为“MethodandApparatusForRiskAnalysisofEntangledLogs”的美国专利申请No.12/224,707和于2008年10月2日提交的名称为“Method&ApparatusforAutomaticallyPublishingContentBasedIdentifiers”美国专利申请No.12/244,721(他们的全部内容以引用方式合并于此)中描述的。因此,包含加密哈希的日志或者CBI得以维持。当前日志条目的CBI被存储在其他日志文档中并通过电子邮件或者其他协议被发布。这些CBI稍后可以被用来验证从发布CBI之后日志未被修改过。
传输模块316是这样的软件和程序,用于向工作流服务器106发送和从中接收应用、模块和文档。在一个实施例中,传输模块316将应用或者模块传输到工作流服务器106,以在在线市场上显示。在另一个实施例中,传输模块316向任意其他计算设备发送和从中接收作为格式化的消息的文档,所述其他计算设备诸如但不限于计算机108、工作流服务器106或其他便携式计算设备102。传输模块316通过总线220耦接,用于与处理器302和通信单元306进行通信。传输模块316被用于例如通过电子邮件、文档传输、XMPP或者专用应用,从计算设备202发送和接收应用、模块、文档或者格式化的消息并接收。
与显示设备206相同的是,存在笔画获取设备208,诸如数字平板或者图像平板等。笔画获取设备208是可以位于显示器的上方、下方或者周围的带有接收器的接触感应设备或声音、电磁或者光感应设备。笔画获取设备208能够从触控笔204、手指或者其他工具接收笔画。笔画获取设备208是用于触控笔204的传感器,并且具有足以获取可识别的笔迹、印记和其他图形的分辨率。在一个实施例中,显示设备206装备有触摸屏,其中,可触摸感应的、透明面板覆盖在显示设备206的屏幕上。在一个实施例中,笔画获取设备208是由Wacom有限公司制成并且出售的数字转换器。在另一个实施例中,笔画获取设备208是简单传感器,其返回单个触摸点的水平和竖直位置。在再一个实施例中,笔画获取设备208是多个较复杂的传感器,其返回压力、位置、时间甚至是触控笔204的ID号码或者类型的指示,或者按钮是否已经被按压在触控笔上或者触控笔已经进行了反向运动(例如擦除)的指示。一些传感器可以返回多个触摸点。一些传感器可以基于触摸输入来区分触控笔和手指。笔画获取设备208的部分或者全部适于与笔画获取设备208通信。
总线220表现为共享总线,用于在计算设备202中传达信息和数据。总线220可以表现为一个或多个总线,所述总线包括工业标准结构(ISA)总线、外围设备互联(PCI)总线、通用串行总线(USB)或者本领域已知的、提供相似功能的某些其他总线。通过系统总线220耦接到处理器302的其他元件包括显示设备206、笔画获取设备和模块208、输入设备210、输出设备215、处理器302、存储器304、通信单元306、唯一设备标识符存储器308、时钟310、元数据模块312、日志模块314、传输模块316、应用模块318、呈现模块222和其他应用324。在计算系统202中还存在多个总线,被用于在功能元件之间提供最有效的通信。
呈现模块222是这样的软件和程序,用于将文档显示在显示设备206上并响应于从输入设备210的输入,调整图像的显示。呈现模块222执行使得双重模式用户接口被显示的程序,以下将结合图5-9描述双重模式用户接口。在一个实施例中,呈现模块222是可由处理器302执行的瘦(thin)客户程序,以使图像显示在显示设备206上。呈现模块222通过总线220耦接到显示设备206、处理器302和存储器304。
其他应用324包括可由处理器302执行的其他软件和程序,用于各种其他类型的功能。在一个实施例中,由处理器302执行的一个或多个应用程序包括但不限于,文字处理应用、电子邮件应用、财务应用和Web浏览器应用。
最后,计算设备202可以包括一个或多个其他I/O设备326。例如,其他I/O设备326可以包括产生声音的扬声器,记录声音的麦克风,记录文档、图像或视频的扫描器或者相机、以及其他传感器或者如感应器、寻呼机或者触觉反馈之类的反馈设备。可选地,其他I/O设备326可以包括一个或多个模拟到数字或者数字到模拟转换器、和/或一个或多个数字信号处理器,以辅助音频处理。这些其他I/O设备326通过总线220耦接,用于与处理器302和存储器304进行通信。可选地,可以将微控制器增加作为其他I/O设备326的一部分,以协助电力系统的控制,以及将主处理器302从低速低重要性任务中解脱出来。工作流服务器106
现在结合图2B,更详细的描述工作流服务器106的实施例。工作流服务器106包括处理器291、存储器290、通信单元293、在线市场模块270、时钟294、路由模块272、呈现模块295、注册模块275、其他输入/输出设备296、其他应用297、日志模块298、传输模块299和数据存储器260。在替选实施例中,工作流服务器106还包括显示设备279、输出设备280、唯一设备ID292和输入设备281。
本领域技术人员可以理解的是,工作流服务器106的一些组件具有与计算设备202的组件相同或相似的功能,因而,在此时就不再重复描述这些组件。例如,处理器291、存储器290、通信单元293、传输模块299、日志模块298、时钟294、其他应用297、显示设备279、输出设备280、唯一设备ID292和输入设备281分别与图2A的处理器302、存储器304、通信单元306、传输模块316、日志模块314、时钟310、其他I/O设备326、显示设备206、输出设备215、唯一设备ID308和输入设备210具有相似的功能。
以下解释工作流服务器106和计算设备202的组件之间的一些不同。例如,通信单元293可以以有线方式代替无线方式将工作流服务器106耦接到网络104。处理器291比处理器302的计算能力更强大,因为工作流服务器106可能服务很多便携式计算设备102。传输模块299是相对于电子邮件客户的电子邮件服务器。显示设备279可以是阴极射线管,并且输出设备280是一组扬声器。输入设备281包括键盘和鼠标型控制器。本领域技术人员可以理解的是,作为相对于远程客户的硬件服务器的工作流服务器106的组件,还有各种其他的不同。
日志模块298通过从不同的计算设备传输来的日志生成全局日志。全局日志是发生在不同计算设备中的所有活动的主要日志。全局日志包括来自各个日志的哈希,但是不包括关于在每个交易期间具体发生的细节。可以通过查询与应用、文档和模块相关联的元数据来重建具体的活动。
注册模块275是这样的软件和程序,用于生成标识符和格式化正被上传到在线市场270的应用和模块。在一个实施例中,如以下参考图6-8所描述的,注册模块275是可由处理器294执行的用于生成标识符和密钥的程序。将应用或者模块注册到和传输到在线市场模块270,用于上传。注册模块275通过总线320耦接到处理器291、存储器290和在线市场模块270。
路由模块272是这样的软件和程序,用于提取与应用、模块或者文档一起接收到的元数据,从数据存储器260中检索,生成签名,将签名与应用、模块或者文档元数据进行比较,如果比较产生了相互矛盾的数据则生成错误,如果签名与应用、模块或者文档元数据匹配则将该应用路由至它的目的地。在一个实施例中,路由模块272是可由处理器291执行的程序,以比较该目的地与在元数据中指定的目的地,如果比较结果是可以接受的,则将应用、模块或者文档路由至目的地。如果任一比较步骤得出了相悖的数据,则发出错误消息。路由模块272通过总线320耦接到处理器291和存储器290。
在线市场模块270是这样的软件程序,用于将应用、模块或者文档上传到网上商店并呈现应用、模块或者文档用于出售,给购买应用的用户开账单,并且根据路由向涉及创建应用的实体分配信贷。在一个实施例中,在线市场模块270是可由处理器291执行的程序,其向用户开出关于最初购买应用和按照每月固定费用或每个服务计算的后续的额外服务费用的账单。在线市场模块270与处理器291、存储器290、注册模块275和路由模块272耦接。
在一个实施例中,数据存储器260是工作流服务器106的一部分。在替选实施例中,数据存储器260与工作流服务器106耦接。例如,在这种替选实施例中,数据存储器260是诸如亚马逊S3之类的在线存储服务器。数据存储器260是非易失性存储设备或者类似的永久性存储设备和介质。数据存储设备260存储用于处理器291的数据和指令并且包含一个或多个设备,该设备包括硬盘驱动器、软盘驱动器、CDROM设备、DVDROM设备、DVDRAM设备、DVDRW设备、闪存设备或者本领域已知的一些其他的大容量存储设备。数据存储器260用被于存储应用和相关的元数据,包括哈希、标识符、密钥、签名等。以下将结合图3A和3B更详细地描述数据存储器260的构成。
注册模块275
图3A示出了注册模块275的一个实施例。在一个实施例中,注册模块275包括:输入/输出模块307、标识(ID)创建单元310、应用创建单元322和模块创建单元344,他们分别耦接到总线320。在应用或者设备的注册过程中,I/O模块307接收对不同标识符的请求并将请求传输到ID创建单元310。
为了帮助理解应用程序、文档和模块之间的不同,图3B示出了应用346的图示。应用346可以包含用于生成文档348的软件和程序,或者该文档可以由与该应用相关的其他工具生成。应用346可以与用于执行任务的不同模块或者与可以被分别购买的模块相结合。
文档348包括页面350a、350b、350c…350n。在一个实施例中,用户购买应用346,生成文档348并提供信息以填写页面350a…n。如果应用346没有某些功能,则将文档348传输到不同的任务执行者139,其在在线市场模块270可用于执行任务。一般地,过程组织者108被用于建立用于将文档348传输到不同的任务执行者139以完成任务的协议和元数据。但是,本领域的普通技术人员可以理解的是,其他交易模型也是可以的,诸如客户经由在线市场模块270从任务执行者139购买额外服务。在于2009年9月8日提交的名称为“Multi-ProviderFormsProcessingSystemwithRetryuponFailure”美国专利申请No.12/555,686(其全部内容以引用方式结合于此)中描述了开账单的格式和细节。
再次参见图3A,ID创建单元310包括用于生成标识符并将标识符存储在数据存储器260中的软件和程序。ID创建单元310通过总线320耦接到处理器291、存储器290和数据存储器260。ID创建单元310为正在注册的任意应用或者模块生成全局唯一标识符(GUID)。每当注册应用时就升级GUID,这样GUID对于应用或者模块版本是特别的。这样ID创建单元310生成应用版本GUID。
ID创建单元310还为正在注册的任意应用或者模块生成密钥。在一个实施例中,密钥是公钥/私钥组合中的私钥。对于工作流服务器106和过程组织者108或者模块开发者135来说,密钥是已知的。工作流服务器106将密钥存储在数据存储器260中并且在初始传输之后不传输该密钥,以确保该密钥不被其他方拦截。
ID创建单元310还为正在注册的任意设备(例如,便携式计算设备102)生成唯一设备ID351,并且为可以对应用、模块或者文档进行改变的任意实体生成用户ID354。唯一设备ID351确保在便携式计算设备102上被用户修改的文档是在授权设备上被修改的。用户ID354被用于追踪作出改变的计算设备,以便更容易地识别涉及到应用、模块或者文档相应的任意问题源。在一个实施例中,当ID创建单元310生成用户ID354之后,ID创建单元310请求用户建立包括家庭住址、信用卡信息、账单地址等的账户,因为当用户购买或者出售应用、模块或者文档之后可能会开出账单。这些信息被存储在数据存储器260中并且被加密,以保护用户的隐私。
日志模块314、298还将其他信息保存为元数据。图3C示出了与应用、模块或者文档相关联保存的元数据370的例子。在该例子中,唯一设备ID351识别例如便携式计算设备102的计算设备202。应用或者模块版本GUID352是用于正被使用的应用的标识符。用户ID354识别应用、文档或者模块的用户。价格356包括购买应用的价格、将被执行的任意后续活动的价格等。工作流服务器106使用交易步骤ID358追踪那些已经被执行的交易以及那些还在继续的交易。每当交易完成时,在交易步骤ID358中增加新的ID。
结果数据哈希360是最近执行过的行为的哈希。在一个实施例中,结果数据哈希360是滚动哈希。滚动哈希是之前的哈希和新数据的哈希。哈希补偿362是最近哈希与先前日志条目的哈希值的差。通过包含用于计算先前日志条目的哈希值的信息,该信息可以在后期被使用并且通过与其他的复杂日志条目的进行比较来检测验证。
应用创建单元322是用于将注册的应用传输到在线市场模块270的软件和程序。应用创建单元322从过程组织者108接收应用并且从ID创建单元310接收标识符。应用创建单元322将标识符和应用格式化为适合于在线市场模块270的格式,并将格式化的标识符和应用传输至在线市场模块270。应用创建单元322通过总线320耦接到处理器291和存储器290。
模块创建单元344是用于将注册的模块传输到在线市场模块270的软件和程序。模块创建单元344从模块开发者135接收模块并且从ID创建单元310接收标识符。模块创建单元344将标识符和应用格式化为适合于在线市场模块270的格式,并将格式化的标识符和模块传输至在线市场模块270。模块创建单元344通过总线320耦接到处理器291和存储器290。
路由模块272
参见图4,在一个实施例中,路由模块272包括I/O模块407、控制器403、提取引擎410、比较单元422和错误处理模块429,他们分别耦接到总线320以与处理器291、存储器290、在线市场模块270进行通信,并且,I/O模块407与通信单元293进行通信。
I/O模块407是用于将应用、模块和文档接收并发送到他们的目的地的软件和程序。诸如通过电子邮件、文件传输、XMPP或者专用应用,I/O模块407从过程组织者108、便携式计算设备102和模块开发者135接收应用、模块和文档(包括他们的元数据370),并将其传输至控制器403。一旦完成验证过程,控制器403经由通信单元293将应用、模块和文档传输至I/O模块407,该I/O模块407根据交易步骤ID358的指定,将应用、模块和文档传输至便携式计算设备102、过程组织者108、模块开发者135或者任务执行者139。
控制器403是用于控制应用、模块和文档的验证过程的软件和程序。在一个实施例中,控制器403是可由处理器291执行的程序,用于通过控制I/O模块407、提取引擎410、比较单元422和错误处理模块429之间的路由来执行应用、模块和文档的验证。控制器403还通过提取交易步骤ID358和识别路由过程中的下一个步骤来确定将应用、模块和文档路由到哪里。
一旦比较元件422验证应用、模块和文档是真实的,控制器403就基于存储在文档自身内部的元数据370(例如基于交易步骤ID358)来确定文档的下一个目的地。交易步骤ID358指定文档的附加处理、文档是如何被路由的以及路由的目的地。例如,被存储为元数据的电子邮件地址的有序系列是工作流的一个例子,其中文档将被相继地发送到每个电子邮件地址。
提取引擎410接收元数据370并从元数据370中提取应用/模块版本GUID352、结果数据哈希360和哈希补偿。提取引擎410还从数据存储器260中检索应用或模块密钥。之后,提取引擎410对应用/模块版本GUID352、结果数据哈希360、哈希补偿362和密钥进行哈希以形成签名。该签名被传输至比较单元422。
当创建空白文档或者修改文档、应用或模块时,提取引擎410生成签名。对于空白文档,签名是应用密钥、滚动哈希和哈希补偿的已签名的哈希。对于已经上传到工作流服务器106和被修改的应用、文档和模块,签名包括滚动哈希、哈希补偿、应用版本GUID352和应用密钥。在元数据370中,将签名哈希与应用、文档或模块相关地存储为结果数据360的哈希,并将签名哈希返回到日志,并且由日志模块314使用以生成滚动哈希。由于应用密钥被进行了哈希并且哈希通常是不可逆的,因此仅有工作流服务器106和过程组织者108或者模块执行者135知道该密钥。
比较单元422是用于将应用、模块或文档的签名与应用、模块或文档元数据370进行比较,以校验一致性的软件和程序。如果这些哈希是不一致的,则控制器403指示错误处理模块429生成错误消息。如果信息是一致的,则比较单元422接下来对目的地与由交易步骤ID358指定的下一个目的地进行比较。如果信息冲突,则错误处理模块429生成错误消息。比较单元422还可以测试传输用户是否继续拥有对应用的访问权限,并且如果没有权限,则错误处理模块429生成错误消息。如果信息是一致的,则I/O模块407将应用、模块或文档传输到它的下一个目的地。
错误处理模块429是这样的软件和程序:用于从控制器403接收指令,以通知便携式计算设备102、过程组织者108、模块开发者135或者任务执行者139:签名与应用、模块或文档元数据之间不一致。在一个实施例中,错误处理模块429向最后一个计算设备生成通知:将应用、模块或文档传输到工作流服务器106。在另一个实施例中,在其他通知之外,或者替代其他通知,错误处理模块429在期望的目的地为便携式计算设备102、过程组织者108、模块开发者135或者任务执行者139形成通知。错误处理模块429通过检索交易步骤ID358中的信息来确定将通知发送到哪里。
在线市场模块270
图5是在线市场模块270的一个实施例,其包括:I/O模块507、账单模块510、呈现模块522和验证模块529,它们通过总线320耦接,以与处理器291、存储器290进行通信,对于I/O模块507来说,其与通信单元293进行通信。
账单模块510是这样的软件和程序:其可由处理器291执行,用于针对已经完成的交易过程,向需求方开账单。交易包括购买应用、购买模块、执行任务、购买一组应用和/或模块等。在一个实施例中,账单模块510包括经授权需求方的列表、相关的便携式计算设备102、识别号码、账单地址、付款类型和数据,以及其他安全性和账单信息。账单模块510还包括用于过程组织者108、任务执行者139和模块开发者135的相似类型的信息。账单模块510将发票发送至需求方或者自动从信用卡收费。
类似于纸件过程中的每个步骤都被认为是交易。在一个实施例中,由过程组织者108、任务执行者139、模块开发者135和工作流服务器106商谈并设置价格。每个交易包括关于执行步骤的价格,这个价格的一部分被提供至任务执行者139和/或模块开发者135,并且这个价格的一部分由工作流服务器106保存。
在另一个实施例中,基于网络上可用的服务提供商的数量、可以执行交易的服务提供商的数量、交易是否为第一次尝试、交易所需的服务质量以及各种其他因素,账单模块510动态地确定关于特定交易的价格。在这样的实施例中,账单模块510作为市场经营者,以最低的价格完成交易。
账单模块510耦接到路由模块272以确定交易的状态。一旦交易已经被处理,账单模块510集聚关于需求方、执行交易步骤的实体(过程组织者108、任务执行者139或者模块开发者135)的信息以及关于过程的其他信息。之后,账单模块510为实体和需求方分别生成信用或者借记的结算单。
在一个实施例中,账单模块510集聚关于交易数量的信息,并且直到与应用、模块或文档相关的全部交易都完成,才向需求方开账单。这种实施例需要在账单模块510和路由模块272之间协调和通信,才能使账单模块510知悉哪个交易与哪个文档的处理相关,以及关于该文档的所有处理(交易)何时完成。
在另一个实施例中,账单模块510还生成和处理撤销或者信贷。这种撤销或者信贷可以在向需求方开账单后的很长时间之后生成,诸如响应于日志的审计、客户投诉、识别的错误或者修正、或者发现交易劣质地、未完成地或者未充分地执行等。本领域技术人员可以理解的是,可以通过账单模块510来实现各种传统账单的功能,包括电子账单、转账、信用卡处理等。
在另一个实施例中,账单模块510保存表示交易的账单代码的清单或者明细表。每个账单代码可以与交易步骤ID358相关联地使用,以识别将被提供的和/或将要完成的服务。在一个实施例中,账单代码具有与执行服务和事先商谈的价格、以及在实体与工作流服务器106之间的价格分配相关的参数。本领域技术人员可以理解的是,这种账单代码包括诸如大宗折扣或者特定私人定价协议等的附加信息。在另一个实施例中,账单模块510与处理器291和通信单元293合作,以允许对与市场行情和其他私人协议一致的账单明细表的更新和编辑。
呈现模块522是用于在在线市场模块270显示用于购买的应用、模块和文档的软件和程序。呈现模块522生成用于显示应用、模块和文档、评估系统、分类系统、用于发现应用程序的搜索栏等的用户接口。在一个实施例中,呈现模块522显示诸如医生办公室用的医疗应用的一般应用以及诸如Smith医生用的医疗应用的定制应用。
定制应用可以显示给每个人观看,但是只有Smith医生能够购买。向每个人显示定制应用、模块或者文档的优点是,可以展示实体创建定制应用的能力。缺点是客户可能不想将他们的定制应用、模块或者文档显示给其他用户。因此,在一个实施例中,定制应用、模块或者文档仅在用户同意之后才显示。
在另一个实施例中,定制应用、模块和文档仅显示给特定用户。由于给每个用户分配了唯一ID354,因此根据用户唯一ID354显示应用、模块和文档。呈现模块522还显示用户专用的处理过的应用、模块和文档。例如,医生在病历上附上声音记录并且提交文档以将语音转换为文本。该过程由任务执行者139来执行。一旦任务执行者139完成该过程,就将文档上传到线市场模块270,在线市场模块270上进行认证并进行显示以便于医生下载。这可以是额外或者代替将处理过的文档直接传输给用户。
验证模块529包括用于验证在线市场用的应用、模块和文档的软件和程序。在一个实施例中,类似于上述描述的比较单元422执行的步骤,验证模块529执行验证步骤。在另一个实施例中,响应于接收到的来自计算设备102、过程组织者108、任务执行者139或者模块开发者135用户的低评估或者投诉,验证模块529标记应用、模块和文档。
方法
现在参见图6A-9,将更详细的描述本发明实施例的方法。
图6A示出了根据本发明实施例,用于注册客户、应用和模块的方法的一个实施例。该过程开始于便携式计算设备102、过程组织者108、任务执行者139或者模块开发者135的用户通过注册模块275发起602注册。在一个实施例中,在线市场270生成用于注册用户的具有登陆屏幕的用户界面。在一个实施例中,用户界面显示在浏览器中。当显示登陆屏幕时,登陆屏幕包括用于输入密码和/或用户名称的区域和可选择的按钮。用户提供所请求的信息并且选择按钮来将用户名和/或密码输入至便携式计算设备102。注册模块275为用户生成604用户ID。用户ID是对用户唯一的,并且,通过例如设置用户名和密码来建立用户ID。
注册模块275确定用户是客户还是实体。客户是便携式计算设备102的用户。当确定用户是客户时,注册模块275为便携式计算设备生成606唯一设备ID。在一个实施例中,唯一设备ID与用户ID相关。在,由于缺乏唯一设备ID号码,而将唯一设备ID给其他设备重复使用的情况下,这是特别重要的。
实体包括生成应用的过程组织者108或者生成模块的模块开发者135。响应于确定用户为实体时,注册模块275生成608应用/模块版本全局唯一标识符(GUID)352。GUID与应用或者模块绑定,并且GUID包括应用或模块的版本号码。版本号码被路由模块272用来追踪对应用或者模块的不同版本做出的改变。版本号码被在线市场270用来追踪定价结构。例如,如果用户需要将版本1升级到版本2,则由于版本2提供其他功能从而会存在与升级相关的消费。过程组织者108或者模块开发者135将应用或者模块版本GUID352存储610为应用元数据。
注册模块275生成612用于应用或者模块的密钥并将该密钥传输至过程组织者108或者模块开发者135。在一个实施例中,密钥是公钥/私钥对的私钥部分。该密钥仅被过程组织者108或者模块开发者135以及注册模块275获知。这降低了未授权实体拦截应用和模块以及进行未授权修改的能力。在一个实施例中,过程组织者108或者模块开发者135存储该密钥,但是不以元数据存储,以避免未授权实体对元数据解密。在另一个实施例中,密钥在注册模块275中生成并且不向过程组织者108或者模块开发者135公开,但是却对于验证模块529可用。
一旦生成GUID和密钥,则应用或者模块结束,并且将应用或者模块和元数据上传614到在线市场270。在线市场270请求过程组织者108或者模块开发者135指定616支付结构。支付结构包括用于购买应用和用于其他服务的后续收费的价格356。例如,在以上医生办公室用的表格的例子中,客户初始购买该表格并且可以选择支付转换服务的额外费用。额外服务可以按月收费开账单或者以每个服务来开账单。一旦完成注册过程,在线市场270就显示618用于出售的应用或者模块。
在一个实施例中,客户购买模块用以执行各个任务。在另一个实施例中,过程组织者108购买了模块以将该模块并入过程组织者108的应用中。图6B示出了将模块并入应用和通过注册模块275重新注册该应用的步骤。在再一个实施例中,过程组织者108从任务执行者139购买任务。这些步骤在图6C中示出。
现在参见图6B,过程组织者108从在线市场270购买620模块。过程组织者108将模块并入622应用。过程组织者108通过将应用上传至工作流服务器106来重新注册应用程序,或者在上传该应用之前请求新的应用版本GUID。注册模块275生成新的应用版本GUID624并将新的应用版本GUID624传输至过程组织者108。在线市场270通过指定例如,指定多少百分比的收入属于提供模块的模块开发者135来请求用户更新626支付结构。路由模块272认证628更新的应用以确保对应用的改变是经过授权的。以下结合图7-9详细描述认证步骤。在线市场270显示更新的应用。一旦客户购买更新过的应用,在线市场270就接收632更新的应用的购买。在线市场270根据更新的支付结构将信贷分配634给过程组织者108和模块开发者135。
图6C示出了从任务执行者139购买任务的步骤。过程组织者108从任务执行者139购买636任务并且将信息传输至在线市场270,以使在线市场270更新638与应用相关的支付结构。在一个实施例中,此时将更新的应用上传至工作流服务器106上。在另一个实施例中,在重新注册之后上传更新的应用。注册模块275生成640新的应用版本GUID352。使用结合图7-9所描述的过程,路由模块272认证更新的应用。在线市场270显示644更新的应用。一旦客户购买更新的应用,在线市场270就接收646该更新的应用的购买并且将信贷分配648给过程组织者108和模块开发者139。在一个实施例中,任务执行者139仅在完成对所执行的任务认同的情况下才接受信贷。
现在参考图7,流程图700示出了为应用获取应用签名的过程。过程组织者108在工作流服务器106上创建702空白文档。路由模块272从数据存储器260检索704密钥,提取元数据并生成706应用签名文档签名哈希,其中,该哈希组合了密钥、滚动文档哈希和哈希补偿。注册模块275将应用签名与应用一起存储708为元数据。
图8示出了说明在修改过文档之后生成签名的步骤的流程图800。用户改变802文档。例如,用户将信息输入至表格,过程组织者108对文档进行修改或者任务执行者139通过执行任务来修改文档。对文档进行修改的用户将文档传输804至工作流服务器106。路由模块272生成806结合了滚动哈希、滚动哈希补偿、应用版本GUID352和密钥的文档签名。该文档签名与应用签名是不同的,因为该文档签名包括应用版本GUID352。路由模块272将文档签名、应用版本GUID352、哈希和哈希补偿与修改的文档一起存储808为元数据。文档和元数据被传输至计算设备202,在该计算设备上日志模块314将签名转换为滚动哈希。
参见图9,示出了路由应用、模块或者文档的流程图900。工作流服务器106接收902应用、模块或者文档。路由模块272为文档检索904元数据和密钥并计算哈希904。元数据包括图3C示出的信息。具体地,元数据包括唯一设备ID351、应用版本GUID352、用户ID354、价格356、交易步骤ID358、结果数据哈希哈希360和哈希补偿362。路由模块272将签名与元数据、签名与计算的哈希相比较906。
路由模块272确定比较结果是否有问题。如果数据是不一致的,则路由模块272传输错误消息。错误消息被传输至上传数据的用户、之后接收文档的用户、或者两者。如果数据是一致的,则路由模块272将目的地与在元数据中指定的目的地进行比较910。比较的步骤包括检查可接受的目的地列表,以确保目的地在该列表上,并且在传输时传输用户可以访问该目的地。如果比较结果是有问题的,则路由模块272传输908错误消息。如果比较结果是可以接受的,则路由模块272将应用路由912至目的地。
本发明该实施例的实施例的前述描述是出于示出和描述的目的。不试图是详尽的,或者将本发明实施例限制为公开的精确文档。根据上述教导,可以有很多修改和变化。本发明实施例的范围意欲不被此详细说明限制,而是本申请的由权利要求限制。熟悉本领域的技术人员将理解的是,在不脱离本发明本质特征或精神的情况下,本发明实施例可以以其他具体文档表现。同样地,模块、程序、特征、属性、方法和其他方面的特定命名和划分不是强制性或者显著地,实现本发明实施例或其特征的机制可以有不同的名称、划分和/或文档。此外,对于相关领域的技术人员来说显而易见的是,本发明实施例的模块、程序、特征、属性、方法和其他方面可以以软件、硬件、固件或者这三者的任何结合来实现。而且,无论本发明实施例的任何组件(它的示例是模块)被实现为软件,该组件都可以被实现为单独的程序、大型程序的一部分、多个独立程序、静态或者动态连接的文库、支持可加载内核模块、设备驱动、和/或以对于计算机编程领域的普通技术人员来说现在或将来获知的每个方式和任意其他方式来实现。另外,本发明实施例绝不限于以任何编程语言、或者为任意特定操作系统或环境来实现。因此,本发明实施例的公开意为说明,而非限制本发明实施例的范围,本发明实施例的范围由以下权利要求说明。
本发明基于于2011年2月3日提交美国专利商标局的美国优先专利申请No.13/020643,其全部内容通过引用方式结合于此。
Claims (16)
1.一种用于传输应用、模块和文档中的至少一个的方法,所述方法包括:
改变所述文档;
将所述文档传输至工作流服务器;以及
生成文档签名,所述文档签名与滚动哈希、滚动哈希补偿、全球唯一标识和密钥相结合,
其中,所述滚动哈希是对所述文档最近执行过的行为的哈希,而所述滚动哈希补偿是最近的哈希值与先前日志条目的哈希值之间的差值。
2.根据权利要求1所述的方法,还包括:将所述文档签名、全球唯一标识和密钥存储为与所述应用、模块和文档中的至少一个相关联的元数据。
3.根据权利要求1所述的方法,还包括如下步骤:
接收所述文档;
检索所述元数据和所述密钥;
计算所述哈希;以及
比较所述签名与所述元数据、所述密钥和所述哈希。
4.根据权利要求3所述的方法,还包括如下步骤:
通过将所述签名与所述元数据、所述密钥和所述哈希进行比较来检测问题;以及
传输错误消息。
5.根据权利要求4所述的方法,还包括如下步骤:
将所述应用、模块和文档中的至少一个的目的地与在所述元数据中指定的目的地进行比较。
6.根据权利要求5所述的方法,还包括如下步骤:
通过比较目的地来检测问题;
传输错误消息。
7.根据权利要求6所述的方法,其中,将所述错误消息传输至过程组织者、客户、任务执行者和模块开发者中的至少一个。
8.根据权利要求5所述的方法,还包括如下步骤:
路由所述应用程序、所述模块和所述文档中的至少一个。
9.一种用于传输应用、模块和文档中的至少一个的装置,所述装置包括:
文档改变单元,用于改变所述文档;
文档传输单元,用于将所述文档传输至工作流服务器;以及
文档签名生成单元,用于生成文档签名,所述文档签名与滚动哈希、滚动哈希补偿、全球唯一标识和密钥相结合,
其中,所述滚动哈希是对所述文档最近执行过的行为的哈希,而所述滚动哈希补偿是最近的哈希值与先前日志条目的哈希值之间的差值。
10.根据权利要求9所述的装置,还包括:存储单元,用于将所述文档签名、全球唯一标识和密钥存储为与所述应用、模块和文档中的至少一个相关联的元数据。
11.根据权利要求9所述的装置,还包括:
文档接收单元,用于接收所述文档;
检索单元,用于检索所述元数据和所述密钥;
哈希计算单元,用于计算所述哈希;以及
第一比较单元,用于比较所述签名与所述元数据、所述密钥和所述哈希。
12.根据权利要求11所述的装置,还包括:
第一问题检测单元,用于通过将所述签名与所述元数据、所述密钥和所述哈希进行比较来检测问题;以及
第一消息传输单元,用于传输错误消息。
13.根据权利要求12所述的装置,还包括:
第二比较单元,用于将所述应用、模块和文档中的至少一个的目的地与在所述元数据中指定的目的地进行比较。
14.根据权利要求13所述的装置,还包括:
第二问题检测单元,用于通过比较目的地来检测问题;以及
第二消息传输单元,用于传输错误消息。
15.根据权利要求14所述的装置,其中,将所述错误消息传输至过程组织者、客户、任务执行者和模块开发者中的至少一个。
16.根据权利要求13所述的装置,还包括:
路由单元,用于路由所述应用程序、所述模块和所述文档中的至少一个。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/020,643 US8504480B2 (en) | 2011-02-03 | 2011-02-03 | Creation of signatures for authenticating applications |
US13/020,643 | 2011-02-03 | ||
PCT/JP2012/052435 WO2012105666A1 (en) | 2011-02-03 | 2012-01-27 | Creation of signatures for authenticating applications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103339636A CN103339636A (zh) | 2013-10-02 |
CN103339636B true CN103339636B (zh) | 2016-02-17 |
Family
ID=46601340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280007736.0A Expired - Fee Related CN103339636B (zh) | 2011-02-03 | 2012-01-27 | 创建用于认证应用的签名 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8504480B2 (zh) |
EP (1) | EP2671187A4 (zh) |
JP (1) | JP5971254B2 (zh) |
KR (1) | KR20130114710A (zh) |
CN (1) | CN103339636B (zh) |
AU (1) | AU2012211684A1 (zh) |
SG (1) | SG192233A1 (zh) |
WO (1) | WO2012105666A1 (zh) |
Families Citing this family (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2500356A (en) | 2011-01-20 | 2013-09-18 | Box Inc | Real time notification of activities that occur in a web-based collaboration environment |
US9652741B2 (en) | 2011-07-08 | 2017-05-16 | Box, Inc. | Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof |
US11210610B2 (en) | 2011-10-26 | 2021-12-28 | Box, Inc. | Enhanced multimedia content preview rendering in a cloud content management system |
US9098474B2 (en) | 2011-10-26 | 2015-08-04 | Box, Inc. | Preview pre-generation based on heuristics and algorithmic prediction/assessment of predicted user behavior for enhancement of user experience |
US9773051B2 (en) | 2011-11-29 | 2017-09-26 | Box, Inc. | Mobile platform file and folder selection functionalities for offline access and synchronization |
US9904435B2 (en) | 2012-01-06 | 2018-02-27 | Box, Inc. | System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment |
US11232481B2 (en) | 2012-01-30 | 2022-01-25 | Box, Inc. | Extended applications of multimedia content previews in the cloud-based content management system |
US9965745B2 (en) | 2012-02-24 | 2018-05-08 | Box, Inc. | System and method for promoting enterprise adoption of a web-based collaboration environment |
US8856090B1 (en) * | 2012-03-20 | 2014-10-07 | Amazon Technologies, Inc. | Client-based computation of checksums for product information |
US9575981B2 (en) | 2012-04-11 | 2017-02-21 | Box, Inc. | Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system |
US9413587B2 (en) | 2012-05-02 | 2016-08-09 | Box, Inc. | System and method for a third-party application to access content within a cloud-based platform |
US9396216B2 (en) | 2012-05-04 | 2016-07-19 | Box, Inc. | Repository redundancy implementation of a system which incrementally updates clients with events that occurred via a cloud-enabled platform |
US10360565B2 (en) | 2012-05-18 | 2019-07-23 | Kofax, Inc. | System and method for providing a universal endpoint address schema to route documents and manage document workflows |
US9691051B2 (en) | 2012-05-21 | 2017-06-27 | Box, Inc. | Security enhancement through application access control |
US8914900B2 (en) | 2012-05-23 | 2014-12-16 | Box, Inc. | Methods, architectures and security mechanisms for a third-party application to access content in a cloud-based platform |
US9712510B2 (en) | 2012-07-06 | 2017-07-18 | Box, Inc. | Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform |
GB2505072A (en) | 2012-07-06 | 2014-02-19 | Box Inc | Identifying users and collaborators as search results in a cloud-based system |
US9794256B2 (en) | 2012-07-30 | 2017-10-17 | Box, Inc. | System and method for advanced control tools for administrators in a cloud-based service |
GB2513671A (en) | 2012-08-27 | 2014-11-05 | Box Inc | Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment |
US9135462B2 (en) | 2012-08-29 | 2015-09-15 | Box, Inc. | Upload and download streaming encryption to/from a cloud-based platform |
US9117087B2 (en) | 2012-09-06 | 2015-08-25 | Box, Inc. | System and method for creating a secure channel for inter-application communication based on intents |
US9195519B2 (en) | 2012-09-06 | 2015-11-24 | Box, Inc. | Disabling the self-referential appearance of a mobile application in an intent via a background registration |
US9292833B2 (en) | 2012-09-14 | 2016-03-22 | Box, Inc. | Batching notifications of activities that occur in a web-based collaboration environment |
US10915492B2 (en) * | 2012-09-19 | 2021-02-09 | Box, Inc. | Cloud-based platform enabled with media content indexed for text-based searches and/or metadata extraction |
US9959420B2 (en) | 2012-10-02 | 2018-05-01 | Box, Inc. | System and method for enhanced security and management mechanisms for enterprise administrators in a cloud-based environment |
US9495364B2 (en) | 2012-10-04 | 2016-11-15 | Box, Inc. | Enhanced quick search features, low-barrier commenting/interactive features in a collaboration platform |
US9665349B2 (en) | 2012-10-05 | 2017-05-30 | Box, Inc. | System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform |
US10235383B2 (en) | 2012-12-19 | 2019-03-19 | Box, Inc. | Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment |
US9396245B2 (en) | 2013-01-02 | 2016-07-19 | Box, Inc. | Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US9953036B2 (en) | 2013-01-09 | 2018-04-24 | Box, Inc. | File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
EP2755151A3 (en) | 2013-01-11 | 2014-09-24 | Box, Inc. | Functionalities, features and user interface of a synchronization client to a cloud-based environment |
EP2757491A1 (en) | 2013-01-17 | 2014-07-23 | Box, Inc. | Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform |
CA2899011C (en) * | 2013-01-30 | 2021-06-29 | Kebron DEJENE | Video signature system and method |
KR101523309B1 (ko) * | 2013-01-31 | 2015-06-02 | 한국인터넷진흥원 | 어플리케이션 배포 시스템 및 방법 |
US10725968B2 (en) | 2013-05-10 | 2020-07-28 | Box, Inc. | Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform |
US10846074B2 (en) | 2013-05-10 | 2020-11-24 | Box, Inc. | Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client |
GB2515192B (en) | 2013-06-13 | 2016-12-14 | Box Inc | Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform |
US9805050B2 (en) | 2013-06-21 | 2017-10-31 | Box, Inc. | Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform |
US9535924B2 (en) | 2013-07-30 | 2017-01-03 | Box, Inc. | Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US10509527B2 (en) | 2013-09-13 | 2019-12-17 | Box, Inc. | Systems and methods for configuring event-based automation in cloud-based collaboration platforms |
US9535909B2 (en) | 2013-09-13 | 2017-01-03 | Box, Inc. | Configurable event-based automation architecture for cloud-based collaboration platforms |
US9531718B2 (en) * | 2013-09-19 | 2016-12-27 | Google Inc. | Confirming the identity of integrator applications |
KR101498820B1 (ko) * | 2013-11-06 | 2015-03-05 | 순천향대학교 산학협력단 | 안드로이드 환경에서의 어플리케이션 리패키징 탐지 방법 |
US10530854B2 (en) | 2014-05-30 | 2020-01-07 | Box, Inc. | Synchronization of permissioned content in cloud-based environments |
US10038731B2 (en) | 2014-08-29 | 2018-07-31 | Box, Inc. | Managing flow-based interactions with cloud-based shared content |
US9894119B2 (en) | 2014-08-29 | 2018-02-13 | Box, Inc. | Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms |
BR112018016212A2 (pt) * | 2016-02-08 | 2018-12-18 | Scott Guy | sistema e método para verificação da autenticidade de informações de documento |
US10419225B2 (en) * | 2017-01-30 | 2019-09-17 | Factom, Inc. | Validating documents via blockchain |
US10411897B2 (en) | 2017-02-17 | 2019-09-10 | Factom, Inc. | Secret sharing via blockchains |
US10817873B2 (en) | 2017-03-22 | 2020-10-27 | Factom, Inc. | Auditing of electronic documents |
US10476049B2 (en) | 2017-07-17 | 2019-11-12 | Robert Bosch Battery Systems Llc | Mechanically fastened through-wall current collector |
JP6604367B2 (ja) | 2017-09-20 | 2019-11-13 | 富士ゼロックス株式会社 | 処理装置及び情報処理装置 |
US11146402B2 (en) * | 2017-11-17 | 2021-10-12 | Monkton, Inc. | Non-repudiation method and system |
GB2569662B (en) * | 2017-12-21 | 2022-08-03 | Cirrus Logic Int Semiconductor Ltd | Secure audio output |
CN108345693B (zh) * | 2018-03-16 | 2022-01-28 | 中国银行股份有限公司 | 一种文件处理方法及装置 |
US10783164B2 (en) | 2018-05-18 | 2020-09-22 | Factom, Inc. | Import and export in blockchain environments |
US11170366B2 (en) | 2018-05-18 | 2021-11-09 | Inveniam Capital Partners, Inc. | Private blockchain services |
US11134120B2 (en) | 2018-05-18 | 2021-09-28 | Inveniam Capital Partners, Inc. | Load balancing in blockchain environments |
US11276056B2 (en) | 2018-08-06 | 2022-03-15 | Inveniam Capital Partners, Inc. | Digital contracts in blockchain environments |
US11328290B2 (en) | 2018-08-06 | 2022-05-10 | Inveniam Capital Partners, Inc. | Stable cryptocurrency coinage |
US11989208B2 (en) | 2018-08-06 | 2024-05-21 | Inveniam Capital Partners, Inc. | Transactional sharding of blockchain transactions |
FR3093576B1 (fr) * | 2019-03-07 | 2021-12-10 | Informatique 65800 | Calcul de signature et vérification d’intégrité de données numériques |
CN109993510B (zh) * | 2019-03-11 | 2020-12-11 | 杭州复杂美科技有限公司 | 助记词生成方法、私钥生成方法、钱包导入方法 |
CN109977022B (zh) * | 2019-04-03 | 2023-01-10 | 网易(杭州)网络有限公司 | 游戏资源的检查方法、装置、系统及存储介质 |
US11520738B2 (en) * | 2019-09-20 | 2022-12-06 | Samsung Electronics Co., Ltd. | Internal key hash directory in table |
US11444749B2 (en) | 2020-01-17 | 2022-09-13 | Inveniam Capital Partners, Inc. | Separating hashing from proof-of-work in blockchain environments |
US12008526B2 (en) | 2021-03-26 | 2024-06-11 | Inveniam Capital Partners, Inc. | Computer system and method for programmatic collateralization services |
US12007972B2 (en) | 2021-06-19 | 2024-06-11 | Inveniam Capital Partners, Inc. | Systems and methods for processing blockchain transactions |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6601172B1 (en) * | 1997-12-31 | 2003-07-29 | Philips Electronics North America Corp. | Transmitting revisions with digital signatures |
CN1516470A (zh) * | 2002-10-08 | 2004-07-28 | 数字电视应用的数字签名 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892900A (en) * | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
AU7182701A (en) * | 2000-07-06 | 2002-01-21 | David Paul Felsher | Information record infrastructure, system and method |
JP2004180278A (ja) | 2002-11-15 | 2004-06-24 | Canon Inc | 情報処理装置、サーバ装置、電子データ管理システム、情報処理システム、情報処理方法、コンピュータプログラム及びコンピュータ読み取り可能な記憶媒体 |
JP2004272531A (ja) * | 2003-03-07 | 2004-09-30 | Nippon Telegr & Teleph Corp <Ntt> | 台帳データベース構築システム及び構築方法並びに構築プログラム及び記録媒体 |
JP2006269591A (ja) * | 2005-03-23 | 2006-10-05 | Hitachi Kokusai Electric Inc | 基板処理装置 |
US20080243688A1 (en) | 2007-03-28 | 2008-10-02 | Hart Peter E | Method and Apparatus for Recording Transactions with a Portable Logging Device |
US9363258B2 (en) * | 2007-12-17 | 2016-06-07 | International Business Machines Corporation | Secure digital signature system |
-
2011
- 2011-02-03 US US13/020,643 patent/US8504480B2/en not_active Expired - Fee Related
-
2012
- 2012-01-27 SG SG2013058144A patent/SG192233A1/en unknown
- 2012-01-27 JP JP2013535162A patent/JP5971254B2/ja not_active Expired - Fee Related
- 2012-01-27 AU AU2012211684A patent/AU2012211684A1/en not_active Abandoned
- 2012-01-27 EP EP12742490.1A patent/EP2671187A4/en not_active Withdrawn
- 2012-01-27 WO PCT/JP2012/052435 patent/WO2012105666A1/en active Application Filing
- 2012-01-27 CN CN201280007736.0A patent/CN103339636B/zh not_active Expired - Fee Related
- 2012-01-27 KR KR1020137020609A patent/KR20130114710A/ko not_active Application Discontinuation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6601172B1 (en) * | 1997-12-31 | 2003-07-29 | Philips Electronics North America Corp. | Transmitting revisions with digital signatures |
CN1516470A (zh) * | 2002-10-08 | 2004-07-28 | 数字电视应用的数字签名 |
Non-Patent Citations (1)
Title |
---|
《电子签名法》与数字签名的技术实现;关振胜;《电子商务》;20060131;全文 * |
Also Published As
Publication number | Publication date |
---|---|
WO2012105666A1 (en) | 2012-08-09 |
JP5971254B2 (ja) | 2016-08-17 |
SG192233A1 (en) | 2013-09-30 |
AU2012211684A1 (en) | 2013-08-22 |
CN103339636A (zh) | 2013-10-02 |
US20120203670A1 (en) | 2012-08-09 |
JP2014510318A (ja) | 2014-04-24 |
KR20130114710A (ko) | 2013-10-17 |
EP2671187A1 (en) | 2013-12-11 |
EP2671187A4 (en) | 2016-01-27 |
US8504480B2 (en) | 2013-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103339636B (zh) | 创建用于认证应用的签名 | |
US20220292485A1 (en) | Systems and methods for payment management for supporting mobile payments | |
US20200034841A1 (en) | System for secure routing of data to various networks from a process data network | |
US10178105B2 (en) | System for providing levels of security access to a process data network | |
Guerar et al. | A fraud-resilient blockchain-based solution for invoice financing | |
US20160217461A1 (en) | Transaction utilizing anonymized user data | |
WO2019246626A1 (en) | Decentralized identity verification platforms | |
US20150363768A1 (en) | System and method for rendering virtual currency related services | |
US20140358745A1 (en) | Automated accounting method | |
US20100191622A1 (en) | Distributed Transaction layer | |
KR20190028517A (ko) | 트랜잭션 장치에 의한 디지털 자산 분산 | |
US20200005398A1 (en) | Interactive system for providing real-time event analysis and resolution | |
US11599627B2 (en) | System employing smart device for secure and authenticated event execution | |
US20070244798A1 (en) | Systems and methods for real estate process management | |
US12014367B2 (en) | Predicting and making payments via preferred payment methods | |
US11270313B2 (en) | Real-time resource account verification processing system | |
US11386413B2 (en) | Device-based transaction authorization | |
US20210406902A1 (en) | Standardized identifiers for multiple transaction authorizations | |
US20200242600A1 (en) | System for leveraged collaborative pre-verification and authentication for secure real-time resource distribution | |
CN116917918A (zh) | 嵌入式读卡器安全 | |
US20240086519A1 (en) | System and method for distributed management of consumer data | |
US20150058211A1 (en) | User validation, amount-due validation, payment collection, and payment processing system and method thereof | |
CN107209885A (zh) | 用于客户远程服务的付款和通信连接的系统 | |
US20140201060A1 (en) | Computer program, system, and method for providing a consumer with immediate access to funds via a hybridized secured line of credit | |
US20240037210A1 (en) | System and method for capturing and encrypting graphical authentication credentials for validating users in an electronic network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160217 Termination date: 20200127 |