BRPI0617187A2 - descoberta, qualificação e ativação de componentes de suplemento de software - Google Patents

descoberta, qualificação e ativação de componentes de suplemento de software Download PDF

Info

Publication number
BRPI0617187A2
BRPI0617187A2 BRPI0617187-7A BRPI0617187A BRPI0617187A2 BR PI0617187 A2 BRPI0617187 A2 BR PI0617187A2 BR PI0617187 A BRPI0617187 A BR PI0617187A BR PI0617187 A2 BRPI0617187 A2 BR PI0617187A2
Authority
BR
Brazil
Prior art keywords
component
add
application
computer
supplement
Prior art date
Application number
BRPI0617187-7A
Other languages
English (en)
Inventor
Brian Pepin
James Slocum Miller
Thomas Edward Quinn
Jeffrey Marc Richter
Original Assignee
Microsoft Corp
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 Corp filed Critical Microsoft Corp
Publication of BRPI0617187A2 publication Critical patent/BRPI0617187A2/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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • 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)

Abstract

DESCOBERTA, QUALIFICAçãO E ATIVAçãO DE COMPONENTES DE SUPLEMENTO DE SOFTWARE. A presente invenção diz respeito a métodos, sistemas e produtos de programa de computador para descobrir, qualificar e ativar componentes de suplemento de software. Um gerenciador de componente de suplemento descobre um ou mais componentes de suplemento no sistema de computador que são de um tipo especificado de componente de suplemento requisitado por uma aplicação. O gerenciador de componente de suplemento qualifica pelo menos um componente de suplemento descoberto com base no pelo menos um componente de suplemento descoberto satisfazendo uma ou mais restrições de qualificação. A uma ou mais restrições de qualificação são representativas de funcionalidade que é para ser associada com um componente de suplemento para o componente de suplemento operar em conjunto com a aplicação de uma maneira desejada. O gerenciador de componente de suplemento ativa um componente de suplemento qualificado de acordo com uma ou mais restrições de qualificação para uso com a aplicação.

Description

"DESCOBERTA, QUALIFICAÇÃO E ATIVAÇÃO DECOMPONENTES DE SUPLEMENTO DE SOFTWARE"ANTECEDENTES
1. Antecedentes e Técnica RelacionadaOs sistemas de computadores e a tecnologia rela-cionada afetam vários aspectos da sociedade. Na verdade, ahabilidade do sistema de computador em processar informaçõestem transformado o modo em que vivemos e trabalhamos. Ossistemas de computadores atualmente normalmente executam umgrande número de tarefas (por exemplo, processamento de tex-to, programação e gerenciamento de base de dados) que ante-rior ao advento do sistema de computador eram executadas ma-nualmente. Mais recentemente, os sistemas de computadorestêm sido acoplados uns com os outros e com outros dispositi-vos eletrônicos para formar tanto redes de computadores comfios e sem fios através das quais os sistemas de computadore outros dispositivos eletrônicos podem transferir dados e-letrônicos. Como resultado, várias tarefas executadas em umsistema de computador (por exemplo, comunicação de voz, a-cessar correio eletrônico, controlar eletrodomésticos, nave-gar na Rede e imprimir documentos) incluem a troca de mensa-gens eletrônicas entre uma série de sistemas de computador e/ ou outros dispositivos eletrônicos via as redes de compu-tadores com fios e / ou sem fios.
As aplicações de software (por exemplo, processa-dores de texto, clientes de correio eletrônico, etc.) sãofreqüentemente projetadas de um modo modular de modo que di-ferentes componentes de software de uma aplicação trabalhemjuntos para proporcionar uma função desejada. Como tal, osmódulos de uma aplicação podem ser montados por um usuáriofinal em tempo de execução e são freqüentemente proporciona-dos por vendedores diferentes em momentos diferentes. Estamodularidade permite um conjunto de aspectos da aplicaçãopara alterar dinamicamente e promover desenvolvimento dis-tribuído eficiente de aplicações maiores.
Por exemplo, diferentes equipes de desenvolvedorespodem trabalhar em relação a vários módulos de uma aplicaçãoisoladamente, e combinar os módulos posteriormente. Duranteo desenvolvimento, os diferentes módulos podem ser projeta-dos para trabalharem juntos uns com os outros em tempo deexecução. Freqüentemente, os membros de uma equipe de de-senvolvimento de software estão cientes uns dos outros, etodos podem ser empregados da mesma companhia (por exemplo,os quais são especificamente designados para desenvolver umaaplicação especificada). Por outro lado, podem ser dadasespecificações de software para diferentes equipes de de-senvolvedores para proporcionar certos módulos e as diferen-tes equipes podem não estar cientes uma da outra.
O desenvolvimento da aplicação pode incluir desen-volver interfaces para trabalho em conjunto com outros (epotencialmente subseqüentemente desenvolvidos) módulos (porexemplo, suplementos) que proporcionam funcionalidade adi-cional e / ou diferente não originalmente projetada dentroda aplicação. Por exemplo , um navegador da Rede tipicamen-te inclui a funcionalidade de carregar programas de extensão("plug-ins"), por exemplo, para facilitar o processamentoapropriado de conteúdo formatado (por exemplo, animação fla-sh, documentos do formato de documento portátil, etc.) quede outro modo não poderiam ser processados. Apesar de po-tencialmente desenvolvido pelos desenvolvedores de uma apli- cação alvo, os programas de extensão e os suplementos ("add-ins") freqüentemente são desenvolvidos por desenvolvedoresterceirizados. Ou seja, os desenvolvedores de um suplementofreqüentemente não são os desenvolvedores da aplicação com aqual os suplementos são projetados para operar.
Como resultado, as aplicações e os suplementoscorrespondentes freqüentemente são instalados (ou armazena-dos) em um sistema de computador em momentos diferentes.Para carregar um suplemento, uma aplicação chama a interfaceapropriada com o nome do suplemento. Entretanto, para uma aplicação carregar um suplemento, a aplicação tipicamentedeve saber a localização (por exemplo, em um sistema de ar-quivos) e o nome do suplemento. Como tal, o caminho de umdiretório do suplemento tipicamente é de codificação fixadentro de uma aplicação. Para a aplicação utilizar um su-plemento, o suplemento deve estar armazenado no diretórioapropriado de suplementos.
Desde que cada aplicação pode possuir um caminhocom codificação fixa para um diferente diretório de suple-mentos, podem existir vários diretórios de suplementos em um sistema de computador. Alguns suplementos podem ser proje-tados para proporcionar funcionalidade similar (por exemplo,um dicionário) para uma série de diferentes aplicações (porexemplo, processador de texto, cliente de correio eletrôni-co, aplicação de planilha, etc.). Entretanto, para propor-cionar a função similar para uma série de diferentes aplica-ções, uma cópia separada do suplemento deve ser armazenadana localização de suplementos para cada uma das aplicações.
Como resultado, um suplemento pode ser armazenado de formaredundante em uma série de localizações em um sistema decomputador. Em alguns ambientes, um suplemento com a fun-cionalidade desejada pode ser armazenado em um sistema decomputador, mas ser desconhecido e / ou inacessível para umaaplicação devido ao suplemento ser armazenado no diretóriode suplementos para uma aplicação diferente.
O desenvolvimento de suplementos tipicamente exigeque um desenvolvedor de suplemento conheça a interface uti-lizada por uma aplicação para carregar suplementos. Assim,se um desenvolvedor de suplemento desejar proporcionar fun-cionalidade similar do suplemento para uma série de aplica-ções diferentes, o desenvolvedor do suplemento deve desen-volver o suplemento com uma interface apropriada para cadauma das diferentes aplicações. Adicionalmente, se uma atua-lização da aplicação alterar uma interface da aplicação, osuplemento pode também precisar ser atualizado em relação àcompatibilidade. Assim, um desenvolvedor de suplemento podeprecisar freqüentemente liberar novas versões do suplementopara compatibilidade. Mesmo quando nenhuma nova funcionali-dadé é incluída no suplemento.
Como anteriormente desc rito, acessar a funciona-lidade de um suplemento tipicamente inclui carregar um su-plemento pelo nome a partir de um diretório de suplementosespecíficos da aplicação. Entretanto, antes de carregar umsuplemento, uma aplicação possui pouca, se houver, garantiade que o suplemento irá operar como pretendido e que o su-plemento é seguro. Tipicamente, o único mecanismo que pode ser utilizado para determinar como o suplemento irá operar écarregar o suplemento e testar o mesmo na hora da execução.Assim, uma aplicação pode ser forçada a carregar e executarum suplemento configurado de forma imprópria para determinarque o suplemento está configurado de forma inapropriada. 0 uso por uma aplicação de um suplemento configurado de formainapropriada pode causar que um sistema de computador fun-cione de foram errada.
O uso de suplementos também apresenta um risco desegurança, desde que código mal-intencionado em um suplemen- to também pode estar apto a ter acesso às funções do sistemade outro modo protegidas pela interface com uma aplicação.Entretanto, uma aplicação pode ter mecanismos limitados, seexistirem, para determinar que o suplemento inclui códigomal-intencionado sem carregar e executar o suplemento. Uma solução é impedir as aplicações de utilizarem quaisquer su-plementos. Entretanto, esta solução impede uma aplicação deutilizar suplementos apropriadamente configurados que aper-feiçoam a funcionalidade da aplicação.
SUMÁRIO
A presente invenção é aplicável para métodos, sis-temas e produtos de programa de computador para descobrir,qualificar, e ativar componentes de suplemento de software.Em algumas modalidades, um sistema de computador descobre seum suplemento está disponível para uma aplicação. Um geren-ciador de componente suplemento recebe uma requisição porcomponentes de suplemento disponíveis a partir de uma apli-cação. A requisição incluindo uma propriedade que pode ser selecionada do componente de suplemento indicativa de um ti-po especificado de componente de suplemento que a aplicaçãoestá requisitando.
0 gerenciador de componente de suplemento comparaa propriedade que pode ser selecionada do componente de su- plemento com o conteúdo de uma entrada de componente de su-plemento para um componente de suplemento. A entrada docomponente de suplemento está incluída em um índice de com-ponentes de suplemento que também inclui as entradas de com-ponente de suplemento para outros componentes de suplemento do sistema de computador. A entrada do componente de suple-mento inclui uma ou mais propriedades indicativas da funcio-nalidade de um componente de suplemento identificado duranteum processo de registro com o gerenciador de componente desuplemento. O gerenciador de componente de suplemento de-termina que o componente de suplemento é do tipo requisitadopela aplicação baseado nos resultados da comparação. O ge-renciador de componente de suplemento indica para a aplica-ção que o componente de suplemento é um componente de suple-mento do tipo especificado que está disponível para a apli- cação.
Em outras modalidades, um sistema de computadordetermina se um componente de suplemento disponível para umaaplicação está qualificado para uso com a aplicação. Um ge-renciador de componente de suplemento acessa uma ou maispropriedades identificadas para um componente de suplementocandidato que está disponível para uma aplicação. A uma oumais propriedades identificadas indicam a funcionalidade as-sociada com o componente de suplemento candidato. 0 compo-nente de suplemento representado em uma entrada de componen-te de suplemento em um índice de componentes de suplementoque também inclui entradas de componente de suplemento paraoutros componentes de suplemento do sistema de computador.
O gerenciador de componente recebe uma requisiçãoa partir da aplicação por componentes de suplemento que sa-tisfaçam uma ou mais exigências de qualificação. Cada exi-gência de qualificação representa funcionalidade que é paraser associada com um componente de suplemento para o compo-nente de suplemento apropriadamente operar com a aplicação.O gerenciador de componente compara a uma ou mais exigênciasde qualificação e a uma ou mais propriedades identificadas.O gerenciador de componente determina se o componente de su-plemento candidato é qualificado para uso com a aplicaçãocom base nos resultados da comparação da uma ou mais exigên-cia de qualificação com a uma ou mais propriedades identifi-cadas .
Em modalidades adicionais, um sistema de computa-dor carrega um componente de suplemento para uso com uma a-plicação com base na funcionalidade requisitada do componen-te de suplemento. Um gerenciador de componente de suplemen-to descobre um óu mais componentes de suplemento no sistemade computador que são de um tipo especificado de componentede suplemento requisitado por uma aplicação. 0 gerenciadorde componente de suplemento qualifica pelo menos um compo-nente de suplemento descoberto baseado no pelo menos um com-ponente de suplemento descoberto satisfazendo uma ou maisexigência de qualificação. A uma ou mais exigência de qua-lificação representativas da funcionalidade que é para serassociada com um componente de suplemento para o componentede suplemento trabalhar em conjunto com a aplicação de umamaneira desejada. 0 gerenciador de componente de suplementoativa um componente de suplemento qualificado de acordo coma uma ou mais exigências de qualificação para uso com a a-plicação.
Este sumário é proporcionado para introduzir umaseleção de conceitos de uma forma simplificada que são adi-cionalmente descritos abaixo na Descrição Detalhada. EsteSumário não é pretendido para identificar os aspectos prin-cipais ou os aspectos essenciais do tema reivindicado, nem épretendido para ser utilizado como um auxilio ao se determi-nar o escopo do tema reivindicado.
Aspectos e vantagens adicionais da invenção serãoexpostos na descrição a seguir, e em parte serão óbvios apartir da descrição, ou podem ser aprendidos pela práticada invenção. Os aspectos e vantagens da invenção podem serrealizados e obtidos por meio dos instrumentos e combinaçõesparticularmente salientadas nas reivindicações anexas. Es-tes e outros aspectos da presente invenção irão ser tornarmais totalmente aparentes a partir da descrição seguinte edas reivindicações anexas, ou podem ser aprendidos pela prá-tica da invenção como exposta daqui para frente.
BREVE DESCRIÇÃO DOS DESENHOS
De modo a descrever a maneira na qual as vantagenscitadas acima e outras vantagens e aspectos da invenção po-dem ser obtidos, uma descrição mais particular da invençãoresumidamente descrita acima será produzida por referênciaàs modalidades especificas da invenção que são ilustradasnos desenhos anexos. Entendendo que os desenhos representamsomente modalidades típicas da invenção e, portanto não sãopara serem considerados como limitando o escopo da invenção,a invenção será descrita e explicada com especificidade edetalhes adicionais através do uso dos desenhos acompanhan-tes, nos quais:
A Figura 1 ilustra uma arquitetura de computador que facilita a descoberta, qualificação, e ativação de com-ponentes de suplemento de software.
A Figura 2 ilustra um fluxograma de um método paradescobrir um componente de suplemento que está disponívelpara uma aplicação.
A Figura 3 ilustra um fluxograma de um método paradeterminar se um componente de suplemento disponível parauma aplicação está qualificado para uso com a aplicação.
A Figura 4 ilustra um fluxograma de um método paracarregar um componente de suplemento para uso com uma apli-cação com base na funcionalidade requisitada do componentede suplemento.
DESCRIÇÃO DETALHADA
A presente invenção se aplica a métodos, sistemase produtos de programa de computador para descobrir, quali-ficar e ativar componentes de suplemento de software. Emalgumas modalidades, um sistema de computador descobre umsuplemento disponível para uma aplicação. Um gerenciador decomponente de suplemento recebe uma requisição por componen-tes de suplemento disponíveis a partir de uma aplicação. Arequisição incluindo uma propriedade que pode ser seleciona-da do componente de suplemento indicativa de um tipo especi-ficado de componente de suplemento que a aplicação está re-quisitando .
O gerenciador de componente de suplemento comparaa propriedade que pode ser selecionada do componente de su-plemento com o conteúdo de uma entrada de componente de su-plemento para um componente de suplemento. A entrada docomponente de suplemento está incluída em um índice de com-ponentes de suplemento que também inclui entradas de compo-nente de suplemento para outros componentes de suplemento dosistema de computador. A entrada de componente de suplemen-to inclui uma ou mais propriedades indicativas da funciona-lidade de um componente de suplemento identificado duranteum processo de registro com o gerenciador de componente desuplemento. O gerenciador de componente de suplemento de-termina que o componente de suplemento é do tipo especifica-do requisitado pela aplicação com base nos resultados dacomparação. O gerenciador de componente de suplemento indi-ca para a aplicação que o componente de suplemento é um com-ponente de suplemento do tipo especificado que está disponí-vel para a aplicação.Em outras modalidades, um sistema de computadordetermina se um componente de suplemento disponível para umaaplicação está qualificado para uso com a aplicação. Um ge-renciador de componente de suplemento acessa uma ou maispropriedades identificadas para um componente de suplementocandidato que está disponível para uma aplicação. A uma oumais propriedades identificadas indicam a funcionalidade as-sociada com o componente de suplemento candidato. 0 compo-nente de suplemento representado em uma entrada de componen-te de suplemento em um índice de componentes de suplementoque também inclui entradas de componente de suplemento paraoutros componentes de suplemento do sistema de computador.
O gerenciador de componente recebe uma requisiçãoa partir da aplicação por componentes de suplemento que sa-tisfaçam uma ou mais exigências de qualificação. Cada exi-gência de qualificação representa a funcionalidade que é pa-ra estar associada com um componente de suplemento para ocomponente de suplemento apropriadamente operar com a apli-cação. O gerenciador de componente com para a uma ou maisexigências de qualificação e a uma ou mais propriedades i-dentifiçadas. O gerenciador de componente determinar se ocomponente de suplemento candidato está qualificado para usocom a aplicação com base nos resultados da comparação da umaou mais exigências de qualificação com a uma ou mais propri-edades identificadas.
Em modalidades adicionais, um sistema de computa-dor carrega o componente de suplemento para uso com uma a-plicação com base na funcionalidade requisitada do componen-te de suplemento. Um gerenciador de componente de suplemen-to descobre um ou mais componentes de suplemento no sistemade computador que são de um tipo especificado de componentede suplemento requisitado por uma aplicação. 0 gerenciadorde componente de suplemento qualifica pelo menos um compo-nente de suplemento descoberto baseado no pelo menos um com-ponente de suplemento descoberto satisfazendo a uma ou maisexigências de qualificação. A uma ou mais exigências dequalificação representativas da funcionalidade que é paraestar associada com um componente de suplemento para o com-ponente de suplemento trabalhar em conjunto com a aplicaçãode uma maneira desejada. 0 gerenciador de componente de su-plemento ativa um componente de suplemento qualificado deacordo com a uma ou mais exigências de qualificação para usocom a aplicação.
As modalidades da presente invenção podem compre-ender um computador de propósito especial ou de propósitogeral incluindo hardware de computador, como discutido emmaiores detalhes abaixo. As modalidades dentro do escopo dapresente invenção também incluem meio legível por computadorpara transportar ou possuir instruções ou estruturas de da-dos legíveis por computador armazenadas no meio. Tal meiolegível por computador pode ser qualquer meio disponível quepossa ser acessado por um computador de propósito geral oude propósito especial. A título de exemplo, e não de limi-tação, o meio legível por computador pode compreender mídiade armazenamento legível por computador, tal como RAM, ROM,HÍPERON, CD-ROM ou outros meios ópticos de armazenamento,armazenamento em disco magnético ou outros dispositivos mag-néticos de armazenamento, ou qualquer outro meio que possaser utilizado para armazenar o meio do código de programadesejado na forma de instruções ou de estruturas de dadosexecutáveis por computador e que possa ser acessado por umcomputador de propósito geral ou de propósito especial.
Nesta descrição e nas reivindicações seguintes,uma "rede" é definida como uma ou mais ligações de dados quepermitem o transporte de dados eletrônicos entre sistemas decomputador e / ou módulos. Quando a informação é transferi-da ou proporcionada através de uma rede ou de outra conexãode comunicação (seja fisicamente conectada, sem fios, ou umacombinação de fisicamente conectada e sem fios) para um com-putador, o computador de forma apropriada vê a conexão comoum meio legível por computador. Assim, a título de exemplo,e não de limitação, o meio legível por computador pode com-preender uma rede ou ligações de dados que podem ser utili-zadas para transportar ou armazenar o dispositivo de códigode programa desejado na forma de instruções ou de estruturasde dados executáveis por computador e que pode ser acessadopor um computador de propósito geral ou de propósito especi-al.
As instruções executáveis por computador compreen-dem, por exemplo, instruções e dados que causam que um com-putador de propósito geral, computador de propósito especi-al, ou dispositivo de processamento de propósito especialexecute uma certa função ou grupo de funções. As instruçõesexecutáveis por computador podem ser, por exemplo, instru-ções binárias de formato intermediário, tal como a linguagemassembly, ou mesmo código fonte. Apesar do assunto ter sidodescrito em linguagem especifica para aspectos estruturais e/ ou práticas metodológicas, é para ser entendido que o as-sunto definido nas reivindicações anexas não está necessari-amente limitado aos aspectos ou práticas descritas acima.Ao invés disso, os aspectos ou práticas descritos são reve-lados como formas ilustrativas para implementar as reivindi-cações.
Os versados na técnica irão apreciar que a inven-ção pode ser praticada em ambientes de computação em redecom vários tipos de configurações de sistema de computador,incluindo, computadores pessoais, computadores laptop, dis-positivos portáteis, sistemas com vários processadores, ele-troeletrônicos de consumidor baseados em microprocessador ouprogramáveis, PCs de rede, minicomputadores, computadores degrande porte, telefones móveis, PDAs, teletransmissores derecados ("pagers"), e assim por diante. A invenção tambémpode ser praticada em ambientes de sistema distribuído ondesistemas de computador locais e remotos, os quais estão li-gados (por ligações de dados conectadas fisicamente, liga-ções de dados sem fios, ou por uma combinação de ligações dedados conectadas fisicamente e sem fios) através de uma re-de, ambos executam tarefas. Em um ambiente de sistema dis-tribuído, os módulos de programa podem estar localizadostanto em dispositivos de armazenamento locais como remotos.
A Figura 1 ilustra um exemplo de uma arquiteturade computador 100 que facilita a descoberta, qualificação eativação de componentes de suplemento de software. Repre-sentados na arquitetura de computador 100 estão os componen-tes de um sistema de computador. O sistema de computadorpode ser conectado com uma rede, tal como, por exemplo, uma Rede de Área Local ("LAN"), uma Rede de Área Ampla (" WAN") ,ou mesmo a Internet. Assim, o sistema de computador e ou-tros sistemas de computador de conexão de rede podem receberdados e enviar dados para outros sistemas de computador co-nectados com uma rede. Por conseqüência, o computador, bem como os outros sistemas de computador conectados (não apre-sentados), podem criar dados relacionados com mensagem etrocar os dados relacionados com mensagem (por exemplo data-gramas de Protocolo Internet ("IP") e outros protocolos decamada superior que utilizam datagramas IP, tal como, Proto- colo de Controle de Transmissão ("TCP"), Protocolo de Trans-ferência de Hipertexto ("HTTP"), Protocolo Simples de Trans-ferência de Correio ("SMTP"), etc.) através da rede.
A arquitetura de sistema de computador 100 incluia aplicação 101, o gerenciando de componente 102, e o arma-zenamento 103. Dentro da arquitetura de computador 100, ositens residindo (ou interagindo com) na memória do sistemasão cercados por uma linha continua. Por exemplo, a aplica-ção 101 e o gerenciador de componente 102 são carregados namemória do sistema. Por outro lado, os itens residindo noarmazenamento 103 são cercados por uma linha tracejada. Porexemplo, os componentes 121, 122 e 123 e as entradas de com-ponente do índice de componentes 104 residem no armazenamen-to 103. Em momentos diferentes, o mesmo item pode residirna memória do sistema e / ou no armazenamento 103. Por e-xemplo, o componente 122 pode ser ativado causando que par-tes do componente 122 carreguem a partir do armazenamento103 na memória do sistema (ainda assim também residindo noarmazenamento 103).
Geralmente, a aplicação 101 é uma aplicação confi-gurada para utilizar componentes de suplemento de softwarepara acentuar a funcionalidade. Por exemplo, a aplicação101 pode ser uma aplicação de processamento de texto capazde carregar dicionários externos ou um navegador da Rede ca-pas de carregar programas de extensão para tipos particula-res de conteúdo. A aplicação 101 pode ter uma interface deprograma para trabalhar em conjunto com os componentes desuplemento de software. A aplicação 101 também pode incluiruma interface com o usuário permitindo a um usuário da apli-cação 101 especificar tipos de componentes de suplemento desoftware e exigência que o componente de suplemento de soft-ware são para cumprir para operação em conjunto com a apli-cação 101.
O gerenciador de componente 102 geralmente é con-figurado para proporcionar componentes de suplemento desoftware disponíveis para as aplicações. O gerenciador decomponente 102 pode estar incluído em um sistema operacionale / ou pode ser uma parte de middleware ("software de cone-xão") que gerencia os componentes de suplemento de softwarepara as aplicações. O gerenciador de componente 102 incluia funcionalidade de receber requisições das aplicações porcomponentes de suplemento de software, identificar os compo-nentes de suplemento de software que satisfaçam as requisi-ções, e retornar os componentes de suplemento de software devolta para a aplicação.
Além disso, como parte de um processo de registro,quando um componente de suplemento de software é instaladona arquitetura de computador 100, o gerenciador de componen-te 102 pode acessar o componente de suplemento de software.Por exemplo, o gerenciador de componente 102 pode acessar ocomponente 122. O gerenciador de componente 102 pode anali-sar um componente de suplemento de software acessado (porexemplo, baseado na informação de instalação) para identifi-car uma localização, tal como, por exemplo, um caminho e no-me de arquivo, onde o componente 122 é para ser armazenadono armazenamento 103.
O gerenciador de componente 102 também pode anali-sar um componente de suplemento de software acessado paraidentificar (por exemplo, através da reflexão) o tipo decomponente de suplemento de software e as capacidades opera-cionais do componente de suplemento de software. Por exem-plo, o gerenciador de componente 102 pode analisar os atri-butos no componente 122 para identificar o tipo e as capaci-dades operacionais do componente 122. Os tipos de componen-te de suplemento de software podem incluir, por exemplo, umdicionário, um processador de conteúdo, etc. As capacidadesoperacionais do componente de suplemento de software podemincluir um ponto de entrada para um componente de suplementode software, limites de isolamento necessários ou suportadospor um componente de suplemento de software, e configuraçõesde segurança associadas com um componente de suplemento desoftware.
O gerenciador de componente 102 pode construir umaentrada de componente incluindo uma ou mais propriedades in-dicativas da funcionalidade identificada (isto é, o tipo eas capacidades operacionais) de um componente de suplementode software. Por exemplo, o gerenciador de componente 102pode construir a entrada de componente 131 para o componente122 incluindo pelo menos as propriedades 141 e 151. As pro-priedades em uma entrada de componente podem indicar o tipode um componente de software, tal como, por exemplo, um di-cionário, um processador de conteúdo, etc. As propriedadesem uma entrada de componente também podem indicar uma loca-lização (por exemplo, em um sistema de arquivos) onde umcomponente de suplemento de software está armazenado.
As propriedades em uma entrada de componente tam-bém podem indicar um contrato (ou protocolo de ponto de en-trada) utilizado para implementar a interface para o compo-nente de suplemento de software. Uma propriedade represen-tando um ponto de entrada pode ser incluída em um manifestoda Linguagem de Marcação Extensível ("XML") que adere a umesquema de manifesto especificado e que define a montagem ouas montagens que estão incluídas no componente de suplementode software. O- gerenciador de componente 102 pode analisarum componente de suplemento de software para identificar umponto de entrada e representar este ponto em uma propriedadeem uma entrada de componente. Um ponto de entrada pode seruma classe que pode ser instanciada em uma montagem. Aclasse pode implementar protocolos padrão utilizados por umaaplicação hospedeira para canal de comunicação inicial econtrole do componente de suplemento de software. 0 exemplode código a seguir representa um protocolo de ponto de en- trada:
Public Interface IEntryPoint Protocol : IProtocol{
void Startup(IProtocol hostObject);void Shutdown();}
As propriedades também podem indicar uma localiza-ção (ou limite de isolamento) para executar um componente desuplemento de software. Uma localização pode indicar se umcomponente de suplemento de software é compatível com execu-tar ou terminar o processo com a aplicação requisitante ouno mesmo ou em, um domínio diferente da aplicação que o daaplicação requisitante. Os limites de isolamento suportadosou necessários podem incluir os domínios da aplicação local,os domínios da aplicação compartilhada, os domínios da apli- cação particular e outros processos.
As propriedades também podem indicar configuraçõesde segurança com o componente de suplemento de software.Por exemplo, as propriedades podem indicar um conjunto depermissões para executar um componente de suplemento desoftware.
O gerenciador de componente 102 pode armazenar en-tradas de componente construídas para componentes de suple-mento de software no índice de componentes 104. 0 índice decomponentes 104 pode ser virtualmente qualquer repositóriode dados, tal como, por exemplo, um registro de sistema, umservidor SQL compartilhado, um arquivo XML, um servidor deActive Directory, a Internet, ou um diretório de sistema dearquivos.
Subseqüente ou em paralelo com a análise do geren-ciador de componente 102 de um componente de suplemento desistema, o componente de suplemento de software pode ser ar-mazenado no armazenamento 103. Por exemplo, o componente122 pode ser armazenado junto com os componentes 121 e 123(bem como com outros componentes de suplemento de softwarerepresentados pelas elipses verticais) no armazenamento 103.Assim, cada componente de suplemento de software no armaze-namento 103 pode possuir uma entrada de componente corres-pondente (com uma ou mais propriedades indicativas de fun-cionalidade) no índice de componentes 104. Por exemplo, aentrada de componente 131 pode corresponder ao componente122, a entrada de componente 132 pode corresponder ao compo-nente 121, etc.
O gerenciador de componente 102 pode classificar oíndice de componentes 104 por critérios conhecidos para ogerenciador de componente 102, tal como, por exemplo, o de-senvolvedor do suplemento, o desenvolvedor da aplicação,etc. Por classificar o índice, a recuperação utilizando es-tes critérios, tal como, por exemplo, durante a descoberta,é feita mais eficiente.
Como anteriormente descrito, as propriedades emuma entrada de componente são indicativas da funcionalidadede um componente de suplemento de software correspondente.Assim, as propriedades 141 e 151 podem indicar a funcionali-dade do componente 122 e as propriedades 142 e 152 podem in-dicar a funcionalidade do componente 121. 0 componente 123 bem como outros componentes no armazenamento 103 também po-dem ter entradas de componente correspondentes no indice decomponentes 104 contendo uma ou mais propriedades indicati-vas. Apesar de cada uma das entradas de componente 131 e132 representar duas propriedades, virtualmente qualquer nú- mero de propriedades pode estar incluído em uma entrada decomponente com base em pelo menos em parte de uma analise dogerenciador de componente 102 de um componente de suplementode software correspondente.
A Figura 2 ilustra um fluxograma de um método 200para descobrir um componente de suplemento que esteja dispo-nível para uma aplicação. O método 200 será descrito comrespeito aos componentes e aos dados na arquitetura de sis-tema de computador 100.
O método 200 inclui um ato de receber uma requisi- ção por componentes de suplemento disponíveis a partir deuma aplicação (ato 201). A requisição incluindo uma propri-edade que pode ser selecionada do componente de suplementoindicativa de um tipo especificado de componente de suple-mento que a aplicação está requisitando. Por exemplo, o ge-renciador de componente 102 pode receber a requisição 111,incluindo a propriedade 112, a partir da aplicação 101. Apropriedade 112 pode indicar um tipo especificado de compo-nente de suplemento de software sendo requisitado pela apli-cação 101. Em algumas modalidades, a propriedade 112 é con-figurada anteriormente na aplicação 101. Em outras modali-dades alternativas, a aplicação 101 recebe uma seleção dousuário da propriedade 112 (ou alguma outra propriedade quepode ser selecionada).
O método 200 inclui um ato de comparar a proprie-dade que pode ser selecionada do componente de suplementocom o conteúdo da entrada de componente de suplemento paraum componente de suplemento (ato 202) . A entrada de compo-nente de suplemento incluída em um índice de componentes desuplemento que também inclui as entradas de componentes desuplemento para outros componentes de suplemento de um sis-tema de computador. A entrada de componente de suplementoincluindo uma ou mais propriedades indicativas da funciona- lidade de um componente de suplemento identificado duranteum processo de registro com o gerenciador de componente desuplemento. Por exemplo, o gerenciador de componente 102pode emitir a consulta 113 em relação às entradas de compo-nente no índice de componentes 104. Assim, pode ser que apropriedade 112 seja comparada com as propriedades 141 e 151(indicativas da funcionalidade do componente 122) na entradade componente 131.
O método 200 inclui um ato de determinar que ocomponente de suplemento é do tipo especificado requisitado pela aplicação com base nos resultados da comparação (ato203). Por exemplo, o gerenciador de componente 102 pode de-terminar que o componente 122 é um tipo de componente de su-plemento de software requisitado pela aplicação 101 baseadonos resultados de comparar a propriedade 112 com a proprie-dade 141 (ou alguma outra propriedade na entrada de compo-nente 131). Pode ser que o gerenciador de componente 102também determine que um ou mais outros componentes tambémsão componentes do tipo especificado. O gerenciador de com-ponente 102 pode compilar uma lista, por exemplo, a lista decomponentes 114, que identifica quaisquer componentes do ti-po especificado. A lista de componentes 114 também pode in-cluir outras propriedades (em adição ao tipo), tal como, porexemplo, propriedades indicando capacidades operacionais deum componente de suplemento de software, a partir de uma en-trada de componente.
O método 200 inclui um ato de indicar para a apli-cação que o componente de suplemento é um componente de su-plemento do tipo especificado que está disponível para a a-plicação (ato 204). Por exemplo, o gerenciador de componen-te 102 pode indicar para a aplicação 101 que o componente122 é um componente do tipo indicado pela propriedade 112.Quando uma lista de componentes de um tipo especificado écompilada, por exemplo, a lista de componentes 114, o geren-ciador de componentes pode enviar pelo menos uma parte dalista para a aplicação 101. Por exemplo, o gerenciador decomponente 102 pode enviar a lista parcial 114P para a apli-cação 101.
A lista parcial 114P pode incluir propriedades queidentificam cada componente de suplemento de software do ti-po especificado. O gerenciador de componente 102 pode reteroutras propriedades indicativas das capacidades operacionaisdo componente de suplemento de software sem enviar as pro-priedades para a aplicação 101. Alternativamente, o gerenci-ador de componente 102 pode enviar propriedades indicativasde capacidades operacionais do componente de suplemento de software para a aplicação 101. Por conseqüência, a aplica-ção 101 pode ficar ciente de quaisquer componentes de suple-mento de software disponíveis de um tipo especificado requi-sitado (e potencialmente de outras funcionalidades dos com-ponentes de suplemento de software).
O método 200 pode ser repetido para cada entradaem um índice de componentes de suplemento (por exemplo, cadaentrada no índice de componentes 104) para potencialmenteidentificar outros suplementos do tipo especificado (por e-xemplo, os componentes 121 e 123) . Assim, uma série de su- plementos de um tipo especificado (isto é, um subconjunto detodos os suplementos registrados) podem ser descobertos.Por conseqüência, os componentes de suplemento podem ser i-dentificados (descobertos) baseado na informação proporcio-nada para um gerenciador de suplemento (por exemplo, geren- ciador de componente 102) quando o suplemento é registrado.0 método 200 pode ser utilizado para fazer uma seleção gros-seira em relação aos componentes de suplemento que são po-tencialmente utilizáveis por uma aplicação para implementara funcionalidade especificada.
A Figura 3 ilustra um fluxograma de um método 300para determinar se um componente de suplemento disponívelpara uma aplicação está qualificado para uso com a aplica-ção. O método 300 será descrito com respeito aos componen-tes e dados na arquitetura de sistema de computador 100.
O método 300 inclui um ato de acessar uma ou maispropriedades identificadas para um componente de suplementocandidato que está disponível para uma aplicação (ato 301) .
A uma ou mais propriedades identificadas indicam a funciona-lidade que está associada com o componente de suplementocandidato. O componente de suplemento representado em umaentrada de componente de suplemento em um índice de compo-nentes de suplemento que também inclui entradas de componen-tes de suplemento para outros componentes de suplemento dosistema de computador. Por exemplo, o gerenciador de compo-nente 102 pode acessar as propriedades 141 e 151 (indicati-vas da funcionalidade do componente 122) a partir da entradade componente 131. Alternativamente, o gerenciador de com- ponente 102 pode acessar as propriedades 141 e 151 a partirda lista de componentes 114 que foi anteriormente compiladaem resposta à descoberta dos componentes de suplemento desoftware de um tipo especificado.
Em outras modalidades, o gerenciador de -componente102 acessa outras informações associadas com o componente122 que não estão armazenadas no índice de entradas de com-ponente 104. Outras informações associadas podem ser aces-sadas separadamente e / ou em combinação com a informaçãoque está incluída no índice de componentes 104. Outras in-formações associadas podem ou não serem acessíveis ou esta-rem disponíveis para o componente 122 e podem ou não teremsido proporcionadas para o gerenciador de componentes 102durante um processo de registro. Adicionalmente, o gerenci-ador de componente 102 pode escolher descartar ou ignorarinformação recebida a partir dos componentes durante um pro-cesso de registro. Assim, mesmo se o componente 122 propor-cionar informação associada para o gerenciador de componente102, a informação associada pode não estar incluída na en-trada de componente 131 (e pode não estar no índice de com-ponentes 104) .
O método 300 inclui um ato de receber uma requisi-ção a partir da aplicação por componentes de suplemento que satisfaçam uma ou mais restrições de qualificação (ato 302).Cada restrição de qualificação representando funcionalidadeque é para ser associada com um componente de suplemento pa-ra o componente de suplemento apropriadamente operar com aaplicação. Por exemplo, o gerenciador de componente 102 po-de receber as restrições 116 a partir da aplicação 101. Asrestrições 116 podem representar a funcionalidade do compo-nente de suplemento que é para ser associada com um compo-nente de suplemento de software para o componente de suple-mento de software apropriadamente operar com a aplicação 101. Por exemplo, as restrições 116 podem indicar que umcomponente de um suplemento de software é para utilizar umprotocolo de ponto de entrada especificado, executar um do-mínio de aplicação particular, etc, quando operando com aaplicação 101.
Em algumas modalidades, um componente de suplemen-to registra uma ou mais restrições em um índice de componen-tes que especifica uma ou mais propriedades correspondentesque uma aplicação tem que satisfazer antes que a aplicaçãopossa trabalhar em conjunto com o componente de suplemento.Assim, pode ser que o componente 122 registre uma ou maisrestrições indicando propriedades que a aplicação 101 temque satisfazer para trabalhar em conjunto com o componente122. O gerenciador de componente 102 pode enviar restriçõespara um componente de suplemento para uma aplicação. Porexemplo, o gerenciador de componente pode enviar as restri-ções 116 (por exemplo, para o componente 122) para a aplica-ção 101.
As restrições do componente de suplemento podemser utilizadas para verificar a aplicação em relação ao com-portamento ou para requisitar que uma aplicação altere seucomportamento para trabalhar em conjunto com um componentede suplemento. Por exemplo, a aplicação 101 pode pré-estabelecer executar todos os componentes de suplemento nomesmo domínio da aplicação. Entretanto, o componente 122pode restringir a aplicação 101 para executar o componente122 em um domínio separado da aplicação (por exemplo, utili-zado somente pelo componente 122). Assim, em algumas moda- lidades, um processo de qualificação pode ser visto como umanegociação entre uma aplicação e um componente de suplemen-to. Ou seja, um componente de suplemento pode precisar sa-tisfazer as restrições de uma aplicação e a aplicação podeprecisar satisfazer as restrições do componente de suplemen-to para trabalho em conjunto apropriado entre a aplicação eo componente de suplemento. A seta bidirecional representa-da pelas restrições 116 representa uma negociação.
O método 300 inclui um ato de comparar a uma oumais restrições de qualificação com a uma ou mais proprieda-des identificadas (ato 303). Por exemplo, o gerenciador decomponente 102 pode comparar as restrições 116 com as pro-priedades 141 e 151. 0 método 300 inclui um ato de determi-nar se o componente de suplemento candidato está qualificadopara uso com a aplicação com base nos resultados da compara-ção da uma ou mais restrições de qualificação com a uma oumais propriedades identificadas (ato 304). Por exemplo, ogerenciador de componente 102 pode determinar se o componen- te 122 está qualificado para uso com a aplicação 101 baseadonos resultados de comparar as restrições 116 com as proprie-dades 141 e 151.
Ou seja, o gerenciador de componente 102 pode de-terminar que as capacidades operacionais indicadas pelasrestrições 116 são capacidades operacionais que podem serimplementadas pelo componente 122 (como as propriedades in-dicadas 141 e 151). Por exemplo, se uma restrição indicaque um componente de suplemento de software é para executarem um domínio de aplicação particular e uma propriedade deum componente de suplemento de software indica que ele é ca-paz de executar em um domínio de aplicação particular, ocomponente de suplemento de software satisfaz a restrição.Por outro lado, se uma restrição indicar que um componentede suplemento de software é para implementar um protocolo de ponto de entrada especificado mas uma propriedade de um com-ponente de suplemento de software indica que ele não é capazde implementar o protocolo de ponto de entrada especificado,o componente de suplemento de software não satisfaz a res-trição.
0 método 300 pode ser repetido para vários (ante-riormente descobertos) componentes de suplemento para criaruma lista de componentes de suplemento potenciais que sãoqualificados para uso com uma aplicação. Assim, vários su-plementos satisfazendo as restrições de qualificação podemser qualificados para uso com uma aplicação. Como anterior-mente descrito, os componentes de suplemento podem ser qua-lificados com base na informação proporcionada para um ge- renciador de suplemento (por exemplo, o gerenciador de com-ponente 102) quando o suplemento é registrado bem como ou-tras informações não proporcionadas ou retidas pelo gerenci-ador de suplemento. O método 300 pode ser utilizado parafazer uma seleção refinada em relação aos componentes de su- plemento (anteriormente descobertos) que são potencialmenteutilizáveis por uma aplicação.
Deve ser entendido que a descrição de restrições,propriedades, comparações, e satisfazer restrições são mera-mente exemplos. Seria aparente para os versados na técnica, após ter inspecionado esta descrição, que modalidades da in-venção podem utilizar outras restrições, propriedades e com-parações, e que as restrições podem ser satisfeitas de ou-tros modos, em adição a estes expressamente descritos.
Em algumas modalidades, o método 200 e o método 300 são utilizados em combinação para proporcionar uma listade componentes de suplemento indicando que os componentes desuplemento e uma aplicação estão qualificados para trabalha-rem em conjunto para implementar funcionalidades especifica-das. Um processo de descoberta grosseiro pode ser utilizadopara descobrir ura subconjunto de componentes de suplementodisponíveis pela comparação de uma ou mais propriedades re-cebidas com as propriedades nas entradas de índice de compo-nentes. Quando um índice de componentes é classificado, oprocesso de descoberta pode de forma eficiente proporcionarum subconjunto de componentes de suplemento disponíveis sa-tisfazendo a uma ou mais propriedades recebidas. A partirdo subconjunto de componentes de suplemento descobertos, oprocesso de qualificação refinado pode qualificar um ou maiscomponentes de suplemento e a aplicação em relação ao traba-lho em conjunto. A qualificação pode ser baseada na infor-mação no índice de componente e / ou em outra informação as-sociada com o componente de suplemento ou com a aplicação.A qualificação pode ser bidirecional (uma negociação) . Ouseja, os componentes de suplemento podem precisar satisfazerrestrições da aplicação e a aplicação pode precisar satisfa-zer restrições de componente de suplemento.
Os componentes de suplemento de software qualifi-cados podem ser incluídos em uma lista, por exemplo, a listade componentes qualificados 117, e enviados para a aplicação101. Em algumas modalidades, a aplicação 101 é configuradaanteriormente com a lógica de seleção para selecionar umcomponente de suplemento de software apropriado a partir deuma lista de componentes qualificados. Em outras modalida-des, a aplicação 101 pode apresentar uma interface com o u-suário permitindo a um usuário selecionar um componente desuplemento de software apropriado a partir de uma lista decomponentes qualificados.
A aplicação 101 pode retornar uma seleção de com-ponentes, por exemplo, a seleção de componente 118, de voltapara o gerenciador de componente 102. Em resposta, o geren- ciador de componente 102 pode ativar o componente de suple-mento de software selecionado. Por exemplo, o gerenciadorde componente 102 pode enviar a ativação 119 para um sistemade arquivos para ativar o componente 122. A ativação 119pode incluir um identificador, tal como, por exemplo, um caminho e nome de diretório, para localizar o componente 122em um armazenamento 103. A ativação 119 pode incluir coman-dos para ativar o componente 122 de acordo com as restrições116. Por exemplo, se a aplicação 101 requisitou um domíniode aplicação compartilhado, o componente 122 pode ser ativa- do em um domínio de aplicação compartilhada com a aplicação101. A ativação 119 pode causar que o componente 122 sejacarregado na memória e que um caminho de comunicação sejaestabelecido entre a aplicação 101 e o componente 122 de a-cordo com as restrições 116.
Um tipo de caminho de comunicação que pode ser es-tabelecido de acordo com as restrições satisfeitas é um flu-xo de comunicação, tal como, por exemplo, o fluxo de comuni-cações 181. Um fluxo de comunicação pode incluir uma oumais interfaces de programação de aplicação do nó (daqui pa-ra frente "APIs"), um ou mais adaptadores, e pelo menos umprotocolo do fluxo de comunicações. Tais fluxos de comuni-cações podem incluir APIs, adaptadores e protocolos do flu-xo de comunicações em quantidades e combinações variadas, enão precisam necessariamente incluir todos os elementos dofluxo de comunicação. As APIs se referem a um conjunto derotinas utilizadas por uma aplicação, programa, função, ououtros agrupamentos de código programável e executável paradirecionar, por conseqüência, a performance de procedimentospor um ambiente de execução correspondente, tal como um sis-tema operacional ou um ambiente de execução em temo de exe-cução. Os adaptadores se referem aos módulos ou objetos quesão capazes de, de forma comunicativa, adaptarem uma API pa-ra outra API, e podem ser ligados de forma serial ou via umprotocolo do fluxo de comunicação. 0 protocolo do fluxo decomunicação se refere a uma especificação ou contrato atra-vés do qual os objetos, dos quais uma API é um exemplo nãoexclusivo, podem se comunicar.
Assim, um fluxo de comunicação (por exemplo, ofluxo de comunicação 181) pode ser uma cadeia de módulos decódigo ou de objetos que fluem a partir de um adaptador APIhospedeiro para um adaptador API de suplemento, via um pro-tocolo de fluxo de comunicação, para conexão de uma primeiraaplicação do nó (por exemplo, a aplicação 101) com uma se-gunda aplicação do nó (por exemplo, componente 122). Entre-tanto, deve ser entendido que outros tipos de caminhos decomunicação também podem ser estabelecidos de acordo com asrestrições satisfeitas. Assim, seria aparente para os ver-sados na técnica, após ter inspecionado esta descrição, quemodalidades da invenção podem utilizar outros tipos de cami-nho de comunicação em adição aos fluxos de comunicação.
Em modalidades alternativas, a aplicação 101 podeincluir as restrições 116 junto com a propriedade 112 na re-quisição 111. Nestas modalidades alternativas, o gerencia-dor de componente 102 pode consultar o índice de componentes104 em relação aos componentes de suplemento de software de um tipo indicado na propriedade 112 e que satisfaçam as res-trições 116. Os componentes de suplemento de software sa-tisfazendo a consulta podem ser retornados para a aplicação101 na lista de componentes qualificados 117.
A Figura 4 ilustra um fluxograma de um método 400 para carregar um componente de suplemento para uso com umaaplicação com base na funcionalidade requisitada do compo-nente de suplemento. O método 400 será descrito com respei-to aos componentes e aos dados na arquitetura de sistema decomputador 100.
O método 400 inclui um ato de descobrir um ou maiscomponentes de suplemento no sistema de computador que sãode um tipo especificado de componente de suplemento requisi-tado por uma aplicação (ato 401) . Por exemplo, através dacomparação com as propriedades nas entradas de componente, o módulo de componente 102 pode descobrir que um ou mais doscomponentes 121, 122 e 123 são de um tipo especificado (porexemplo, um dicionário, um processador de conteúdo, etc) in-dicado pela propriedade 112.
0 método 400 inclui um ato de qualificar pelo me-nos um componente de suplemento descoberto com base no pelomenos um componente de suplemento descoberto satisfazendouma ou mais restrições de qualificação (ato 402) . A uma oumais restrições de qualificação representativas da funciona-lidade que é para ser associada com um componente de suple-mento para que o componente de suplemento trabalhe em con-junto com a aplicação de uma maneira desejada. Por exemplo,o gerenciador de componente 102 pode qualificar qualquer umdos componentes 121, 122 e 123, que satisfaça as restrições116. Satisfazer as restrições 116 (por exemplo, através dacomparação com as propriedades nas entradas de componente)representa que um componente inclui funcionalidade para tra-balhar em conjunto com a aplicação 101 de uma maneira dese-jada (por exemplo, possui permissões apropriadas, possui umprotocolo de ponto de entrada compatível, pode executar emum domínio apropriado da aplicação, etc).
O método 400 inclui um ato de ativar um componentede suplemento qualificado de acordo com uma ou mais restri-ções de qualificação para uso com aplicação (ato 403). Porexemplo, o gerenciador de componentes 102 pode ativar o com-ponente 122 para uso com a aplicação 101 de acordo com asrestrições 116.
As modalidades da presente invenção facilitam aseleção dinâmica e flexível de componentes de suplemento desoftware sem as aplicações tendo que incluir a lógica parafazer tais seleções. Os componentes de suplemento de soft-ware podem ser descobertos pelo tipo, mesmo quando os compo-nentes de suplemento de software estão armazenados em váriaslocalizações diferentes. Os componentes de suplemento desoftware podem ser qualificados em relação à funcionalidadeapropriada antes de serem carregados para uso com uma apli-cação. Qualificar os componentes de suplemento de softwarereduz a probabilidade de carregar componentes de suplementode software configurados de forma imprópria, ou mal-intencionados. Por conseqüência, as modalidades da presenteinvenção promovem o uso eficiente e seguro dos componentesde suplemento de software.
A presente invenção pode ser incorporada em outrasformas especificas sem se afastar do seu espirito ou de suascaracterísticas essenciais. As modalidades descritas sãopara serem consideradas sob todos os aspectos somente comoilustrativas e não como restritivas. 0 escopo da invençãoé, portanto, indicado pelas reivindicações anexas ao invésdo que pela descrição anterior. Todas as alterações quesurgem dentro do significado e da faixa de equivalência dasreivindicações são para serem incluídas dentro de seu esco-po .

Claims (20)

1. Produto de programa de computador para uso emum sistema de computador, CARACTERIZADO por incluir um ge-renciador de componente de suplemento, o produto de programa de computador para implementar um método para determinar seum componente de suplemento disponível para uma aplicaçãoestá qualificado para uso com a aplicação, o produto de pro-grama de computador compreendendo um ou mais meios de arma-zenamento legível por computador possuindo armazenado nomesmo, instruções executáveis por computador que, quando e-xecutadas por um processador, causam que o sistema de compu-tador execute o seguinte:acessar uma ou mais propriedades identificadas pa-ra um componente de suplemento candidato que está disponível para uma aplicação, a uma ou mais propriedades identificadasindicativas de funcionalidade associada com o componente desuplemento candidato, o componente de suplemento representa-do em uma entrada de componente de suplemento de um índicede componentes de suplemento que também inclui entradas de componente de suplemento para outros componentes de suple-mento do sistema de computador;receber uma requisição a partir da aplicação porcomponentes de suplemento que satisfaçam uma ou mais restri-ções de qualificação, cada restrição de qualificação repre- sentando funcionalidade que é para ser associada com um com-ponente de suplemento para um componente de suplemento apro-priadamente operar com a aplicação;comparar a uma ou mais restrições de qualificaçãocom a uma ou mais propriedades identificadas; eatuar para determinar se o componente de suplemen-to candidato está qualificado para uso com a aplicação combase nos resultados de comparar a uma ou mais restrições dequalificação com a uma ou mais propriedades identificadas.
2. Produto de programa de computador, de acordocom a reivindicação 1, CARACTERIZADO por adicionalmente com-preender· instruções executáveis por computador que, quandoexecutadas, causam que o sistema de computador execute o se-guinte antes de comparar a uma ou mais restrições de quali-ficação com a uma ou mais propriedades identificadas:receber uma requisição em relação aos componentesde suplemento disponíveis a partir de uma aplicação antes deacessar a uma ou mais propriedades identificadas para o com- ponente de suplemento candidato, a requisição incluindo umapropriedade que pode ser selecionada do componente de suple-mento indicativa de um tipo especificado de componente desuplemento que a aplicação está requisitando;comparar a propriedade que pode ser selecionada docomponente de suplemento com o conteúdo da entrada de compo-nente de suplemento para o componente de suplemento candida-to;descobrir que o componente de suplemento candidatoé do tipo especificado requisitado pela aplicação com basenos resultados da comparação; eindicar para a aplicação que o componente de su-plemento candidato é um componente de suplemento do tipo es-pecificado antes de acessar a uma ou mais propriedades iden-tifiçadas para o componente de suplemento candidato.
3. Produto de programa de computador, de acordocom a reivindicação 1, CARACTERIZADO pelo fato de que asinstruções executáveis por computador que, quando executadascausam que o sistema de computador receba uma requisição apartir da aplicação em relação a componentes de suplementoque satisfaçam uma ou mais restrições de qualificação, com-preendem instruções executáveis por computador que, quandoexecutadas, causam que o sistema de computador receba uma requisição em relação aos componentes de suplemento de umtipo especificado.
4. Produto de programa de computador, de acordocom a reivindicação 1, CARACTERIZADO pelo fato de que asinstruções executáveis por computador, que, quando executa-das, causam que o sistema de computador determine se o com-ponente de suplemento candidato é qualificado para uso comaplicação, compreendem instruções executáveis por computadorque, quando executadas, causam que o sistema de computadordetermine que o componente de suplemento candidato está qua-lificado para uso com a aplicação.
5. Produto de programa de computador, de acordocom a reivindicação 4, CARACTERIZADO pelo fato de que asinstruções executáveis por computador que, quando executa-das, causam que o sistema de computador determine que o com- ponente de suplemento candidato está qualificado para usocom a aplicação, compreendem instruções executáveis por com-putador que, quando executadas, causam que o sistema de com-putador formule uma lista de componentes de suplemento can-didatos que satisfaçam as restrições de qualificação com ba-se nos resultados da comparação.
6. Produto de programa de computador, de acordocom a reivindicação 1, CARACTERIZADO pelo fato de que asinstruções executáveis por computador que, quando executadascausam que o sistema de computador determine se o componentede suplemento candidato está qualificado para uso com a a-plicação, compreendem instruções executáveis por computadorque, quando executadas, causam que o sistema de computador determine se o componente de suplemento candidato possui umprotocolo do ponto de entrada que é compatível com a aplica-ção .
7. Produto de programa de computador, de acordocom a reivindicação 1, CARACTERIZADO pelo fato de que as instruções executáveis por computador que, quando executa-das, causam que o sistema de computador determine se o com-ponente d e suplemento candidato é qualificado para uso coma aplicação, compreendem instruções executáveis por computa-dor que, quando executadas, causam que o sistema de computa- dor determine se o componente de suplemento candidato possuias permissões apropriadas para trabalhar em conjunto com aaplicação.
8. Produto de programa de computador, de acordocom a reivindicação 1, CARACTERIZADO pelo fato de que as instruções executáveis por computador que, quando executa-das, causam que o sistema de computador determine se o com-ponente de suplemento candidato está qualificado para usocom a aplicação, compreendem instruções executáveis por com-putador que, quando executadas, causam que o sistema de com-putador determine se o componente de suplemento candidatopode executar em um domínio da aplicação requisitado pelaaplicação.
9. Produto de programa de computador, de acordocom a reivindicação 1, CARACTERIZADO por adicionalmente com-preender instruções executáveis por computador que, quandoexecutadas, causam que o sistema de computador execute o se-guinte :receba uma seleção de componente a partir da apli-cação indicando que este componente de suplemento candidatoé para ser ativado para uso com a aplicação; eative o suplemento candidato para uso com a apli-cação de acordo com as restrições de qualificação.
10. Produto de programa de computador, de acordocom a reivindicação 1, CARACTERIZADO por adicionalmente com-preender restrições executáveis por computador que, quandoexecutadas, causam que o sistema de computador execute o se-guinte :receba uma requisição a partir do suplemento can-didato de que a aplicação satisfaça uma ou mais restriçõesde qualificação, cada outra restrição de qualificação repre-sentando funcionalidade que é para ser associada com a apli-cação para a aplicação apropriadamente operar com o compo-nente de suplemento;comparar a uma ou mais restrições de qualificaçãocom as propriedades da aplicação; edeterminar se a aplicação está qualificada parauso com o componente de suplemento candidato baseado nos re-sultados da comparação da uma ou mais outras restrições dequalificação com as propriedades da aplicação.
11. Produto de programa de computador, de acordocom a reivindicação 1, CARACTERIZADO por adicionalmente com-preender instruções executáveis por computador que, quandoexecutadas, causam que o sistema de computador execute o se-guinte :acesse o componente de suplemento candidato du- rante a instalação do componente de suplemento candidato nosistema de computador;analise o suplemento candidato para determinar afuncionalidade incluída no componente de suplemento candida-to;crie a entrada de componente de suplemento para ocomponente de suplemento candidato, a entrada de componentede suplemento incluindo a uma ou mais propriedades identifi-cadas indicativas da funcionalidade do componente de suple-mento candidato; earmazene a entrada de componente de suplemento noíndice de componentes de suplemento.
12. Produto de programa de computador, de acordocom a reivindicação 1, CARACTERIZADO por adicionalmente com-preender instruções executáveis por computador que, quandoexecutadas, causam que o sistema de computador execute o se-guinte :classifique as entradas de componente de suplemen-to do índice de componentes com base em um subconjunto depropriedades do componente de suplemento utilizadas paradescoberta do suplemento.
13. Produto de programa de computador, de acordocom a reivindicação 1, CARACTERIZADO pelo fato de que o ín-dice de componente de suplemento é classificado em um repo-sitório de dados selecionado dentre um registro do sistema,um servidor SQL compartilhado, um arquivo XML, um servidorde Active Directory, a Internet e de um diretório de sistemade arquivos.
14. Em um sistema de computador incluindo um ge-renciador de componente de suplemento, um método para deter-minar se um componente de suplemento disponível para uma a-plicação está qualificado para uso com a aplicação, o métodoCARACTERIZADO por compreender:um ato de acessar uma ou mais propriedades identi-ficadas para um componente de suplemento candidato que estádisponível para uma aplicação, a uma ou mais propriedadesidentificadas indicativas da funcionalidade do componente desuplemento candidato, a uma ou mais propriedades identifica- das acessadas a partir de uma entrada de componente de su-plemento em um índice de componentes de suplemento que tam-bém inclui entradas de componente de suplemento para outroscomponentes de suplemento do sistema de computador;um ato de receber uma requisição a partir da apli- cação por componentes de suplemento que satisfaçam uma oumais restrições de qualificação, cada restrição de qualifi-cação representando a funcionalidade do componente de suple-mento que é para ser associada com um componente de suple-mento para o componente de suplemento apropriadamente operarcom a aplicação;um ato de comparar a uma ou mais restrições dequalificação com a uma ou mais propriedades identificadas;eo ato de determinar se o componente de suplementocandidato está qualificado para uso com a aplicação com basenos resultados da comparação da uma ou mais restrições dequalificação com a uma ou mais propriedades identificadas.
15. Produto de programa de computador para uso emum sistema de computador, CARACTERIZADO por incluir um ge-renciador de componente de suplemento e um indice de compo-nentes de suplemento, o indice de componentes de suplementoincluindo uma ou mais entradas de componente de suplemento,cada entrada de componente de suplemento incluindo uma oumais propriedades indicativas da funcionalidade de um compo-nente de suplemento no sistema de computador, o produto deprograma de computador para implementar um método para car-regar um componente de suplemento para uso com uma aplicaçãocom base na funcionalidade requisitada do componente de su-plemento, o produto de programa de computador compreendendoum ou mais meios de armazenamento legíveis por computadorpossuindo armazenado nos mesmos, instruções executáveis porcomputador que, quando executadas por um processador, causamque o sistema de computador execute o seguinte:descobrir um ou mais componentes de suplemento nosistema de computador que são de um tipo especificado decomponente de suplemento requisitado por uma aplicação;qualificar pelo menos um componente de suplementodescoberto com base em pelo menos um componente de suplemen-to descoberto satisfazendo uma ou mais restrições de quali-ficação, a uma ou mais restrição de qualificação representa- tiva da funcionalidade que é para ser associada com um com-ponente de suplemento para o componente de suplemento operarem conjunto com a aplicação de uma maneira desejada; eativar um componente de suplemento qualificado deacordo com a uma ou mais restrições de qualificação para usocom a aplicação.
16. Produto de programa de computador, de acordocom a reivindicação 15, CARACTERIZADO pelo fato de que asinstruções executáveis por computador, quando executadas,causam que o sistema de computador descubra um ou mais com-ponentes de suplemento no sistema de computador que são deum tipo especificado de componente de suplemento requisitadopor uma aplicação, compreendem instruções executáveis porcomputador que, quando executadas, causam que o sistema decomputador consulte o índice de componentes de suplemento em relação às entradas de componente de suplemento possuindouma propriedade estática indicativa de um tipo especificadode componentes de suplemento.
17. Produto de programa de computador, de acordocom a reivindicação 15, CARACTERIZADO pelo fato de que as instruções executáveis por computador, quando executadas,causam que o sistema de computador qualifique pelo menos umcomponente de suplemento descoberto baseado no pelo menos umcomponente de suplemento descoberto satisfazendo uma ou maisrestrições de qualificação, compreendem instruções executá-veis por computador que, quando executadas, causam que osistema de computador qualifique pelo menos um componente desuplemento descoberto com base no pelo menos um componentede suplemento descoberto possuindo um protocolo de ponto deentrada que é compatível com a aplicação.
18. Produto de programa de computador, de acordocom a reivindicação 15, CARACTERIZADO pelo fato de que asinstruções executáveis por computador, quando executadas,causam que o sistema de computador qualifique pelo menos umcomponente de suplemento descoberto baseado no pelo menos umcomponente de suplemento descoberto satisfazendo uma ou maisrestrições de qualificação, compreendem instruções executá-veis por computador que, quando executadas, causam que o sistema de .computador qualifique pelo menos um componente desuplemento descoberto com base no pelo menos um componentede suplemento descoberto possuindo permissões apropriadaspara operar em conjunto com a aplicação.
19. Produto de programa de computador, de acordocom a reivindicação 15, CARACTERIZADO pelo fato de que asinstruções executáveis por computador, quando executadas,causam que o sistema de computador qualifique pelo menos umcomponente de suplemento descoberto baseado no . pelo menos umcomponente de suplemento descoberto satisfazendo d uma oumais restrições de qualificação, compreendem instruções exe-cutáveis por computador que, quando executadas, causam que osistema de computador qualifique pelo menos um componente desuplemento descoberto com base no pelo menos um componentede suplemento descoberto estando apto a executar em um domí-nio da aplicação requisitado pela aplicação.
20. Produto de programa de computador, de ac.ordocom a reivindicação 15, CARACTERIZADO pelo fato de que asinstruções executáveis por computador, quando executadas,causam que o sistema de computador ative um componente desuplemento qualificado de acordo com a uma ou mais restri-ções de qualificação para uso com a aplicação, compreendeminstruções executáveis por computador que, quando executa- das, causam que o sistema de computador construa um fluxo decomunicação entre a aplicação e o componente de suplementoqualificado.
BRPI0617187-7A 2005-10-12 2006-09-12 descoberta, qualificação e ativação de componentes de suplemento de software BRPI0617187A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/248.051 2005-10-12
US11/248,051 US7698685B2 (en) 2005-10-12 2005-10-12 Discovery, qualification, and activation of software add-in components
PCT/US2006/035389 WO2007046977A1 (en) 2005-10-12 2006-09-12 Discovery, qualification, and activation of software add-in components

Publications (1)

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

Family

ID=37912016

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0617187-7A BRPI0617187A2 (pt) 2005-10-12 2006-09-12 descoberta, qualificação e ativação de componentes de suplemento de software

Country Status (10)

Country Link
US (1) US7698685B2 (pt)
EP (1) EP1934723B1 (pt)
JP (1) JP5026430B2 (pt)
KR (1) KR20080047447A (pt)
CN (1) CN101288047B (pt)
AU (1) AU2006302930A1 (pt)
BR (1) BRPI0617187A2 (pt)
CA (1) CA2622121A1 (pt)
RU (1) RU2008114066A (pt)
WO (1) WO2007046977A1 (pt)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7856505B2 (en) * 2007-06-29 2010-12-21 Microsoft Corporation Instantiating a communication pipeline between software
US20090183155A1 (en) * 2008-01-15 2009-07-16 Microsoft Corporation Isolation of Content by Processes in an Application
US8762977B2 (en) * 2008-04-10 2014-06-24 Telefonaktiebolaget L M Ericsson (Publ) Mobile device software management method and apparatus
US20100313252A1 (en) * 2009-06-08 2010-12-09 Erie Trouw System, method and apparatus for creating and using a virtual layer within a web browsing environment
US8464248B2 (en) * 2009-06-15 2013-06-11 Microsoft Corporation Contextual discovery of value-added components
US8365143B2 (en) * 2010-06-15 2013-01-29 Microsoft Corporation Dynamic languages for static hosts
US8898658B2 (en) * 2010-06-29 2014-11-25 Cisco Technology, Inc. Dynamic web resource provisioning
US8554797B2 (en) * 2010-12-17 2013-10-08 Sap Ag System and method for modular business applications
GB2487357A (en) * 2011-01-12 2012-07-25 Promethean Ltd Embedding application functionality within a user interface of a second application for ease of user operation
US9063776B2 (en) 2011-05-27 2015-06-23 Microsoft Technology Licensing, Llc Application activation framework
US9697016B2 (en) 2011-11-15 2017-07-04 Microsoft Technology Licensing, Llc Search augmented menu and configuration for computer applications
US8930886B2 (en) * 2011-12-15 2015-01-06 Microsoft Corporation Identifying application resources through implicit application models
US8997080B2 (en) * 2013-02-11 2015-03-31 Citrix Systems, Inc. System updates with personal virtual disks
CN103246533B (zh) * 2013-04-11 2017-03-29 小米科技有限责任公司 一种在通讯录中添加插件的方法、装置和设备
WO2015013936A1 (zh) * 2013-07-31 2015-02-05 华为技术有限公司 关联插件管理方法、设备及系统
US20150113498A1 (en) * 2013-10-21 2015-04-23 Microsoft Corporation Modeling customizations to a computer system without modifying base elements
US9311062B2 (en) * 2013-10-31 2016-04-12 International Business Machines Corporation Consolidating and reusing portal information
CN104133666B (zh) * 2013-11-29 2017-11-17 腾讯科技(成都)有限公司 确定人工智能行为的方法、装置及人工智能服务器
US20160232130A1 (en) * 2015-02-05 2016-08-11 Syntel, Inc. Mobile web application framework
US10721290B2 (en) 2015-06-05 2020-07-21 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment using executable containers and virtual machines
US10649679B2 (en) * 2016-11-23 2020-05-12 Nutanix, Inc. Containerized application extensions in distributed storage systems
US10761911B2 (en) 2017-02-13 2020-09-01 Nutanix, Inc. Asynchronous application interactions in distributed systems
JP7157335B2 (ja) * 2019-02-27 2022-10-20 日本電信電話株式会社 Apiアダプタ試験システム、apiアダプタ試験支援装置、apiアダプタ試験支援方法、および、apiアダプタ試験支援プログラム
US11928040B2 (en) * 2020-02-14 2024-03-12 Nippon Telegraph And Telephone Corporation API adapter test system, API adapter test assistance device, API adapter test assistance method, and API adapter test assistance program
CN113688141B (zh) * 2021-10-25 2022-02-15 武汉万云网络科技有限公司 一种应用功能设计方法及软件开发平台

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815718A (en) * 1996-05-30 1998-09-29 Sun Microsystems, Inc. Method and system for loading classes in read-only memory
US6347398B1 (en) * 1996-12-12 2002-02-12 Microsoft Corporation Automatic software downloading from a computer network
US6006279A (en) * 1997-01-21 1999-12-21 Canon Information Systems, Inc. Plug-in module host framework
US6055562A (en) * 1997-05-01 2000-04-25 International Business Machines Corporation Dynamic mobile agents
US6085030A (en) * 1997-05-02 2000-07-04 Novell, Inc. Network component server
US6549932B1 (en) * 1998-06-03 2003-04-15 International Business Machines Corporation System, method and computer program product for discovery in a distributed computing environment
US6795853B1 (en) * 1998-06-30 2004-09-21 International Business Machines Corporation Integration of additional computer components into a computer operation through attribute enabled interactive selections presented in composite lists available to the user in a variety of display screens
US6523166B1 (en) 1998-09-21 2003-02-18 Microsoft Corporation Method and system for on-demand installation of software implementations
US6892230B1 (en) * 1999-06-11 2005-05-10 Microsoft Corporation Dynamic self-configuration for ad hoc peer networking using mark-up language formated description messages
US6523168B1 (en) * 1999-07-01 2003-02-18 International Business Machines Corporation Reduction of object creation during string concatenation and like operations that utilize temporary data storage
US6901440B1 (en) * 1999-07-02 2005-05-31 Agilent Technologies, Inc. System and method for universal service activation
US20020104067A1 (en) 1999-12-29 2002-08-01 Green David W. Method and system and article of manufacture for an N-tier software component architecture application
US6871345B1 (en) * 2000-04-04 2005-03-22 Motive, Inc. Self managing software agents with introspection
US6834303B1 (en) * 2000-11-13 2004-12-21 Hewlett-Packard Development Company, L.P. Method and apparatus auto-discovering components of distributed services
US20020078262A1 (en) 2000-12-14 2002-06-20 Curl Corporation System and methods for providing compatibility across multiple versions of a software system
US6996832B2 (en) * 2001-05-30 2006-02-07 Bea Systems, Inc. System and method for software component plug-in framework
JP2003015880A (ja) * 2001-06-29 2003-01-17 Toshiba Corp 携帯情報端末およびアドインプログラム起動方法
US6778990B2 (en) * 2001-07-27 2004-08-17 Hewlett-Packard Development Company, L.P. Dynamic component activation method using a relational database as the repository for registration information
US7254814B1 (en) * 2001-09-28 2007-08-07 Emc Corporation Methods and apparatus for managing plug-in services
US7080092B2 (en) * 2001-10-18 2006-07-18 Bea Systems, Inc. Application view component for system integration
US20030172127A1 (en) * 2002-02-06 2003-09-11 Northrup Charles J. Execution of process by references to directory service
US7395540B2 (en) * 2003-03-12 2008-07-01 Microsoft Corporation Automated business software application integration
US7493614B2 (en) * 2003-03-31 2009-02-17 Microsoft Corporation System architecture and related methods for dynamically adding software components to extend functionality of system processes
US7546470B2 (en) * 2003-08-13 2009-06-09 International Business Machines Corporation Selective computer component activation apparatus method and system
US20060037000A1 (en) * 2003-10-10 2006-02-16 Speeter Thomas H Configuration management data model using blueprints

Also Published As

Publication number Publication date
KR20080047447A (ko) 2008-05-28
EP1934723A4 (en) 2009-01-28
CA2622121A1 (en) 2007-04-26
CN101288047A (zh) 2008-10-15
JP5026430B2 (ja) 2012-09-12
JP2009512063A (ja) 2009-03-19
EP1934723A1 (en) 2008-06-25
EP1934723B1 (en) 2017-11-01
RU2008114066A (ru) 2009-10-20
CN101288047B (zh) 2012-05-23
US7698685B2 (en) 2010-04-13
AU2006302930A1 (en) 2007-04-26
US20070083512A1 (en) 2007-04-12
WO2007046977A1 (en) 2007-04-26

Similar Documents

Publication Publication Date Title
BRPI0617187A2 (pt) descoberta, qualificação e ativação de componentes de suplemento de software
US11481247B2 (en) Computer-implemented systems and methods for service provisioning
Clarke et al. An NLP Curator (or: How I Learned to Stop Worrying and Love NLP Pipelines).
WO2008134162A1 (en) Dynamically loading scripts
BRPI0708301A2 (pt) objeto para processamento de dados rss
KR20120139692A (ko) 가상화를 위한 확장 포인트 선언적 등록
US7624131B2 (en) Type restriction and mapping for partial materialization
US8327324B1 (en) Message logging system
US20070089084A1 (en) Generic markup specified object descriptor for a modularized computing application
US20080005065A1 (en) Base business object key
Oren et al. ActiveRDF: object-oriented RDF in Ruby
US10275225B1 (en) Implicit value store mapping
US7516159B2 (en) Extension of XQuery in a high performance XML/XQuery database
Arai et al. A debugger-cooperative higher-order contract system in python
US20100017434A1 (en) Mechanisms to share attributes between objects
US9378468B2 (en) Generic boxed components for multi-client systems
US20240179188A1 (en) Authorization policy analysis
Arndt TriplePlace: A flexible triple store for Android with six indices
Elliott et al. Programming with. NET for Apache Spark
WO2024118405A1 (en) Authorization policy validation
US9218402B2 (en) Method for converting MOF files for compatibility with incompatible CIM implementations
Garcia Advanced SQL Server 2005-2008 for the Experienced Professional
Wojcieszyn et al. Configuration and Customization
BRPI0501171B1 (pt) Method in a computing device to enforce a security policy

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]