ES2737725T3 - Sistemas y métodos para la gestión de máquinas de estado - Google Patents
Sistemas y métodos para la gestión de máquinas de estado Download PDFInfo
- Publication number
- ES2737725T3 ES2737725T3 ES16169684T ES16169684T ES2737725T3 ES 2737725 T3 ES2737725 T3 ES 2737725T3 ES 16169684 T ES16169684 T ES 16169684T ES 16169684 T ES16169684 T ES 16169684T ES 2737725 T3 ES2737725 T3 ES 2737725T3
- Authority
- ES
- Spain
- Prior art keywords
- workflow
- case
- definitions
- identifier
- state machine
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06316—Sequencing of tasks or work
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/18—Legal services
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Theoretical Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Technology Law (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Un método implementado por ordenador, en donde el método se realiza mediante el uso de uno o más procesadores, el método que comprende: recibir un identificador de flujo de trabajo; recibir uno o más estados de flujo de trabajo, uno o más estados de flujo de trabajo, que incluyen los correspondientes identificadores de estado de flujo de trabajo; recibir una o más definiciones de operación correspondientes a cada uno de uno o más estados de flujo de trabajo, una o más definiciones de operación que incluyen una o más operaciones de flujo de trabajo; recibir una o más definiciones de transición, las definiciones de transición correspondientes a una o más definiciones de operación y determinar una secuencia de uno o más estados de flujo de trabajo; generar una máquina de estados; configurar la máquina de estados en función del identificador de flujo de trabajo, uno o más estados de flujo de trabajo, una o más definiciones de operación y una o más definiciones de transición. recibir un identificador del caso; generar un objeto de datos del caso que incluya el identificador del caso y una o más propiedades del caso; acceder a la máquina de estados en respuesta a la recepción del identificador del caso; asignar el identificador de flujo de trabajo, uno o más estados de flujo de trabajo, una o más definiciones de operación y una o más definiciones de transición al objeto de datos del caso vincular automáticamente uno o más elementos asociados al objeto de datos del caso, uno o más elementos asociados que se relacionan con el objeto de datos del caso en función de una o más propiedades del caso; acceder a una pluralidad de fuentes de datos de terceros; y recuperar automáticamente, de terceros, uno o más elementos asociados de la pluralidad de fuentes de datos en función de una o más propiedades del caso.
Description
DESCRIPCIÓN
Sistemas y métodos para la gestión de máquinas de estado.
Aviso de derecho de autor
Una porción de la descripción de este documento de patente contiene material que está sujeto a la protección de los derechos de autor. El titular de los derechos de autor no tiene ninguna objeción al facsímil de cualquiera del documento de patente o la descripción de la patente, tal como aparece en los archivos o registros de patentes de la Oficina de Marcas y Patentes, pero de cualquier otra manera se reserva todos los derechos de autor. El siguiente aviso se aplica al programa informático y los datos como se describe a continuación y en los dibujos que forman parte de este documento: Derecho de autor 2015, PALANTIR, INC, Todos los derechos reservados.
Campo técnico
El tema descrito en la presente descripción se relaciona generalmente con la creación y gestión de objetos de datos de casos con un sistema en red. Específicamente, la presente descripción aborda sistemas y métodos para la generación y gestión de objetos de datos de casos.
Antecedentes
Los sistemas de procesamiento de datos pueden usarse para facilitar la creación y gestión de documentos virtuales a través de un sistema en red, a través de la gestión simultánea de una amplia gama de objetos de datos de una variedad de fuentes, donde cada objeto de datos puede tener requisitos de flujo de trabajo o gestión únicos. A su vez, esta gestión puede llevar a aplicaciones innovadoras con aplicaciones prácticas del mundo real. Por ejemplo, una organización puede automatizar un proceso de creación de documentos configurando un sistema de procesamiento de datos para ejecutar varios procesos de flujo de trabajo.
Breve descripción de los dibujos
Varios de los dibujos adjuntos simplemente ilustran modalidades de ejemplo de la presente descripción y no pueden considerarse como limitantes de su alcance.
La Figura 1 es un diagrama de red que ilustra una arquitectura de red adecuada para generar y gestionar casos, de acuerdo con algunas modalidades ilustrativas.
La Figura 2A es un diagrama de bloques que ilustra una modalidad de ejemplo de varios módulos que forman un sistema de gestión de casos, de acuerdo con algunas modalidades de ejemplo, que se proporciona como parte de la arquitectura de red de la Figura 1.
La Figura 2B es un diagrama de bloques que ilustra una modalidad de ejemplo de varios módulos que forman un sistema de máquina de estados, de acuerdo con algunas modalidades de ejemplo, que se proporciona como parte de la arquitectura de red de la Figura 1.
La Figura 3 es un diagrama de flujo que ilustra las operaciones del sistema de la máquina de estados al recibir definiciones de flujo de trabajo, que configura una máquina de estados, de acuerdo con algunas modalidades de ejemplo.
La Figura 4 es un diagrama de flujo que ilustra las operaciones del sistema PaCMan para generar objetos de datos de casos, que accede a una máquina de estados y que asigna a la configuración de flujo de trabajo de la máquina de estados los objetos de casos de datos, de acuerdo con algunas modalidades de ejemplo.
La Figura 5 es un diagrama de interacción que ilustra diversas interacciones de ejemplo entre el sistema de la máquina de estados, el sistema PaCMan y los servidores de terceros, de acuerdo con algunas modalidades.
La Figura 6 es un diagrama que ilustra una bandeja de entrada de documentos del sistema PaCMan, que incluye criterios de clasificación, un icono de creación de casos y un campo de búsqueda de casos, de acuerdo con algunas modalidades de ejemplo.
La Figura 7 es un diagrama que ilustra una interfaz de creación de casos del sistema PaCMan, de acuerdo con algunas modalidades de ejemplo.
La Figura 8 es un diagrama que ilustra un rol de usuario y una interfaz de acceso del sistema PaCMan, de acuerdo con algunas modalidades de ejemplo.
La Figura 9 es un diagrama de bloques que ilustra los componentes de una máquina, de acuerdo con algunas modalidades de ejemplo, capaces de leer instrucciones de un medio legible por máquina y ejecutar una o más de las metodologías descritas en la presente descripción.
Descripción detallada
Los métodos y sistemas de ejemplo se dirigen a un sistema de gestión de casos configurado para generar y gestionar objetos de datos de casos. Los ejemplos simplemente tipifican posibles variaciones. A menos que se indique explícitamente de cualquier otra manera, los componentes y funciones son opcionales y pueden combinarse o subdividirse, y las operaciones pueden variar en secuencia o combinarse o subdividirse. En la siguiente descripción, para los propósitos de la explicación, se exponen numerosos detalles específicos para proporcionar un entendimiento completo
de las modalidades de ejemplo. Sin embargo, será evidente para un experto en la técnica que la materia descrita puede llevarse a la práctica sin estos detalles específicos.
Se configura un sistema de gestión de casos (por ejemplo, mediante módulos adecuados) para proporcionar una o más funciones de gestión y generación de casos. Según lo configurado, el sistema de gestión de casos permite a un usuario (por ejemplo, un desarrollador de sistemas) generar y configurar una máquina de estados, la configuración de la máquina de estados incluye uno o más estados de flujo de trabajo, una o más operaciones que pueden ejecutarse en cada uno de uno o más estados, un conjunto de transiciones correspondientes a una o más operaciones y un estado inicial. La máquina de estados proporciona operativamente un flujo de trabajo para un objeto de datos del caso en función de la configuración correspondiente, en donde el objeto de datos del caso incluye la configuración de la máquina de estados.
El sistema de gestión de casos se configura para acceder a la máquina de estados y, en función de la configuración correspondiente de la máquina de estados, genera un objeto de datos del caso. Las modalidades de ejemplo también proporcionan métodos para recibir (y asignar al objeto de datos del caso) una lista de identificadores de usuario, definir roles de usuario y listas de control de acceso (ACL) para los usuarios asociados con los identificadores de usuario, agregar 0 ver rápidamente notas de casos, vincular elementos asociados a los casos generados, y rastrear y registrar un ciclo de vida (por ejemplo, una cronología) de un objeto de datos del casos a través del flujo de trabajo definido.
Las mejoras en la generación y gestión de objetos de datos de casos pueden permitir que los recursos de soporte físico y aplicación informática se optimicen, que incluyen una reducción en el consumo de energía causada por la necesidad de un uso de soporte físico más corto o menos intensivo, una reducción en los requisitos de memoria al reducir la cantidad de información necesaria para procesar en diferentes etapas del flujo de trabajo, o reduciendo la cantidad de tiempo durante el cual se necesita almacenar dicha información, y habilitando, por ejemplo, el filtrado de recursos y los recursos de red asociados con la transmisión y recepción de datos, tal como el uso de ancho de banda, causado por la reducción del número de etapas de consulta requeridas para ejecutarse entre diferentes componentes o módulos de un sistema de soporte físico y/o aplicación informática que incorpora la presente invención.
Como ejemplo ilustrativo desde la perspectiva del usuario, supongamos que un usuario accede al sistema de gestión de casos a través de un dispositivo cliente. El sistema de gestión de casos permite al usuario acceder a una máquina de estados con la configuración de flujo de trabajo correspondiente. El usuario puede acceder a la máquina de estados al enviar un identificador de flujo de trabajo (por ejemplo, un nombre de referencia correspondiente al flujo de trabajo de la máquina de estados), avanzar a través de uno o más estados correspondientes al flujo de trabajo según lo define el desarrollador del sistema (por ejemplo, una creación/proyecto de estado, un estado de aprobación, un estado pendiente), y ejecutar operaciones definidas por el desarrollador que pueden ejecutarse en cada uno de uno o más estados (por ejemplo, redacción, edición, vinculación de documentos relacionados, aprobación, rechazo, asignación, transferencia, cancelación). Por lo tanto, la máquina de estados está preconfigurada (por ejemplo, por el desarrollador del sistema) para incluir las definiciones de flujo de trabajo que luego son accesibles por el usuario.
El usuario puede decidir abrir un caso (por ejemplo, un objeto de datos del caso) en función del flujo de trabajo previamente definido y asociado con la máquina de estados. El usuario accede a la máquina de estados al proporcionar el identificador de flujo de trabajo correspondiente (por ejemplo, asociado a la máquina de estados) a través de la creación de un caso en la interfaz (por ejemplo, seleccionando un icono de "caso nuevo" dentro de una interfaz gráfica de usuario). El usuario también puede proporcionar al sistema de gestión de casos una o más propiedades del caso (por ejemplo, un nombre de caso) con el propósito de abrir y generar el caso, y el sistema de gestión de casos generará el caso en función de la máquina de estados especificada por el usuario. El sistema de gestión de casos aplica una o más definiciones de flujo de trabajo de la máquina de estados correspondiente al caso, definiendo así el flujo de trabajo para el caso. Las operaciones correspondientes al flujo de trabajo previamente definido por el desarrollador del sistema en la máquina de estados pueden ejecutarse en el caso en función del estado actual del caso. Los estados subsiguientes del caso se determinan en función de las definiciones de transición dentro de la configuración de la máquina de estados. De esta manera, el desarrollador del sistema puede definir un flujo de trabajo que se aplique a los casos generados por el sistema de gestión de casos, y además permite a los usuarios abrir y gestionar casos a través de su flujo de trabajo correspondiente en función de las configuraciones de la máquina de estados previamente proporcionadas por el desarrollador del sistema.
Con referencia a la Figura 1, se muestra una modalidad de ejemplo de una arquitectura de red 100 basada en servidorcliente de alto nivel. Una red 104 proporciona funcionalidad del lado del servidor aun dispositivo cliente 110. En algunas implementaciones, un usuario interactúa con un sistema en red 102 mediante el uso del dispositivo cliente 110. La Figura 1 ilustra, por ejemplo, un cliente web 112 (por ejemplo, un navegador, como el explorador INTERNET EXPLORER® desarrollado por MICROSOFT® CORPORATION de Redmond, estado de Washington), aplicación (es) cliente 114 y un cliente programático 116 que se ejecuta en el dispositivo cliente 110. El dispositivo cliente 110 puede incluir el cliente web 112, la (s) aplicación (es) cliente (s) 114, y el cliente programático 116 solos, juntos o en cualquier combinación adecuada. Aunque la Figura 1 muestra un dispositivo cliente 110; en otras implementaciones, la arquitectura de red 100 comprende múltiples dispositivos cliente.
El dispositivo cliente 110 puede ser un dispositivo informático que incluye al menos una pantalla y capacidades de comunicación que proporcionan acceso a la red 104. El dispositivo cliente 110 puede ser, por ejemplo, un dispositivo remoto, estación de trabajo, ordenador, ordenador de propósito general, dispositivo de Internet, dispositivo portátil,
dispositivo inalámbrico, dispositivo portátil, ordenador portátil, teléfono celular o móvil, asistente digital personal (PDA), teléfono inteligente, tableta, ordenador portátil ligero, miniordenador portátil, ordenador portátil, ordenador de escritorio, sistema multiprocesador, sistema electrónico de consumo programare o basado en microprocesador, consola de juegos, caja decodificadora, ordenador personal (PC) en red, miniordenador, etc. En una modalidad de ejemplo, el dispositivo cliente 110 comprende uno o más de una pantalla táctil, acelerómetro, giroscopio, sensor biométrico, cámara, micrófono, dispositivo de sistema de posicionamiento global (GPS) y similares.
El dispositivo cliente 110 se comunica con la red 104 a través de una conexión por cable o inalámbrica. Por ejemplo, una o más porciones de la red 104 pueden comprender una red ad hoc, una intranet, una extranet, una red privada virtual (VPN), una red de área local (LAN), una LAN inalámbrica (WLAN), una red de área amplia (WAN), una red WAN inalámbrica (WWAN), una red de área metropolitana (MAN), una porción de Internet, una porción de la red telefónica pública conmutada (PSTN), una red de telefonía celular, una red inalámbrica, una red de fidelidad inalámbrica (Wi-Fi®), una red mundial de interoperabilidad para acceso de microondas (WiMax), otro tipo de red o cualquier combinación adecuada de estas.
En varias modalidades de ejemplo, el usuario puede ser una persona, una máquina u otra entidad que sea capaz de interactuar con el dispositivo 110 del cliente. En algunas modalidades de ejemplo, el usuario no es parte de la arquitectura de red 100, sino que interactúa con la arquitectura de red 100 a través del dispositivo cliente 110 u otro medio. Por ejemplo, el usuario proporciona una entrada (por ejemplo, una entrada de pantalla táctil o una entrada alfanumérica) al dispositivo cliente 110 y la entrada se comunica a la red 104. El usuario puede interactuar con el sistema en red 102 mediante el uso del dispositivo cliente 110. Además, se muestra que una aplicación de terceros 132, que se ejecuta en un servidor de terceros 130, tiene acceso programático al sistema en red 102.
Además, mientras que la arquitectura de red 100 mostrada en la Figura 1 emplea una arquitectura cliente-servidor, el objeto de la presente invención no se limita, por supuesto, a una arquitectura de este tipo, y puede igualmente encontrar una aplicación en un sistema de arquitectura distribuido o de igual a igual, por ejemplo. Los sistemas del (de los) servidor (es) 140 de aplicaciones (por ejemplo, el sistema PaCMan 142 y el sistema de la máquina de estados 144) también pueden implementarse como programas de aplicación informática independientes, que no necesariamente tienen capacidades de red.
La Figura 2A es un diagrama de bloques que ilustra los componentes del sistema PaCMan 142 que configuran el sistema PaCMan 142 para generar y gestionar casos basados en máquinas de estado generadas por el sistema de máquina de estados 144, de acuerdo con algunas modalidades de ejemplo. Se muestra que el sistema PaCMan 142 incluye un módulo de recuperación de estados 210, un módulo de generación de casos 215, un módulo de conexión 220 y el sistema de la máquina de estados 144, todos configurados para comunicarse entre sí (por ejemplo, a través de un bus, una memoria compartida o un conmutador). Uno o más de estos módulos pueden implementarse mediante el uso de uno o más procesadores (por ejemplo, configurando uno o más procesadores para ejecutar las funciones descritas para ese módulo) y, por lo tanto, pueden incluir uno o más de los procesadores.
La Figura 2B es un diagrama de bloques que ilustra los componentes del sistema de la máquina de estados 144 que configuran el sistema de la máquina de estados 144 para crear la máquina de estados en función de las configuraciones de flujo de trabajo proporcionadas, de acuerdo con algunas modalidades de ejemplo. Se muestra que el sistema de la máquina de estados 144 incluye un módulo de flujo de trabajo 235, un módulo de transición 240, un módulo de operación 245 y un módulo de generación de objetos 250, todos configurados para comunicarse entre sí (por ejemplo, a través de un bus, memoria compartida o un conmutador). Uno o más de estos módulos pueden implementarse mediante el uso de uno o más procesadores (por ejemplo, configurando uno o más procesadores para ejecutar las funciones descritas para ese módulo) y, por lo tanto, pueden incluir uno o más de los procesadores.
Uno o más de los módulos descritos en la presente descripción pueden implementarse mediante el uso de solo soporte físico (por ejemplo, uno o más procesadores de una máquina) o una combinación de soporte físico y aplicación informática. Por ejemplo, cualquier módulo descrito del sistema PaCMan 142 o el sistema de la máquina de estados 144 puede incluir físicamente una disposición de uno o más procesadores (por ejemplo, un subconjunto de o entre uno o más de los procesadores de la máquina que se describe a continuación con referencia a la Figura 9) configurado para ejecutar las operaciones descritas en la presente descripción para ese módulo. Como otro ejemplo, cualquier módulo del sistema PaCMan 142 y el sistema de la máquina de estados 144 puede incluir aplicación informática, soporte físico o ambos, que configuran una disposición de uno o más procesadores (por ejemplo, entre uno o más procesadores de la máquina) para realizar la operaciones descritas en la presente descripción para ese módulo. En consecuencia, los diferentes módulos del sistema PaCMan 142 y el sistema de la máquina de estados 144 pueden incluir y configurar diferentes disposiciones de tales procesadores o una única disposición de dichos procesadores en diferentes puntos en el tiempo. Además, cualquiera de los dos o más módulos del sistema PaCMan 142 y el sistema de la máquina de estados 144 pueden combinarse en un solo módulo, y las funciones descritas en la presente descripción para un solo módulo pueden subdividirse entre múltiples módulos. Además, de acuerdo con diversas modalidades de ejemplo, los módulos descritos en la presente descripción como implementados dentro de una sola máquina, base de datos o dispositivo pueden distribuirse en múltiples máquinas, bases de datos o dispositivos.
La Figura 3 es un diagrama de flujo que ilustra las operaciones del sistema de la máquina de estados 144 al ejecutar un método 300 para recibir una configuración de flujo de trabajo y generar y configurar máquinas de estado, de acuerdo con algunas modalidades de ejemplo. Como se muestra en la Figura 3, algunas modalidades de ejemplo del método 300 pueden ejecutarse por el sistema de la máquina de estados 144 mediante el uso de los módulos descritos anteriormente con respecto a la Figura 2B. La Figura 3 muestra el método 300 que incluye una o más de las operaciones 305, 310, 315, 320 y 325.
La operación 305 puede ejecutarse por el módulo de flujo de trabajo 235, y con respecto al dispositivo cliente 110. El módulo de flujo de trabajo 235 recibe una configuración de una máquina de estados que define un flujo de trabajo de un objeto de datos del caso correspondiente. Por ejemplo, el flujo de trabajo del objeto de datos del caso (por ejemplo, caso, documento) incluye uno o más estados de flujo de trabajo, que incluye, por ejemplo, estados correspondientes a una fase de creación de documentos (por ejemplo, borrador), una fase de edición, una fase de revisión, una pendiente fase de aprobación, y una fase aprobada. Por lo tanto, el módulo de flujo de trabajo 235 se configura para recibir entradas desde el dispositivo cliente 110 que proporciona una serie de estados de flujo de trabajo correspondientes a un documento, y los identificadores de estado de flujo de trabajo correspondientes a cada uno de los estados de flujo de trabajo.
La operación 310 puede ejecutarse por el módulo de operación 245, con respecto al dispositivo cliente 110. El módulo de operación 245 recibe definiciones de operación, que definen las operaciones que pueden realizarse en cada uno de los estados de flujo de trabajo definidos en la operación 305. Una operación puede ser, por ejemplo, una acción o un procedimiento que produce un resultado. Un resultado de ejemplo es mover un documento de un estado actual a un estado posterior, o generar una notificación en respuesta a una operación ejecutada. Por ejemplo, el módulo de operación 245 puede recibir múltiples definiciones de operación (por ejemplo, enviar un documento para su aprobación, aprobar un documento, rechazar un documento, asignar un documento, transferir un documento) correspondiente a cada una de las definiciones de estado de flujo de trabajo recibidas por el módulo de flujo de trabajo 235 en funcionamiento 305. El módulo de operaciones 245 rastrea la ejecución de las operaciones ejecutadas en cada uno de los estados de flujo de trabajo y registra las operaciones ejecutadas en una cronología de flujo de trabajo. La cronología del flujo de trabajo puede incluir datos que indiquen una fecha y hora de ejecución, y el correspondiente identificador de usuario de un usuario que ejecutó la operación.
La operación 315 puede ejecutarse por el módulo de transición 240, con respecto al dispositivo cliente 110. El módulo de transición 240 recibe definiciones de transición, que definen una secuencia correspondiente a uno o más estados de flujo de trabajo en función de las operaciones ejecutadas. Por ejemplo, un usuario (por ejemplo, un desarrollador del sistema) puede proporcionar al módulo de transición 240 las definiciones de transición, cada definición de incisión establece un estado de flujo de trabajo posterior de un documento a través del flujo de trabajo en función de una operación ejecutada en el estado actual del documento dentro del flujo de trabajo.
La operación 320 puede ejecutarse por el módulo de generación de objetos 250. El módulo de generación de objetos 250 recupera las definiciones de flujo de trabajo del módulo de flujo de trabajo 235, las definiciones de transición del módulo de transición 240 y las definiciones de operación del módulo de operación 245. Al recuperar las definiciones, el módulo de generación de objetos genera y configura una máquina de estados para asignar las definiciones. En algunas modalidades de ejemplo, el módulo de generación de objetos 250 también puede recibir un identificador de flujo de trabajo para asignar a la máquina de estados. En la operación 325, el sistema de máquina de estados 144 entrega la máquina de estados configurada al sistema PaCMan 142.
La Figura 4 es un diagrama de flujo que ilustra las operaciones del sistema PaCMan 142 al ejecutar un método 400 para generar objetos de datos de casos (por ejemplo, casos), acceder a la máquina de estados relacionada con los casos y gestionar los casos en función de las definiciones de flujo de trabajo correspondientes. Como se muestra en la Figura 4, algunas modalidades de ejemplo del método 400 pueden ejecutarse por el sistema PaCMan 142 mediante el uso de los módulos descritos anteriormente con respecto a la Figura 2A. La Figura 4 muestra el método 400 que incluye una o más de las operaciones 405, 410, 415 y 420. El método 400 es simplemente un ejemplo no limitativo de un método para generar un caso. Aunque las etapas del método se muestran en un orden particular, desde la operación 405 hasta la operación 420, un experto en la técnica entenderá que cualquier sistema configurado para ejecutar las etapas del método, en cualquier orden, está dentro del alcance de la presente descripción.
La operación 405 puede ejecutarse por el módulo 215 de generación de casos del sistema PaCMan 142. El módulo 215 de generación de casos crea un caso que incluye un identificador del caso y una o más propiedades del caso (por ejemplo, nombre del caso, contenido del caso, un sujeto, un autor).
La operación 410 puede ejecutarse por el módulo de recuperación BPM 210 del sistema PaCMan 142. El módulo de recuperación de estados 210 recupera un conjunto de estados de flujo de trabajo al acceder al sistema de la máquina de estados 144. Por ejemplo, el módulo de recuperación de estados 210 puede recibir un identificador de flujo de trabajo del dispositivo cliente 110, y el identificador de flujo de trabajo correspondiente a una máquina de estados con una configuración particular correspondiente al identificador de flujo de trabajo. El sistema de la máquina de estados 144 puede proporcionar al módulo de recuperación de estados 210 acceso a la máquina de estados apropiada, en función del identificador de flujo de trabajo recibido.
La operación 415 puede ejecutarse por el módulo de generación de casos 215. El módulo 215 de generación de casos recibe un comando del dispositivo cliente 110, donde el comando incluye el identificador de flujo de trabajo. El módulo 215 de generación de casos asigna el flujo de trabajo de la máquina de estados identificada por el identificador de flujo de trabajo al caso. La asignación del flujo de trabajo de la máquina de estados al caso aplica las configuraciones de flujo de trabajo recibidas al caso.
La operación 420 puede ejecutarse por el módulo de vinculación 220. El módulo de vinculación 220 accede a los servidores de terceros 130 a través de la red 104, o una o más bases de datos 126 a través de uno o más servidores de bases de datos 124, con el propósito de recuperar cualquier documento o elemento que pueda estar relacionado con el caso generado por el módulo de generación de casos 215 en la operación 405. Los documentos pueden estar relacionados en función de una o más propiedades del caso. El módulo de vinculación 220 puede entonces vincular uno o más elementos asociados al caso. Al vincular uno o más elementos asociados, el módulo de vinculación 220 genera una referencia a cada uno de uno o más elementos asociados, y almacena la referencia dentro del caso, de manera que uno o más elementos asociados pueden recuperarse en función de sus referencias correspondientes. Alternativamente, el módulo de vinculación 220 también puede generar una referencia al caso, y asignar la referencia al caso a uno o más elementos asociados.
El módulo de vinculación 220 recupera una lista de identificadores de usuario correspondientes a uno o más usuarios para asignar al caso. La lista de identificadores de usuario puede incluir nombres, información de contacto, nombres de usuario y similares. Por ejemplo, el módulo de vinculación 220 puede recuperar la lista de identificadores de usuario de una base de datos (por ejemplo, la base de datos 126) en función de una selección o entrada del usuario. El módulo de vinculación 220 también recupera entradas que definen los roles de usuario y el acceso correspondiente a uno o más usuarios identificados por uno o más identificadores de usuario. Los roles de usuario pueden definir operaciones que cada usuario puede realizar en el caso durante uno o más estados de flujo de trabajo.
La Figura 5 es un diagrama de interacción que representa intercambios de ejemplo entre el sistema de la máquina de estados 144, el sistema PacMan 142 y los servidores de terceros 130, de acuerdo con algunas modalidades. En la operación 504, el sistema de la máquina de estados 144 recibe un identificador de flujo de trabajo (por ejemplo, de un desarrollador del sistema) para asignarlo a una configuración de flujo de trabajo de una máquina de estados. En algunos casos, las entradas pueden recibirse a través de un elemento de interfaz gráfica de usuario (GUI) en el que un usuario ingresa una o más fuentes de datos para recuperar documentos.
Las operaciones 504-512 tienen lugar dentro del sistema de la máquina de estados 144. En la operación 506, se reciben los estados de flujo de trabajo y los identificadores de flujo de trabajo correspondientes para cada uno de los estados de flujo de trabajo. Por ejemplo, un usuario (por ejemplo, un desarrollador del sistema) puede definir que un flujo de trabajo tiene cuatro estados de flujo de trabajo posibles, donde cada uno de los cuatro estados de flujo de trabajo tiene un identificador de estados de flujo de trabajo correspondiente (por ejemplo, borrador, aprobado, rechazado, pendiente).
En la operación 508, el sistema de máquina de estados 144 recibe definiciones para las operaciones que pueden ejecutarse en cada uno de uno o más estados de flujo de trabajo. En algunas modalidades de ejemplo, las operaciones pueden incluir asignar el caso, editar el caso, enviar el caso para su aprobación, aprobar el caso o rechazar el caso. Las definiciones pueden limitar las operaciones que pueden ejecutarse en un caso, en dependencia del estado en el que se encuentre el caso.
En la operación 510, el sistema de máquina de estados 144 recibe definiciones de transición correspondientes a uno o más estados de flujo de trabajo, en base a una o más definiciones de operación recibidas en la operación 508. Las definiciones de transición delinean una secuencia de los estados de flujo de trabajo para un objeto de datos del caso. Por ejemplo, las definiciones de transición pueden proporcionar que un estado de flujo de trabajo posterior de un caso varía en dependencia de la operación ejecutada en el caso en su estado actual.
En la operación 512, el sistema de máquina de estados 144 genera y configura una máquina de estados en función de una o más configuraciones de flujo de trabajo (por ejemplo, el identificador de flujo de trabajo, los estados del flujo de trabajo, las operaciones de flujo de trabajo y las definiciones de transición).
Las operaciones 514-520 y 524-526 tienen lugar dentro del sistema PaCMan 142. En la operación 514, el sistema PaCMan 142 accede a la máquina de estados generada por el sistema de máquina de estados 144. Por ejemplo, el sistema PaCMan 142 puede acceder a la máquina de estados proporcionando al sistema de máquinas de estados 144 un identificador de flujo de trabajo correspondiente a un flujo de trabajo de la máquina de estados generado y configurado por el sistema de máquina de estados 144. En algunas modalidades de ejemplo, el sistema PaCMan 142 también puede acceder a múltiples máquinas de estado previamente generadas y configuradas por el sistema de máquina de estado 144, y permitir al usuario seleccionar un flujo de trabajo deseado en función de un identificador de flujo de trabajo.
En la operación 516, el sistema PaCMan 142 recibe propiedades del caso y un identificador del caso del dispositivo cliente 110, y genera un objeto de datos del caso en función de una o más propiedades del caso. En la operación 518, el sistema PaCMan 142 asigna la configuración de flujo de trabajo recuperada de la máquina de estados accedida al caso generado. Una vez que la configuración del flujo de trabajo se ha asignado al caso generado, el caso recibe una o más definiciones
de flujo de trabajo de la máquina de estados correspondiente. Al hacerlo, el sistema PaCMan 142 permite que un usuario administre el caso a través de uno o más estados de flujo de trabajo correspondientes, en función de las configuraciones de flujo de trabajo de la máquina de estados correspondiente.
En la operación 520, el sistema PaCMan 142 recupera uno o más elementos asociados con el caso, en función de una o más propiedades del flujo de trabajo, de los servidores de terceros 130. En algunas modalidades, el sistema PaCMan 142 también puede recuperar elementos asociados con el caso de las bases de datos 126. En la operación 522, el servidor de terceros 130 proporciona al sistema PaCMan 142 los elementos asociados, y en la operación 524, el sistema PaCMan 142 vincula los elementos asociados con el caso, como se describió anteriormente con referencia a la Figura 4. En algunas modalidades de ejemplo, los vínculos entre el caso y uno o más elementos están correlacionados por el usuario.
En la operación 526, el sistema PaCMan 142 recibe una lista de uno o más identificadores de usuario que identifican a uno o más usuarios a los que asignar el caso. La asignación del caso asocia el caso con uno o más identificadores de usuario. En algunas modalidades, un usuario puede ser designado como autor del caso, o administrador, de manera que la designación otorga al usuario mayores privilegios de acceso y operación dentro de uno o más estados de flujo de trabajo del caso.
La Figura 6 es un diagrama de interfaz de usuario que muestra una bandeja de entrada de documentos 600 del sistema PaCMan 142, que tiene un campo de búsqueda de casos 602, un icono de creación de casos 604 y uno o más criterios de clasificación 606. La bandeja de entrada del documento 600 puede ser una página web interactiva o una pantalla de aplicación interactiva que permite al usuario (por ejemplo, Adam) generar y gestionar casos.
El campo de búsqueda de casos 602 se muestra como un campo de entrada basado en texto configurado para recibir uno o más identificadores de casos desde el dispositivo cliente 110. Por ejemplo, el usuario puede proporcionar al campo de búsqueda de casos 602 un identificador del caso correspondiente a un caso que se ha generado previamente por el módulo 215 de generación de casos. En algunas modalidades, el campo de búsqueda de casos 602 puede configurarse para expandirse y mostrar una lista de identificadores de casos correspondientes a casos que se han generado previamente, lo que permite al usuario seleccionar un caso para acceder a través del campo de búsqueda de casos 602. Junto al campo de búsqueda de casos 602 se muestran uno o más criterios de clasificación 606. En algunas modalidades, el sistema PaCMan 142 puede configurarse para clasificar los casos generados previamente en función de los criterios de clasificación que pueden incluir un título, una fecha creada, una fecha actualizada o un estado dentro del flujo de trabajo correspondiente al caso.
La selección del ícono de creación de caso 604 puede resultar en la presentación de una interfaz de creación de caso, permitiendo al usuario proporcionar una o más propiedades del caso y asignar una configuración de flujo de trabajo de una máquina de estados para gobernar el flujo de trabajo del caso.
La Figura 7 es un diagrama de una interfaz de creación de casos 700 del sistema PaCMan 142, que se muestra que incluye una o más propiedades del caso 702, y entradas de lista de control de acceso 704. Seleccionando el icono de creación de casos 604 como se muestra en la Figura 6, el sistema PaCMan 142 hace que se muestre la interfaz de creación de casos 700. El usuario puede entonces proporcionar al sistema PaCMan 142 con una o más propiedades del caso 702. En algunas modalidades de ejemplo, el usuario puede ingresar una o más propiedades del caso 702 como entradas basadas en texto.
Alternativamente, la interfaz de creación de casos 700 puede configurarse para presentar una lista de una o más propiedades del caso entre las que un usuario puede seleccionar.
La Figura 8 es un diagrama de un rol de usuario y una interfaz de acceso 800, que se muestra que incluye un campo de identificación de usuario 802 y un campo de rol de usuario 804. El campo de identificación de usuario 802 es operable para recibir uno o más identificadores de usuario correspondientes a usuarios asociados con un caso generado por el sistema PaCMan 142, y el campo de rol de usuario 804 es operable para recibir roles de usuario de cada uno de uno o más identificadores de usuario recibidos en el campo de identificación de usuario 802. Un identificador de usuario (entre uno o más identificadores de usuario) puede tener uno o más roles correspondientes.
La Figura 9 es un diagrama de bloques que ilustra los componentes de una máquina 900, de acuerdo con algunas modalidades de ejemplo, capaces de leer las instrucciones 924 desde un medio 922 legible por máquina (por ejemplo, un medio legible por máquina no transitorio, un medio de almacenamiento legible por máquina, un medio de almacenamiento legible por ordenador, o cualquier combinación adecuada de los mismos) y ejecutar una o más de las metodologías que se describen en la presente descripción, en su totalidad o en parte. Específicamente, la Figura 9 muestra la máquina 900 en la forma de ejemplo de un sistema informático (por ejemplo, un ordenador) dentro del cual se encuentran las instrucciones 924 (por ejemplo, aplicación informática, un programa, una aplicación, un subprograma, una aplicación u otro código ejecutable) para hacer que la máquina 900 ejecute una o más de las metodologías descritas en la presente descripción y puedan ejecutarse, en su totalidad o en parte.
En modalidades alternativas, la máquina 900 funciona como un dispositivo independiente o puede acoplarse comunicativamente (por ejemplo, en red) a otras máquinas. En un despliegue en red, la máquina 900 puede operar en la
capacidad de una máquina servidor o una máquina cliente en ambiente de red cliente-servidor, o como una máquina igual en un ambiente de red de distribuida (por ejemplo, entre iguales). La máquina 900 puede ser un ordenador servidor, un ordenador cliente, una PC, una tableta, un ordenador personal, un miniordenador portátil, un teléfono celular, un teléfono inteligente, una caja decodificadora (STB), un PDA, una aplicación web, un enrutador de red, conmutador de red, un puente de red, o cualquier máquina capaz de ejecutar las instrucciones 924, secuenciales o de cualquier otra manera, que especifican acciones a ser tomadas por esa máquina. Adicionalmente, aunque solo se ilustra una única máquina, el término "máquina" también incluirá cualquier colección de máquinas que ejecutan individualmente o en conjunto las instrucciones 924 para ejecutar todas pare de cualquiera o más de las metodologías descritas en la presente descripción.
La máquina 900 incluye un procesador 902 (por ejemplo, una unidad central de procesamiento (CPU), una unidad de procesamiento de gráficos (GPU), un procesador de señales digitales (DSP), un circuito integrado de aplicación específica (ASIC), un circuito integrado de radiofrecuencia (RFIC), o cualquier combinación adecuada de los mismos, una memoria principal 904 y una memoria estática 906, que se configuran para comunicarse entre sí a través de un bus 908. El procesador 902 puede contener microcircuitos digitales de estado sólido (por ejemplo, electrónicos, ópticos o ambos) que pueden configurarse, temporal o permanentemente, mediante algunas o todas las instrucciones 924, de manera que el procesador 902 puede configurarse para realizar una o más de las metodologías descritas en la presente descripción, en su totalidad o en parte. Por ejemplo, un conjunto de uno o más microcircuitos del procesador 902 puede ser configurable para ejecutar uno o más módulos (por ejemplo, módulos de aplicación informática) descritos en la presente descripción. En algunas modalidades de ejemplo, el procesador 902 es una CPU multinúcleo (por ejemplo, una CPU de doble núcleo, una CPU de cuatro núcleos o una CPU de 128 núcleos) dentro de la cual cada uno de los múltiples núcleos es un procesador independiente que puede realizar una cualquiera o más de las metodologías descritas en la presente descripción, en su totalidad o en parte. Aunque los efectos beneficiosos descritos en la presente descripción pueden proporcionarse por la máquina 900 con al menos el procesador 902, estos mismos efectos pueden proporcionarse por un tipo diferente de máquina que no contiene procesadores (por ejemplo, un sistema puramente mecánico, un sistema puramente hidráulico o un sistema híbrido mecánico-hidráulico), si tal máquina sin procesador se configurada para realizar una o más de las metodologías descritas en la presente descripción.
La máquina 900 puede incluir además una pantalla gráfica 910 (por ejemplo, un panel de pantalla de plasma (PDP), una pantalla de diodo emisor de luz (LED), una pantalla de cristal líquido (LCD), un proyector, un tubo de rayos catódicos (CRT) o cualquier otra pantalla capaz de mostrar gráficos o video). La máquina 900 también puede incluir un dispositivo de entrada/salida 912 (por ejemplo, un teclado o teclado numérico, ratón o trackpad), un componente de ubicación 914 (por ejemplo, un receptor GPS), una unidad de almacenamiento 916, un dispositivo de generación de audio 918 (por ejemplo, una tarjeta de sonido, un amplificador, un altavoz, un conector para auriculares o cualquier combinación adecuada de los mismos, y un dispositivo de interfaz de red 920.
La unidad de almacenamiento 916 incluye el medio legible por máquina 922 (por ejemplo, un medio de almacenamiento legible por máquina tangible y no transitorio) en el que se almacenan las instrucciones 924 que incorporan una o más de las metodologías o funciones descritas en la presente descripción. Las instrucciones 924 pueden también residir, completamente o al menos parcialmente, dentro de la memoria principal 904, dentro del procesador 902 (por ejemplo, dentro de la memoria caché del procesador), dentro de la memoria estática 906, o cualquier combinación de las mismas, antes o durante la ejecución de estas por la máquina 900. En consecuencia, la memoria principal 904, la memoria estática 906 y el procesador 902 pueden considerarse medios legibles por máquina (por ejemplo, medios legibles por máquina tangibles y no transitorios). Las instrucciones 924 pueden transmitirse o recibirse a través de una red 926 a través del dispositivo de interfaz de red 920. Por ejemplo, el dispositivo de interfaz de red 920 puede comunicar las instrucciones 924 mediante el uso de uno o más protocolos de transferencia (por ejemplo, protocolo de transferencia de hipertexto (HTTP).
Como se usa en la presente, el término "memoria" se refiere a un medio legible por máquina capaz de almacenar datos de forma temporal o permanente y puede considerarse que incluye, pero no se limita a, memoria de acceso aleatorio (RAM), memoria de solo lectura (ROM), memoria búfer, memoria flash y memoria caché. Mientras que los medios legibles por una máquina 922 se muestran en una modalidad ilustrativa como que es un medio único, el término "medios legibles por máquina" puede incluir un medio único o múltiples medios (por ejemplo, una base de datos centralizada o distribuida, y/o memorias caché asociadas y servidores) que almacenan una o más estructuras de datos o instrucciones. El término "medio legible por máquina" también se tomará para incluir cualquier medio, o combinación de múltiples medios, que sea capaz de almacenar las instrucciones 924 para que las ejecute la máquina 900, de manera que las instrucciones 924, cuando se ejecuten por uno o más procesadores de la máquina 900 (por ejemplo, el procesador 902), hacen que la máquina 900 realice una o más de las metodologías descritas en la presente descripción, en su totalidad o en parte. En consecuencia, un "medio legible por máquina" se refiere a un único aparato o dispositivo de almacenamiento, así como también a los sistemas de almacenamiento basados en la nube o redes de almacenamiento que incluyen múltiples aparatos o dispositivos de almacenamiento. En consecuencia, Debe considerarse que el término "medio legible por máquina" incluye, pero no se limita a, uno o más depósitos de datos tangibles y no transitorios (por ejemplo, volúmenes de datos) en la forma de ejemplo de un chip de memoria de estado sólido, un disco óptico, un disco magnético, o cualquier combinación adecuada de los mismos. Un medio legible por máquina "no transitorio", como se usa en la presente descripción, no incluye específicamente señales de propagación en sí. En algunas modalidades de ejemplo, las instrucciones 924 para la ejecución por la máquina 900 pueden comunicarse por un medio portador. Los ejemplos de dicho medio portador incluyen un medio de almacenamiento (por ejemplo, un medio de almacenamiento legible por
máquina no transitorio, tal como una memoria de estado sólido, que se mueve físicamente de un lugar a otro) y un medio transitorio (por ejemplo, un dispositivo de propagación que comunica las instrucciones 924).
Ciertas modalidades se describen en la presente descripción como que incluyen lógica o varios componentes, módulos o mecanismos. Los módulos pueden constituir módulos de aplicación informática (por ejemplo, código almacenado o incorporado de cualquier otra manera en un medio legible por máquina o en un medio de transmisión), módulos de soporte físico, o cualquier combinación adecuada de los mismos. Un "módulo de soporte físico" es una unidad tangible (por ejemplo, no transitoria) capaz de realizar ciertas operaciones y puede configurarse o disponerse de cierta manera física. En varias modalidades de ejemplo, uno o más sistemas informáticos (por ejemplo, un sistema informático independiente, un sistema informático cliente o un sistema informático servidor) o uno o más módulos de soporte físico de un sistema informático (por ejemplo, un procesador o un grupo de procesadores) puede configurarse por aplicación informática (por ejemplo, una aplicación o porción de la aplicación) como un módulo de soporte físico que funciona para realizar ciertas operaciones como se describe en la presente descripción.
En algunas modalidades, un módulo de soporte físico puede implementarse de forma mecánica, electrónica o cualquier combinación adecuada de los mismos. Por ejemplo, un módulo de soporte físico puede incluir circuitos o lógica dedicados que se configuran permanentemente para ejecutar ciertas operaciones. Por ejemplo, un módulo de soporte físico puede ser un procesador de propósito especial, tal como una matriz de compuerta programable de campo (FPGA) o un ASIC. Un módulo de soporte físico también puede incluir un circuito o lógica programable que se configura temporalmente por la aplicación informática para realizar ciertas operaciones. Por ejemplo, un módulo de soporte físico puede incluir aplicación informática incluida dentro de una c Pu u otro procesador programable. Se apreciará que la decisión de implementar un módulo de soporte físico mecánicamente, en circuitos dedicados y configurados permanentemente, o en circuitos configurados temporalmente (por ejemplo, configurados por aplicación informática) puede impulsarse por consideraciones de costo y tiempo.
En consecuencia, debe entenderse que la frase "módulo de soporte físico" abarca una entidad tangible, y tal entidad tangible puede construirse físicamente, configurarse permanentemente (por ejemplo, cablearse), o configurarse temporalmente (por ejemplo, programarse) para operar de cierta manera o para realizar ciertas operaciones descritas en la presente descripción. Como se usa en la presente descripción, "módulo implementado por soporte físico" se refiere a un módulo de soporte físico. Teniendo en cuenta las modalidades en las que los módulos de soporte físico se configuran temporalmente (por ejemplo, programados), no es necesario que cada uno de los módulos de soporte físico se configure o cree una instancia en un momento dado. Por ejemplo, cuando un módulo de soporte físico comprende una CPU configurada por aplicación informática para convertirse en un procesador de propósito especial, la CPU puede configurarse como diferentes procesadores de propósitos especiales respectivamente (por ejemplo, cada uno incluido en un módulo de soporte físico diferente) en diferentes momentos. En consecuencia, la aplicación informática (por ejemplo, un módulo de aplicación informática) puede configurar uno o más procesadores, por ejemplo, para constituir un módulo de soporte físico particular en una instancia de tiempo y para constituir un módulo de soporte físico diferente en una instancia de tiempo diferente.
Los módulos de soporte físico pueden proporcionar información y recibir información de otros módulos de soporte físico. En consecuencia, los módulos de soporte físico descritos pueden considerarse como acoplados comunicativamente. Cuando existen múltiples módulos de soporte físico al mismo tiempo, las comunicaciones pueden lograrse a través de la transmisión de señales (por ejemplo, a través de circuitos y buses apropiados) entre dos o más de los módulos de soporte físico. En modalidades en las que múltiples módulos de soporte físico se configuran o instancian en diferentes momentos, las comunicaciones entre dichos módulos de soporte físico pueden lograrse, por ejemplo, a través del almacenamiento y la recuperación de información en estructuras de memoria a las que los múltiples módulos de soporte físico tienen acceso. Por ejemplo, un módulo de soporte físico puede realizar una operación y almacenar la salida de esa operación en un dispositivo de memoria al que se acopla comunicativamente. Un módulo de soporte físico adicional puede, posteriormente, acceder al dispositivo de memoria para recuperar y procesar la salida almacenada. Los módulos de soporte físico también pueden iniciar comunicaciones con dispositivos de entrada o salida y pueden operar en un recurso (por ejemplo, una recopilación de información).
Las diversas operaciones de métodos ilustrativos descritos en este documento pueden realizarse, al menos parcialmente, por uno o más procesadores que se configuran temporalmente (por ejemplo, por la aplicación informática) o permanentemente configurado para ejecutar las operaciones relevantes. Ya sea configurado de forma temporal o permanente, tales procesadores pueden constituir módulos de procesador implementados que operan para ejecutar una o más operaciones o funciones descritas en la presente descripción. En la presente descripción, las operaciones aquí descritas pueden implementarse al menos parcialmente en el procesador, ya que un procesador es un ejemplo de soporte físico. Por ejemplo, al menos alguna de las operaciones de un método puede ejecutarse por uno o más procesadores o módulos de procesadores implementados. Como se usa en la presente descripción, "módulo implementado por procesador" se refiere a un módulo de soporte físico en el que el soporte físico incluye uno o más procesadores. Uno o más procesadores también pueden operar para apoyar el desempeño de las operaciones relevantes en un ambiente de "computación en la nube" o como una "aplicación informática como un servicio" (SaaS). Por ejemplo, al menos algunas de las operaciones pueden ejecutarse por un grupo de ordenadores (como ejemplos de máquinas que incluyen procesadores), siendo estas operaciones accesibles mediante una red (por ejemplo, el Internet) y mediante una o más interfaces apropiadas (por ejemplo, una interfaz de programa de aplicación (API)).
A lo largo de esta descripción, las instancias plurales pueden implementar componentes, operaciones o estructuras descritas como una sola instancia. Aunque las operaciones individuales de uno o más métodos se ilustran y describen como operaciones separadas, una o más de las operaciones individuales pueden ejecutarse al mismo tiempo, y nada requiere que las operaciones se ejecuten en el orden ilustrado. Generalmente, las estructuras y funcionalidades presentadas como componentes separados en las configuraciones ilustrativas pueden implementarse como una estructura o componente combinado. De manera similar, las estructuras y funcionalidades presentadas como un componente sencillo pueden implementarse como componentes separados. Estas y otras variaciones, modificaciones, adiciones y mejoras pueden caer dentro del alcance del objeto en la presente descripción.
El rendimiento de algunas de las operaciones puede distribuirse entre uno o más procesadores, ya sea que reside dentro de una sola máquina o se despliega a través de un número de máquinas. En algunas modalidades de ejemplo, uno o más procesadores o módulos de soporte físico (por ejemplo, módulos implementados por procesador) pueden ubicarse en una única ubicación geográfica (por ejemplo, dentro de un entorno doméstico, un entorno de oficina o una granja de servidores). En otras modalidades de ejemplo, uno o más procesadores o módulos de soporte físico pueden distribuirse en una serie de ubicaciones geográficas.
Algunas partes del objeto descrito en la presente descripción pueden presentarse en términos de algoritmos o representaciones simbólicas de operaciones en datos almacenados como bits o señales digitales binarias dentro de una memoria de máquina (por ejemplo, una memoria de ordenador). Estas descripciones y representaciones simbólicas o algorítmicas son ejemplos de técnicas usadas por aquellos expertos en las técnicas del procesamiento de datos para transmitir la esencia de su trabajo de manera efectiva a otros expertos en la técnica. Como se usa en la presente descripción, un "algoritmo" es una secuencia de operaciones autoconsistente o un procesamiento similar que conduce a un resultado deseado. En este contexto, los algoritmos y las operaciones implican la manipulación física de cantidades físicas. Típicamente, pero no necesariamente, tales cantidades pueden tomar la forma de señales eléctricas, magnéticas u ópticas capaces de almacenarse, accederse, transferirse, combinarse, compararse o manipularse de cualquier otra manera por una máquina. En ocasiones es conveniente, principalmente por razones de uso común, referirse a tales señales mediante el uso de palabras tales como "datos", "contenido", "bits", "valores", "elementos", "símbolos", "caracteres" "términos", "números", "numerales" o similares. Estas palabras, sin embargo, son meramente etiquetas convenientes y deben asociarse con cantidades físicas apropiadas.
A menos que se especifique de cualquier otra manera, las descripciones en el presente documento que usan palabras como "procesamiento", "computación", "cálculo", "determinación", "presentación", "visualización" o similares pueden referirse a acciones o procesos de una máquina (por ejemplo, un ordenador) que manipula o transforma datos representados como cantidades físicas (por ejemplo, electrónicas, magnéticas u ópticas) dentro de una o más memorias (por ejemplo, memoria volátil, memoria no volátil o cualquier combinación adecuada de las mismas), registros u otra máquina Componentes que reciben, almacenan, transmiten o muestran información. Además, a menos que se especifique de cualquier otra manera, los términos "uno" o "una" se usan en la presente descripción, como es común en los documentos de patente, para incluir uno o más de un ejemplo. Finalmente, como se usa en la presente descripción, la conjunción "o" se refiere a un "o" no exclusivo, a menos que se especifique lo contrario.
Claims (10)
1. Un método implementado por ordenador, en donde el método se realiza mediante el uso de uno o más procesadores, el método que comprende:
recibir un identificador de flujo de trabajo;
recibir uno o más estados de flujo de trabajo, uno o más estados de flujo de trabajo, que incluyen los correspondientes identificadores de estado de flujo de trabajo;
recibir una o más definiciones de operación correspondientes a cada uno de uno o más estados de flujo de trabajo, una o más definiciones de operación que incluyen una o más operaciones de flujo de trabajo;
recibir una o más definiciones de transición, las definiciones de transición correspondientes a una o más definiciones de operación y determinar una secuencia de uno o más estados de flujo de trabajo;
generar una máquina de estados;
configurar la máquina de estados en función del identificador de flujo de trabajo, uno o más estados de flujo de trabajo, una o más definiciones de operación y una o más definiciones de transición.
recibir un identificador del caso;
generar un objeto de datos del caso que incluya el identificador del caso y una o más propiedades del caso; acceder a la máquina de estados en respuesta a la recepción del identificador del caso;
asignar el identificador de flujo de trabajo, uno o más estados de flujo de trabajo, una o más definiciones de operación y una o más definiciones de transición al objeto de datos del caso
vincular automáticamente uno o más elementos asociados al objeto de datos del caso, uno o más elementos asociados que se relacionan con el objeto de datos del caso en función de una o más propiedades del caso; acceder a una pluralidad de fuentes de datos de terceros; y
recuperar automáticamente, de terceros, uno o más elementos asociados de la pluralidad de fuentes de datos en función de una o más propiedades del caso.
2. El método de la reivindicación 1, en donde la vinculación incluye:
generar una referencia a cada uno de uno o más elementos asociados; y
almacenar la referencia en el objeto de datos del caso.
3. El método de la reivindicación 1, en donde la vinculación incluye:
generar una referencia al objeto de datos del caso; y
almacenar la referencia con uno o más elementos asociados.
4. El método de cualquiera de las reivindicaciones anteriores, en donde la recepción del identificador de flujo de trabajo incluye la recepción de un nuevo identificador de flujo de trabajo como una entrada de texto.
5. El método de cualquiera de las reivindicaciones 1-3, en donde la recepción del identificador de flujo de trabajo incluye la recepción de una selección del identificador de flujo de trabajo entre una lista de uno o más identificadores de flujo de trabajo.
6. El método de la reivindicación 1, en donde la asignación del identificador de flujo de trabajo, uno o más estados del flujo de trabajo, una o más definiciones de operación y la definición o más definiciones de transición al objeto de datos del caso incluye:
recibir el identificador de flujo de trabajo como una entrada de usuario desde un dispositivo cliente; y acceder a la máquina de estados en función del identificador de flujo de trabajo.
7. El método de la reivindicación 1 que comprende, además:
recibir una lista de identificadores de usuario que comprende una pluralidad de identificadores de usuario que representan uno o más usuarios;
asignar la lista de identificadores de usuario al caso; y
asignar un rol para cada uno de los identificadores de usuario, el rol que define los privilegios de acceso correspondientes al caso.
8. El método de cualquiera de las reivindicaciones anteriores, en donde la ejecución de una operación de flujo de trabajo entre una o más operaciones de flujo de trabajo de una o más definiciones de operación da como resultado una transición en función de una o más definiciones de transición.
9. El método de la reivindicación 8, que comprende, además:
seguir la ejecución de la operación de flujo de trabajo; y
registrar la operación del flujo de trabajo en una cronología de flujo de trabajo, la cronología del flujo de trabajo que incluye una o más operaciones de flujo de trabajo ejecutadas.
10. Un programa de ordenador que comprende las instrucciones legibles por máquina que cuando se ejecutan por un aparato informático que hace que el aparato informático ejecute el método de acuerdo con cualquier reivindicación anterior.
Un sistema que comprende:
procesadores; y
una memoria que almacena instrucciones que, cuando se ejecutan al menos por un procesador entre los procesadores, hacen que el sistema ejecute operaciones que comprenden:
recibir un identificador de flujo de trabajo;
recibir uno o más estados de flujo de trabajo, uno o más estados de flujo de trabajo, que incluyen los correspondientes identificadores de estado de flujo de trabajo;
recibir una o más definiciones de operación correspondientes a cada uno de uno o más estados de flujo de trabajo, una o más definiciones de operación que incluyen una o más operaciones de flujo de trabajo;
recibir una o más definiciones de transición, las definiciones de transición correspondientes a una o más definiciones de operación y determinar una secuencia de uno o más estados de flujo de trabajo;
generar una máquina de estados;
configurar la máquina de estados en función del identificador de flujo de trabajo, uno o más estados de flujo de trabajo, una o más definiciones de operación y una o más definiciones de transición; y
recibir un identificador del caso;
generar un objeto de datos del caso que incluya el identificador del caso y una o más propiedades del caso; acceder a la máquina de estados en respuesta a la recepción del identificador del caso;
asignar el identificador de flujo de trabajo, uno o más estados de flujo de trabajo, una o más definiciones de operación y una o más definiciones de transición al objeto de datos del caso
vincular automáticamente uno o más elementos asociados al objeto de datos del caso, uno o más elementos asociados que se relacionan con el objeto de datos del caso en función de una o más propiedades del caso; acceder a una pluralidad de fuentes de datos de terceros; y
recuperar automáticamente uno o más elementos asociados de la pluralidad de orígenes de datos en función de una o más propiedades del caso.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201562161746P | 2015-05-14 | 2015-05-14 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2737725T3 true ES2737725T3 (es) | 2020-01-15 |
Family
ID=56008504
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES16169684T Active ES2737725T3 (es) | 2015-05-14 | 2016-05-13 | Sistemas y métodos para la gestión de máquinas de estado |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US11580472B2 (es) |
| EP (2) | EP3093809B1 (es) |
| DK (1) | DK3093809T3 (es) |
| ES (1) | ES2737725T3 (es) |
| PL (1) | PL3093809T3 (es) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11580472B2 (en) | 2015-05-14 | 2023-02-14 | Palantir Technologies Inc. | Systems and methods for state machine management |
| US9766927B1 (en) * | 2015-10-06 | 2017-09-19 | Amazon Technologies, Inc. | Data flow management in processing workflows |
| US10726032B2 (en) | 2015-12-30 | 2020-07-28 | Palantir Technologies, Inc. | Systems and methods for search template generation |
| US10657200B2 (en) * | 2016-01-05 | 2020-05-19 | Adobe Inc. | Proactive form guidance for interacting with electronic forms |
| US10839022B1 (en) | 2017-07-24 | 2020-11-17 | Palantir Technologies Inc. | System to manage document workflows |
| US11095577B2 (en) * | 2019-07-01 | 2021-08-17 | Open Text Corporation | Conversation-enabled document system and method |
| CN114327842B (zh) * | 2020-09-29 | 2025-10-28 | 深圳引望智能技术有限公司 | 多任务部署的方法及装置 |
| GB2630485A (en) * | 2022-03-30 | 2024-11-27 | Mitsubishi Electric Corp | Test assistance device, test assistance method, and test assistance program |
Family Cites Families (105)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3385657B2 (ja) | 1993-08-10 | 2003-03-10 | トヨタ自動車株式会社 | 車載用ナビゲーション装置 |
| US5437032A (en) | 1993-11-04 | 1995-07-25 | International Business Machines Corporation | Task scheduler for a miltiprocessor system |
| JP3410271B2 (ja) | 1995-12-28 | 2003-05-26 | アルパイン株式会社 | ナビゲーション装置 |
| US5857329A (en) | 1997-03-14 | 1999-01-12 | Deere & Company | One-piece combined muffler exhaust outlet and exhaust gas deflector |
| US20010048738A1 (en) * | 1997-04-03 | 2001-12-06 | Sbc Technology Resourses, Inc. | Profile management system including user interface for accessing and maintaining profile data of user subscribed telephony services |
| US6084510A (en) | 1997-04-18 | 2000-07-04 | Lemelson; Jerome H. | Danger warning and emergency response system and method |
| WO2001003037A2 (en) * | 1999-07-01 | 2001-01-11 | Microsoft Corporation | Workflow method and system |
| CA2427354A1 (en) | 2000-10-31 | 2002-08-01 | Michael Philip Kaufman | System and method for generating automatic user interface for arbitrarily complex or large databases |
| US20020133395A1 (en) * | 2000-12-19 | 2002-09-19 | Hughes John Ronald | Technical standard review and approval |
| US7487182B2 (en) * | 2001-01-23 | 2009-02-03 | Conformia Software, Inc. | Systems and methods for managing the development and manufacturing of a drug |
| WO2002091194A1 (en) * | 2001-05-08 | 2002-11-14 | Narad Networks, Inc. | Extensible service provisioning engine |
| US6496774B1 (en) | 2001-05-24 | 2002-12-17 | Prc Inc. | Automatic vehicle routing and recommendation system |
| US8725549B2 (en) * | 2001-08-13 | 2014-05-13 | Geologics Corporation | System and business method for work-flow review and management |
| US20030074090A1 (en) * | 2001-09-28 | 2003-04-17 | Zdenek Becka | System and method for improving operational efficiency through process automation |
| CA2394268A1 (en) * | 2002-02-14 | 2003-08-14 | Beyond Compliance Inc. | A compliance management system |
| US20040205572A1 (en) * | 2002-02-19 | 2004-10-14 | Wendell Fields | Systems and methods for providing information in a computer network |
| US7533026B2 (en) | 2002-04-12 | 2009-05-12 | International Business Machines Corporation | Facilitating management of service elements usable in providing information technology service offerings |
| US7039893B2 (en) * | 2002-06-11 | 2006-05-02 | Carrier Corporation | System and method for implementing configurable finite state machine |
| JP3878518B2 (ja) | 2002-07-08 | 2007-02-07 | 松下電器産業株式会社 | データ検索装置 |
| US20040078251A1 (en) | 2002-10-16 | 2004-04-22 | Demarcken Carl G. | Dividing a travel query into sub-queries |
| US7610575B2 (en) | 2003-01-08 | 2009-10-27 | Consona Crm Inc. | System and method for the composition, generation, integration and execution of business processes over a network |
| US7752117B2 (en) | 2003-01-31 | 2010-07-06 | Trading Technologies International, Inc. | System and method for money management in electronic trading environment |
| US20040153418A1 (en) | 2003-02-05 | 2004-08-05 | Hanweck Gerald Alfred | System and method for providing access to data from proprietary tools |
| US7567964B2 (en) | 2003-05-08 | 2009-07-28 | Oracle International Corporation | Configurable search graphical user interface and engine |
| US20050043982A1 (en) * | 2003-08-22 | 2005-02-24 | Nguyen Vinh Dinh | Contextual workflow modeling |
| US20170206606A9 (en) * | 2003-09-19 | 2017-07-20 | Safaa H. Hashim | Insurance management systems and methods therefor |
| US8423394B2 (en) * | 2003-12-12 | 2013-04-16 | International Business Machines Corporation | Method for tracking the status of a workflow using weblogs |
| US8140691B2 (en) * | 2003-12-12 | 2012-03-20 | International Business Machines Corporation | Role-based views access to a workflow weblog |
| US8352174B2 (en) | 2004-01-15 | 2013-01-08 | Algotec Systems Ltd. | Targeted marching |
| US7421546B2 (en) | 2004-02-12 | 2008-09-02 | Relaystar Sa/Nv | Intelligent state engine system |
| US7788278B2 (en) | 2004-04-21 | 2010-08-31 | Kong Eng Cheng | Querying target databases using reference database records |
| US8548967B1 (en) * | 2007-12-12 | 2013-10-01 | Accurev, Inc. | System for visual query and manipulation of configuration management records |
| US7603229B2 (en) | 2004-08-25 | 2009-10-13 | Microsoft Corporation | Efficiently finding shortest paths using landmarks for computing lower-bound distance estimates |
| US20080295101A1 (en) * | 2005-01-27 | 2008-11-27 | Paul David Vicars | Electronic document manager |
| US7596528B1 (en) | 2005-03-31 | 2009-09-29 | Trading Technologies International, Inc. | System and method for dynamically regulating order entry in an electronic trading environment |
| AU2006232533A1 (en) | 2005-04-06 | 2006-10-12 | Merck & Co., Inc. | Multi-fielded web browser-based searching of data stored in database |
| US20060241856A1 (en) | 2005-04-25 | 2006-10-26 | The Boeing Company | Geo-infosphere as applied to dynamic routing system |
| EP1891524A4 (en) * | 2005-05-23 | 2010-06-30 | Sap Governance Risk And Compli | ACCESS DEVICE ENFORCEMENT |
| US8578500B2 (en) | 2005-05-31 | 2013-11-05 | Kurt James Long | System and method of fraud and misuse detection |
| US8042110B1 (en) | 2005-06-24 | 2011-10-18 | Oracle America, Inc. | Dynamic grouping of application components |
| EP1926074A4 (en) | 2005-09-12 | 2014-01-08 | Panasonic Corp | MAP DISPLAY DEVICE |
| US20070094248A1 (en) | 2005-09-26 | 2007-04-26 | Bea Systems, Inc. | System and method for managing content by workflows |
| US20070073674A1 (en) * | 2005-09-26 | 2007-03-29 | Bea Systems, Inc. | System and method for providing federated events for content management systems |
| US8666780B2 (en) | 2005-10-18 | 2014-03-04 | Walgreen Co. | System for separating and distributing pharmacy order processing |
| US7606824B2 (en) * | 2005-11-14 | 2009-10-20 | Microsoft Corporation | Databinding workflow data to a user interface layer |
| US7680683B2 (en) | 2005-12-29 | 2010-03-16 | Microsoft Corporation | Dynamically repositioning workflow by end users |
| US7831917B1 (en) | 2005-12-30 | 2010-11-09 | Google Inc. | Method, system, and graphical user interface for identifying and communicating with meeting spots |
| US7818291B2 (en) | 2006-02-03 | 2010-10-19 | The General Electric Company | Data object access system and method using dedicated task object |
| US20070276714A1 (en) * | 2006-05-15 | 2007-11-29 | Sap Ag | Business process map management |
| US8346729B2 (en) * | 2006-11-18 | 2013-01-01 | International Business Machines Corporation | Business-semantic-aware information lifecycle management |
| US7716610B2 (en) * | 2007-01-05 | 2010-05-11 | International Business Machines Corporation | Distributable and serializable finite state machine |
| US7937432B2 (en) | 2007-02-16 | 2011-05-03 | Red Hat, Inc. | State transition management according to a workflow management policy |
| US8042091B2 (en) * | 2007-03-14 | 2011-10-18 | International Business Machines Corporation | Automatic composition of model transformations |
| US20080301559A1 (en) | 2007-05-31 | 2008-12-04 | Microsoft Corporation | User Interface That Uses a Task Respository |
| EP2012261A1 (en) | 2007-06-13 | 2009-01-07 | Sap Ag | Processing and exchanging data of collaborative tasks |
| US8549520B2 (en) | 2007-07-31 | 2013-10-01 | Sap Ag | Distributed task handling |
| US8713144B2 (en) * | 2007-09-14 | 2014-04-29 | Ricoh Co., Ltd. | Workflow-enabled client |
| US8326796B2 (en) | 2008-04-15 | 2012-12-04 | International Business Machines Corporation | Data retrieval and data feed generation from data sources |
| US8108138B2 (en) | 2008-10-02 | 2012-01-31 | The Boeing Company | Optimal vehicle router with energy management system |
| US8712453B2 (en) | 2008-12-23 | 2014-04-29 | Telecommunication Systems, Inc. | Login security with short messaging |
| US8745191B2 (en) | 2009-01-28 | 2014-06-03 | Headwater Partners I Llc | System and method for providing user notifications |
| US9357384B2 (en) | 2009-02-09 | 2016-05-31 | International Business Machines Corporation | System and method to support identity theft protection as part of a distributed service oriented ecosystem |
| US9244730B2 (en) * | 2009-02-11 | 2016-01-26 | International Business Machines Corporation | Application workflow integration subsystem |
| JP5361470B2 (ja) * | 2009-03-16 | 2013-12-04 | キヤノン株式会社 | 情報処理装置及びその制御方法 |
| US20100250731A1 (en) * | 2009-03-31 | 2010-09-30 | Xiao Haitao | Systems and methods for application identification |
| CA2667036A1 (en) * | 2009-05-27 | 2010-11-27 | Clevest Solutions Inc. | A system and method for workflow management with configurable states and extensibility |
| US8913729B2 (en) * | 2009-10-29 | 2014-12-16 | Verizon Patent And Licensing Inc. | Automated provisioning |
| US8417409B2 (en) | 2009-11-11 | 2013-04-09 | Google Inc. | Transit routing system for public transportation trip planning |
| US8291472B2 (en) | 2010-01-28 | 2012-10-16 | International Business Machines Corporation | Real-time adjustments to authentication conditions |
| US10078674B2 (en) * | 2010-06-04 | 2018-09-18 | Mcl Systems Limited | Integrated workflow and database transactions |
| US8543620B2 (en) * | 2010-06-11 | 2013-09-24 | Aplix Research, Inc. | System and method for independent verification and validation |
| WO2012025915A1 (en) | 2010-07-21 | 2012-03-01 | Sqream Technologies Ltd | A system and method for the parallel execution of database queries over cpus and multi core processors |
| US9092277B2 (en) * | 2010-08-10 | 2015-07-28 | Ricoh Company, Ltd. | Method, apparatus, system, and computer readable medium for universal device participation in business process and workflow application |
| US8560887B2 (en) * | 2010-12-09 | 2013-10-15 | International Business Machines Corporation | Adding scalability and fault tolerance to generic finite state machine frameworks for use in automated incident management of cloud computing infrastructures |
| US8538884B2 (en) * | 2011-04-11 | 2013-09-17 | PropertyInfo Corporation | System and method for the automated auditing and viewing of transaction documents |
| JP5516550B2 (ja) | 2011-05-09 | 2014-06-11 | 株式会社デンソー | 車両用ナビゲーション装置 |
| US20130231862A1 (en) | 2011-06-03 | 2013-09-05 | Microsoft Corporation | Customizable route planning |
| US9092482B2 (en) | 2013-03-14 | 2015-07-28 | Palantir Technologies, Inc. | Fair scheduling for mixed-query loads |
| US8612279B2 (en) * | 2011-06-27 | 2013-12-17 | Cisco Technology, Inc. | Ad hoc generation of work item entity for geospatial entity based on symbol manipulation language-based workflow item |
| US9280532B2 (en) | 2011-08-02 | 2016-03-08 | Palantir Technologies, Inc. | System and method for accessing rich objects via spreadsheets |
| US8639555B1 (en) * | 2011-10-12 | 2014-01-28 | Amazon Technologies, Inc. | Workflow discovery through user action monitoring |
| EP2812820A4 (en) | 2012-02-06 | 2015-09-23 | Mycare Llc | METHODS OF SEARCHING GENOMIC DATA BASES |
| KR101881000B1 (ko) | 2012-04-27 | 2018-07-24 | 삼성전자주식회사 | 디스플레이 장치의 파손 방지 구조를 구비하는 휴대용 단말기 |
| US8819620B1 (en) | 2012-06-21 | 2014-08-26 | Emc Corporation | Case management software development |
| US20140006972A1 (en) * | 2012-07-02 | 2014-01-02 | Nerijus Celkonas | Systems and Methods Providing Integrated Communication and Task Management |
| WO2014013551A1 (ja) * | 2012-07-17 | 2014-01-23 | 株式会社クレオネットワークス | ワークフロー管理装置及びワークフロー管理方法 |
| US20140081685A1 (en) | 2012-09-17 | 2014-03-20 | Salesforce.com. inc. | Computer implemented methods and apparatus for universal task management |
| US9852220B1 (en) * | 2012-10-08 | 2017-12-26 | Amazon Technologies, Inc. | Distributed workflow management system |
| US9195506B2 (en) | 2012-12-21 | 2015-11-24 | International Business Machines Corporation | Processor provisioning by a middleware processing system for a plurality of logical processor partitions |
| US8763078B1 (en) | 2013-03-14 | 2014-06-24 | Palantir Technologies, Inc. | System and method for monitoring authentication attempts |
| US9448965B2 (en) * | 2013-03-15 | 2016-09-20 | Micron Technology, Inc. | Receiving data streams in parallel and providing a first portion of data to a first state machine engine and a second portion to a second state machine |
| US9079039B2 (en) * | 2013-07-02 | 2015-07-14 | Medtronic, Inc. | State machine framework for programming closed-loop algorithms that control the delivery of therapy to a patient by an implantable medical device |
| EP3017405A1 (en) * | 2013-07-03 | 2016-05-11 | Swiss Reinsurance Company Ltd. | System and method for state-transition-controlled processing of objects |
| US10255409B2 (en) * | 2013-08-15 | 2019-04-09 | Zymeworks Inc. | Systems and methods for in silico evaluation of polymers |
| US8786605B1 (en) | 2013-10-24 | 2014-07-22 | Palantir Technologies Inc. | Systems and methods for distance and congestion-aware resource deployment |
| US20150127412A1 (en) * | 2013-11-04 | 2015-05-07 | Amazon Technologies, Inc. | Workflow management system |
| US8868537B1 (en) | 2013-11-11 | 2014-10-21 | Palantir Technologies, Inc. | Simple web search |
| WO2015153512A1 (en) | 2014-03-29 | 2015-10-08 | Thomson Reuters Global Resources | Improved method, system and software for searching, identifying, retrieving and presenting electronic documents |
| US9977654B2 (en) * | 2014-06-20 | 2018-05-22 | Asset, S.r.L. | Method of developing an application for execution in a workflow management system and apparatus to assist with generation of an application for execution in a workflow management system |
| US10038731B2 (en) * | 2014-08-29 | 2018-07-31 | Box, Inc. | Managing flow-based interactions with cloud-based shared content |
| US10078663B2 (en) | 2014-10-29 | 2018-09-18 | Red Hat, Inc. | Dual overlay query processing |
| US10698767B1 (en) * | 2014-12-22 | 2020-06-30 | Amazon Technologies, Inc. | Decentralized management of multi-service workflows |
| US11580472B2 (en) | 2015-05-14 | 2023-02-14 | Palantir Technologies Inc. | Systems and methods for state machine management |
| US10756991B2 (en) * | 2015-09-17 | 2020-08-25 | Salesforce.Com, Inc. | Simplified entity engagement automation |
| US10726032B2 (en) | 2015-12-30 | 2020-07-28 | Palantir Technologies, Inc. | Systems and methods for search template generation |
-
2016
- 2016-04-13 US US15/097,842 patent/US11580472B2/en active Active
- 2016-05-13 ES ES16169684T patent/ES2737725T3/es active Active
- 2016-05-13 EP EP16169684.4A patent/EP3093809B1/en active Active
- 2016-05-13 PL PL16169684T patent/PL3093809T3/pl unknown
- 2016-05-13 DK DK16169684.4T patent/DK3093809T3/da active
- 2016-05-13 EP EP19182254.3A patent/EP3572995B1/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP3093809B1 (en) | 2019-06-26 |
| PL3093809T3 (pl) | 2019-12-31 |
| EP3572995A1 (en) | 2019-11-27 |
| DK3093809T3 (da) | 2019-07-29 |
| EP3093809A1 (en) | 2016-11-16 |
| US11580472B2 (en) | 2023-02-14 |
| US20160335577A1 (en) | 2016-11-17 |
| EP3572995B1 (en) | 2021-11-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2737725T3 (es) | Sistemas y métodos para la gestión de máquinas de estado | |
| ES2750788T3 (es) | Sistemas y procedimientos para la generación de modelos de búsqueda | |
| JP2020518880A (ja) | スマートコントラクトホワイトリストに基づくブロックチェーンネットワークにおけるトランザクションの並列実行 | |
| US9848306B2 (en) | Contextually aware dynamic group formation | |
| US10318868B2 (en) | Method for enhancing a mind map with different streams of information | |
| KR20160014673A (ko) | 노트 페이지 공유 및 통지 특징 | |
| US9576124B2 (en) | Multi-level password authorization | |
| CN105786593A (zh) | 用于重启上下文相关的应用集的方法和系统 | |
| US11968248B2 (en) | Content-based distribution and execution of analytics applications on distributed datasets | |
| US9544177B2 (en) | System and method for contact merge management | |
| RU2014129510A (ru) | Система и способ для смешанного представления местно и удаленно хранящихся электронных сообщений | |
| US10929412B2 (en) | Sharing content based on extracted topics | |
| US20170168870A1 (en) | Task status tracking and update system | |
| US10877805B2 (en) | Optimization of memory usage by integration flows | |
| US20160314221A1 (en) | Augmenting the display of data in a tree format | |
| US20160328363A1 (en) | Displaying at least one categorized message | |
| US9483535B1 (en) | Systems and methods for expanding search results | |
| US20170093767A1 (en) | Confidence score-based smart email attachment saver | |
| US9288243B2 (en) | Social sharing of contacts information | |
| US11205042B2 (en) | System and method to transform content and to generate a visual indicator of that transformation | |
| US11023476B2 (en) | Testing pairings to determine whether they are publically known | |
| US20190361974A1 (en) | Predicting if a message will be understood by recipients | |
| US10110529B2 (en) | Smart email attachment saver | |
| US20150310399A1 (en) | Generation of meeting agenda from team work plan | |
| US20160179880A1 (en) | System and method for determining whether files are appropriate for addition into a collection |