BRPI0806084B1 - Método para remotamente controlar e inspecionar um aplicativo de software, meio de armazenamento não-transitório legível por máquina, e, aparelho para remotamente controlar e inspecionar um aplicativo de software - Google Patents
Método para remotamente controlar e inspecionar um aplicativo de software, meio de armazenamento não-transitório legível por máquina, e, aparelho para remotamente controlar e inspecionar um aplicativo de software Download PDFInfo
- Publication number
- BRPI0806084B1 BRPI0806084B1 BRPI0806084-3A BRPI0806084A BRPI0806084B1 BR PI0806084 B1 BRPI0806084 B1 BR PI0806084B1 BR PI0806084 A BRPI0806084 A BR PI0806084A BR PI0806084 B1 BRPI0806084 B1 BR PI0806084B1
- Authority
- BR
- Brazil
- Prior art keywords
- software application
- controlled device
- application
- data
- event
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000005553 drilling Methods 0.000 claims description 34
- 238000012545 processing Methods 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 18
- 239000012530 fluid Substances 0.000 claims description 8
- 238000003860 storage Methods 0.000 claims description 8
- 238000013479 data entry Methods 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 7
- 229930195733 hydrocarbon Natural products 0.000 claims description 5
- 150000002430 hydrocarbons Chemical class 0.000 claims description 5
- 238000011084 recovery Methods 0.000 claims description 4
- 238000011156 evaluation Methods 0.000 claims description 2
- 239000004215 Carbon black (E152) Substances 0.000 claims 2
- 238000004886 process control Methods 0.000 claims 1
- 238000012800 visualization Methods 0.000 claims 1
- 238000007689 inspection Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000001960 triggered effect Effects 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 5
- 238000005755 formation reaction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000000149 penetrating effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005461 lubrication Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- E—FIXED CONSTRUCTIONS
- E21—EARTH OR ROCK DRILLING; MINING
- E21B—EARTH OR ROCK DRILLING; OBTAINING OIL, GAS, WATER, SOLUBLE OR MELTABLE MATERIALS OR A SLURRY OF MINERALS FROM WELLS
- E21B44/00—Automatic control systems specially adapted for drilling operations, i.e. self-operating systems which function to carry out or modify a drilling operation without intervention of a human operator, e.g. computer-controlled drilling systems; Systems specially adapted for monitoring a plurality of drilling variables or conditions
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Life Sciences & Earth Sciences (AREA)
- Geology (AREA)
- Mining & Mineral Resources (AREA)
- Multimedia (AREA)
- Environmental & Geological Engineering (AREA)
- Fluid Mechanics (AREA)
- General Life Sciences & Earth Sciences (AREA)
- Geochemistry & Mineralogy (AREA)
- Selective Calling Equipment (AREA)
- User Interface Of Digital Computer (AREA)
- Telephonic Communication Services (AREA)
Abstract
método, meio legível por máquina, e, aparelho. em algumas modalidades, um método inclui receber uma entrada para um aplicativo de software que está sendo executado em um dispositivo controlado. o método também inclui transmitir, através de uma rede, uma identificação de um evento para o aplicativo de software, que é um resultado da entrada, a um dispositivo controlador para remotamente controlar a execução do aplicativo de software. a identificação do evento compreende uma identificação de pelo menos, um de, um controle e a entrada para o controle.
Description
“MÉTODO PARA REMOTAMENTE CONTROLAR E INSPECIONAR UM APLICATIVO DE SOFTWARE, MEIO DE ARMAZENAMENTO NÃO-TRANSITÓRIO LEGÍVEL POR MÁQUINA, E, APARELHO PARA REMOTAMENTE CONTROLAR E INSPECIONAR UM APLICATIVO DE SOFTWARE”
Campo técnico [0001] O aplicativo se refere geralmente ao processamento de dados.
Em particular, o aplicativo se refere a remotamente controlar e inspecionar aplicativos de software.
Fundamento [0002] Controle, a partir de uma localização remota, de um aplicativo sendo executado em um dispositivo permite o controle do usuário de tal aplicativo sem requerer o usuário estar fisicamente presente no dispositivo. Tal controle remoto pode permitir a um único usuário especialista controlar numerosos aplicativos que podem estar sendo executados nos dispositivos em qualquer número de localizações geográficas diferentes. Ainda mais, inspeção remota permite a um ou mais indivíduos monitorar a execução de um aplicativo a partir das várias localizações geográficas similares.
Descrição Breve dos Desenhos [0003] Modalidades da invenção podem ser melhor entendidas referindo à seguinte descrição e desenhos anexos que ilustram tais modalidades. Nos desenhos:
Figura 1 é um diagrama de rede de um sistema para remotamente controlar e inspecionar aplicativos, de acordo com algumas modalidades;
Figura 2 é um diagrama de blocos de partes do dispositivo controlado 106, de acordo com algumas modalidades;
Figura 3 é um diagrama de blocos de partes do dispositivo controlador 104, de acordo com algumas modalidades;
Petição 870190043116, de 07/05/2019, pág. 6/42 / 30
Figura 4 é um fluxograma para transmitir eventos e comandos entre um aplicativo sendo executado em um dispositivo controlado e o dispositivo controlador para controle remoto e inspeção remota de tal aplicativo, de acordo com algumas modalidades;
Figura 5 é um fluxograma para processar eventos e comandos através de um aplicativo que pode ser controlado ou inspecionado remotamente, de acordo com algumas modalidades;
Figura 6 é um fluxograma para estabelecer uma conexão pelo dispositivo controlador para controlar ou inspecionar um aplicativo de software sendo executado em um dispositivo controlado, de acordo com algumas modalidades;
Figura 7 é um fluxograma para processar eventos e comandos em um dispositivo controlador que está remotamente controlando e inspecionando um aplicativo, de acordo com algumas modalidades;
Figura 8 ilustra um computador que pode ser usado para monitorar dados de campo de poços, de acordo com algumas modalidades;
Figura 9A ilustra um poço de perfuração durante operações de registro de linha de fio, de acordo com algumas modalidades;
Figura 9B ilustra um poço de perfuração durante operações de medição enquanto perfurando (MWD), de acordo com algumas modalidades.
Descrição detalhada [0004] Métodos, aparelho e sistemas para remotamente controlar e inspecionar um aplicativo de software são descritos. Na seguinte descrição, numerosos detalhes específicos são estabelecidos. Contudo, é entendido que modalidades da invenção podem ser praticadas sem esses detalhes específicos. Em outras circunstâncias, circuitos, estruturas e técnicas bem conhecidas não têm sinal mostradas em detalhe de modo a não obscurecer o entendimento desta descrição.
[0005] Esta descrição das modalidades é dividida em seis seções. A
Petição 870190043116, de 07/05/2019, pág. 7/42 / 30 primeira seção descreve um ambiente de operação de sistema. A segunda seção descreve um exemplo de dispositivo controlado e dispositivo controlador. A terceira seção descreve operações de controle e inspeção remotas. A quarto seção descreve um exemplo de ambiente de ambiente de computador. A quinta seção descreve ambientes de operação de campos de poços. A sexta seção fornece alguns comentários gerais.
[0006] Algumas modalidades permitem o controle e inspeção de aplicativos de software (sendo executado em um dispositivo controlado) a partir de um dispositivo controlador localizado remotamente do dispositivo controlado. Por exemplo, um usuário ou software sendo executado no dispositivo controlador pode controlar um aplicativo de software sendo executado no dispositivo controlado. Com abordagens convencionais, tais operações incluem transmissão de reprodução com base em pixel de imagem, onde dados para pixéis de imagem individuais são transmitidos entre o dispositivo controlado e o dispositivo controlador. A imagem gráfica no dispositivo controlado pode então ser reproduzida em um visor do dispositivo controlador. Assim sendo, o usuário do dispositivo controlador inspeciona a saída gráfica de um aplicativo sendo executado no dispositivo controlado. Contudo, a transmissão de dados de reprodução com base em pixel de imagem requer que uma grande quantidade de dados (dados para pixéis de imagem individuais) a serem transmitidos entre tais dispositivos (e. g., megabytes de dados por re-iniciação da tela). Assim sendo, a taxa na qual as imagens no dispositivo controlado são re-iniciadas no dispositivo controlador pode ser visivelmente lento. Mais ainda, durante os momentos quando a comunicação da rede é grande, a largura de banda entre os dispositivos pode ser reduzida, por meio disso, forçando as taxas de re-iniciação de serem mesmo menores.
[0007] Ao contrário, de acordo com algumas modalidades, comunicações de dados entre o dispositivo controlador e o dispositivo
Petição 870190043116, de 07/05/2019, pág. 8/42 / 30 controlado são menores na comparação para reprodução com base em pixel de imagem (como descrito acima). Em algumas modalidades, mensagens e eventos são transmitidos entre o dispositivo controlador e o dispositivo controlado. Tais mensagens e eventos podem ser decodificados usando uma biblioteca de decodificação. Em algumas modalidades, as imagens gráficas podem então ser reproduzidas usando as mensagens decodificadas e eventos com base nas bibliotecas de software gráficas. Em algumas modalidades, várias bibliotecas gráficas imediatamente disponíveis podem ser usadas. Consequentemente, as modalidades não são dependentes de uma configuração de hardware ou software específica. As modalidades podem ser usadas nos dispositivos com diferentes sistemas de operação. Também, entrada de controle em um aplicativo da localização remoto pode ser feita sem requerer a transmissão de grandes quantidades de dados de pixel de imagem.
[0008] Algumas modalidades permitem a um usuário especialista em um dispositivo controlador controlar numerosos aplicativos a redor do mundo em tempo real. Algumas modalidades podem reduzir o número global de usuários especialistas requerido porque os locais remotos necessitam de menos especialistas. Algumas modalidades permitem determinados locais remotos, que podem ser perigosos (e. g., tal como localizações propensas a atividade terrorista) a serem controlados sem requerer operadores locais em tais locais. Também, algumas modalidades podem reduzir custo de pessoal do local remoto (tal como custos de transportação). Algumas modalidades também permitem intervenção local no dispositivo controlado para permitir recuperar um erro causado pelo dispositivo controlador. Em algumas modalidades, o aplicativo de software não é requerido ser instalado no dispositivo controlador. A entrada para controle de um aplicativo de software pode ser proveniente de vários dispositivos de entrada (tal como um mouse, teclado, microfone, arquivos de entrada proveniente de meio de armazenamento interno ou externo, etc.).
Petição 870190043116, de 07/05/2019, pág. 9/42 / 30 [0009] Modalidades podem ser incorporadas em qualquer de um número de diferentes aplicativos. Um exemplo de aplicativo é controlar um dispositivo em um campo de poços para perfuração e recuperação de hidrocarbonetos. Em particular, os dispositivos controlados podem estar em vários campos de poços. Tais dispositivos podem controlar vários parâmetros para perfuração, avaliação, recuperação, etc. de hidrocarbonetos a partir da parte de baixa do furo abaixo. Consequentemente, um operador pode controlar e monitorar tais operações em um dispositivo controlador que está posicionado remotamente às áreas de poços. Assim sendo, um operador pode ser capaz de controlar e inspecionar operações em qualquer número de diferentes campos de poços. Uma descrição mais detalhada de tal aplicativo é demonstrada abaixo. As modalidades podem ser usadas em outros aplicativos. Por exemplo, as modalidades podem ser usadas em várias fabricações ou operações de pesquisas e desenvolvimento. Consequentemente, tais operações podem ser controladas ou monitoradas em diferentes áreas remotas relativas onde um aplicativo está sendo executado. As modalidades podem ser usadas em telecomunicações para diagnosticar erros em um dispositivo remoto.
Ambiente de Operação de Sistema [00010] Figura 1 é um diagrama em rede de um sistema para remotamente controlar e inspecionar aplicativos, de acordo com algumas modalidades. Um sistema 100 compreende uma rede 102 que acopla junto um número de dispositivos controladores 104A-104N e um número de dispositivos controlados 106A-106N.
[00011] Os dispositivos controladores 104 e os dispositivos controlados 106 podem ser qualquer tipo de dispositivo que pode executar um aplicativo de software. Os dispositivos controladores 104 e os dispositivos controlados 106 podem ser um cliente estreito, cliente repleto, ou um cliente híbrido. Os dispositivos controladores 104 e os dispositivos controlados 106 podem ser computadores de mesa, computadores notebooks, dispositivos sem
Petição 870190043116, de 07/05/2019, pág. 10/42 / 30 fio/com fio, dispositivos de comunicação móvel (tal como telefones celulares, assistente digital pessoal (PDAs)), tocadores de meio (tal como dispositivos MP-3), consoles de jogos, caixas de topo de aparelho, etc.
[00012] Como ainda descrito abaixo, em algumas modalidades, saídas gráficas de um aplicativo de software sendo executado no dispositivo controlado 106 é reproduzido no dispositivo controlador 104. Esta reprodução pode ser gerada sem transmissão de dados de reprodução com base em pixel de imagem entre o dispositivo controlado 106 e o dispositivo controlador 104. Como ainda descrito abaixo, o dispositivo controlador 104 pode entrar controles em um aplicativo usando evento de tratamento de mensagem entre o dispositivo controlador 104 e o dispositivo controlado 106.
[00013] A comunicação da rede pode ser qualquer combinação de comunicação com fio e sem fio. Em algumas modalidades, a comunicação da rede pode ser baseada em um ou mais protocolos de comunicação (e. g., Protocolo de Transferência de Hipertexto (HTTP), HTTP Seguro (HTTPS), Interação Diagramática Abstrata (ADI), Linguagem de Marcação Padrão de Transferência de Informação de Poço (WITSML), etc.).
[00014] Em algumas modalidades, um a qualquer número de dispositivos controladores 104 pode controlar ou inspecionar um aplicativo sendo executado em um dispositivo controlado 106. Por exemplo, um ou mais dispositivos controladores 104 podem controlar o aplicativo, enquanto um ou mais dispositivos controladores 104 monitoram o aplicativo. Mais ainda, um dispositivo controlador 104 pode remotamente controlar e inspecionar múltiplos aplicativos sendo executados no mesmo ou em diferentes dispositivos controlados 106.
Exemplo de Dispositivo Controlado e Dispositivo Controlador [00015] Figura 2 é um diagrama de blocos das partes do dispositivo controlado 106, de acordo com algumas modalidades. Um diagrama mais detalhado de um exemplo de modalidade do dispositivo controlado 106 é
Petição 870190043116, de 07/05/2019, pág. 11/42 / 30 ilustrado na figura 8, que é descrita em mais detalhes abaixo. Um dispositivo controlado 202 (representativo de algumas modalidades do dispositivo controlado 106) pode incluir um visor 204, uma a um número de aplicativos 208A-208N e um módulo escravo 206. O visor 204 pode ser um Visor de Cristal Líquido (LCD), um Tubo de Raios Catódicos (CRT), Visor de Emissor de Elétrons de Condução de Superfície (SED), visor de plasma, etc. Os aplicativos 208 podem ser aplicativos de software (que podem ser armazenados num meio legível por máquina volátil ou não volátil (não mostrada)) sendo executados em um processador (não mostrado). A saída gráfica da execução dos aplicativos 208 pode ser emitida em um visor 204.
[00016] O módulo escravo 206 pode ser hardware, software, firmware ou uma combinação deles. Como ainda descrito abaixo, o módulo escravo 206 pode transmitir e receber comunicações entre os aplicativos 208 e um dispositivo controlador 104. Por exemplo, tal comunicação pode incluir dados para reprodução gráfica de dados em um visor do dispositivo controlador 104, dados para controle de um aplicativo 208 a partir do dispositivo controlador 104, dados para controle de um aplicativo 208 a partir de um usuário local do dispositivo controlado 106 para o dispositivo controlador 104, etc. Embora descrito tal que o módulo escravo 206 é executado no dispositivo controlado, em algumas modalidades, o módulo escravo 206 pode ser executado em um dos dispositivos controladores 104, um diferente dispositivo controlado 106 ou qualquer outro dispositivo acoplado para comunicação entre o dispositivo controlador 104 e o dispositivo controlado 106.
[00017] Figura 3 é um diagrama de blocos das partes do dispositivo controlador 104, de acordo com algumas modalidades. Um diagrama mais detalhado de um exemplo de modalidade do dispositivo controlador 104 é ilustrado na figura 8, que é descrito em mais detalhes abaixo. Um dispositivo controlador 302 (representativo de algumas modalidades do dispositivo controlador 104) pode incluir um visor 304, um módulo principal 306, um módulo
Petição 870190043116, de 07/05/2019, pág. 12/42 / 30 de controle de aplicativo 308, uma biblioteca de gráficos 310 e a biblioteca de códigos de decodificação 312. O visor 304 pode ser um Visor de Cristal Líquido (LCD), um Tubo de Raios Catódicos (CRT), Visor de Emissor de Elétrons de Condução de Superfície (SED), um visor de plasma, etc.
[00018] O módulo principal 306 e um módulo de controle de aplicativo 308 podem ser hardware, software, firmware ou uma combinação deles. Conforme ainda descrito abaixo, um módulo de controle de aplicativo 308 pode gerar eventos a partir da entrada do usuário local relacionada ao controle de um aplicativo no dispositivo controlado 106. Um módulo de controle de aplicativo 308 pode também processar comandos e eventos gerados no dispositivo controlado 106. Por exemplo, um módulo de controle de aplicativo 308 pode atualizar o visor 304 para reproduzir os gráficos no visor do dispositivo controlado 106. Em algumas modalidades, um módulo de controle de aplicativo 308 usa a biblioteca de códigos de decodificação 312 para decodificar os dados recebidos do dispositivo controlado 106. Um módulo de controle de aplicativo 308 pode então usar os dados decodificados e a biblioteca de gráficos 308 para atualizar o visor 304. Em algumas modalidades, a biblioteca de gráficos 308 pode ser vários tipos de bibliotecas imediatamente disponíveis que incluem várias funções para saída de gráficos.
[00019] O módulo principal 306 pode transmitir e receber comunicações entre os aplicativos sendo executados no dispositivo controlado 106 e no módulo de controle de aplicativo 308. Por exemplo, tal comunicação pode incluir dados para reprodução gráfica de dados em um visor do dispositivo controlador 104, dados para controle de um aplicativo 108 a partir do dispositivo controlador 104, dados para controle de um aplicativo 108 a partir de um usuário local do dispositivo controlado 106 para o dispositivo controlador 104, etc.
Operações Remotas de Controle e Inspeção [00020] As operações que podem ser executadas no dispositivo
Petição 870190043116, de 07/05/2019, pág. 13/42 / 30 controlado 106 e no dispositivo controlador 104, de acordo com algumas modalidades, são agora descritas. Figuras 4-5 ilustram as operações que podem ser executadas no dispositivo controlado 106 (através do módulo escravo 206 e um dos aplicativos 208, respectivamente). Figuras 6-7 ilustram operações que podem ser executadas no dispositivo controlador 108 (através do módulo principal 306 e um módulo de controle de aplicativo 308, respectivamente).
[00021] Figura 4 é um fluxograma para transmitir eventos e comandos entre um aplicativo sendo executado em um dispositivo controlado e o dispositivo controlador para controle e inspeção remota de tal aplicativo, de acordo com algumas modalidades. Em particular, Figura 4 inclui um fluxograma 400 que ilustra as operações que podem ser efetuadas pelo módulo escravo 206 sendo executado no dispositivo controlado 106. As operações através do módulo escravo 206 fornecem comunicação entre uma ou mais aplicativos 208 sendo executados no dispositivo controlado 106 e um ou mais dispositivos controladores 104. O fluxograma 400 é descrito com referência às Figuras 1 -3. O fluxograma 400 inclui dois ramos. O primeiro ramo e o segundo ramo incluem blocos 402-408 e blocos 410-420, respectivamente. As operações em blocos 402-408 são tipicamente executadas após um novo dispositivo controlador 104 ser conectado para remotamente inspecionar ou controlar um aplicativo sendo executado no dispositivo controlado 106. As operações nos blocos 410-420 são tipicamente executadas após um evento ou comando para o aplicativo ser recebido (de, ou da entrada local no dispositivo controlado 106 ou da entrada remota no dispositivo controlador 104). O fluxograma 400 começa no bloco 401.
[00022] No bloco 401, o módulo escravo é iniciado. Com referência à
Figura 2, o módulo escravo 206 no dispositivo controlado 202 é iniciado (começa a execução). Por exemplo, o módulo escravo 206 pode ser um aplicativo de software que é iniciado durante as operações de iniciação do
Petição 870190043116, de 07/05/2019, pág. 14/42 / 30 dispositivo controlado 202, após um dos aplicativos 208 ser iniciado, etc. O fluxo continua nos blocos 402 e 410.
[00023] No bloco 402, uma determinação é feita se quaisquer novos dispositivos controladores 104 foram conectados. Com referência à Figura 2, o módulo escravo 206 pode fazer esta determinação. Com referência à Figura 1, por exemplo, Número N de dispositivos controladores 104 pode ser tentado conectar ao dispositivo controlado 106 através da rede 102 (após o módulo escravo 206 ter sido iniciado). Esse Número N de dispositivo controlador 104 pode transmitir mensagens periódicas de silvo para estabelecer comunicação. Alternativamente ou em adição, um diferente dispositivo na rede pode armazenar a identificação dos dispositivos controladores 104 e dos dispositivos controlados 106, após tais dispositivos estarem operacionais para começar as comunicações. Mais ainda, a identificação dos dispositivos que um determinado dispositivo controlador ou dispositivo controlado está tentando se conectar também pode ser armazenada nele. Consequentemente, o módulo escravo 206 pode recuperar a identificação dos dispositivos controladores 104 que estão tentando se conectar ao dispositivo controlado 106. Quando determinando que um ou mais novos dispositivos controladores 104 são conectados ao dispositivo controlado 104, o fluxo continua em 404. Por outro lado, o fluxo continua no bloco 406 (que é descrito em mais detalhes abaixo).
[00024] No bloco 404, a identificação dos aplicativos (que são remotamente controláveis ou inspecionáveis) sendo executada no dispositivo controlado são transmitidos para os novos dispositivos controladores. O módulo escravo 206 pode efetuar esta operação. Em particular, um a Número N de aplicativos que podem ser controlados ou inspecionados remotamente podem estar sendo executados no dispositivo controlado 106. Os aplicativos podem ter identificações únicas para permitir aos dispositivos controladores 104 identificar que, se qualquer, dos aplicativos, é para ser controlado ou
Petição 870190043116, de 07/05/2019, pág. 15/42 / 30 inspecionado remotamente. Essas identificações são transmitidas ao longo da rede 102 para cada um dos novos dispositivos controladores 104. Os novos dispositivos controladores 104 pode então se conectar os aplicativos para controle ou inspeção remota (como ainda descrito abaixo). O fluxo continua no bloco 406.
[00025] No bloco 406, uma determinação é feita se um novo aplicativo é iniciado. O módulo escravo 206 pode fazer esta determinação. Em particular, novos aplicativos podem ser iniciados em qualquer ponto enquanto o dispositivo controlado 202 está operacional. Por exemplo, se uma nova operação de perfuração é começada, um novo aplicativo pode ser iniciado para monitorar e controlar tal atividade da parte de furo abaixo, consequentemente um operador pode iniciar um novo aplicativo no dispositivo controlado 202 em vários tempos da atividade da parte de furo abaixo. Em algumas modalidades, o módulo escravo 206 pode rever os aplicativos que estão sendo executados para determinar (com base em sua identificação) se novos aplicativos foram iniciados. Quando determinando que um novo aplicativo é iniciado, o fluxo continua no bloco 408. Ao contrário, o fluxo continua nos blocos 402 e 410.
[00026] No bloco 408, a identificação da novo aplicativo é transmitida para os dispositivos controladores conectados. O módulo escravo 206 pode efetuar esta operação. Uma lista dos dispositivos controladores 104 que estão conectados ao dispositivo controlado 106 pode ser mantida pelo módulo escravo 206. O módulo escravo 206 pode transmitir uma mensagem com a identificação deste novo aplicativo aos dispositivos controladores 104 nesta lista. O fluxo continua nos blocos 402-410. Consequentemente, como descrito, as operações nos blocos 402-408 podem continuar a serem efetuadas enquanto o módulo escravo 206 estiver operacional. Assim sendo, o módulo escravo 206 pode periodicamente checar por novos dispositivos controladores e por novos aplicativos.
Petição 870190043116, de 07/05/2019, pág. 16/42 / 30 [00027] As operações nos blocos 410-420 são agora descritas. Essas operações podem ser executadas após um evento ou comando para o aplicativo ser recebido (a partir da entrada local ou a partir da entrada remota em um dispositivo controlador 106).
[00028] No bloco 410, uma determinação é feita se um novo evento é recebido proveniente de um dispositivo controlador. O módulo escravo 206 pode fazer esta determinação. Em algumas modalidades, o evento pode incluir algum tipo de evento para alterar uma operação de um aplicativo. Por exemplo, o evento pode ter diferentes entradas para processamento por um aplicativo (tal como um pressionamento ou seleção de botão, entrada de dados em um gráfico de um visor para um aplicativo, etc.). Em algumas modalidades, o evento é transmitido como uma mensagem que inclui uma identificação da entrada na janela gráfica e uma identificação da entrada. Por exemplo, se uma janela de Interface de Usuário Gráfica (GUI) compreende quatro diferentes botões diferente. A mensagem do evento inclui uma identificação do botão e que o botão foi selecionado. Se a janela de GUI inclui uma caixa de entrada de texto, a mensagem de evento pode incluir uma identificação da caixa de entrada de texto e do tipo de entrada. Por exemplo, um usuário pode entrar seu nome em uma tal caixa. Consequentemente, a mensagem de evento pode incluir os caracteres introduzidos na caixa de texto. Quando determinando que um novo evento foi recebido proveniente de um dispositivo controlador, o fluxo continua no bloco 412. Ao contrário, o fluxo continua no bloco 416 (que é descrito em mais detalhes abaixo).
[00029] No bloco 412, o novo evento é decodificado. O módulo escravo 206 pode efetuar esta operação. A mensagem de evento pode incluir a identificação de qual aplicativo e uma identificação de qual controle de um aplicativo que este evento está associado. Por exemplo, a janela de GUI pode incluir 20 diferentes controles (tal como vários botões, entrada de texto, etc.). A identificação do controle pode ser um identificador único para um dos
Petição 870190043116, de 07/05/2019, pág. 17/42 / 30 controles. Por conseguinte, o módulo escravo 206 decodifica o novo evento para determinar qual o aplicativo e qual o controle em tal aplicativo. Por exemplo, a entrada pode ser um pressionamento de botão para uma determinada janela de GUI para um particular aplicativo sendo executado no dispositivo controlado 106. O fluxo continua no bloco 414.
[00030] No bloco 414, o evento decodificado é transmitido ao aplicativo especificado sendo executado no dispositivo controlado. O módulo escravo 206 pode efetuar esta operação. Por exemplo, o módulo escravo 206 pode gerar uma interrupção de entrada de usuário para o aplicativo. Consequentemente, o aplicativo pode então processar o evento. O processamento do evento pelo aplicativo é descrito em mais detalhes abaixo no fluxograma 600 da Figura 6. O fluxo continua no bloco 416.
[00031] No bloco 416, uma determinação é feita se um novo evento é recebido proveniente de um aplicativo (sendo executado no dispositivo controlado). O módulo escravo 206 pode fazer esta determinação. O novo evento pode incluir atualizar a janela de GUI para o aplicativo. Por exemplo, o processamento da entrada de um usuário local (tal como uma seleção de botão) pode mudar para uma diferente janela de GUI ou alterar a janela de GUI corrente. O novo evento pode ser um resultado de um evento de um dispositivo controlador. Por exemplo, o evento proveniente do dispositivo controlador (tal como entrada de texto ou seleção de botão) pode mudar para uma diferente janela de GUI ou alterar a janela de GUI corrente. Quando determinando que um novo evento não é recebido de um aplicativo (sendo executado no dispositivo controlado), o fluxo continua nos blocos 402 e 410. Ao contrário, o fluxo continua no bloco 418.
[00032] No bloco 418, o novo evento é decodificado. O módulo escravo 206 pode efetuar esta operação. A mensagem de evento pode incluir um valor alfa-numérico para identificar qual controle do aplicativo que este evento está associado. A janela de GUI pode incluir 20 diferentes controles
Petição 870190043116, de 07/05/2019, pág. 18/42 / 30 (tal como vários botões, entrada de texto, etc.). O valor alfa-numérico pode ser um identificador único para um dos controles. Por conseguinte, o módulo escravo 206 decodifica o novo evento para determinar o controle. Por exemplo, a entrada pode ser um pressionamento de botão para uma determinada janela de GUI para um particular aplicativo sendo executado no dispositivo controlado. O fluxo continua no bloco 420.
[00033] No bloco 420, o evento decodificado é transmitido aos dispositivos controladores que estão conectados ao aplicativo. O módulo escravo 206 pode efetuar esta operação. A mensagem que é transmitida pode ser um valor com criptografia que identifica seções específicas de uma janela de GUI corrente para atualizar, a mudança para uma janela de GUI diferente, etc. Por exemplo, se a entrada de usuário pode causar uma mudança para uma janela de GUI diferente, uma atualização (tal como atualizar cor ou gráficos) para a janela de GUI corrente, etc. O processamento do através do dispositivo controlador 104 é descrito em mais detalhes abaixo no fluxograma 600 e 700 da Figura 6 e 7, respectivamente. Consequentemente, como descrito, as operações nos blocos 410-420 podem continuar a serem efetuadas enquanto o módulo escravo 206 estiver operacional. Assim sendo, o módulo escravo 206 pode periodicamente checar por novos eventos provenientes dos dispositivos controladores ou dos aplicativos.
[00034] Enquanto as operações no fluxograma 400 são descritas tais que o módulo escravo 206 efetua checagem periódica, em algumas modalidades, tais operações são baseadas em interrupção. Por exemplo, após um novo aplicativo ser iniciado, o módulo escravo 206 recebe uma interrupção para transmitir a identificação do novo aplicativo aos dispositivos controladores 104 que estão conectados.
[00035] Figura 5 é um fluxograma para processar eventos e comandos por um aplicativo que pode ser controlado ou inspecionado remotamente, de acordo com algumas modalidades. Em particular, Figura 5 inclui um
Petição 870190043116, de 07/05/2019, pág. 19/42 / 30 fluxograma 500 que ilustra operações que podem ser efetuadas por um dos aplicativos 208 sendo executado no dispositivo controlado 106. O fluxograma 500 é descrito referência às Figuras 1-3. O fluxograma 500 inclui dos ramos. O primeiro ramo e o segundo ramo incluem blocos 504-506 e blocos 508-514, respectivamente. As operações nos blocos 504-506 são executadas porque um evento ou comando para o aplicativo é recebido (da entrada local no dispositivo controlado 106). As operações nos blocos 508-514 são executadas porque um evento ou comando para o aplicativo é recebido (da entrada remota em um dispositivo controlador 104). O fluxograma 500 começa no bloco 502.
[00036] No bloco 502, o aplicativo é registrado com o módulo escravo. Com referência à Figura 2, o módulo escravo 206 pode controlar de uma a qualquer número de aplicativos 208. Após o aplicativo 208 ser iniciado, o aplicativo 208 pode transmitir uma mensagem de registro para o módulo escravo 206. O módulo escravo 206 pode então registrar este aplicativo 208 como um aplicativo que pode ser controlado e inspecionado remotamente através de um dispositivo controlador 104. O fluxo continua nos blocos 504 e 508.
[00037] No bloco 504, uma determinação é feita se um evento é acionado no dispositivo controlado. O aplicativo 208 pode fazer esta determinação. Em particular, o aplicativo 208 pode determinar se a entrada local (ou de uma entrada de usuário local, ou de software automatizado local, etc.) no dispositivo controlado 106 foi gerada para entrada no aplicativo 208. Por exemplo, o evento pode ser uma seleção de botão, entrada de dados, etc. em um aplicativo 208. O evento pode causar uma mudança para uma diferente janela de GUI ou alterar a janela de GUI corrente. Quando determinando que um evento não é acionado no dispositivo controlado 106, o fluxo continua nos blocos 504 e 508. Ao contrário, o fluxo continua no bloco 506.
Petição 870190043116, de 07/05/2019, pág. 20/42 / 30 [00038] No bloco 506, a descrição do evento é transmitida ao módulo escravo. O aplicativo 208 pode efetuar esta operação. A descrição do evento pode incluir uma identificação única para eventos que podem ocorrer para um aplicativo 208. Em algumas modalidades, a descrição do evento é transmitida aos dispositivos controladores 104 que podem ser remotamente controlar/inspecionar um aplicativo 208. Em algumas modalidades, a descrição do evento é para atualizar o visor sendo mostrado nos dispositivos controladores 104. Em particular, a descrição do evento permite a imagem gráfica no visor do dispositivo controlado 106 ser reproduzida no visor dos dispositivos controladores 104. Por exemplo, a identificação pode incluir a identificação de que controle no visor recebeu uma entrada, o tipo de entrada para o controle, etc. Esta operação pode ser em adição ao processamento do evento localmente por um aplicativo 208. Por exemplo, o evento pode acionar a atualização da janela de GUI corrente, o lançamento de um aplicativo separado, um trabalho de impressão, uma saída para controle, etc. O fluxo continua nos blocos 504 e 508. Consequentemente, como descrito, as operações nos blocos 504-506 podem continuar a serem efetuadas enquanto o aplicativo 208 é operacional.
[00039] No bloco 508, uma determinação é feita se um novo comando é recebido proveniente de um dispositivo controlador (através do módulo escravo). O aplicativo 208 pode fazer esta determinação. O novo comando pode ser uma entrada em um aplicativo 208. Por exemplo, o comando pode ser uma entrada de controle (tal como um pressionamento ou seleção de botão ou entrada de dados em um gráfico de um visor para o aplicativo 208 que é reproduzido em um visor do dispositivo controlador 104). Como descrito abaixo, o novo comando também pode ser uma solicitação de uma cópia dos controles e estado gráfico corrente de um aplicativo 208. Quando determinando que um novo comando é recebido de um dispositivo controlador 104, o fluxo continua no bloco 510. Ao contrário, o fluxo
Petição 870190043116, de 07/05/2019, pág. 21/42 / 30 continua nos blocos 504 e 508.
[00040] No bloco 510, uma determinação é feita se o novo comando está solicitando o estado do aplicativo. O aplicativo 208 pode fazer esta determinação. Em particular, o dispositivo controlador 104 pode solicitar o estado de um aplicativo 208 após se conectar com o dispositivo controlado 106. O aplicativo 208 pode estar sendo executado por um período de tempo. Por conseguinte, o estado gráfico corrente é transmitido ao dispositivo controlador 104 para permitir aos gráficos serem reproduzidos no visor do dispositivo controlador 104. Quando determinando que o novo comando está solicitando o estado de um aplicativo 208, o fluxo continua no bloco 512. Ao contrário, o fluxo continua no bloco 514 (que é descrito em mais detalhes abaixo).
[00041] No bloco 512, uma cópia do estado gráfico corrente de um aplicativo é transmitido para o dispositivo controlador. O aplicativo 208 pode efetuar esta operação transmitindo tais dados para o módulo escravo 206 (que direciona os dados para o dispositivo controlador 104). Em algumas modalidades, o estado gráfico corrente transmitido não é uma reprodução com base em pixel de imagem. Mais propriamente, o estado gráfico corrente pode incluir uma identificação de qual janela de GUI para o aplicativo 208 está sendo exibida, o estado de quaisquer campos modificáveis (tal como valores de controle), etc. Consequentemente, esta quantidade de dados transmitidos através da rede para identificar o estado gráfico corrente pode ser muito menor em comparação aos dados requeridos para serem transmitidos para reprodução com base em pixel de imagem onde valores de pixel de imagem individuais para o visor gráfico são transmitidos. O fluxo continua nos blocos 504 e 508.
[00042] No bloco 514, o novo comando no controle especificado é processado. O aplicativo 208 pode efetuar esta operação. O comando pode ser diferentes tipos de entrada no aplicativo 208. Por exemplo, o comando pode
Petição 870190043116, de 07/05/2019, pág. 22/42 / 30 ser de uma seleção de botão, de entrada de dados, etc. no dispositivo controlador com base na janela de GUI sendo exibida nele. Como descrito, o comando (que é de um evento decodificado do módulo escravo 206) pode ser um identificador único para um dos controles e dos dados para este controle na janela de GUI para o aplicativo 208. Por exemplo, o comando pode identificar um botão específico na janela de GUI e que tal botão foi selecionado no dispositivo controlador 104. O aplicativo 208 processa o comando. O processamento pode incluir mudar os gráficos do visor na janela de GUI corrente, mudando para uma janela de GUI diferente, emitindo um controle para um dispositivo externo, recuperando entrada de dados a partir de um dispositivo externo, etc. Por exemplo em uma operação da parte de furo abaixo, o aplicativo 208 pode emitir um controle para alterar o fluxo de fluido, rotação da sequência de perfuração, etc. Em algumas modalidades, se a execução do controle por um aplicativo 208 altera a saída do gráfico, uma descrição do evento é transmitida ao dispositivo controlador 104. Em particular, uma descrição do evento pode ser transmitida ao dispositivo controlador 104 (similar às operações no bloco 506 acima). Por exemplo, se uma nova janela de GUI está sendo exibida, uma descrição do evento é transmitida ao dispositivo controlador 104. O fluxo continua nos blocos 504 e 508. Consequentemente, como descrito, as operações nos blocos 508-514 podem continuar a serem efetuadas enquanto o aplicativo 208 está sendo executada. Assim sendo, o aplicativo 208 pode periodicamente checar por novos comandos.
[00043] Enquanto as operações no fluxograma 500 são descritas tal que um aplicativo 208 efetua checagem periódica, em algumas modalidades, tais operações são baseadas em interrupção. Por exemplo, após um novo comando ser recebido de uma entrada local ou remota, o aplicativo 208 recebe uma interrupção para processar o comando.
[00044] Operações que podem ser executadas pelo dispositivo
Petição 870190043116, de 07/05/2019, pág. 23/42 / 30 controlador 104 são agora descritas. Figuras 6-7 ilustram as operações que podem ser executadas no dispositivo controlador 104 (através do módulo principal 306 e um módulo de controle de aplicativo 308, respectivamente). [00045] Figura 6 é um fluxograma para estabelecer uma conexão através do dispositivo controlador para controlar ou inspecionar um aplicativo de software sendo executado em um dispositivo controlado, de acordo com algumas modalidades. Em particular, Figura 6 inclui um fluxograma 600 que ilustra operações que podem ser efetuadas pelo módulo principal 306 sendo executadas no dispositivo controlador 104. O fluxograma 600 é descrito com referência às Figuras 1-3. Em algumas modalidades, as operações do fluxograma 600 são iniciadas durante as operações de iniciação do dispositivo controlador 104, após um módulo de controle de aplicativo 308 ser iniciado, etc. O fluxograma 600 começa no bloco 602.
[00046] No bloco 602, o endereço do dispositivo controlado é recebido. O endereço pode ser algum tipo de endereço de rede (tal como um endereço de protocolo de Internet). O módulo principal 308 pode receber este endereço a partir de uma lista de endereços disponíveis de dispositivos controlados 106. Por exemplo, esses endereços podem ser introduzidos por um usuário do dispositivo controlador 104. Em algumas modalidades, o módulo principal 308 pode receber o endereço através de algum tipo de mensagem de broadcast ou operação de silvo na rede. O módulo principal 308 pode também receber este endereço a partir de um diferente dispositivo de rede (um servidor) que mantém uma lista de endereços de dispositivos controladores e dispositivos controlados que são correntemente operacionais. O fluxo continua no bloco 604.
[00047] No bloco 604, a conexão é feita para o dispositivo controlado.
O módulo principal 306 pode se conectar transmitindo uma mensagem de registro para o dispositivo controlado 106. O módulo escravo 206 pode então registrar o dispositivo controlador 104. Em algumas modalidades, o módulo
Petição 870190043116, de 07/05/2019, pág. 24/42 / 30 principal 306 pode receber um endereço e se conectar com um a qualquer número de dispositivos controlados 106. O fluxo continua no bloco 606.
[00048] No bloco 606, uma determinação é feita se quaisquer aplicativos (que são controláveis e inspecionáveis remotamente) estão sendo executados no dispositivo controlado. O módulo principal 306 pode fazer esta determinação conforme mostrado base na comunicação com o módulo escravo 206 no dispositivo controlado 106. Por exemplo, após receber uma mensagem de registro, o módulo escravo 206 pode transmitir uma lista de aplicativos (que são controláveis e inspecionáveis remotamente) que estão sendo executados no dispositivo controlado 106. Quando determinando que tais aplicativos estão sendo executados no dispositivo controlado 106, o fluxo continua no bloco 606 (onde esta determinação é de novo feita). Ao contrário, o fluxo continua no bloco 608.
[00049] No bloco 608, a identificação do(s) aplicativo(s) para controle ou inspeção remota é transmitida ao dispositivo controlado. O módulo principal 306 pode solicitar controle ou inspeção (remoto) de Número N de aplicativos no dispositivo controlado 106. O fluxo continua no bloco 610.
[00050] No bloco 610, uma forma gráfica principal para o(s) aplicativo(s) a ser(em) controlado(s) ou inspecionado(s) é aberta. O módulo principal 306 pode abrir uma forma gráfica principal para cada um do(s) aplicativo(s) a ser controlado ou inspecionado. A forma gráfica principal pode ser aberta no dispositivo controlador 104. Esta forma pode então ser populada com vários gráficos para reproduzir a imagem gráfica (sendo exibida em um visor do dispositivo controlado 106) em um visor do dispositivo controlador 104. Esta população é descrita nas operações do fluxograma 700 da Figura 7.
[00051] Figura 7 é um fluxograma para processamento eventos e comandos em um dispositivo controlador que é remotamente controlar ou inspecionar um aplicativo, de acordo com algumas modalidades. Em particular, Figura 7 inclui um fluxograma 700 que ilustra as operações que
Petição 870190043116, de 07/05/2019, pág. 25/42 / 30 podem ser efetuadas através de um módulo de controle de aplicativo 308 sendo executado no dispositivo controlador 104. O fluxograma 700 é descrito com referência às Figuras 1-3. O fluxograma 700 inclui dois ramos. O primeiro ramo e o segundo ramo incluem os blocos 708-710 e blocos 712718, respectivamente. As operações nos blocos 708-710 são executadas a partir de um evento acionado com base na entrada para o aplicativo no dispositivo controlador 104. As operações nos blocos 712-718 são executadas a partir de comandos ou eventos acionados no dispositivo controlado 106. O fluxograma 700 começa no bloco 701.
[00052] No bloco 701, a conexão é feita para o dispositivo controlado. Um módulo de controle de aplicativo 308 pode se conectar através da rede com o dispositivo controlado através do módulo principal 306. Um módulo de controle de aplicativo 308 pode comunicar sua própria identificação para o aplicativo. Consequentemente, um módulo de controle de aplicativo 308 e um aplicativo 208 podem estabelecer uma conexão entre eles mesmos. O aplicativo 208 sendo remotamente controlado e inspecionado e um módulo de controle de aplicativo 308 pode então trocar mensagens identificando eventos e comandos. Tais eventos e comandos podem permitir a reprodução da imagem gráfica no dispositivo controlador e para controle remoto de um aplicativo 208 através do dispositivo controlador 104. O fluxo continua no bloco 702.
[00053] No bloco 702, a solicitação para controle e estado gráfico é transmitido para um aplicativo sendo executado no dispositivo controlado. Um módulo de controle de aplicativo 308 pode efetuar esta operação. O estado gráfico pode incluir a janela de GUI corrente sendo mostrado. Em particular, um determinado aplicativo 208 pode ter Número N de janelas que podem ser exibidas durante a execução. Consequentemente, o estado gráfico pode incluir uma identificação da janela corrente. Com base na identificação da janela, um módulo de controle de aplicativo 308 pode identificar os
Petição 870190043116, de 07/05/2019, pág. 26/42 / 30 gráficos e dados a serem exibidos, os tipos e localizações de diferentes controles na janela para entrada, etc. O estado dos controles para a janela corrente é também solicitado. O estado do controle pode identificar se os controles corrente são realçados, acinzentados, ter dados nele, etc. O fluxo continua no bloco 704.
[00054] No bloco 704, os controles e estado gráfico são recebidos de um aplicativo no dispositivo controlado. Um módulo de controle de aplicativo 308 pode receber estes dados. Como descrito, tais dados incluem a identificação da janela, estado dos controles, etc. Em algumas modalidades, os dados não incluem dados sobre os pixéis de imagem na imagem gráfica sendo exibida para o aplicativo 208. Por exemplo, os dados não incluem uma reprodução com base em pixel de imagem da imagem gráfica. Consequentemente, os dados para reproduzir a imagem gráfica são muito menos em comparação com as técnicas que transmitem dados para os pixéis de imagem individuais para uma imagem gráfica. O fluxo continua no bloco 706.
[00055] No bloco 706, os controles e o estado gráfico são replicados em um visor do dispositivo controlador. Um módulo de controle de aplicativo 308 pode efetuar esta operação. Em algumas modalidades, um módulo de controle de aplicativo 308 decodifica os dados recebidos para os controles e estado gráfico usando a biblioteca de códigos de decodificação 312. Por exemplo, a identificação da janela pode ser decodificada para identificar o tamanho e tipo de janela, as localizações de várias partes da janela (tal como dados, gráficos, tipo e localização de entradas de controle, etc.). Um módulo de controle de aplicativo 308 pode também decodificar os controles para identificar o estado corrente dos controles na janela. Um módulo de controle de aplicativo 308 pode então usar os dados decodificados para replicar o estado gráfico usando várias funções de uma biblioteca de gráficos 310. Em particular, a biblioteca de gráficos 310 pode incluir várias funções usadas para
Petição 870190043116, de 07/05/2019, pág. 27/42 / 30 reproduzir a saída dos gráficos. Por exemplo, as funções podem ser usadas para emitir gráficos para vários controles (tal como diferentes tipos de botões), linhas, vários formatos, sub-janelas para gráficos, gráficos, imagens, etc., etc. O fluxo continua nos blocos 708 e 712.
[00056] O processamento de eventos da entrada no dispositivo controlador 104 é agora descrito. No bloco 708, uma determinação é feita se um evento é acionado para entrada no dispositivo controlador. Um módulo de controle de aplicativo 308 pode receber vários eventos, que pode incluir diferentes entradas para o aplicativo. Por exemplo, um usuário do dispositivo controlador 104 pode selecionar um botão, os dados de entrada em uma entrada de dados na janela de GUI sendo exibidas no dispositivo controlador 104. Tal entrada aciona um evento para processamento através de um módulo de controle de aplicativo 308. Quando determinando que um evento não é acionado, o fluxo continua nos blocos 708 e 712. Ao contrário o fluxo continua no bloco 710.
[00057] No bloco 710, a descrição do evento é transmitida ao dispositivo controlado. Um módulo de controle de aplicativo 308 pode transmitir uma identificação do tipo de evento. Por exemplo, a identificação do controle que a entrada recebida pode ser transmitida. Adicionalmente, a entrada de dados no controle também pode ser transmitida. Por exemplo, se um botão é selecionado, a identificação do botão e qual o botão foi selecionado é transmitida. Se o texto é introduzido em uma caixa de entrada de texto, a identificação da caixa de entrada de texto e o próprio texto é transmitido. O fluxo continua nos blocos 708 e 712.
[00058] O processamento dos eventos ou comandos executados no dispositivo controlado 106 são agora descritos. No bloco 712, uma determinação é feita se um novo comando é recebido a partir do dispositivo controlado 106. Um módulo de controle de aplicativo 308 pode determinar se um novo comando é recebido a partir de um aplicativo 208 sendo executado
Petição 870190043116, de 07/05/2019, pág. 28/42 / 30 no dispositivo controlado 106. O novo comando pode ser um comando de terminação ou um comando para um controle comando de terminação ou a comando para um controle para o aplicativo 208. Quando determinando que um novo comando não é recebido, o fluxo continua nos blocos 708 e 712. Ao contrário, o fluxo continua no bloco 714.
[00059] No bloco 714, uma determinação é feita se o novo comando é um comando de terminação. Um módulo de controle de aplicativo 308 pode fazer esta determinação. Em particular, se o comando é um comando de terminação, uma mensagem recebida pode ser um valor de dados específico que representa a terminação. O aplicativo 208 pode transmitir um comando de terminação como parte de uma terminação de um aplicativo 208 no dispositivo controlado 208, como parte de uma operação de desligamento do dispositivo controlado 106, etc. Em algumas modalidades, um operador local no dispositivo controlado 106 pode emitir o comando para prevenir monitoração ou controle remoto de um aplicativo 208. Quando determinando que o novo comando não é um comando de terminação, o fluxo continua no bloco 716. Ao contrário, o fluxo continua no bloco 718 (que é descrito em mais detalhes abaixo).
[00060] No bloco 716, o novo comando, que é para um controle especificado para o aplicativo, é processado. Um módulo de controle de aplicativo 308 pode efetuar esta operação. O novo comando pode ser um comando para atualizar o visor sendo mostrado nos dispositivos controladores 104. Em particular, um módulo de controle de aplicativo 308 pode atualizar a imagem gráfica no visor do dispositivo controlador 104 a fim de reproduzir a imagem gráfica sendo exibida em um visor do dispositivo controlado 106. Em algumas modalidades, um módulo de controle de aplicativo 308 usa uma biblioteca de códigos de decodificação 312 para decodificar o comando recebido proveniente do dispositivo controlado 106. Por exemplo, o novo comando pode indicar que uma nova imagem gráfica é para ser exibida, quais
Petição 870190043116, de 07/05/2019, pág. 29/42 / 30 partes da imagem gráfica corrente são para serem modificadas, etc. O novo comando pode identificar uma janela de GUI para atualizar e os tipos de atualização a serem efetuados. Por exemplo, o novo comando pode indicar que um gráfico corrente, uma entrada, etc. sendo exibida, necessita ser atualizado. Um módulo de controle de aplicativo 308 pode então usar os dados decodificados e uma biblioteca de gráficos 308 para atualizar o visor 304. Um módulo de controle de aplicativo 308 pode invocar várias funções de uma biblioteca de gráficos 308 para efetuar esta atualização. O fluxo continua nos blocos 708 e 712.
[00061] No bloco 718, a monitoração ou controle no dispositivo controlador é terminado. Um módulo de controle de aplicativo 308 pode efetuar esta operação. Por exemplo, um módulo de controle de aplicativo 308 pode terminar a ele mesmo. Alternativamente, um módulo de controle de aplicativo 308 pode continuar a execução (enquanto suspendendo monitoração e controle de um aplicativo 208). As operações do fluxograma são as inteiras.
[00062] Enquanto as operações no fluxograma 700 são descritos tal que um módulo de controle de aplicativo 308 efetua checagem periódica em algumas modalidades, tais operações são baseadas em interrupção. Por exemplo, após um novo comando é recebido de um dispositivo controlado 106, um módulo de controle de aplicativo 308 recebe uma interrupção para processar o novo comando.
Exemplo de Ambiente de Computador [00063] Um diagrama de blocos detalhado de um exemplo de ambiente de computador, de acordo com algumas modalidades, é agora descrito. Em particular, Figura 8 ilustra um computador que pode ser usado como parte do controle e inspeção remoto de um aplicativo, de acordo com algumas modalidades. Um sistema de computador 800 pode ser representativo do dispositivo controlador 104 ou do dispositivo controlado 106.
Petição 870190043116, de 07/05/2019, pág. 30/42 / 30 [00064] Como ilustrado na Figura 8, o sistema de computador 800 compreende processador(es) 802. O sistema de computador 800 também inclui uma unidade de memória 830, bus do processador 822, e centro de controlador de entrada/saída (ICH) 824. O(s) processador(es) 802, a unidade de memória 830, e ICH 824 são acoplados para o bus do processador 822. O(s) processador(es) 802 pode compreender qualquer arquitetura de processador adequada. O sistema de computador 800 pode compreender um, dois, três, ou mais processadores, qualquer dos quais pode executar um conjunto de instruções de acordo com as modalidades da invenção.
[00065] A unidade de memória 830 pode armazenar dados e/ou instruções, e pode compreender qualquer memória adequada, tal como uma memória de acesso aleatório dinâmico (DRAM). O sistema de computador 800 também inclui unidade(s) IDE 808 e/ou outros dispositivos de armazenamento adequados. UM controlador de gráficos 804 controla o visor de informação em um dispositivo de exibição 806, de acordo com algumas modalidades da invenção.
[00066] Um centro controlador de entrada/saída (ICH) 824 fornece uma interface para componentes de dispositivos ou periférico de I/O para o sistema de computador 800. O ICH 824 pode compreender qualquer controlador de interface adequado para fornecer qualquer elo de comunicação adequado para o(s) processador(es) 802, a unidade de memória 830 e/ou para qualquer adequado dispositivo ou componente em comunicação com o ICH 824. Para uma modalidade da invenção, o ICH 824 fornece arbitração adequada e armazenamento temporária para cada interface.
[00067] Para algumas modalidades da invenção, o ICH 824 fornece uma interface para uma ou mais unidades eletrônicas integradas (IDE) 808 adequados, tal como uma unidade de disco rígido (HDD) ou unidade de memória de somente leitura de disco compacto (CD ROM), ou para dispositivos de universal serial bus (USB) adequados através de uma ou mais
Petição 870190043116, de 07/05/2019, pág. 31/42 / 30 portas de USB 810. Para uma modalidade, o ICH 824 também fornece uma interface para um teclado 812, um mouse 814, uma unidade de CD-ROM 818, um ou mais dispositivos adequados através de uma ou mais portas de interface 816. Para uma modalidade da invenção, o ICH 824 também fornece uma interface de rede interface 820 através da qual o sistema de computador 800 pode se comunicar com outros computadores e/ou dispositivos.
[00068] Em algumas modalidades, o sistema de computador 800 inclui um meio legível por máquina que armazena um conjunto de instruções (e. g., software) incorporando qualquer um, ou todos, das metodologias aqui descritas. Ainda mais, o software pode residir, completamente ou pelo menos, parcialmente, dentro da unidade de memória 830 e/ou dentro do(s) processador(es) 802.
Ambientes de Operação de Campo de poços [00069] As modalidades podem ser usadas em qualquer de um número de ambientes de operação. Um exemplo de ambiente é relacionado a monitoração e controle de campo de poços. Por exemplo, o dispositivo controlado 106 pode estar no ou perto do campo de poços, enquanto o dispositivo controlador 104 pode estar remoto do campo de poços. Consequentemente, um operador pode remotamente controlar ou inspecionar as operações do campo de poços. Ambientes de operação de campo de poços, de acordo com algumas modalidades, são agora descritos. Figura 9A ilustra um poço de perfuração durante operações de registros de linha de fio, de acordo com algumas modalidades. Uma plataforma de perfuração 986 é equipada com um guindaste 988 que suporta um guincho 990. A perfuração de poços de petróleo e gás é comumente realizada por uma sequência de tubos de perfuração conectados juntos a fim de formar um cordão mecânico de perfuração que é baixado através de uma tábua giratória 910 em um poço ou furo abaixo 912. Aqui é assumido que uma sequência de perfuração temporariamente removida do furo abaixo 912 para permitir um corpo de
Petição 870190043116, de 07/05/2019, pág. 32/42 / 30 ferramenta de registro de linha de fio 970, tal como um estilete ou sonda, a ser baixada através de um fio ou cabo guia 974 no furo abaixo 912. Tipicamente, o corpo de ferramenta 970 é baixado para o fundo da região de interesse e de forma subsequente puxada para cima em uma substancialmente velocidade constante. Durante a viagem para cima, os instrumentos incluídos no corpo de ferramenta 970 podem ser usados para efetuar medições nas formações de sub-superfície 914 adjacentes ao furo abaixo 912 conforme eles vão passando por. Os dados de medição podem ser comunicados para uma facilidade de registro 992 para armazenamento, processamento e análise. Uma facilidade de registro 992 pode ser fornecida com equipamento eletrônico para vários tipos de processamento de sinal. Dados similares de registro podem ser obtidos e analisados durante operações de perfuração (e. g., durante Registro Enquanto Perfurando, ou operações de LWD).
[00070] Figura 9B ilustra um poço de perfuração durante operações de Medição Enquanto Perfurando (MWD), de acordo com algumas modalidades. Pode ser visto como um sistema 964 pode também formar uma porção de uma torre de perfuração 902 localizada em uma superfície 904 de um poço 906. A torre de perfuração 902 pode fornecer suporte para uma sequência de perfuração 908. O cordão mecânico de perfuração908 pode operar para penetrar uma tábua giratória 910 para perfurar um furo abaixo 912 através de formações de sub-superfície 914. O cordão mecânico de perfuração908 pode incluir a Kelly 916, tubo de perfuração 918, e uma montagem de fundo do furo 920, talvez localizados na mais baixa porção do tubo de perfuração 918.
[00071] A montagem de fundo do furo 920 pode incluir coleiras de perfuração 922, uma ferramenta de furo abaixo 924, e a broca de perfuração 926. A broca de perfuração 926 pode operar para criar um furo abaixo 912 penetrando nas formações de superfície 904 e de sub-superfície 914. A ferramenta de furo abaixo 924 pode compreender qualquer de um número de diferentes tipos de ferramentas incluindo ferramentas de MWD (Medição
Petição 870190043116, de 07/05/2019, pág. 33/42 / 30
Enquanto Perfurando), ferramentas de LWD (Registro Enquanto Perfurando), e outros.
[00072] Durante as operações de operação, o cordão mecânico de perfuração908 (talvez incluindo a Kelly 916, o tubo de perfuração 918, e a montagem de fundo do furo 920) pode ser girado através de uma tábua giratória 910. Em adição à, ou alternativamente, a montagem de fundo do furo 920 também pode ser girado por um motor (e. g., um motor de lama) que está localizado na parte de furo abaixo. As coleiras de perfuração 922 pode ser usado para adicionar peso à broca de perfuração 926. As coleiras de perfuração 922 também pode firmar a montagem de fundo do furo 920 para permitir a montagem de fundo do furo 920 transferir o peso adicionado para a broca de perfuração 926, e por sua vez, auxiliar a broca de perfuração 926 em penetrar as formações de superfície 904 e de sub-superfície 914.
[00073] Durante as operações de perfuração, uma bomba de lama 932 pode bombear fluido de perfuração (algumas vezes conhecidos por aqueles com qualificação na arte como “lama de perfuração”) a partir de uma poça de lama 934 através de uma mangueira 936 no tubo de perfuração 918 e para baixo em direção à broca de perfuração 926. O fluido de perfuração pode fluir para fora da broca de perfuração 926 e ser retornado para a superfície 904 através de uma área anular 940 entre o tubo de perfuração e os lados do furo de sondagem 912. O fluido de perfuração pode então ser retornado para a poça de lama 934, onde tal fluido é filtrado. Em algumas modalidades, o fluido de perfuração pode ser usado para esfriar a broca de perfuração 926, assim como para fornecer lubrificação para a broca de perfuração 926 durante as operações de perfuração. Adicionalmente, o fluido de perfuração pode ser usado para remover pilhas de formação de sub-superfície 914 criadas operando a broca de perfuração 926.
[00074] Na descrição, numerosos detalhes específicos tal como implementações lógicas, códigos, meios para especificar operadores, divisão
Petição 870190043116, de 07/05/2019, pág. 34/42 / 30 de recursos/compartilhamento/implementações de duplicação, tipos e interrelacionamentos de componentes de sistema, e divisão lógica/escolhas de integração são estabelecidos de modo a fornecer um mais aprofundado entendimento da presente invenção. Contudo, será apreciado, por alguém com qualificação na arte que as modalidades da invenção podem ser praticadas sem tais detalhes específicos. Em outras circunstâncias, estruturas de controle, circuitos à nível de porta lógica e sequências de instrução de software completo não foram mostrados em detalhe de modo a não obscurecer as modalidades da invenção. Aqueles de qualificação simples na arte com as descrições incluídas serão capazes de implementar as funcionalidades apropriadas sem a indevida experimentação.
[00075] Referências na especificação para “uma modalidade”, “um exemplo de modalidade”, etc., indicam que a modalidade descrita pode incluir um particular recurso, estrutura, ou característica, mas cada modalidade pode não necessariamente incluir o particular recurso, estrutura ou característica. Mais ainda, tais frases não estão necessariamente referindo à mesma modalidade. Ainda, quando um particular recurso, estrutura, ou característica é descrita em conexão com uma modalidade, é subentendido que está dentro do conhecimento de alguém com qualificação na arte para afetar tal recurso, estrutura, ou característica em conexão com outras modalidades se explicitamente descrito ou não.
[00076] Em vista da ampla variedade de permutações das modalidades aqui descritas, esta descrição detalhada é pretendida para ser somente ilustrativa, e não deve ser considerada como limitando o escopo da invenção. Por conseguinte, o que é reivindicado como a invenção, é todas tais modificações que podem vir dentro do escopo e espírito das seguintes reivindicações e equivalentes delas. Por conseguinte, a especificação e desenhos são para serem considerados em uma ilustrativa mais propriamente do que um senso restritivo.
Claims (20)
- REIVINDICAÇÕES1. Método para remotamente controlar e inspecionar um aplicativo de software, caracterizado pelo fato de compreender:receber, em um dispositivo controlador (104), uma entrada para um aplicativo de software que está sendo executado em um dispositivo controlado (106) em uma localização remota, em que uma cópia do aplicativo de software não está sendo executada no dispositivo controlador (104) e o dispositivo controlador (104) compreende um visor (204; 304) que reproduz pelo menos uma imagem gráfica, baseada em dados de reprodução sem base em pixel, ou seja, uma saída do aplicativo de software em execução no dispositivo controlado (106);transmitir, através de uma rede (102), uma identificação de um evento para o aplicativo de software, que é um resultado da entrada, para um dispositivo controlador (104) para remotamente controlar a execução de um aplicativo de software, onde a identificação do evento compreende dados para controle do aplicativo de software;processar os dados de controle para controlar a execução do aplicativo de software, incluindo fazer com que o dispositivo controlado (106) execute uma ou mais ações na localização remota selecionadas de monitorar ou controlar um ou mais parâmetros de equipamento mecânico acoplado ao dispositivo controlado (106); e transmitir um evento de atualização para o dispositivo controlador (104) em resposta ao processamento dos dados de controle no dispositivo controlado (106), em que o evento de atualização é usado para atualizar a imagem gráfica no visor (204; 304) do dispositivo controlador ( 104) baseado em dados de reprodução sem base em pixel fornecidos pelo dispositivo controlado (106).
- 2. Método de acordo com a reivindicação 1, caracterizado pelo fato de compreender adicionalmente processar, através do aplicativo dePetição 870190043116, de 07/05/2019, pág. 36/42 software no dispositivo controlado (106), os dados para controle do aplicativo de software.
- 3. Método de acordo com a reivindicação 1, caracterizado pelo fato de compreender adicionalmente monitorar ou controlar o um ou mais parâmetros de equipamento mecânico incluindo controlar uma operação em um campo de poços para recuperação de hidrocarbonetos.
- 4. Método de acordo com a reivindicação 1, caracterizado pelo fato de compreender adicionalmente a visualização da reprodução da imagem gráfica no visor (204; 304) do dispositivo controlador (104), em que a imagem gráfica é construída no dispositivo controlador (104) com base em dados de reprodução sem base em pixel recebidos do dispositivo controlado (106).
- 5. Método de acordo com a reivindicação 1, caracterizado pelo fato de compreender adicionalmente:receber, através da rede (102), dados transmitidos a partir do dispositivo controlado (106) para o dispositivo controlador (104); e descodificar uma mensagem, evento ou imagem gráfica no dispositivo controlador (104) com base nos dados recebidos do dispositivo controlado (106).
- 6. Método de acordo com a reivindicação 1, caracterizado pelo fato de compreender adicionalmente receber, no dispositivo controlador (104), uma pluralidade de entradas para uma pluralidade de aplicativos de software que estão sendo executados em um ou mais dispositivos controlados (106) no local remoto.
- 7. Método de acordo com a reivindicação 1, caracterizado pelo fato de que a entrada recebida no dispositivo controlador (104) é gerada, pelo menos em parte, a partir da entrada do usuário local no local remoto e inserida usando o dispositivo controlado (106).
- 8. Método de acordo com a reivindicação 1, caracterizado peloPetição 870190043116, de 07/05/2019, pág. 37/423 / 7 fato de compreender adicionalmente transmitir, através da rede (102), uma identificação do aplicativo de software sendo executado no dispositivo controlado (106) para pelo menos um segundo dispositivo controlador (104).
- 9. Método de acordo com a reivindicação 1, caracterizado pelo fato de compreender adicionalmente transmitir, através da rede (102), uma ou mais mensagens de silvo a partir do dispositivo controlador (104) para o dispositivo controlado (106) para estabelecer comunicação com o dispositivo controlado (106).
- 10. Meio de armazenamento não-transitório legível por máquina, caracterizado pelo fato de que quando lido através de uma máquina força a máquina a efetuar operações de:receber, através de um dispositivo controlado (106), uma identificação de um ou mais eventos usados para controlar um aplicativo de software sendo executado no dispositivo controlado (106), onde a identificação do um ou mais eventos é baseada em uma entrada de um dispositivo controlador (104) que está remoto a partir do dispositivo controlado (106), onde o dispositivo controlado (106) compreende um visor (204; 304) que reproduz pelo menos uma imagem gráfica que é uma saída de um aplicativo de software sendo executado no dispositivo controlado (106), onde o dispositivo controlado (106) não fornece dados de reprodução com base em pixel para o dispositivo controlador (104) para reprodução da imagem gráfica para o aplicativo de software;monitorar ou controlar um ou mais parâmetros de equipamento mecânico acoplado ao dispositivo controlado (106) com a execução do aplicativo de software; e transmitir um evento de atualização para o dispositivo controlador (104) em resposta ao processamento da identificação do um ou mais eventos no dispositivo controlado (106), em que o evento de atualização é usado para atualizar a imagem gráfica no visor (204; 304) do dispositivoPetição 870190043116, de 07/05/2019, pág. 38/424 / 7 controlador (104) baseado em dados de reprodução sem base em pixel fornecidos a partir do dispositivo controlado (106).
- 11. Meio de armazenamento legível por máquina de acordo com a reivindicação 10, caracterizado pelo fato de que a entrada é gerada a partir de uma entrada de usuário no dispositivo controlador (104), onde a entrada de usuário é introduzida usando a reprodução da imagem gráfica no visor (204; 304) do dispositivo controlador (104).
- 12. Meio de armazenamento legível por máquina de acordo com a reivindicação 11, caracterizado pelo fato de que a entrada de usuário é proveniente de um grupo consistindo de uma seleção de um botão sendo exibido na reprodução da imagem gráfica, uma entrada de dados em uma caixa de texto sendo exibida na reprodução da imagem gráfica, uma entrada de dados de voz de um microfone e entrada de dados de um arquivo de dados.
- 13. Aparelho para remotamente controlar e inspecionar um aplicativo de software, caracterizado pelo fato de compreender:um dispositivo controlador (104) compreendendo:um visor (204; 304) configurado para emitir uma imagem gráfica, baseada em dados sem base em pixel, reproduzindo uma saída gráfica para um aplicativo de software sendo executado em um dispositivo controlado (106) em uma localização remota; e um módulo de controle de aplicativo operativamente acoplado ao processador e ao visor (204; 304), o módulo de controle de aplicativo operado em conexão com o processador e configurado para processar uma entrada, inserida no dispositivo controlador (104), para controle do aplicativo de software na localização remota, onde o aplicativo de software não está sendo executado no dispositivo controlador (104), onde o módulo de controle de aplicativo é configurado para transmitir, através de uma rede (102), uma identificação de um evento para o aplicativo de software, que é a resultado da entrada, onde a identificação do evento compreende dados para controle doPetição 870190043116, de 07/05/2019, pág. 39/425 / 7 aplicativo de software;em que os dados para controle do aplicativo de software são fornecidos a partir do dispositivo controlador (104) e estão configurados para serem processados no dispositivo controlado (106) para executar uma ou mais ações na localização remota, as uma ou mais ações incluindo monitorar ou controlar um ou mais parâmetros de equipamento mecânico acoplado ao dispositivo controlador (104); e em que o dispositivo controlador (104) é configurado para receber um evento de atualização, transmitido pelo dispositivo controlado (106), em resposta ao processamento dos dados de controle do aplicativo de software no dispositivo controlado (106), em que o evento de atualização é usado para atualizar o imagem gráfica no visor (204; 304) do dispositivo controlador (104) com base em dados de reprodução sem base em pixel.
- 14. Aparelho de acordo com a reivindicação 13, caracterizado pelo fato de que o aplicativo de software é configurado para controlar e monitorar uma ou mais operações do equipamento mecânico em um campo de poços para recuperação de hidrocarbonetos.
- 15. Aparelho para remotamente controlar e inspecionar um aplicativo de software, caracterizado pelo fato de compreender:um dispositivo controlado (106) compreendendo:um processador para executar um aplicativo de software que é controlável por um dispositivo controlador (104) acoplado ao dispositivo controlado (106) através de uma rede (102), onde o aplicativo de software é configurado para receber uma mensagem de evento que inclui entrada para o aplicativo a partir do dispositivo controlador (104), onde o dispositivo controlador (104) gera entrada para o aplicativo de software independente da execução do aplicativo de software, em que a mensagem de evento compreende uma identificação da entrada e dados para a entrada;em que a execução do aplicativo de software, incluindo oPetição 870190043116, de 07/05/2019, pág. 40/42 processamento da identificação da entrada, resulta em monitorar ou controlar um ou mais parâmetros de equipamento mecânico acoplado ao dispositivo controlado (106);em que o dispositivo controlado (106) é configurado para fornecer dados de reprodução sem base em pixel para o dispositivo controlador (104) para exibição de uma imagem gráfica que é uma saída do aplicativo de software; e em que o dispositivo controlado (106) está ainda configurado para transmitir um evento de atualização para o dispositivo controlador (104) em resposta ao processamento da identificação da entrada, em que o evento de atualização é utilizado para atualizar a imagem gráfica exibida baseada em dados de reprodução sem base em pixel.
- 16. Aparelho de acordo com a reivindicação 15, caracterizado pelo fato de que a mensagem de evento não inclui dados de reprodução com base em pixel.
- 17. Aparelho de acordo com a reivindicação 15, caracterizado pelo fato de que o aplicativo de software é configurado para transmitir uma diferente mensagem de evento para o dispositivo controlador (104), a diferente mensagem de evento usada para atualizar uma reprodução de uma imagem gráfica em um visor (204; 304) do dispositivo controlador (104), onde a imagem gráfica compreende uma saída gráfica para o aplicativo de software.
- 18. Aparelho de acordo com a reivindicação 17, caracterizado pelo fato de que a diferente mensagem de evento é fornecida em resposta à mensagem de evento que inclui a entrada para o aplicativo de software.
- 19. Aparelho de acordo com a reivindicação 15, caracterizado pelo fato de que o dispositivo controlado (106) é configurado para processar uma pluralidade de mensagens de evento recebidas pelo aplicativo de software, incluindo identificar se uma mensagem de evento está solicitandoPetição 870190043116, de 07/05/2019, pág. 41/42 dados relativos a um estado do aplicativo de software.
- 20. Aparelho de acordo com a reivindicação 15, caracterizado pelo fato de que controlar um ou mais parâmetros de equipamento mecânico inclui alterar um ou ambos os fluxos de fluido ou rotação da coluna de perfuração em um campo de poços para perfuração, avaliação ou recuperação de hidrocarbonetos do fundo do poço.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/700392 | 2007-01-31 | ||
US11/700,392 US8095936B2 (en) | 2007-01-31 | 2007-01-31 | Remotely controlling and viewing of software applications |
PCT/US2008/001119 WO2008094521A2 (en) | 2007-01-31 | 2008-01-29 | Remotely controlling and viewing of software applications |
Publications (2)
Publication Number | Publication Date |
---|---|
BRPI0806084A2 BRPI0806084A2 (pt) | 2011-08-30 |
BRPI0806084B1 true BRPI0806084B1 (pt) | 2019-08-20 |
Family
ID=39363902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BRPI0806084-3A BRPI0806084B1 (pt) | 2007-01-31 | 2008-01-29 | Método para remotamente controlar e inspecionar um aplicativo de software, meio de armazenamento não-transitório legível por máquina, e, aparelho para remotamente controlar e inspecionar um aplicativo de software |
Country Status (7)
Country | Link |
---|---|
US (1) | US8095936B2 (pt) |
AR (1) | AR065117A1 (pt) |
AU (1) | AU2008211210B2 (pt) |
BR (1) | BRPI0806084B1 (pt) |
GB (1) | GB2459804B (pt) |
MY (1) | MY150324A (pt) |
WO (1) | WO2008094521A2 (pt) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8095936B2 (en) | 2007-01-31 | 2012-01-10 | Halliburton Energy Services, Inc. | Remotely controlling and viewing of software applications |
US20090284476A1 (en) * | 2008-05-13 | 2009-11-19 | Apple Inc. | Pushing a user interface to a remote device |
US20100293462A1 (en) * | 2008-05-13 | 2010-11-18 | Apple Inc. | Pushing a user interface to a remote device |
US9870130B2 (en) | 2008-05-13 | 2018-01-16 | Apple Inc. | Pushing a user interface to a remote device |
US9311115B2 (en) | 2008-05-13 | 2016-04-12 | Apple Inc. | Pushing a graphical user interface to a remote device with display rules provided by the remote device |
US8970647B2 (en) * | 2008-05-13 | 2015-03-03 | Apple Inc. | Pushing a graphical user interface to a remote device with display rules provided by the remote device |
US9122545B2 (en) * | 2010-02-17 | 2015-09-01 | Qualcomm Incorporated | Interfacing a multimedia application being executed on a handset with an independent, connected computing device |
US9191266B2 (en) | 2012-03-23 | 2015-11-17 | Petrolink International | System and method for storing and retrieving channel data |
US9512707B1 (en) | 2012-06-15 | 2016-12-06 | Petrolink International | Cross-plot engineering system and method |
US9518459B1 (en) | 2012-06-15 | 2016-12-13 | Petrolink International | Logging and correlation prediction plot in real-time |
JP6278628B2 (ja) * | 2013-07-18 | 2018-02-14 | キヤノン株式会社 | 情報処理装置、情報処理方法、及びプログラム |
US10590761B1 (en) | 2013-09-04 | 2020-03-17 | Petrolink International Ltd. | Systems and methods for real-time well surveillance |
US10428647B1 (en) | 2013-09-04 | 2019-10-01 | Petrolink International Ltd. | Systems and methods for real-time well surveillance |
US10443357B2 (en) * | 2014-06-23 | 2019-10-15 | Rockwell Automation Asia Pacific Business Center Pte. Ltd. | Systems and methods for cloud-based commissioning of well devices |
US20160154481A1 (en) * | 2014-12-02 | 2016-06-02 | Comcast Cable Communications, Llc | Intelligent illumination of controllers |
US20230004476A1 (en) * | 2021-07-01 | 2023-01-05 | Hewlett-Packard Development Company, L.P. | Application failure tracking features |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0475581A3 (en) * | 1990-08-30 | 1993-06-23 | Hewlett-Packard Company | Method and apparatus for window sharing between computer displays |
US5134495A (en) * | 1990-11-07 | 1992-07-28 | Dp-Tek, Inc. | Resolution transforming raster-based imaging system |
US5909545A (en) * | 1996-01-19 | 1999-06-01 | Tridia Corporation | Method and system for on demand downloading of module to enable remote control of an application program over a network |
US5801689A (en) * | 1996-01-22 | 1998-09-01 | Extended Systems, Inc. | Hypertext based remote graphic user interface control system |
US6456892B1 (en) | 1998-07-01 | 2002-09-24 | Sony Electronics, Inc. | Data driven interaction for networked control of a DDI target device over a home entertainment network |
US6587125B1 (en) | 2000-04-03 | 2003-07-01 | Appswing Ltd | Remote control system |
DE60136247D1 (de) | 2000-06-16 | 2008-12-04 | Microsoft Corp | System und Verfahren zur interaktiven Kommunikation zwischen Objekten in einer verteilten Rechnerumgebung |
KR100667742B1 (ko) * | 2000-08-23 | 2007-01-11 | 삼성전자주식회사 | 제어기기의 적어도 하나 이상의 피제어기기 제어 방법 |
US7139834B1 (en) * | 2001-04-26 | 2006-11-21 | Avvenu, Inc. | Data routing monitoring and management |
US20030061279A1 (en) * | 2001-05-15 | 2003-03-27 | Scot Llewellyn | Application serving apparatus and method |
JP3574106B2 (ja) * | 2001-12-14 | 2004-10-06 | 株式会社スクウェア・エニックス | ネットワークゲームシステム、ゲームサーバ装置、ビデオゲーム装置、ネットワークゲームにおけるメッセージの送信方法及び表示制御方法、プログラム、並びに記録媒体 |
JP3893350B2 (ja) * | 2002-11-29 | 2007-03-14 | キヤノン株式会社 | 符号化データ変換装置及びその方法 |
US6968905B2 (en) * | 2003-03-18 | 2005-11-29 | Schlumberger Technology Corporation | Distributed control system |
US20050146507A1 (en) * | 2004-01-06 | 2005-07-07 | Viredaz Marc A. | Method and apparatus for interfacing with a graphical user interface using a control interface |
US7953587B2 (en) * | 2006-06-15 | 2011-05-31 | Schlumberger Technology Corp | Method for designing and optimizing drilling and completion operations in hydrocarbon reservoirs |
US8095936B2 (en) | 2007-01-31 | 2012-01-10 | Halliburton Energy Services, Inc. | Remotely controlling and viewing of software applications |
-
2007
- 2007-01-31 US US11/700,392 patent/US8095936B2/en active Active
-
2008
- 2008-01-29 WO PCT/US2008/001119 patent/WO2008094521A2/en active Application Filing
- 2008-01-29 MY MYPI20093093A patent/MY150324A/en unknown
- 2008-01-29 AU AU2008211210A patent/AU2008211210B2/en not_active Ceased
- 2008-01-29 BR BRPI0806084-3A patent/BRPI0806084B1/pt not_active IP Right Cessation
- 2008-01-29 GB GB0914768A patent/GB2459804B/en active Active
- 2008-01-31 AR ARP080100405A patent/AR065117A1/es not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
GB0914768D0 (en) | 2009-09-30 |
WO2008094521A2 (en) | 2008-08-07 |
MY150324A (en) | 2013-12-31 |
US8095936B2 (en) | 2012-01-10 |
WO2008094521A3 (en) | 2008-10-23 |
GB2459804B (en) | 2011-11-02 |
AU2008211210B2 (en) | 2011-04-28 |
AU2008211210A1 (en) | 2008-08-07 |
BRPI0806084A2 (pt) | 2011-08-30 |
GB2459804A (en) | 2009-11-11 |
AR065117A1 (es) | 2009-05-20 |
US20080184269A1 (en) | 2008-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BRPI0806084B1 (pt) | Método para remotamente controlar e inspecionar um aplicativo de software, meio de armazenamento não-transitório legível por máquina, e, aparelho para remotamente controlar e inspecionar um aplicativo de software | |
US20080181230A1 (en) | Remote monitoring of wellsite data | |
CN104346153B (zh) | 用于翻译应用程序的文本信息的方法和系统 | |
US8135862B2 (en) | Real-time, bi-directional data management | |
US9959022B2 (en) | Systems and methods for displaying wells and their respective status on an electronic map | |
US11519257B2 (en) | Automatic slips detection system for the optimization of real-time drilling operations | |
US11475316B2 (en) | Intelligent drilling rig control system commissioning, diagnostics and maintenance | |
CN105209714A (zh) | 编译来自异类数据源的钻井场景数据 | |
US11431584B2 (en) | Dynamic golden baseline | |
Mason et al. | New real-time casing running advisory system reduces NPT | |
US11637758B2 (en) | Dynamic dataview templates | |
US11689430B2 (en) | Dataview drilldown menu | |
US20200057569A1 (en) | System and method for secure data replication on drilling management systems | |
WO2021033110A1 (en) | System and method for programming devices | |
US20240026784A1 (en) | System and method for rapid well log validation | |
US11765015B2 (en) | Network management apparatus, method, and program | |
Crkvenjakov et al. | Evolution of a Wells Decision Support Center as a Hub for Operational Excellence | |
US20240193505A1 (en) | Embedded milestone status | |
US11086481B2 (en) | Displaying data for a preferred well | |
EP3748504A1 (en) | Computer network monitoring using dataview detail panes | |
WO2024130240A1 (en) | Systems and methods for providing a user interface for automation workflows for controlling through-the-bit applications | |
WO2021195242A1 (en) | Virtual machine bootstrap agent | |
Grenadier et al. | A New Wellsite Information System To Aid the Drilling Process | |
Upchurch et al. | Under-Rig-Floor Openhole Logging in the Gulf of Thailand: Operational Implementation of the Oil Industry's First Simultaneous Openhole Wireline Logging and Drilling Operation | |
EP2097772A1 (en) | Generating a geographic representation of a network of seismic devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B06T | Formal requirements before examination [chapter 6.20 patent gazette] |
Free format text: PARECER 6.20 |
|
B06A | Patent application procedure suspended [chapter 6.1 patent gazette] | ||
B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 20/08/2019, OBSERVADAS AS CONDICOES LEGAIS. (CO) 10 (DEZ) ANOS CONTADOS A PARTIR DE 20/08/2019, OBSERVADAS AS CONDICOES LEGAIS |
|
B21F | Lapse acc. art. 78, item iv - on non-payment of the annual fees in time |
Free format text: REFERENTE A 13A ANUIDADE. |
|
B24J | Lapse because of non-payment of annual fees (definitively: art 78 iv lpi, resolution 113/2013 art. 12) |
Free format text: EM VIRTUDE DA EXTINCAO PUBLICADA NA RPI 2616 DE 23-02-2021 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDA A EXTINCAO DA PATENTE E SEUS CERTIFICADOS, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013. |