BRPI0611320A2 - atualizacão automática de variáveis em uma linguagem de dados - Google Patents

atualizacão automática de variáveis em uma linguagem de dados Download PDF

Info

Publication number
BRPI0611320A2
BRPI0611320A2 BRPI0611320-6A BRPI0611320A BRPI0611320A2 BR PI0611320 A2 BRPI0611320 A2 BR PI0611320A2 BR PI0611320 A BRPI0611320 A BR PI0611320A BR PI0611320 A2 BRPI0611320 A2 BR PI0611320A2
Authority
BR
Brazil
Prior art keywords
dynamic variable
value
dynamic
data language
variable
Prior art date
Application number
BRPI0611320-6A
Other languages
English (en)
Inventor
Stefan Geoffrey Butlin
Nicholas Carl Brook
Nick Clarey
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of BRPI0611320A2 publication Critical patent/BRPI0611320A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/543Local
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

ATtJALIZAcãO AUTOMáTICA DE VARIáVEIS EM UMA LINGUAGEM DE DADOS. sao descritos vários métodos e equipamentos para atualizacao automática de variáveis em uma linguagem de dados. Uma variável dinâmica é atualizada por efetuar parse de uma instrucao gravada na linguagem de dados contendo a variável dinâmica, criar a variável dinâmica em memoria, atribuir um valor para a variável dinâmica, e atualizar o valor da variável dinâmica sem efetuar parse da instrucao gravada na linguagem de dados contendo a variável dinâmica. A variável dinâmica também pode ser atualizada pela criacao de um objeto associado ao valor dinâmico, em que o objeto determina o valor da variável dinâmica. Além disso, uma observacao de um valor de funcao pode ser associada à variável dinâmica e entóo uma notificacao é dada ao objeto quando o valor de funcao foi alterado.

Description

"ATUALIZAÇÃO AUTOMATICA DE VARIAVEIS EM UMA LINGUAGEM DE DADOS"
REFERÊNCIA REMISSIVA A PEDIDO RELACIONADO
Esse pedido reivindica beneficio do Pedidoprovisional US n°. de série 60/686.271, depositado em 31 demaio de 2005, que é incorporado pelo presente a titulo dereferência na integra.
FUNDAMENTOS DA INVENÇÃO
CAMPC DA INVENÇÃO
A presente invenção refere-se genericamente aprocessamento variável de aplicativos de software. Maisparticularmente, a invenção refere-se a variáveis dinâmicasde processamento em uma linguagem de dados.
DESCRIÇÃO DA TÉCNICA RELACIONADA
Linguagens de dados estão se tornando um modomais difuso de programar. Linguagens de dados incluemlinguagens markup, como aquelas baseadas em XML, incluindoHTML e TRIGML® (pertencente à QUALCOMM Incorporated).Linguagens de dados são utilizadas extensamente naprogramação de aplicativos baseadas em rede, porém, não sãolimitadas às mesmas. Os exemplos de funções implementadasutilizando linguagens baseadas em XML incluem programas deprocessamento de transações e faturamento.
Linguagens de dados são de naturezainterpretativa. Uma passagem é feita através do programa delinguagem de dados e, por exemplo, uma página de rede éexibida utilizando elementos definidos no programa. Oprograma pode definir os elementos utilizados bem como ascaracterísticas do elemento com relação a como eles podemser exibidos. Essas linguagens também podem ser utilizadasna geração de interfaces de usuário.
Surgem dificuldades no uso de linguagens dedados, como com o tratamento de variáveis. Como XML é denatureza interpretativa, variáveis que são dinâmicas nãopodem ser alteradas após definição da variável. Algumastentativas para resolver esses problemas através do uso deJava scripts. Entretanto, Java scripts não modifica avariável até que o código seja executado novamente e algodeve acionar o Java script para ser executado novamente.Não há acionamento automático. Em outras palavras o códigode programa contendo o Java script deve ser executadonovamente para determinar o novo valor de variável. Se avariável for dinâmica e em alteração, a variável utilizadano Java script não será atualizada até que o código sejaexecutado novamente.
Outra dificuldade no uso de linguagens de dados éque elas não permitem acesso às funções de plataforma deprocessador ou computador, subjacente. Por exemplo, casodeseje utilizar uma linguagem de dados display um icone debateria indicando o nivel de bateria, não há mecanismo nalinguagem de dados para acessar o nivel de bateria comosabido para a plataforma. Os Java scripts também apresentamesse problema de não ter a capacidade de acessar funções deplataforma/computador.
Conseqüentemente há necessidade na técnica defornecer métodos e equipamentos que permitam a avaliação deexpressões contendo variáveis dinâmicas. Alem disso, hánecessidade de se ter um método e equipamento que forneçamacesso às funções de nivel de plataforma/computador.
SUMÁRIO DA INVENÇÃO
Sistemas e métodos compatíveis com a presenteinvenção superam as desvantagens de sistemas existentespela criação de sistemas, métodos e equipamentos queavaliam variáveis dinâmicas e acessam funções subjacentesda plataforma de computador.Em uma modalidade da presente invenção umaexpressão tendo uma variável dinâmica gravada em umalinguagem de dados é avaliada pelo recebimento da variáveldinâmica, determinação de um primeiro valor da variáveldinâmica, avaliação da expressão utilizando o primeirovalor, e detecção de uma alteração associada à variáveldinâmica. Apos receber um segundo valor associado àvariável dinâmica e avaliar a expressão utilizando osegundo valor associado à variável dinâmica; a expressão éavaliada utilizando o segundo valor sem reinterpretar outrocódigo de programa contendo a expressão.
Em outra modalidade, uma variável dinâmica éatualizada por efetuar parse de uma instrução gravada nalinguagem de dados contendo a variável dinâmica, criação davariável dinâmica na memória, atribuição de um valor para avariável dinâmica, e atualização do valor de variáveldinâmica sem efetuar parse da instrução gravada nalinguagem de dados contendo a variável dinâmica. A variáveldinâmica também pode ser atualizada pela criação de umobjeto associado ao valor dinâmico, onde o objeto determinao valor da variável dinâmica. Além disso, uma observação deum valor de função pode ser associada à variável dinâmica eentão uma notificação é dada ao objeto quando o valor defunção foi alterado.
Ainda em outra modalidade um equipamento paraatualizar uma variável dinâmica em uma linguagem de dados,compreende uma localização de memória atribuível a umavariável dinâmica, onde a variável dinâmica foi atribuída àlocalização de memória em resposta a efetuar parse de umainstrução em uma linguagem de dados e um processador paraavaliar atualizações para a variável dinâmica.
Ainda em outra modalidade um meio legível porcomputador contendo instruções executáveis por computadorpara atualizar uma variável dinâmica gravada em umalinguagem de dados, que quando executada desempenha asetapas compreende efetuar parse de uma instrução gravada nalinguagem de dados contendo a variável dinâmica, criar avariável dinâmica em memória, atribuir um valor para avariável dinâmica, e atualizar o valor de variável dinâmicasem efetuar parse da instrução gravada na linguagem dedados contendo a variável dinâmica.
Outros objetivos, vantagens e características dapresente invenção se tornarão evidentes após exame da BreveDescrição dos desenhos, Descrição Detalhada da Invenção eReivindicações, expostas a seguir.
BREVE DESCRIÇÃO DOS DESENHOS
Com referência às figuras nas quais numeraissimilares representam elementos similares do início ao fim:
A figura 1 é um diagrama funcional de um ambientede comunicação no qual os dispositivos podem operar em umamodalidade da presente invenção;
Ά figura 2 é um diagrama de blocos funcionalilustrando genericamente os componentes de um dispositivomóvel de amostra em uma modalidade da presente invenção;
A figura 3 é um diagrama de blocos funcionalilustrando genericamente os componentes de um dispositivode computação de amostra em uma modalidade da presenteinvenção;
A figura 4 é um diagrama de blocos ilustrando umaarquitetura de aplicativo de uma plataforma de computadorem uma modalidade da presente invenção;
A figura 5 é um diagrama de blocos ilustrando osistema de atualizar componentes de interface de usuário euma arquitetura representando um trigplayer, atores e trigsem uma modalidade da presente invenção;A figura 6 é um diagrama de blocos ilustrando ocódigo TrigML de associação, objetos e atores em umamodalidade da presente invenção; e
A figura 7 é um fluxograma representando oprocesso de avaliar uma expressão dinâmica em umamodalidade da presente invenção.
DESCRIÇÃO DETALHADA
Será feita agora referência em detalhe amodalidades atualmente exemplares e preferidas da invençãocomo ilustrado nos desenhos em anexo, nos quais caracteresde referência similares designam partes similares oucorrespondentes em todos os vários desenhos. A natureza,objetivos e vantagens da presente invenção tornar-se-ãomais evidentes para aqueles versados na técnica apósconsiderar a seguinte descrição detalhada com relação aosdesenhos em anexo.
Com relação ao uso de termos, nessa descrição, ostermos: "dispositivo sem fio", "telefone sem fio", e"dispositivo móvel" são utilizados de forma intercambiável.O termo "aplicativo", conforme utilizado aqui pretendeabranger arquivos de software executáveis, e nãoexecutáveis; dados brutos; dados agregados; correções;conteúdo; interfaces de usuário e componentes de interfacede usuário, e outros segmentos de código. Além disso,numerais similares se referem a elementos similares emtodas as várias vistas, e os artigos "um", e "o, a" incluemreferências no plural a menos que de outro modoespecificado na descrição.
TrigML é uma linguagem acionada por dados útil nodesenvolvimento de Interfaces de Usuário. TrigML é umproduto pertencente a QUALCOMM Corporation. Como linguagensde dados definidas de acordo com XML, o código TrigMLinclui o uso de indicadores. Embora modalidades sejamdescritas no contexto de TrigML para uma interface deusuário em um dispositivo sem fio, será reconhecido queisso é somente para fins descritivos e não uma limitação dainvenção. 0 equipamento e métodos descritos aqui também sãoaplicáveis em ambientes de interface de não usuário e, comomencionado acima, naqueles utilizando ambientes utilizandouma linguagem de dados diferentes.
A figura 1 é um diagrama funcional de um ambientede comunicação 100 no qual os dispositivos podem operar emuma modalidade da presente invenção. Nesse exemplo, oambiente de comunicação 100 inclui uma rede sem fio 122. Arede sem fio 122 pode ser uma rede de comunicação operadapor um provedor de serviço sem fio para fornecer dados ouconectividade de telecomunicação com dispositivos móveis.
Além disso, a rede sem fio 122 pode também incluir redescom fio, Internet, Redes remotas, Rede Telefônica decomutação pública (PSTN) e outras redes públicas e/ouprivadas de modo que dispositivos possam se comunicardireta ou indiretamente utilizando outros dispositivosconectados a essas redes.
Em um exemplo, a rede sem fio 122 pode incluiruma rede de telefone celular. Vários dispositivos móveisestão em comunicação com a rede sem fio 122, como umtelefone celular 112, um computador laptop 116, um PDA 118,e um dispositivo de troca de mensagens móvel 120. Essesdispositivos são mostrados somente como ilustrativos dosmuitos tipos de dispositivos que podem se comunicar atravésda rede sem fio 122.
São ilustrados na figura 1 um servidor deaplicativo 124 e um servidor de interface de usuário 126. 0servidor de interface de usuário 126 é um dispositivo decomputação que serve componentes de interface de usuário130 (descritos em mais detalhe abaixo). Esses componentesde interface de usuário 130 podem ser transferidos paraoutros dispositivos conectados à rede sem fio 122. Oscomponentes de interface de usuário incluem código e/oudados para fazer uma interface de usuário (como chamadas defunção, menu, código para chamadas de conteúdo, skins,etc.). Observar que muitos outros servidores podem serutilizados conectados à rede para fornecer informaçõesincluindo servidores de conteúdo. 0 tipo de informação quepode ser tornada disponível é ilimitado e muitos exemplosdiferentes serão evidentes para aqueles versados natécnica. O servidor de interface de usuário 126 incluisoftware de servidor que é configurado para fornecer oscomponentes de interface de usuário 130 a dispositivossolicitantes através da rede sem fio 122.
0 servidor de aplicativo 124 é um dispositivo ousistema de computação acoplado à rede sem fio 122 que tornaos aplicativos de software 128 disponíveis para downloadpelos dispositivos móveis. Dito de termos gerais, osaplicativos 128 podem ser transferidos pelos dispositivosconectados à rede sem fio 122, como o telefone celular 112,para execução nesses dispositivos. Nessa implementaçãoespecífica, pelo menos um dos aplicativos 128 servidos peloservidor de download de aplicativo 124 é um aplicativobaseado em conteúdo configurado para execução pelo menos emum dos dispositivos móveis. 0 aplicativo baseado emconteúdo (o cliente) é configurado para recuperar conteúdoa partir do servidor de conteúdo (não mostrado) paraapresentação pelo dispositivo móvel através de umainterface de usuário.
A figura 2 é um diagrama de blocos funcionalilustrando geralmente os componentes de um dispositivomóvel de amostra 201, em uma modalidade da presenteinvenção. O dispositivo móvel, 201, poderia ser qualquerdispositivo tendo funcionalidade de computação, como umtelefone celular, um assistente pessoal digital, umdispositivo "palmtop" portátil, um computador laptop, umreprodutor de música portátil, um dispositivo de satélitede posicionamento global (GPS), ou similar.
O dispositivo móvel 201 tem uma plataforma decomputador 250 que pode receber e executar aplicativos desoftware e display dados. A plataforma de computador 250inclui um processador 252, como um circuito integrado deaplicativo especifico "ASIC", processador de sinaisdigitais ("DSP"), microprocessador, microcontrolador,circuito lógico, máquina de estado, ou outro dispositivo deprocessamento de dados. O processador 252 executa a camadade interface de programação de aplicativo ("API") 254 querealiza interface com quaisquer programas residentes namemória 256 do dispositivo móvel. A memória 256 podeincluir memória de acesso aleatório ou somente de leitura(RAM OU ROM), EPROM, EPPROM, memória flash, ou qualquermemória comum a plataformas de computador. A plataforma decomputador 250 também inclui um meio de armazenamento local258, o qual pode reter aplicativos de software, arquivos,ou dados que não ativamente utilizados na memória 256, comoaplicativos de software ou componentes de interface deusuário transferidos a partir do servidor de interface deusuário 126 (figura 1). 0 armazenamento local 258 étipicamente compreendido de uma ou mais células de memóriaflash, porém pode ser qualquer dispositivo de armazenamentosecundário ou terciário como conhecido na técnica, comomeios magnéticos, EPR0M, EEPROM, meios ópticos, fita, oudisco flexível ou rígido.
A plataforma de computador 250 também inclui umdisplay 260 que pode ser utilizado pelos aplicativos desoftware para exibir dados utilizando a interface deusuário (não mostrada).
Os componentes mostrados na figura 2 são típicosde rr.uitos tipos de dispositivos móveis, porém, seráreconhecido que outros componentes podem ser adicionados aodispositivo móvel 201 e em certos casos, alguns componentesmostrados na figura 2 podem ser omitidos a partir dodispositivo móvel 201.
A figura 3 é um diagrama de blocos funcionalilustrando genericamente os componentes de núcleo de umdispositivo de computação de amostra 301, em uma modalidadeda presente invenção. 0 dispositivo de computação 301 podeser qualquer dispositivo de computação fixo, como umservidor ou computador de mesa (desktop).
Nesse exemplo, o dispositivo de computação 301inclui uma unidade de processador 304, uma memória 306, ummeio de armazenamento 313, e uma unidade de áudio 331. Aunidade de processador 304 inclui vantajosamente ummicroprocessador ou um processador de finalidade especialcomo um processador de sinais digitais (DSP) , porém podemna alternativa ser qualquer forma convencional deprocessador, controlador, microcontrolador ou máquina deestado. A unidade de processador 304 é acoplada à memória306, que é vantajosamente implementada como memória RAMretendo instruções de software que são executadas pelaunidade de processador 304. Em uma modalidade alternativa,a memória 306 poderia ser composta de firmware ou memóriaflash. Nessa modalidade, as instruções de softwarearmazenadas na memória 30 6 incluem um sistema operacional310 e uma ou mais outras aplicativos 312, como umaplicativo empregando uma interface de usuário (nãomostrada).O dispositivo móvel 301 também inclui um módulode comunicação 321 que habilita comunicação bidirecionalentre o dispositivo de computação 301 e um ou mais outrosdispositivos de computação, como o dispositivo móvel. Omódulo de comunicação 321 pode incluir componentes parahabilitar RF ou outra comunicação sem fio, como uma rede detelefone celular, conexão Bluetooth, rede de área local semfio, ou talvez uma rede remota sem fio. Alternativamente, omódulo de comunicação 321 pode incluir componentes parahabilitar comunicação de rede por fio ou por ligaçãofísica, como uma conexão Ethernet, conexão RJ-11, conexãode barramento serial universal, conexão IEEE 1394(Firewire), ou similar. Essas são destinadas como listasnão exaustivas e muitas outras alternativas são possíveis.A unidade de áudio 331 é um componente do dispositivo móvel301 que é configurado para converter sinais entre formatoanalógico e digital. A unidade de áudio 331 é utilizadapelo dispositivo móvel 301 para transmitir som utilizandoum alto-falante 332 e receber sinais de entrada a partir deum microfone 333.
A figura 3 ilustra somente certos componentes quesão geralmente encontrados em muitos dispositivos decomputação convencionais. Muitos outros componentes sãotambém rotineiramente encontrados em implementaçõesespecíficas, e em certos casos, alguns componentesmostrados na figura 3 podem ser omitidos. Entretanto, odispositivo de computação 301 mostrado na figura 3 é típicodos dispositivos de computação comumente encontrados hojeem dia.
A figura 4 ilustra uma arquitetura de aplicativode um dispositivo em uma modalidade da presente invenção.O dispositivo incluirá uma "plataforma de computador". Umaplataforma de computador pode se referir aos componentes dodispositivo incluindo hardware, software ou ambos. Porexemplo, pode incluir o sistema operacional, os componentesde hardware subjacentes, incluindo o chip, hardware deinterface de usuário (por exemplo, displays, dispositivosde entrada e saida), bibliotecas, APIs de suporte,extensões adicionais ao sistema operacional, etc.
Em uma modalidade, a arquitetura de aplicativo400 de um dispositivo sem fio inclui APIs de dispositivo405, APIs brew 410, Extensões de BREW 415, um Trigplayer420, Actors 425, e Trigs 430. Os APIs de dispositivo 405podem incluir aqueles APIs utilizados por uma plataforma desoftware para endereçar funções associadas especificamenteàquele dispositivo, como processador especifico ou funçõesASIC, funcionalidade de hardware de dispositivo especifico,etc.
Os APIs BREW 410 é uma plataforma de softwaredesenvolvida por QUALCOMM Incorporated. Os APIs BREW 410fornecem a capacidade de aplicativos chamarem APIs dedispositivo 405 e outras funções sem terem de ser gravadosespecificamente para o dispositivo. Em outras palavras,abstrai os aspectos específicos do hardware a partir doaplicativo, desse modo, permitindo que um aplicativo sejagravado para muitos dispositivos sem ter de moldar, ouexigir somente leve moldagem, para cada dispositivoespecífico no qual o aplicativo executa.
Uma extensão BREW 415 provê a capacidade deadicionar capacidade adicional à plataforma BREW, comooferta de reprodutores de MP3, Java Virtual Machines, etc.
Um TrigPlayer 420, Trigs 430 e Actors 425 sãocomponentes da arquitetura uiOne™ desenvolvida porQUALCOMM Incorporated. Esses componentes referem-setipicamente a aspectos de interface de usuário dodispositivo 400. Em uma modalidade, os Trigs 430 sãocompilados código TrigML(R), e outros recursos (que podemincluir metadados, arquivos de texto e imagens) utilizadospor uma aplicativo para fazer uma interface de usuário nodispositivo 400. Múltiplos Trigs 430 e atualizações paraTrigsf mencionados como Triglets (não mostrados) podem serutilizados para a interface de usuário.
Código TrigML, pertencente a QUALCOMMIncorporated, é uma linguagem de dados baseada em XML epode ser utilizada para linguagem de apresentação deinterface de usuário para authoring Trigs 430 e incluivantagens de funcionalidade direcionada a móvel, um modelode evento de interface de usuário interativo, eposicionamento de pixel entre outras vantagens.
Actors 425 incluem código C subjacente paraconectar Trigs a APIs de Dispositivo subjacentes 405 e/ouAPIs de BREW 410. Actors 425 podem servir também comoexecutáveis para entrada/saida. E como os actorsconectam-se aos APIS de BREW e Dispositivos subjacentes,eles têm acesso a funções de plataforma de computador.
0 Trigplayer 420 pode ser implementado como umaextensão BREW 415, embora esteja separado na figura 4. 0Trigplayer é utilizado para fazer a interface de usuárioutilizando os Trigs e actors.
Será reconhecido que embora a discussão da figura4 seja em termos da arquitetura uiOne da QUALCOMMIncorporated (incluindo TrigML compilado, Trigplayer, BREWAPIs, etc.) que isso é para fins descritivos e qiie apresente invenção inclui outras linguagens de dados,plataformas de software e computador e arquiteturas dedispositivos.
A figura 5 é um diagrama de blocos ilustrando osistema de atualizar componentes de interface de usuário euma arquitetura representando um trigplayer 420, actors 425e trigs 430 em uma modalidade da presente invenção. Odispositivo 500 inclui um trigplayer 420, actors 425, eTrigs 430. Os Trigs podem incluir código TrigML 505,seqüências de texto 510, imagens 515 e canais deatualização 520 (canais de atualização podem definir URLs eesquemas de temporização para buscar Triglets 530). Trigspodem ser atualizados através do ar, desse modo, permitindoà interface de usuário ser atualizada após o dispositivo játer saido do fabricante. Um servidor 525 pode ser utilizadopara transferir novos Trigs e ou componentes atualizados deTrigs (por exemplo, Triglets 530) desse modo permitindo quea interface de usuário para o dispositivo seja customizada.
A figura 6 é um diagrama de blocos ilustrando ocódigo TrigML de associação, objetos e actors em umamodalidade da presente invenção. 0 código TrigML pode sergravado utilizando uma série de indicadores (605-625).Esses indicadores podem definir ações para executar edefinir parâmetros específicos relacionados à finalidade docódigo de programa. Em uma modalidade, esse código TrigML écompilado antes de efetuar parse e executar em umdispositivo sem fio.
Em uma modalidade da invenção, quando o código deprograma TrigML sofreu parse para execução, objetosassociados (630 - 650) com elementos (605 - 625) no códigoTrigML. Esses objetos podem conter as representações doelemento. Por exemplo, o elemento 620 indica uma caixatendo um comprimento de 3. Quando esse elemento é avaliado,um objeto tendo o valor do comprimento de caixa =3 (645) écriado.
Pode ser desejável incluir uma variável dinâmicaem uma expressão no código de programa. Por exemplo, casoum ícone representando um nível de bateria para umdispositivo sem fio seja desejado, considerando que alargura da caixa altere à medida que o nível de bateria sealtere, é desejável atualizar essa largura de caixa paraindicar o nível de bateria atual, que está sujeito àalteração à medida que a bateria é carregada edescarregada.
Nesse caso, o elemento "<boxwidth="batterylife/10">" (645) contém uma expressão("batterylife/10") tendo uma variável dinâmica "batterlife"que pode alterar dependendo da quantidade de carga queresta na bateria. É adicionalmente manipulado pelo objetodividindo o valor de vida de bateria por 10. Observe que aexpressão pode conter uma operação simples ou complexa,incluindo o uso de números, seqüências, operadores,juntamente com variáveis dinâmicas.
Em uma modalidade, um objeto 640 é criado paradeterminar o valor da expressão do elemento contendo avariável dinâmica. Além disso, um ator 655 é criado eutilizado para receber o valor de vida de bateria. O objeto640 utilizará o valor representado no ator para a variáveldinâmica na avaliação da expressão.
No dispositivo, uma função, por exemplo, um APImonitora e determina a vida de bateria atual (660). Afunção pode incluir aquelas funções que estão no nível deplataforma ou plataforma (por exemplo, APIs de Dispositivoe/ou BREW) ou podem ser outras funções de outros APIs,funções ou tarefas executadas local ou remotamente erelacionadas ao computador local ou a um computador remoto.Será reconhecido por aqueles versados na técnica que afunção "batterylife" é utilizada somente para finsdescritivos e que qualquer função/API pode ser utilizada.
Muitos paradigmas podem ser utilizados paraindicar uma alteração no valor da função de vida de bateria660 para o ator 655. Por exemplo, um padrãoobservar/notificar pode ser implementado no qual a funçãode vida de bateria 660 é informada que o ator 655 existe equando uma alteração no valor ocorre para notificar o ator655. Utilizando esse paradigma, o ator 655 fica na reservae espera por uma indicação da função de vida de bateria 660de que uma alteração ocorreu. Após o ator 655 receber aindicação de uma alteração, notifica o objeto 640 de modoque o objeto 640 possa buscar o valor a partir da função debateria 660. 0 objeto pode então avaliar a expressãocontendo a variável dinâmica utilizando o novo valor defunção.
Outro paradigma inclui sondagem, onde o ator 655periodicamente sonda a função de vida de bateria 660 parauma indicação de que ocorreu uma alteração. O processamentoprossegue como descrito acima, onde o objeto busca o valorda função e avalia a expressão. Outros paradigmas existem econhecidos por aqueles versados na técnica e incluídos noescopo da presente invenção.
Quando o objeto que representa a expressão éreavaliado, o novo valor pode ser então utilizado para afinalidade que o código TrigML foi gravado. Observe tambémque a variável dinâmica pode mudar freqüentemente e comcada alteração, somente o objeto associado à expressãonecessita ser reavaliado para determinar um valor novo. 0código TrigML não necessitou sofrer parse novamente.
A figura 7 é um fluxograma representando oprocesso de avaliar uma expressão dinâmica em umamodalidade da presente invenção. Primeiramente, o métodoinicia recebendo uma expressão tendo uma variável dinâmica(etapa 705) . Observe que a expressão está tipicamente em umformato de linguagem de dados, como um baseado em XML.Entretanto, outros formatos de linguagem de dados tambémpodem ser utilizados.Além disso, a variável dinâmica é uma variávelque pode alterar e qualquer alteração na mesma pode serdesejada após efetuar parse inicial do código de programade linguagem de dados. Também pode ser relacionado à funçãoassociada à plataforma de computador.
A seguir, um objeto é criado para avaliar aexpressão (etapa 710). O uso de um objeto não é necessárioe pode ser somente necessário para alguns elementos. 0objeto pode conter o valor, não necessariamente um númeroou valor escalar, porém, a representação da intenção doelemento.
Um ator é então criado (etapa 715) que auxilia naprovisão de um valor da variável dinâmica.Alternativamente, o ator já pode ter existido e o atorexistente é utilizado para informar o objeto de que o valorde função foi alterado. 0 ator é ligado à função associadaà variável dinâmica. 0 ator pode fornecer duas funções(essas funções não necessitam ser atribuídas ao ator epodem executar funções adicionais) . Primeiramente, podepermitir um valor a ser consultado/buscado/lido, etc., e emsegundo lugar, pode servir como o mecanismo para indicaruma alteração na função para o objeto (utilizando um dosparadigmas discutidos aqui).
0 objeto então busca o valor de função a partirda função (etapa 720) . 0 objeto prossegue para avaliar aexpressão (etapa 725) . A seguir, é determinado se há umaalteração no valor de função (etapa 730). Isso pode serexecutado como descrito aqui através da função indicando aoator de que uma alteração ocorreu e o ator indicando queuma alteração no objeto.
Caso o valor de função seja alterado na etapa730, o percurso "sim" será seguido e o objeto buscaránovamente o valor de função a partir da função (etapa 735)e avaliará a expressão utilizando o novo valor de função(associado à variável dinâmica) (etapa 745).
Caso o valor da função não se altere na etapa730, o percurso "não" será seguido e a função serámonitorada em relação a uma alteração utilizando um dosparadigmas descritos aqui ou outros conhecidos por aquelesversados na técnica.
Outra modalidade inclui atualizar indicadores de"ação" que se baseiam em expressões Booleanas, por exemplo,<animate while="valueof(/res/width)>120" .../>
Aqui o indicador de animação "animate" é ativadoenquanto a expressão booleana dada é verdadeira. Caso emqualquer ponto no futuro a expressão seja resolvida como"falsa" a animação será desativada.
A expressão booleana também pode ser utilizadapara indicadores de "ação" isolada (one-off) , insistindoque o indicador seja (instantaneamente) ativado cada vezque a expressão for resolvida como verdadeira, isto é,quando qualquer subelemento da expressão é alterado e aexpressão inteira for resolvida como verdadeira, porexemplo,
<doload when="valueof (/res/errormsg) = "Downloaded" .../>
Aqui a ação "doload" é executada cada vez que onó VFS /res/errormsg é atualizado e a expressão avaliadacomo verdadeira.
A expressão pode ser ainda incorporada comoelementos de percurso de recurso, por exemplo,<image res="res/{valueof(/var/restype)}/{valueof(/var/num) *10}".../>
Nessa modalidade o percurso de recurso de trêselementos é construído utilizando uma seqüência literalpara o primeiro elemento e duas expressões para oselementos finais. O percurso de recurso indica alocalização da imagem a ser feita. Caso qualquer uma dassubexpressões altere o recurso de recurso seráautomaticamente reavaliado e pode resultar em exibição deuma imagem diferente.
Por incorporar expressões arbitrariamentecomplexas diretamente em atributos XML é possível criar Uisdinamicamente atualizáveis com linguagem de marcaçãosucinta e elegante, sem a necessidade de eventos oulinguagens de scripting incorporadas.
O método acima e descrição de projeto de softwaretambém podem ser implementados em um equipamento,armazenados como instruções em RAM ou em outrosdispositivos de armazenamento de memória. Embora osprocessos apresentados nesse documento tenham sidoilustrados e descritos seqüencialmente em uma ordemespecífica, em outras modalidades, as etapas dos processospodem ser executadas em ordens diferentes, múltiplas vezes,e/ou em paralelo. Além disso, em algumas modalidades, umaou mais etapas descritas nos vários processos podem serexecutadas como etapas separadas, combinadas em menosetapas, ou possivelmente totalmente omitidas.
Embora a descrição acima mostre modalidadesilustrativas da invenção, deve ser observado que váriasalterações e modificações poderiam ser feitas nasmodalidades descritas sem se afastar do espírito e escopoda invenção como definido pelas reivindicações apensas.Além disso, embora elementos da invenção possam serdescritos ou reivindicados no singular, o plural éconsiderado a menos que limitação ao singular sejaexplicitamente mencionada.

Claims (16)

1. Método para avaliar uma expressão tendo umavariável dinâmica, em código de programa gravado em umalinguagem de dados, compreendendo:receber a variável dinâmica;determinar um primeiro valor da variáveldinâmica;avaliar a expressão utilizando o primeiro valor;detectar uma alteração associada à variáveldinâmica;receber um segundo valor associado à variáveldinâmica; eavaliar a expressão utilizando o segundo valorassociado à variável dinâmica; em que a expressão éavaliada utilizando o segundo valor sem reinterpretar outrocódigo de programa contendo a expressão.
2. Método para atualizar uma variável dinâmica emuma linguagem de dados, compreendendo:efetuar parse de uma instrução gravada nalinguagem de dados contendo a variável dinâmica;criar a variável dinâmica em memória;atribuir um valor para a variável dinâmica; eatualizar o valor da variável dinâmica semefetuar parse da instrução gravada na linguagem de dadoscontendo a variável dinâmica.
3. Método, de acordo com a reivindicação 2,compreendendo adicionalmente:criar um objeto associado ao valor dinâmico, emque o objeto determina o valor da variável dinâmica.
4. Método, de acordo com a reivindicação 2,compreendendo adicionalmente:observar um valor de função associado à variáveldinâmica; enotificar o objeto quando o valor de função foialterado.
5. Método, de acordo com a reivindicação 2, emque a etapa de atribuir um valor para a variável dinâmicacompreende avaliar uma função associada à plataforma desoftware.
6. Método, de acordo com a reivindicação 2, emque a variável dinâmica está contida em uma equaçãocomplexa e compreende adicionalmente avaliar a equaçãocomplexa com o valor de variável dinâmica atualizado.
7. Equipamento para atualizar uma variáveldinâmica em uma linguagem de dados, compreendendo:uma localização de memória atribuída a umavariável dinâmica, em que a variável dinâmica foi atribuídaà localização de memória em resposta a efetuar parse de umainstrução em uma linguagem de dados; eum processador para avaliar atualizações navariável dinâmica.
8. Equipamento, de acordo com a reivindicação 7,em que a memória compreende adicionalmente um objetoassociado à variável dinâmica, em que o objeto recebe umvalor representativo da variável dinâmica.
9. Equipamento, de acordo com a reivindicação 8,em que o valor de função se baseia a partir de uma funçãode plataforma de software.
10. Meio legível por computador contendoinstruções executáveis por computador para atualizar umavariável dinâmica gravada em uma linguagem de dados, quequando executada realiza as etapas compreendendo:efetuar parse de uma instrução gravada nalinguagem de dados contendo a variável dinâmica;criar a variável dinâmica em memória;atribuir um valor para a variável dinâmica; eatualizar o valor da variável dinâmica semefetuar parse da instrução gravada na linguagem de dadoscontendo a variável dinâmica.
11. Meio legível por computador, de acordo com areivindicação 10, em que as instruções executáveis porcomputador para atualizar uma variável dinâmica gravada emuma linguagem de dados, quando executada, compreendeadicionalmente as etapas de:criar um objeto associado ao valor dinâmico, emque o objeto determina o valor da variável dinâmica.
12. Meio legível por computador, de acordo com areivindicação 10, em que as instruções executáveis porcomputador para atualizar uma variável dinâmica gravada emuma linguagem de dados, quando executada, compreendeadicionalmente as etapas de:observar um valor de função associado à variáveldinâmica; enotificar o objeto quando o valor de função foialterado.
13. Meio legível por computador, de acordo com areivindicação 10, em que a etapa de atribuir um valor paraa variável dinâmica compreende avaliar uma função associadaà plataforma de software.
14. Equipamento para atualizar uma variáveldinâmica em uma linguagem de dados, compreendendo:dispositivos para efetuar parse de uma instruçãogravada na linguagem de dados contendo a variável dinâmica;dispositivos para criar a variável dinâmica emmemória;dispositivos para atribuir um valor para avariável dinâmica; edispositivos para atualizar o valor da variáveldinâmica sem efetuar parse da instrução gravada nalinguagem de dados contendo a variável dinâmica.
15. Método, de acordo com a reivindicação 14,compreendendo adicionalmente:dispositivos para criar um objeto associado aovalor dinâmico, em que o objeto determina o valor davariável dinâmica.
16. Método, de acordo com a reivindicação 14,compreendendo adicionalmente:dispositivos para observar um valor de funçãoassociado à variável dinâmica; edispositivos para notificar o objeto quando ovalor de função foi alterado.
BRPI0611320-6A 2005-05-31 2006-05-31 atualizacão automática de variáveis em uma linguagem de dados BRPI0611320A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US68627105P 2005-05-31 2005-05-31
US60/686,271 2005-05-31
PCT/US2006/020703 WO2006130537A1 (en) 2005-05-31 2006-05-31 Automatic updating of variables in a data language

Publications (1)

Publication Number Publication Date
BRPI0611320A2 true BRPI0611320A2 (pt) 2010-08-31

Family

ID=36821523

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0611320-6A BRPI0611320A2 (pt) 2005-05-31 2006-05-31 atualizacão automática de variáveis em uma linguagem de dados

Country Status (7)

Country Link
US (1) US7908595B2 (pt)
EP (1) EP1889157A1 (pt)
JP (1) JP4927830B2 (pt)
KR (1) KR100948472B1 (pt)
CN (1) CN101185062B (pt)
BR (1) BRPI0611320A2 (pt)
WO (1) WO2006130537A1 (pt)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9313245B2 (en) * 2007-12-24 2016-04-12 Qualcomm Incorporated Adaptive streaming for on demand wireless services
US20130290851A1 (en) * 2012-04-30 2013-10-31 Microsoft Corporation User interface web services
CN105159679A (zh) * 2015-09-15 2015-12-16 北京国科世纪激光技术有限公司 视窗类软件的消息响应和处理方法及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5917730A (en) * 1995-08-17 1999-06-29 Gse Process Solutions, Inc. Computer implemented object oriented visualization system and method
US6961929B1 (en) * 1999-06-25 2005-11-01 Sun Microsystems, Inc. Mechanism for automatic synchronization of scripting variables
US7165243B1 (en) 1999-06-25 2007-01-16 Sun Microsystems, Inc. Multi-lingual tag extension mechanism
JP2002108600A (ja) * 2000-10-02 2002-04-12 Digital Electronics Corp 制御システムの端末装置、記録媒体、および、制御システム
US20030189593A1 (en) * 2001-01-05 2003-10-09 Yarvin Curtis G. Method and apparatus for dynamically updating a markup language based user interface
JP2003150440A (ja) * 2001-11-13 2003-05-23 Matsushita Electric Ind Co Ltd 複数ユーザインタフェースの同期方法とそのシステム及びプログラム
US7096456B2 (en) * 2001-11-30 2006-08-22 Microsoft Corporation Method and apparatus for providing dynamically scoped variables within a statically scoped computer programming language
JP2004178303A (ja) * 2002-11-27 2004-06-24 Digital Electronics Corp 表示装置、画面データ生成装置、および、そのプログラム

Also Published As

Publication number Publication date
CN101185062A (zh) 2008-05-21
CN101185062B (zh) 2012-10-03
JP2008546095A (ja) 2008-12-18
US20060271845A1 (en) 2006-11-30
WO2006130537B1 (en) 2007-02-01
US7908595B2 (en) 2011-03-15
KR20080017420A (ko) 2008-02-26
EP1889157A1 (en) 2008-02-20
JP4927830B2 (ja) 2012-05-09
KR100948472B1 (ko) 2010-03-17
WO2006130537A1 (en) 2006-12-07

Similar Documents

Publication Publication Date Title
US9632770B2 (en) Infrastructure for hosting and publishing software packages
EP3143504B1 (en) Using an element in a first model to call a portion of a second model
US8694988B2 (en) Runtime extensions
US9195477B1 (en) Device profiles, deep linking, and browser history support for web applications
US6865691B1 (en) System and method for identifying executable diagnostic routines using machine information and diagnostic information in a computer system
EP2972817B1 (en) Techniques for traversing representations of source code
US8132152B2 (en) Extending a scripting language to provide an object hierarchy
US20120102483A1 (en) Handling calls to native code in a managed code environment
US9720654B2 (en) Modifying a middleware
BRPI0611325A2 (pt) controle refinado de elementos de ordem-z em uma apresentacão xml
WO2013166682A1 (en) Meta-app to depict cloud environment dependencies
WO2022042252A1 (zh) 驱动配置管理方法、装置、介质、设备及系统
US9141385B2 (en) Managing operating system components
US9443027B2 (en) Unifying discoverability of a website&#39;s services
BRPI0611320A2 (pt) atualizacão automática de variáveis em uma linguagem de dados
BR102012005373A2 (pt) Método para a gestão de widgets em um dispositivo eletrônico para melhorar a experiência do utilizador do dispositivo
KR20110130611A (ko) 이기종 운영체제 계층 모듈에서 동작하는 웹기반어플리케이션의 연동이 가능한 모바일 단말기용 웹 플랫폼 유닛
BRPI0611323A2 (pt) gerenciamento de múltiplas linguagens em uma linguagem de dados
WO2011157105A2 (zh) 组件扩展方法和装置
US10838716B1 (en) Automated dependency detection and response
Lingfen et al. Mobile development environments for electronic finance
CN106775900B (zh) 应用浏览器的调用方法和系统
Kacz Context Aware Android Application Trace Analysis
CN117492810A (zh) 网页代码依赖处理方法及其装置、设备、介质
Nieminen Client-Side Web Application Memory Management

Legal Events

Date Code Title Description
B11A Dismissal acc. art.33 of ipl - examination not requested within 36 months of filing
B11Y Definitive dismissal - extension of time limit for request of examination expired [chapter 11.1.1 patent gazette]
B15K Others concerning applications: alteration of classification

Ipc: G06F 9/54 (2006.01), G06F 8/30 (2018.01), G06F 9/4