BRPI0617192A2 - metadados extensìveis - Google Patents

metadados extensìveis Download PDF

Info

Publication number
BRPI0617192A2
BRPI0617192A2 BRPI0617192-3A BRPI0617192A BRPI0617192A2 BR PI0617192 A2 BRPI0617192 A2 BR PI0617192A2 BR PI0617192 A BRPI0617192 A BR PI0617192A BR PI0617192 A2 BRPI0617192 A2 BR PI0617192A2
Authority
BR
Brazil
Prior art keywords
metadata
data
data construct
code
computer readable
Prior art date
Application number
BRPI0617192-3A
Other languages
English (en)
Inventor
W. Brumme Christopher
H. Hogg James
Lidin Sergey
Original Assignee
Microsoft Corporation
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 Microsoft Corporation filed Critical Microsoft Corporation
Publication of BRPI0617192A2 publication Critical patent/BRPI0617192A2/pt

Links

Classifications

    • 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/45516Runtime code conversion or optimisation
    • 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/448Execution paradigms, e.g. implementations of programming paradigms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

METADADOS EXTENSìVEIS. Os metadados de um código compilado podem ter uma descrição correspondente do esquema para os metadados de modo a permitir desvios de um esquema padrão.

Description

"METADADOS EXTENSÍVEIS"
FUNDAMENTOS DA INVENÇÃO
Um ambiente de execução de tempo de execução podeservir como pelo menos uma dentre uma programação de aplica-tivos e uma plataforma de execução de aplicativos. Como umaplataforma de programação de aplicativos, um ambiente de e-xecução de tempo de execução pode compilar aplicativos dese-jados, que podem ser escritos em uma dentre múltiplas lin-guagens, em uma linguagem intermediária ou de código de by-tes, por exemplo.
SUMÁRIO DA INVENÇÃO
0 fluxo de metadados pode incluir uma ou maisconstruções de dados de modo a prover uma descrição do es-quema para os metadados correspondentes a um aplicativo com-pilado em um ambiente de execução gerenciado.
DESCRIÇÃO DOS DESENHOS
A presente descrição faz referência às figuras aseguir.
A Figura 1 mostra dispositivos que se comunicamatravés de uma rede, com os dispositivos implementando astecnologias exemplares relativas a metadados extensíveis.
A Figura 2 mostra um exemplo de um ambiente de e-xecução para a implementação das tecnologias exemplares re-lativas a metadados extensíveis.
A Figura 3 mostra um exemplo de metadados extensí-veis correspondentes a um código gerenciado.
A Figura 4 mostra um fluxo de dados exemplar parapelo menos uma implementação de metadados extensíveis.DESCRIÇÃO DETALHADA DA INVENÇÃO
São presentemente descritos metadados extensíveise tecnologias associadas.
Metadados extensíveis, conforme aqui descritos,podem dizer respeito a metadados correspondentes a aplicati-vos compilados tanto em um ambiente de execução gerenciadocomo em um ambiente de execução não gerenciado. Mais parti-cularmente, de acordo com as implementações exemplares des-critas no presente documento, metadados correspondentes apelo menos porções dos aplicativos podem ser extensíveis semafetar de maneira adversa a execução dentro do ambiente deexecução. Tais aplicativos podem ser compilados para a exe-cução de uma plataforma de execução implementada em um oumais dispositivos, ou nós, em um ambiente de rede.
"Conjunto", conforme usado no presente documento,pode se referir a uma unidade de desdobramento ou, mais par-ticularmente, a uma unidade versionável de desdobramento pa-ra código.
"Metadados", conforme descrito no presente docu-mento, pode se referir a dados que descrevem outros dados,particularmente um código compilado. Os metadados podem, porexemplo, prover quantidades detalhadas de informações sobreum ou mais elementos de dados ou um item descritivo sobredados.
"Esquema", conforme descrito no presente documen-to, pode se referir a dados que definem estruturas de dados,assim como tipos de conteúdos que cada elemento de dado den-tro da estrutura pode conter.A Figura 1 mostra um ambiente de rede exemplar 100no qual tecnologias exemplares relacionadas a metadados ex-tensíveis podem ser implementadas, embora tais tecnologiasexemplares não se limitem absolutamente a ambientes de rede.
Tais tecnologias podem incluir, porém não se limitam a, fer-ramentas, metodologias, e sistemas associados a metadadosextensíveis 120, conforme, descrito no presente documento.Mais particularmente, as ferramentas, metodologias, e siste-mas podem ser implementados para a formatação, leitura, ouanálise de metadados, independente se o metadado é extensí-vel ou não.
Na Figura 1, o dispositivo cliente 105, o disposi-tivo servidor 110, ou "outro" dispositivo 115 podem ser aco-plados de modo a se comunicarem entre si através da rede125, e, ainda, pelo menos um dentre o dispositivo cliente105, o dispositivo servidor 110, ou "outro" dispositivo 115podem ser capazes das tecnologias acima mencionadas.
O dispositivo cliente 105 pode representar pelomenos um dentre uma variedade de dispositivos computacionaisconhecidos, incluindo um computador pessoal de mesa (PC),uma estação de trabalho, um computador de grande porte, umacessório da Internet, ou um aparelho decodificador capaz deformatar, ler, ou analisar metadados associados a um aplica-tivo, programa, função, ou outra montagem de código progra-mável ou executável. 0 dispositivo cliente 105 pode aindarepresentar pelo menos um dentre qualquer dispositivo capazde ser associado à rede 125 por meio de uma ligação física afio e/ou sem fio, incluindo um telefone móvel (isto é, celu-lar), um assistente digital pessoal (PDA), um computador dotipo laptop, etc. Ainda, o dispositivo cliente 105 pode re-presentar os dispositivos clientes descritos acima em váriasquantidades e/ou combinações dos mesmos. Um "outro" disposi-tivo 115 pode também ser incorporado por meio de qualquerdentre os exemplos acima de dispositivo cliente 105.
O dispositivo servidor 110 pode representar qual-quer dispositivo capaz de prover qualquer dentre uma varie-dade de dados e/ou funcionalidade ao dispositivo cliente 105ou "outro" dispositivo 115 de acordo com pelo menos uma im-plementação de metadados extensíveis 120. Os dados podem serpublicamente disponíveis ou alternativamente restritos, porexemplo, restritos a apenas certos usuários ou apenas quandouma assinatura apropriada ou taxa de licença é paga. 0 dis-positivo servidor 110 pode ser pelo menos um dentre um ser-vidor de rede, um servidor aplicativo, um servidor blade, ouqualquer combinação dos mesmos. Tipicamente, o dispositivoservidor 110 pode representar qualquer dispositivo que possaser uma fonte de conteúdo, o dispositivo cliente 105 poderepresentar qualquer dispositivo que possa receber tal con-teúdo através da rede 125 ou de uma maneira off-line. No en-tanto, de acordo com as implementações exemplares aqui des-critas, o dispositivo cliente 105 e o dispositivo servidor110 podem ser, de maneira intercambiável, um nó de envio ouum nó de recepção no ambiente de rede 100. "Outro" disposi-tivo 115 pode também ser incorporado por meio de quaisquerdentre os exemplos acima de dispositivo servidor 110.
"Outro" dispositivo 115 pode representar qualqueroutro dispositivo capaz de implementar metadados extensíveis120 de acordo com uma ou mais dentre as tecnologias exempla-res descritas no presente documento. Ou seja, "outro" dispo-sitivo 115 pode representar qualquer dispositivo de computa- ção ou processamento habilitado por software que é capaz depelo menos formatar, ler, ou analisar metadados associados aum aplicativo, programa, função, ou outra montagem de códigoprogramável ou executável. Sendo assim, "outro" dispositivo115 pode ser um dispositivo de computação ou processamentotendo pelo menos um dentre um sistema operacional, um inter-pretador, um conversor, um compilador, um ambiente de execu-ção de tempo de execução implementado no mesmo. Estes exem-plos de forma alguma pretendem ser limitantes, e, portanto,não devem ser construídos dessa maneira.
A rede 125 pode representar qualquer dentre umavariedade de topologias e tipos de rede, convencionais, po-dendo incluir as redes a fio e/ou sem fio. A rede 125 podeainda utilizar qualquer dentre uma variedade de protocolosde rede convencionais, incluindo protocolos públicos e/ou proprietários. A rede 125 pode incluir, por exemplo, a In-ternet, assim como pelo menos porções de uma ou mais redesde área local (também referidas, individualmente, como"LAN"), como, por exemplo, o sistema 802.11, em uma escalamaior, uma rede de área remota (isto é, "WAN") , ou uma rede de área pessoal (isto é, "PAN") , como, por exemplo, o Blue-tooth.
A arquitetura de computador em pelo menos um den-tre os dispositivos 105, 110 e 115 possui tipicamente plata-formas computacionais definidas em termos de hardware esoftware. 0 software para os dispositivos computacionais po-de ser categorizado em grupos, baseado na função, podendoincluir: uma camada de abstração de hardware (alternativa-mente referida como "HAL"), um sistema operacional (alterna-tivamente referido como "OS"), e aplicativos.
Um ambiente de execução de tempo de execução poderesidir entre um sistema OS e um aplicativo, e o servidorcomo um espaço no qual o aplicativo pode executar tarefasespecificas em qualquer um ou mais dentre os dispositivos deprocessamento 105, 110, e 115. Mais particularmente, um am-biente de execução de tempo de execução pode aumentar a con-fiabilidade da execução de aplicativos em uma faixa crescen-te de dispositivos de processamento 105, 110, e 115, inclu- indo servidores, computadores de mesa, computadores laptops,e dispositivos de processamento / comunicação móveis, pormeio da provisão de uma camada de abstração e serviços paraum aplicativo que é executado em tais dispositivos, e aindaprovendo o aplicativo com capacidades que incluem o gerenci- amento e a configuração de memória do mesmo.
Um ambiente de execução de tempo de execução podeservir como pelo menos um dentre uma plataforma de execuçãode programação e aplicação de aplicativo.
Como uma plataforma de programação de aplicativo, um ambiente de execução de tempo de execução pode compilaraplicativos desejados, que podem ser escritos em uma dentremúltiplas linguagens computacionais, em uma linguagem inter-mediária (doravante "IL") ou código de byte. A linguagem ILé tipicamente independente da plataforma, e a unidade deprocessamento central (doravante "CPU") executa a linguagemIL, que vem a ser uma linguagem de nivel superior que muitaslinguagens de máquina de unidade CPU.
Como uma plataforma de execução de aplicativo, umambiente de execução de tempo de execução pode interpretaruma linguagem IL compilada em instruções de máquina nativas.Um ambiente de execução de tempo de execução pode utilizarum interpretador ou um compilador (por exemplo, o compiladordo processo "Just-in-time", alternativamente "JIT") a fim deexecutar tais instruções. Independentemente, as instruçõesde máquina nativas podem em seguida ser diretamente executa-das pela unidade CPU. Uma vez que a linguagem IL é indepen-dente da unidade CPU, a linguagem IL pode ser executada emqualquer plataforma de unidade CPU, contanto que o sistemaOS executado naquela plataforma de unidade CPU agrupe um am-biente de execução de tempo de execução apropriado.
Os exemplos de ambientes de tempo de execução, nosquais tecnologias associadas a metadados extensíveis 120 po-dem ser implementadas, incluem: o ambiente de tempo de exe-cução Visual Basic; o ambiente de tempo de execução VirtualMachine de Java® que é usado para executar, por exemplo, asrotinas de linguagem Java®; ou o tempo de execução de Lin-guagem Comum (CLR) para compilar, por exemplo, os aplicati-vos da Microsoft.NET™, em uma linguagem de máquina antes deexecutar uma rotina de chamada. No entanto, esta listagem deambientes de tempo de execução provê apenas exemplos. Alémdisso, as tecnologias exemplares descritas no presente docu-mento não necessariamente se limitam a tão-somente estes am-bientes de execução gerenciados. Ainda mais particularmente,as implementações exemplares não são apenas limitadas a am-bientes de execução gerenciados, pois um ou mais exemplos podem ser implementados dentro dos ambientes de teste e/ouambientes de execução não gerenciados.
Um aplicativo compilado em linguagem IL pode serreferido como um "código gerenciado", e, portanto, um ambi-ente de execução de tempo de execução pode ser alternativa- mente referido como um "ambiente de execução gerenciado".Nota-se que o código que não utiliza um ambiente de execuçãode tempo de execução do mesmo pode ser referido como aplica-tivos de código nativo.
A Figura 2 mostra um ambiente de execução de tempo de execução exemplar 200 no qual as tecnologias associadasao metadado extensível 120 (vide Figura 1) podem ser imple-mentadas.
De acordo com pelo menos uma implementação exem-plar, o ambiente de execução de tempo de execução 200 podefacilitar a execução de um código gerenciado para uma plata-forma de dispositivo computacional. O código gerenciado podeser considerado como parte de um conjunto de núcleos de tec-nologias de desenvolvimento de aplicativos, e pode ainda serconsiderado como um aplicativo, um programa, uma função, ououtra montagem de código programável ou executável que écompilado para execução no ambiente de execução de tempo deexecução 200 de modo a prover um serviço correspondente àplataforma de dispositivo de computação. Além disso, ó ambi-ente de execução de tempo de execução 200 pode traduzir umcódigo gerenciado em um nível interpretativo em instruçõesque podem ser colocadas em um servidor proxy e em seguidaexecutadas por um processador. De maneira alternativa, o có-digo gerenciado pode ser executado através de um interpreta-dor ou um compilador, ou uma forma de um compilador desenha-do para executar no momento da instalação como uma imagemnativa. Uma estrutura para um ambiente de execução de tempode execução 200 também provê bibliotecas de classe, que po-dem ser consideradas como blocos de construção de softwarepara aplicativos gerenciados.
Além disso, os metadados correspondentes a pelomenos uma porção de código gerenciado podem ser incluídoscomo uma parte da montagem compilada, resultando em um códi-go gerenciado ou, de maneira alternativa, podem ser recebi-dos no ambiente de execução de tempo de execução 200 separa-do do código gerenciado. Por exemplo, os metadados podem sercompilados como uma parte de um conjunto separado ou os me-tadados podem ser recebidos no ambiente de execução de tempode execução 200 de uma maneira off-line. Independentemente,os metadados podem ser recebidos de modo a prover quantida-des detalhadas de informações sobre um ou mais elementos docódigo gerenciado.
O ambiente de execução de tempo de execução 200pode prover pelo menos uma funcionalidade parcial que pode,de outra forma, ser esperada de um núcleo, que pode ou nãoter uma plataforma de dispositivo computacional, dependendodas limitações de recurso para um dispositivo em particulardentre os dispositivos 105, 110, e 115 (vide Figura 1). Pelomenos um exemplo de ambiente de execução de tempo de execu-ção 200 pode implementar o seguinte: um gerenciamento de ro-tina de entrada / saida (doravante "I/O"), compilação, ge- renciamento de memória, e gerenciamento de rotina de servi-ço. Sendo assim, o ambiente de execução de tempo de execução200 pode incluir um componente I/O 205, um compilador 210,um componente de gerenciamento de memória 215, um gerencia-dor de rotina de serviço 220, um componente de execução 225. Estes componentes que devem ser descritos em mais detalhesabaixo são providos como exemplos, e não devem se limitar anenhuma implementação em particular de ambiente de execuçãode tempo de execução 200, e nenhuma inferência deste tipodeve ser feita. Deste modo, os componentes podem ser imple- mentados em exemplos de ambiente de execução de tempo de e-xecução 200 em várias combinações e configurações dos mesmos.
O componente de I/O 205 de ambiente de execução detempo de execução 200 pode prover pelo menos um dentre o a-cesso sincrono ou assincrono a recursos físicos (por exem-pio, um processador ou periféricos) e lógicos (por exemplo,as unidades, ou os recursos físicos divididos de uma maneiraparticular) associados à plataforma de dispositivo computa-cional. Mais particularmente, o componente de I/O 205 podeprover ao ambiente de execução de tempo de execução 200 uma saída robusta de sistema e ainda um desempenho aerodinâmicodo código do qual uma solicitação de I/O se origina.
O compilador 210 pode se referir a um módulo den-tro do ambiente de execução de tempo de execução 200 que po-de interpretar a linguagem IL compilada em instruções de má-quina nativas para execução no ambiente de execução de tempode execução 200. Além disso, de acordo com pelo menos umaimplementação alternativa de tecnologias associadas a meta-dados extensíveis 120, o compilador 210 pode dinamicamenteanalisar, para vários fins, o comportamento dos módulos decódigo associados a um aplicativo, programa, função, ou ou-tro montagem de código programável ou executável. Os módulosde código podem ou não ser carregados para o ambiente de e-xecução de tempo de execução 200. Quando os módulos de códi-go são carregados no ambiente de execução de tempo de execu-ção 200, o compilador 210 pode ler, interpretar, e/ou de ou-tra forma analisar as entidades de dados associadas aos mó-dulos de código que tornam os metadados extensíveis, confor- me descrito acima. A leitura, a interpretação, e a análiseacima mencionadas podem ser feitas sem tocar ou afetar umaporção executável dos módulos de código, e podem ser feitosem um tempo de compilação, em tempo de execução inicial, oua qualquer momento depois durante a execução de uma porçãoexecutável dos caminhos de execução.
No entanto, pelo menos uma implementação exemplarde metadados extensíveis 120 podem não precisar ler, inter-pretar, ou de outra forma analisar o código compilado pelocompilador 210. Em contrapartida, os metadados extensíveispodem ser lidos, interpretados, ou de outra forma analisadosconforme pertencentes a um código de linguagem intermediário(isto é, à linguagem "IL") que é distribuído para o ambientede execução de tempo de execução 200 em um formato de Iin-guagem IL ao invés de em um formato de execução de platafor-ma nativa, e já compilado em qualquer uma das montagens, mé-todos, ou tipos. Uma fonte de tal linguagem IL 305 pode serdisposta tanto em um ambiente de execução não gerenciado co-mo em uma implementação separada de um ambiente de execuçãode tempo de execução em um mesmo dispositivo ou um disposi-tivo separado dentre os dispositivos 105, 110, e 115. A fon-te pode empregar a linguagem IL no ou antes do tempo de ins-talação para o aplicativo, programa, método, função ou outramontagem de código programável ou executável ao qual a lin-guagem IL corresponde.
O componente de gerenciamento de memória 215 podeser referido como um "coletor de lixo", que implementa a co-leta de lixo. A coleta de lixo pode ser considerada como umrecurso robusto dentre os ambientes de execução de códigogerenciado por meio do qual um objeto é automaticamente li-berado (isto é, deslocado) quando, após uma varredura ou es-caneamento de um heap de memória, determina-se que um objetonão mais poderá ser usado por um aplicativo, programa, fun-ção, ou outra montagem de código programável ou executável.Outras funções implementadas pelo componente de gerenciamen-to de memória 215 podem incluir: o gerenciamento de um oumais blocos contíguos de armazenamento de memória RAM volá-til finita (isto é, o heap de memória) ou de um conjunto deblocos contíguos de memória entre as tarefas que são execu-tadas na plataforma de dispositivo computacional; a alocaçãoda memória em pelo menos um aplicativo, programa, função, ououtra montagem de código programável ou executável que é e-xecutada na plataforma de dispositivo computacional; a libe-ração de pelo menos porções de memória em solicitação porparte de pelo menos um dentre os aplicativos, programas,funções, ou outras montagens de código programável ou execu-tável; e o impedimento de quaisquer dentre os aplicativos,programas, funções, ou outras montagens de código programá-vel ou executável terem acesso intrusivo ao espaço de memó-ria que foi alocado para qualquer dentre os demais aplicati-vos, programas, funções, ou outras montagens de código pro-gramável ou executável.
0 gerenciador de rotina de serviço 220 pode serincluído como pelo menos uma porção de uma camada de suportede aplicativo de modo a prover uma funcionalidade de serviçopara os recursos físicos ou lógicos associados à plataformade dispositivo computacional. As tecnologias exemplares (porexemplo, as ferramentas, as metodologias, e os sistemas) as-sociadas aos metadados extensíveis 120 podem ser gerenciadaspelo gerenciador de rotina de serviço 220. Ou seja, as tec-nologias associadas aos metadados extensíveis 120 podem serimplementadas de maneira singular ou em combinação em con-junto por parte do compilador 210 (conforme acima referido),gerenciador de rotina de serviço 220, ou algum outro compo-nente de ambiente de execução de tempo de execução 200, deacordo com várias implementações alternativas de tais tecno-logias. Por exemplo, o gerenciador de rotina de serviço 220pode pelo menos determinar a existência de uma variação oudesvio de um esquema de metadado com relação a um padrão co-nhecido para o esquema de metadados, associado a um ou maismódulos de código para assim permitir que os metadados ex-tensíveis sejam lidos, analisados, ou ainda interpretados.Tal contribuição por parte do gerenciador de rotina de ser-viço 220 pode ser feita sem tocar ou afetar uma porção exe- cutável dos módulos de código, no tempo de compilação, notempo de execução inicial, ou a qualquer momento em seguida,durante a execução de uma porção executável do um ou maismódulos de código.
O componente de execução 225 pode permitir a exe- cução do um ou mais módulos de código incluídos no códigogerenciado para a plataforma de dispositivo computacional.Mais particularmente, com relação à implementação de tecno-logias associadas aos metadados extensíveis 120, o componen-te de execução 225 pode servir como um componente exemplar dentro do ambiente de execução de tempo de execução 200 quepode implementar uma ou mais dentre as ferramentas, siste-mas, e processos para acessar metadados extensíveis 120 nosentido de determinar a existência de uma variação ou desviode um esquema de metadado para o um ou mais módulos de códi- go de modo a assim permitir que o metadado seja lido, anali-sado, ou de outra forma interpretado.
A Figura 3 mostra um bloco de código 300 exemplara fim de ilustrar uma implementação exemplar do metadado ex-tensível 120 (vide Figura 1) ao se fazer o leverage dos da- dos denominados, pelo menos para os fins da presente descri-ção, como "meta-metadados". A descrição do bloco de código300 pode se referir aos dispositivos descritos acima com re-lação ao ambiente de rede 100 da Figura 1 e aos componentesdescritos acima com relação ao ambiente de execução de tempode execução 200 da Figura 2. No entanto, estas referênciasàs Figuras 1 e 2 pretendem simplesmente prover um ambientehabilitado para os metadados extensíveis 120, e não devem deforma alguma ser construídas como limitantes.
O bloco de código 300 pode ser considerado comopelo menos uma porção de um aplicativo, programa, formação,ou outra montagem de código programável ou executável queseja compilado para execução em um ambiente de execução detempo de execução 200. Por exemplo, em um modelo de dado deobjeto, o bloco 300 pode ser referido como o objeto 300.
O bloco 305 pode ser considerado como uma porçãoexecutável de um aplicativo, programa, função, ou outra mon-tagem de código programável ou executável que seja compilada para execução em um ambiente de execução de tempo de execu-ção 200. Como exemplos, o bloco 305, incluindo os módulos decódigo 307, 308, e 309, pode se referir aos arquivos ou mé-todos de programa correspondentes ao objeto 300. Evidente-mente, a configuração ilustrada do bloco 305 é provida ape-nas como um exemplo, e modalidades alternativas não devem deforma alguma ser limitadas.
A construção de dados 310 pode incluir metadadosque, de acordo com o presente exemplo, descrevem as estrutu-ras de dados e as estruturas funcionais de pelo menos um dosmódulos de código 307, 308, e 309. Ou seja, para executar oum ou mais módulos de código 307, 308, e 309 aos quais osmetadados 310 correspondem no contexto do ambiente de execu-ção de tempo de execução 200, a construção de dados 310 podeser acessada para uma descrição de estruturas de dados asso-ciadas. As estruturas de dados, que podem alternativamenteser referidas como tipos, podem incluir nomes de métodos, osargumentos usados nos métodos, e argumentos de retorno. Es-tas estruturas de dados (isto é, tipos) são providas tão-somente como exemplares, e de forma alguma devem ser Iimi-tantes.
O esquema dos metadados 310 pode ser conhecido co-mo parte de um padrão publicado, ou o esquema pode ser pa-dronizado ou embutido no ambiente de execução de tempo deexecução 200. De acordo com as presentes implementações, oesquema pode ser referido como um conjunto de regras paralimitar a estrutura dos metadados na construção 310 e podeincluir, por exemplo, um número padronizado de tabelas, umnúmero padronizado de colunas por tabela, e descritores decoluna padronizados para uma ou mais dentre as tabelas.
A construção de dados 315 pode ser provida no ob-jeto 300, entre outros motivos, para resolver quando os me-tadados incluídos na construção de dados 310 não forem com-pilados de acordo com o padrão publicado ou com o padrão em-butido no ambiente de execução de tempo de execução 200. Ouseja, para ler, analisar, ou de outra forma interpretar es-truturas de dados (isto é, tipos) que podem ter se desdobra-do de modo a adicionar novos recursos, excluir recursos an-tigos, ou corrigir bugs nos recursos existentes, a constru-ção de dados 315 pode ser provida de modo a produzir os me-tadados incluídos na construção de dados 310 extensível semprecisar de ajustes em nenhum componente do ambiente de exe-cução de tempo de execução 200.
A construção de dados 315, portanto, pode incluirdados que podem ser referidos como "meta-metadados". Ou se-ja, os meta-metadados incluídos na construção de dados 315 podem se referir ao esquema dos metadados incluídos na cons-trução de dados 310. Ainda, a construção de dados 315 podeser compilada como parte do bloco de código 300 como partedo fluxo de metadados. No entanto, pelo menos uma implemen-tação alternativa de metadados extensíveis 120 pode contem- plar a construção de dados 315, e, portanto, os meta-metadados incluídos na mesma, sendo provida para o ambientede execução de tempo de execução 200 de uma maneira off-line, por meio de qualquer meio de transporte alternativo ouem fluxo de esquema separado. Além disso, de acordo com osexemplos descritos até então, a construção de dados 310 e aconstrução de dados 315 são entidades de dados separadas; noentanto, pelo menos uma implementação alternativa pode con-templar a construção de dados 315 integrada à construção dedados 310.
Por exemplo, os meta-metadados incluídos dentro daconstrução de dados 315 podem incluir um ou mais dentre oseguinte: uma descrição compreensiva do esquema do metadadoincluído na construção de dados 310; uma comparação do es-quema dos metadados incluídos na construção de dados 310 com um modelo de esquema padronizado que pode ser requerido paraexecução de código correspondente ao bloco 305; ou algumaoutra descrição de como o esquema dos metadados incluídos naconstrução de dados 310 se desvia do modelo de esquema pa-dronizado que pode ser requerido para a execução do códigocorrespondente ao bloco 305. Uma descrição de tais desviospode pertencer, com relação aos metadados incluídos na cons-trução de dados 310, ao número de tabelas, ao número de co-lunas por tabela, ou ao tamanho das colunas em uma ou maisrespectivas tabelas.
Mais particularmente, com referência ao esquemados metadados incluídos na construção de dados 310, os meta-metadados incluídos dentro da construção de dados 315 podemincluir um ou mais dentre o seguinte, em várias combinações:pelo menos um tamanho redefinido de colunas de tamanhos va-riáveis em uma base por coluna; pelo menos uma definição deuma nova tabela; pelo menos uma definição de um novo tipo deficha codificado; uma contagem de tabela que excede umaquantidade padronizada; uma contagem dé coluna que excedeuma quantidade padronizada; e uma contagem de tipo de fichaque excede uma quantidade padronizada. Pelo menos um exemplodo fluxo de esquema separado pode incluir um cabeçalho defluxo, novos descritores de tipo de ficha codificado, des-critores de tabela para tabelas padronizadas, descritores detabela para novas tabelas, descritores de coluna para uma ta-bela padronizada, e descritores de coluna para novas tabelas.
A Figura 4 mostra um fluxo de dados exemplar 400para ilustrar uma implementação exemplar de metadados exten-síveis 120 (vide Figura 1).
o bloco 405 pode se referir a um ambiente de exe-cução no qual um ou mais tecnologias relativas a metadadosextensíveis 120 podem ser implementadas. A presente descri-ção até então se referiu a um ambiente de execução de tempode execução 200 como o ambiente no qual metadados extensí-veis 120 podem ser implementados. No entanto, as implementa-ções exemplares não se limitam apenas aos ambientes de exe-cução gerenciados. Ao contrário, exemplos alternativos demetadados extensíveis 120 podem ser implementados dentro deambientes de teste e/ou ambientes de execução não gerencia-dos. Independentemente, a descrição de fluxos de dados 400pode se referir a várias operações que são realizadas por umou mais módulos associados aos dispositivos correspondentesao ambiente de rede 100 (vide Figura 1) , aos componentescorrespondentes ao ambiente de execução de tempo de execução200 (vide Figura 2), e ao módulo de código 305 e às constru-ções de dados 310 e 315 (vide Figura 3). Além disso, as ope-rações podem ser implementadas como um hardware, um firmwa-re, ou um software, de maneira singular ou em várias combi-nações em conjunto.
O bloco 410 pode se referir a um módulo de ambien-te de execução 405, que examina, analisa, ou de outra formalê os meta-metadados incluídos na construção de dados 315 afim de determinar se existem desvios entre o esquema de me-tadados do código de entrada 305, conforme indicado pelosmetadados incluídos na construção de dados 310, e no esquemapadrão publicado ou de outra forma no esquema padronizado esperado pelo ambiente de execução 405. Um exemplo de talmódulo pode incluir o gerenciador de rotina de serviço 220do ambiente de execução de tempo de execução 200.
Mais particularmente, para o código compilado 305(isto é, a linguagem IL) a ser lido ou executado dentro doambiente de execução 405, espera-se que o esquema para osmetadados seja previsível. Por exemplo, com referência aosexemplos das Figuras 2 e 3, o ambiente de execução de tempode execução 200 pode antecipar o esquema para os metadadosincluídos na construção de dados 310 de modo a incluir 42tabelas, cada qual com 64 colunas. Sendo assim, no bloco410, podem ser detectados desvios dos descritores do tipopadronizado, dos descritores de tabela, e dos descritores decoluna.
Os desvios de um modelo de esquema de metadadospadronizado podem ser detectados ao se ler, interpretar, oude outra forma analisar os meta-metadados incluídos na cons-trução de dados 315 (vide Figura 3) . Sendo assim, os meta-metadados podem incluir uma descrição compreensiva do esque-ma dos metadados. De maneira alternativa, os dados incluídosna construção de dados 315 podem listar as diferenças entreo esquema dos metadados incluídos na construção de dados 310com o modelo de esquema padronizado, deste modo envolvendo anecessidade de revisão completa dos metadados incluídos naconstrução de dados 310.
Além disso, os meta-metadados da construção de da-dos 315 podem ser compilados como parte do código 305 ouprovidos para o ambiente de execução 405 em um fluxo de es-quema separado (por exemplo, de uma maneira off-line ou pormeio de algum meio de transporte alternativo).
O bloco 415 pode se referir a um módulo dentro doambiente de execução 405 (por exemplo, o gerenciador de ro-tina de serviço 220) que examina, analisa, ou de outra formalê os metadados do código de entrada 305. Ou seja, tendo si-do informado como os metadados incluídos na construção dedados 310 podem se desvira de um modelo de esquema de meta-dados padronizado, o módulo acima mencionado dentro do ambi-ente de execução 405 pode ser habilitado para ler, interpre-tar, ou de outra forma analisar os metadados extensíveis in-cluídos na construção de dados 310.
Por meio da descrição acima, com referência às Fi-guras 1 a 4, os metadados do código entrado em um ambientede execução em particular podem se tornar extensíveis. Porexemplo, o esquema de metadados correspondente a um códigode linguagem intermediária compilado (isto é, a linguagemIL) pode se desviar de uma estrutura padronizada sem reque-rer a re-configuração do ambiente de execução de tempo deexecução no qual um aplicativo, programa, função ou outramontagem correspondente de um código programável ou executá-vel se encontra. No entanto, as implementações exemplaresdescritas no presente documento não se limitam" simplesmente ao ambiente da Figura 1, aos componentes das Figuras 2 e 3,ou ao fluxo de processamento de dados da Figura 4. As tecno-logias (por exemplo, as ferramentas, as metodologias, e ossistemas) associadas aos metadados extensíveis 120 (vide Fi-gura 1) podem ser implementadas por meio de várias combina-ções dos componentes descritos com referência às Figuras 2 e3, assim como por meio de várias ordens dentre os blocosdescritos com referência à Figura 4.
Ainda, o ambiente de computador para qualquer den-tre os exemplos e implementações descritas acima pode inclu-ir um dispositivo computacional tendo, por exemplo, um oumais processadores ou unidades de processamento, uma memóriade sistema, e um barramento de sistema a fim de acoplar osvários componentes de sistema.
O dispositivo computacional pode incluir uma vari-edade de meios legíveis em computador, incluindo meios volá-teis e não voláteis, meios removíveis e não removíveis. Amemória de sistema pode incluir meios legíveis em computadorna forma de memória volátil, como, por exemplo, uma memóriade acesso aleatório (RAM), e/ou uma memória não volátil, co-mo, por exemplo, a memória de leitura (ROM) ou a memória RAMflash. Será apreciado que outros tipos de meios legíveis emcomputador que podem armazenar dados acessíveis por um com-putador, como, por exemplo, cassetes magnéticos ou outrosdispositivos de armazenamento magnético, cartões de memóriaflash, CD-ROM, discos versáteis digitais (DVD) ou outro ar-mazenamento ótico, memórias de acesso aleatoriamente (RAM),memórias de leitura (ROM), memória de leitura programávelapagável elétrica (EEPROM), ou coisa do gênero, podem tambémser utilizados a fim de implementar o sistema ou ambientecomputacional exemplar.
Foi feita referência por todo o presente relatóriodescritivo a "um exemplo", "exemplos alternativos", "pelomenos um exemplo", "uma implementação", ou "uma implementa-ção exemplar", significando que um recurso, estrutura, oucaracterística descrita em particular é incluído em pelo me-nos uma implementação da presente invenção. Sendo assim, ouso de tais expressões pode se referir a mais de uma únicaimplementação. Além disso, os recursos, estruturas, ou ca-racterísticas descritas podem ser combinados de qualquer ma-neira adequada em uma ou mais implementações.
Uma pessoa versada na técnica poderá reconhecer,no entanto, que a inicialização de módulo de código pode serimplementada sem um ou mais dentre os detalhes específicos,ou com outros métodos, recursos, materiais, etc. Em outrasinstâncias, estruturas, recursos, ou operações bem conheci-das foram mostradas ou descritas em detalhes a fim de sim-plesmente evitar os aspectos pouco conhecidos da presenteinvenção.
Embora implementações e aplicações exemplares dainicialização de módulo de código tenham sido ilustradas edescritas, deve-se entender que a presente invenção não selimita à configuração e recursos precisos descritos acima.Várias modificações, mudanças, e variações aparentes aosversados na técnica podem ser feitas à disposição, operação,e aos detalhes dos métodos e sistemas da invenção aqui apre- sentada sem se afastar do âmbito da presente invenção, con-forme descrito acima e reivindicado abaixo.

Claims (20)

1. Pelo menos um meio legível em computador tendouma ou mais estruturas de dados, pelo menos uma das estrutu-ras de dados sendo CARACTERIZADA pelo fato de compreender:- módulos para executar uma ou mais instruçõesprogramáveis;- uma construção de dados para descrever os tiposcorrespondentes a um ou mais dentre os módulos;- uma outra construção de dados para descrever umaestrutura da construção de dados.
2. Pelo menos um meio legível em computador, deacordo com a reivindicação 1, CARACTERIZADO pelo fato de queos módulos incluem um código gerenciado.
3. Pelo menos um meio legível em computador, deacordo com a reivindicação 1, CARACTERIZADO pelo fato de queos módulos incluem um código de linguagem intermediária com-pilada.
4. Pelo menos um meio legível em computador, deacordo com a reivindicação 1, CARACTERIZADO pelo fato de queos módulos são para executar a uma ou mais instruções pro-gramáveis em um ambiente de execução gerenciado, e pelo fatode que a construção de dados inclui metadados tendo uma es-trutura que se desvia de um padrão publicado para a estrutu-ra de metadados no ambiente de execução gerenciado.
5. Pelo menos um meio legível em computador, deacordo com a reivindicação 1, CARACTERIZADO pelo fato de queoutra construção de dados inclui um esquema para a constru-ção de dados, e pelo fato de que o esquema para a construçãode dados se desvia de um esquema padronizado para a constru-ção de dados em um ambiente de execução gerenciado.
6. Pelo menos um meio legível em computador, deacordo com a reivindicação 1, CARACTERIZADO pelo fato de que a construção de dados deve ainda descrever um desvio de umaestrutura da construção de dados de um formato padrão publi-cado para uma estrutura da construção de dados em um ambien-te de execução gerenciado.
7. Pelo menos um meio legível em computador, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de quea construção de dados deve ainda descrever um desvio em vá-rias tabelas de uma estrutura da construção de dados em com-paração a várias tabelas de uma estrutura padrão publicadapara a construção de dados.
8. Pelo menos um meio legível em computador, deacordo com a reivindicação 1, CARACTERIZADO pelo fato de quea construção de dados deve ainda descrever um desvio em vá-rias colunas por tabela de uma estrutura da construção dedados em comparação a várias colunas por tabela de uma es- trutura padrão publicada para a construção de dados.
9. Pelo menos um meio legível em computador, deacordo com a reivindicação 1, CARACTERIZADO pelo fato de quea construção de dados deve ainda descrever um desvio no ta-manho das colunas de uma estrutura da construção de dados em comparação ao tamanho das colunas de uma estrutura padrãopublicada para a construção de dados.
10. Método, CARACTERIZADO pelo fato de compreenderas etapas de:- receber metadados associados a um código execu-tável em ambiente de execução gerenciado; e- determinar diferenças estruturais entre os meta-dados recebidos e um formato de metadado padrão no ambientede execução gerenciado.
11. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que os metadados são compiladosem uma linguagem intermediária.
12. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que a etapa de determinar inclui:- a leitura de uma entidade de dados separada quedescreve um esquema dos metadados; e- a comparação do esquema a um padrão publicado doesquema.
13. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que a etapa de determinar incluia leitura de uma entidade de dados separada que descreve asdiferenças estruturais.
14. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que as diferenças estruturaispertencem a um número de colunas dos metadados.
15. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que as diferenças estruturaispertencem aos tipos de colunas dos metadados.
16. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que as diferenças estruturaispertencem aos tamanhos de colunas dos metadados.
17. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que as diferenças estruturaispertencem a um número de tabelas dos metadados.
18. Sistema, CARACTERIZADO pelo fato de compreen-der :- um meio para receber metadados associados a umcódigo gerenciado;- um meio para determinar diferenças esquemáticasentre uma estrutura dos metadados recebidos e uma estruturapadrão dos metadados para um código gerenciado; e- um meio para ler os metadados de acordo com asdiferenças esquemáticas determinadas.
19. Sistema, de acordo com a reivindicação 18,CARACTERIZADO pelo fato de que as diferenças esquemáticaspertencem às tabelas dos metadados recebidos.
20. Sistema, de acordo com a reivindicação 18,CARACTERIZADO pelo fato de que as diferenças esquemáticaspertencem às colunas dos metadados recebidos.
BRPI0617192-3A 2005-10-13 2006-09-12 metadados extensìveis BRPI0617192A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/249,784 US7743363B2 (en) 2005-10-13 2005-10-13 Extensible meta-data
US11/249.784 2005-10-13
PCT/US2006/035388 WO2007046976A1 (en) 2005-10-13 2006-09-12 Extensible meta-data

Publications (1)

Publication Number Publication Date
BRPI0617192A2 true BRPI0617192A2 (pt) 2011-07-19

Family

ID=37949325

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0617192-3A BRPI0617192A2 (pt) 2005-10-13 2006-09-12 metadados extensìveis

Country Status (11)

Country Link
US (1) US7743363B2 (pt)
EP (1) EP1934814A4 (pt)
JP (1) JP5139987B2 (pt)
KR (1) KR20080047444A (pt)
CN (1) CN101288070B (pt)
AU (1) AU2006302929A1 (pt)
BR (1) BRPI0617192A2 (pt)
NO (1) NO20081269L (pt)
RU (1) RU2008114301A (pt)
TW (1) TW200731094A (pt)
WO (1) WO2007046976A1 (pt)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7219330B2 (en) * 2003-06-26 2007-05-15 Microsoft Corporation Extensible metadata
US8281299B2 (en) * 2006-11-10 2012-10-02 Purdue Research Foundation Map-closure: a general purpose mechanism for nonstandard interpretation
US8108855B2 (en) * 2007-01-02 2012-01-31 International Business Machines Corporation Method and apparatus for deploying a set of virtual software resource templates to a set of nodes
US8327350B2 (en) * 2007-01-02 2012-12-04 International Business Machines Corporation Virtual resource templates
US8370802B2 (en) 2007-09-18 2013-02-05 International Business Machines Corporation Specifying an order for changing an operational state of software application components
US8484615B2 (en) * 2007-12-20 2013-07-09 Ncr Corporation Software framework to build an executable scheme in a GUI environment
US8250524B2 (en) * 2007-12-21 2012-08-21 Microsoft Corporation Contract programming for code error reduction
US8775717B2 (en) 2007-12-27 2014-07-08 Sandisk Enterprise Ip Llc Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories
US8108434B2 (en) * 2008-08-26 2012-01-31 Sap Ag Dynamic node extensions and extension fields for business objects
US8356056B2 (en) * 2008-08-26 2013-01-15 Sap Ag Functional extensions for business objects
US8108433B2 (en) * 2008-08-26 2012-01-31 Sap Ag Dynamic extension fields for business objects
US20100162147A1 (en) * 2008-12-19 2010-06-24 Ritter Gerd M Ui-driven binding of extension fields to business objects
US20100161648A1 (en) * 2008-12-19 2010-06-24 Peter Eberlein Flexible multi-tenant support of metadata extension
US8819075B2 (en) 2010-07-26 2014-08-26 Sap Ag Facilitation of extension field usage based on reference field usage
US9063958B2 (en) 2010-07-29 2015-06-23 Sap Se Advance enhancement of secondary persistency for extension field search
US8886646B2 (en) 2010-12-30 2014-11-11 Sap Se Field extensibility for analytical reports
US8978007B2 (en) 2011-06-30 2015-03-10 Microsoft Technology Licensing, Llc Static metadata in dynamic programs
US8849996B2 (en) * 2011-09-12 2014-09-30 Microsoft Corporation Efficiently providing multiple metadata representations of the same type
US8782060B2 (en) * 2012-04-13 2014-07-15 Theplatform For Media, Inc. Multiple phase content ingest
US9047196B2 (en) 2012-06-19 2015-06-02 Concurix Corporation Usage aware NUMA process scheduling
US8700838B2 (en) 2012-06-19 2014-04-15 Concurix Corporation Allocating heaps in NUMA systems
US9575813B2 (en) 2012-07-17 2017-02-21 Microsoft Technology Licensing, Llc Pattern matching process scheduler with upstream optimization
US8966462B2 (en) 2012-08-10 2015-02-24 Concurix Corporation Memory management parameters derived from system modeling
US9043788B2 (en) 2012-08-10 2015-05-26 Concurix Corporation Experiment manager for manycore systems
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US8656134B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Optimized memory configuration deployed on executing code
US8607018B2 (en) 2012-11-08 2013-12-10 Concurix Corporation Memory usage configuration based on observations
US8656135B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Optimized memory configuration deployed prior to execution
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US20130219372A1 (en) 2013-03-15 2013-08-22 Concurix Corporation Runtime Settings Derived from Relationships Identified in Tracer Data
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US20180095788A1 (en) * 2016-10-04 2018-04-05 Pure Storage, Inc. Scheduling operations for a storage device

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052681A (en) 1994-09-01 2000-04-18 Datacraft Technologies Pty. Ltd. X.500 system and methods
US6003039A (en) 1997-06-27 1999-12-14 Platinum Technology, Inc. Data repository with user accessible and modifiable reuse criteria
US5893086A (en) * 1997-07-11 1999-04-06 International Business Machines Corporation Parallel file system and method with extensible hashing
US5974424A (en) * 1997-07-11 1999-10-26 International Business Machines Corporation Parallel file system and method with a metadata node
US6199198B1 (en) * 1997-12-10 2001-03-06 International Business Machines Corp. Computer system, method, and article of manufacture for visualizing differences between design artifacts and object-oriented code
US6549922B1 (en) 1999-10-01 2003-04-15 Alok Srivastava System for collecting, transforming and managing media metadata
US7114147B2 (en) * 2000-03-09 2006-09-26 Electronic Data Systems Corporation Method and system for reporting XML data based on precomputed context and a document object model
AU780811B2 (en) * 2000-03-13 2005-04-21 Sony Corporation Method and apparatus for generating compact transcoding hints metadata
US20020099726A1 (en) * 2001-01-23 2002-07-25 International Business Machines Corporation Method and system for distribution of file updates
US6901446B2 (en) 2001-02-28 2005-05-31 Microsoft Corp. System and method for describing and automatically managing resources
US6976076B2 (en) * 2001-06-29 2005-12-13 International Business Machines Corporation Architecture for the graphical management and analysis of authentication tokens
US6983448B2 (en) 2001-07-12 2006-01-03 International Business Machines Corporation Open framework for the definition of metadata
US7451157B2 (en) 2001-10-16 2008-11-11 Microsoft Corporation Scoped metadata in a markup language
US20030093551A1 (en) * 2001-10-17 2003-05-15 Graham Taylor Adaptive software interface
US20040201600A1 (en) 2001-12-14 2004-10-14 Microsoft Corporation Methods and system for providing an XML-based interface description language
JP3826043B2 (ja) * 2002-01-31 2006-09-27 キヤノン株式会社 情報処理装置及び方法
US7174533B2 (en) * 2002-03-14 2007-02-06 Sun Microsystems, Inc. Method, system, and program for translating a class schema in a source language to a target language
US7131110B2 (en) * 2002-03-21 2006-10-31 Sun Microsystems, Inc. Method and apparatus for generating a code bridge
AU2003221185A1 (en) * 2002-04-12 2003-10-27 Mitsubishi Denki Kabushiki Kaisha Meta data edition device, meta data reproduction device, meta data distribution device, meta data search device, meta data reproduction condition setting device, and meta data distribution method
AU2003252024A1 (en) 2002-07-16 2004-02-02 Bruce L. Horn Computer system for automatic organization, indexing and viewing of information from multiple sources
US20040117397A1 (en) 2002-12-16 2004-06-17 Rappold Robert J Extensible database system and method
JP2004228780A (ja) * 2003-01-21 2004-08-12 Canon Inc 情報処理装置
US20040158820A1 (en) * 2003-02-11 2004-08-12 Moore John Wesley System for generating an application framework and components
JP2004260279A (ja) * 2003-02-24 2004-09-16 Nippon Telegr & Teleph Corp <Ntt> ピアグループの構成方法、属性情報更新方法、分断検出方法およびピアならびに該方法を実行するためのプログラム
US7080089B2 (en) * 2003-03-12 2006-07-18 Microsoft Corporation Customization of process logic in a software system
US7346627B2 (en) * 2003-06-25 2008-03-18 Oracle International Corporation Approaches for migrating portal objects from a source installation to a target installation
US7219330B2 (en) 2003-06-26 2007-05-15 Microsoft Corporation Extensible metadata
DE10335989B4 (de) * 2003-08-01 2019-07-11 Kw-Software Gmbh Online-Änderungen von CIL-Code-Programmen für die Industrieautomatisierung
US7739223B2 (en) * 2003-08-29 2010-06-15 Microsoft Corporation Mapping architecture for arbitrary data models
US20060179116A1 (en) * 2003-10-10 2006-08-10 Speeter Thomas H Configuration management system and method of discovering configuration data
US20050108684A1 (en) * 2003-11-14 2005-05-19 Sohn Matthias E. Method and system for generating an application object repository from application framework metadata
US7574692B2 (en) * 2004-11-19 2009-08-11 Adrian Herscu Method for building component-software for execution in a standards-compliant programming environment

Also Published As

Publication number Publication date
JP5139987B2 (ja) 2013-02-06
TW200731094A (en) 2007-08-16
KR20080047444A (ko) 2008-05-28
RU2008114301A (ru) 2009-10-20
EP1934814A4 (en) 2009-06-17
JP2009512062A (ja) 2009-03-19
AU2006302929A1 (en) 2007-04-26
NO20081269L (no) 2008-04-16
US20070088716A1 (en) 2007-04-19
US7743363B2 (en) 2010-06-22
CN101288070A (zh) 2008-10-15
EP1934814A1 (en) 2008-06-25
CN101288070B (zh) 2010-09-29
WO2007046976A1 (en) 2007-04-26

Similar Documents

Publication Publication Date Title
BRPI0617192A2 (pt) metadados extensìveis
AU2017200899B2 (en) Runtime system
Galán et al. Service specification in cloud environments based on extensions to open standards
BRPI0618027A2 (pt) configuração de extensões isoladas e acionadores de dispositivo
JPH0926924A (ja) 分散オブジェクトシステムにおける例外を解釈する方法および装置
EP4055477A1 (en) Just-in-time containers
US7725478B2 (en) Localization of CIM-Based instrumentation
CN102566984A (zh) 一种配置参数的方法及装置
US20110295987A1 (en) Translation of technology-agnostic management commands into multiple management protocols
EP1902379B1 (en) Node-to-node communication pipelines
US8661425B1 (en) Method, apparatus, and computer-readable medium for storing data associated with a firmware program
US8539461B2 (en) Method for identifying memory of virtual machine and computer system thereof
CN107168815A (zh) 一种收集硬件错误信息的方法
BR112012013808B1 (pt) sistema de rede para rede transparente
Lavieri Mastering Java 11: Develop modular and secure Java applications using concurrency and advanced JDK libraries
Frommelt Linux on Tensilica Xtensa

Legal Events

Date Code Title Description
B11A Dismissal acc. art.33 of ipl - examination not requested within 36 months of filing
B11Y Definitive dismissal acc. article 33 of ipl - extension of time limit for request of examination expired