BRPI0808912A2 - Armazenamento cache em memória de dados personalizáveis de vários ocupantes - Google Patents

Armazenamento cache em memória de dados personalizáveis de vários ocupantes Download PDF

Info

Publication number
BRPI0808912A2
BRPI0808912A2 BRPI0808912-4A BRPI0808912A BRPI0808912A2 BR PI0808912 A2 BRPI0808912 A2 BR PI0808912A2 BR PI0808912 A BRPI0808912 A BR PI0808912A BR PI0808912 A2 BRPI0808912 A2 BR PI0808912A2
Authority
BR
Brazil
Prior art keywords
data
occupant
cache
requesting
store
Prior art date
Application number
BRPI0808912-4A
Other languages
English (en)
Inventor
Elliot Lewis
Jay Grewal
Mahesh Vijayaraghavan
Michael James Ott
Andrei Smertin
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=39796296&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=BRPI0808912(A2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of BRPI0808912A2 publication Critical patent/BRPI0808912A2/pt
Publication of BRPI0808912A8 publication Critical patent/BRPI0808912A8/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/50Business processes related to the communications industry
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Databases & Information Systems (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Game Theory and Decision Science (AREA)
  • Computer Hardware Design (AREA)
  • Primary Health Care (AREA)
  • Human Resources & Organizations (AREA)
  • General Health & Medical Sciences (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Between Computers (AREA)

Description

“ARMAZENAMENTO CACHE EM MEMÓRIA DE DADOS PERSONALIZÁVEIS DE VÁRIOS OCUPANTES”
ANTECEDENTES
Soluções de Gerenciamento de Relações entre Clientes proporcionam ferramentas e capacidades necessárias para criar e manter uma imagem clara dos clientes, a partir do primeiro contato através da compra e pós-venda. Para organizações complexas, um sistema CRM pode apresentar características e capacidades para ajudar a aperfeiçoar a maneira pela qual as organizações de venda e comercialização atraem novos clientes, gerenciam campanhas de comercialização e impulsionam as atividades de venda. Os sistemas CRM podem incluir muitos componentes, de hardware e software, utilizados individualmente ou de maneira compartilhada por usuários dentro ou fora da organização.
Assim, um sistema CRM típico hospeda várias organizações (“ocupantes”). Cada ocupante pode ser habilitado para personalizar seu sistema CRM adicionando/apagando/modificando entidades, atributos, relações, formas, vistas, plug-ins de extensibilidade ao nível de código e semelhantes. Para separar personalizações implementadas por diferentes ocupantes, as personalizações podem ser particionadas em tabelas separadas que existem ou em um banco de dados ou em vários bancos de dados. Apesar da partição de dados, pode ser desejável compartilhar tantas informações não personalizadas mas personalizáveis - quanto possível no tempo de execução, de modo a se reduzirem ao mínimo os requisitos de memória e se aperfeiçoar o desempenho.
SUMÁRIO
Este sumário é apresentado para introduzir uma seleção de conceitos sob uma forma simplificada que são também descritos a seguir na Descrição Detalhada. Este sumário não pretende identificar características-chave ou características essenciais do objeto reivindicado, nem pretende ser um auxílio na determinação do alcance do objeto reivindicado.
As modalidades referem-se ao armazenamento cache de dados personalizáveis compartilhados para otimização da memória e do desempenho em um ambiente de compartilhamento de dados de vários ocupantes. Os atributos que indicam urna condição de personalização de dados de ocupante são armazenados em um armazenamento cache que permite que um sistema forneça aos ocupantes dados de armazenamentos de dados de ocupante individuais ao mesmo tempo que armazena em cache dados solicitados e não tem que acessar os armazenamentos de dados individuais se os dados solicitados já estiverem armazenados em cache. Uma única cópia dos dados ao “nível de sistema” ou não personalizados pode ser armazenada para vários ocupantes que guardam recursos de memória e sistema em cada operação de recuperação.
Deve ficar entendido que tanto a descrição geral precedente quanto a descrição detalhada seguinte são apenas explanatórias e não restringem os aspectos reivindicados. DESCRIÇÃO RESUMIDA DOS DESENHOS A Figura 1 mostra uma arquitetura de sistema CRM exemplar;
A Figura 2 mostra uma tabela de atributos exemplar para um modelo de armazenamento cache de dados personalizáveis compartilhados de vários ocupantes;
A Figura 3 mostra roteiros exemplares de processamento de solicitações de ocupantes em um sistema que implementa um armazenamento cache de dados personalizáveis compartilhados de vários ocupantes;
A Figura 4 é um ambiente de funcionamento em rede exemplar no qual modalidades podem ser implementadas;
A Figura 5 é um diagrama de blocos de um ambiente operacional de computação exemplar onde modalidades podem ser implementadas;
A Figura 6 mostra um diagrama de fluxos lógico para um processo de armazenamento cache de dados personalizáveis compartilhados de vários ocupantes; e
A Figura 7 mostra um diagrama de fluxos lógico para uma parte do processo de armazenamento cache de dados personalizáveis compartilhados de vários ocupantes.
DESCRIÇÃO DETALHADA
Conforme brevemente descrito acima, o compartilhamento de dados não personalizados - mas personalizáveis - na memória que são armazenados em várias tabelas e até em vários bancos de dados é habilitado com a capacidade de rastrear os dados dentro de uma única tabela que foram personalizados. Na descrição detalhada seguinte, são feitas referências aos desenhos anexos que formam uma parte dela, e nos quais são mostradas, a título de ilustração, modalidades ou exemplos específicos. Estes aspectos podem ser combinados, outros aspectos podem ser utilizados, e alterações estruturais podem ser feitas sem se abandonar o espírito ou alcance da presente revelação. A descrição detalhada seguinte não deve, portanto, ser tomada em um sentido limitador, e o alcance da presente invenção é definido pelas reivindicações anexas e seus equivalentes.
Embora as modalidades sejam descritas no contexto geral de módulos de programa que são executados em conjunto com um programa de aplicativo que roda no sistema operacional de um computador pessoal, os versados na técnica reconhecerão que os aspectos podem ser também implementados em combinação com outros módulos de programa.
Geralmente, módulos de programa incluem rotinas, programas, componentes, estruturas de dados e outros tipos de estrutura que executam tarefas específicas ou implementam tipos de dados abstratos específicos. Além do mais, os versados na técnica entenderão que as modalidades podem ser postas em prática com outras configurações de sistema de computador, inclusive dispositivos de mão, sistemas com vários processadores, eletrônicos de consumo baseados em microprocessador ou programáveis, minicomputadores, computadores de grande porte e semelhantes. As modalidades podem ser também postas em prática em ambientes de computação distribuídos onde as tarefas são desempenhadas por dispositivos de processamento remotos que são conectados através de uma rede de comunicações. Em um ambiente de computação distribuído, os módulos de programa podem ser localizados em dispositivos de armazenamento em memória tanto locais quanto remotos.
As modalidades podem ser implementadas como um processo (método) de compu
tador, um sistema de computação ou como um produto industrial, tal como um produto de programa de computador ou um meio passível de leitura por computador. O produto de programa de computador pode ser um meio de armazenamento em computador passível de leitura por um sistema de computador e que codifica um programa de computador de instru10 ções para execução de um processo de computador. O produto de programa de computador pode ser também um sinal propagado em uma portadora passível de leitura por um sistema de computação e que codifica um programa de computador de instruções para execução de um processo de computador.
Com referência agora à Figura 1, é mostrada uma arquitetura de sistema CRM 100 15 exemplar. O sistema CRM 100 pode ser implementado com quatro camadas físicas dentro de uma “pilha” arquitetônica CRM. As camadas incluem uma camada de apresentação 102 para apresentar dados e interfaces de usuário com usuários (uma apresentação baseada na rede) e uma camada de aplicativo 104 para interagir com aplicativos tais como um aplicativo de correio eletrônico, um aplicativo de programação, um aplicativo de calendário e seme20 lhantes. As camadas incluem também uma plataforma CRM 106 que aciona uma camada de acesso a dados comerciais e de lógica de domínio 108 para gerenciar a interação com um servidor(es) de banco de dados 114.
Uma ou mais das camadas podem ser combinadas, ou cada uma pode compreender subcamadas separadas, como, por exemplo, uma camada de gerenciamento de dados 25 e uma camada de armazenamento de dados que existem em espaços de processo separados para acesso a dados. Servidor(es) de diretório 112 podem prover serviços de diretório para identificar princípios de segurança, papéis e grupos dentro do produto. Servidor(es) de aplicativo 116 podem prover serviços auxiliares, tais como os descritos acima.
A Figura 2 mostra uma tabela de atributos exemplar 200 para um modelo de arma30 zenamento cache de dados personalizáveis compartilhados de vários ocupantes. Cada tipo de dado personalizável em um sistema CRM (entidades, atributos ou relações, por exemplo) tem suas próprias propriedades e, portanto, é armazenado em sua própria tabela (uma tabela de entidades, uma tabela de atributos ou uma tabela de relações, por exemplo). Em um sistema CRM de vários ocupantes, cada ocupante pode ter sua própria tabela para cada tipo 35 de dado personalizável. Por exemplo, cada ocupante pode ter uma tabela de entidades, uma tabela de atributos e uma tabela de relações.
Um sistema CRM, de acordo com as modalidades, pode prover também um conjunto inicial de dados personalizáveis (dados de “sistema” ou “não personalizados”), que é um conjunto com o qual todo ocupante em um sistema CRM pode começar quando da instalação e configuração. Uma vez que dados de personalização são acessados com frequência, eles podem armazenados em cache na memória para cada organização de maneira eficaz. Muitos destes dados podem permanecer os mesmos através de muitos ocupantes. Portanto, as modalidades apresentam uma abordagem para compartilhar os dados de sistema mantendo ao mesmo tempo uma cópia privada de dados que são personalizados por um ocupante específico.
Em um sistema CRM, o armazenamento cache na memória pode aplicar-se a:
• personalizações de metadados (entidades, atributos, relações, etc.);
• personalizações de interface com usuário (formas, vistas, etc.);
• personalizações do Estojo de Desenvolvimento de Software (SDK) (solicitações/respostas de SDK,
etc.); e
• personalizações ao nível de código (plug-ins de extensibilidade, etc.).
De acordo com algumas modalidades, os dados compartilhados e personalizáveis de vários ocupantes podem ser processados rastreando-se o “nível de personalização” de uma fileira de dados. Esta informação determina se a fileira é uma fileira compartilhada, uma nova fileira do cliente, uma fileira compartilhada que foi personalizada ou uma fileira que foi apagada. Esta informação é então utilizada para determinar as informações que podem ou não ser compartilhadas. A tabela 200 2 ilustra este conceito de “nível de personalização”.
A tabela 200 inclui o identificador de atributos 221 na primeira coluna, o nome 222 para o atributo na segunda coluna, o comprimento 223 dos dados na terceira coluna. O identificador de entidade 224 e dois atributos, passível de anulação 225 e campo personalizado 226, estão nas colunas seguintes. A última coluna inclui uma listagem de atributos ao nível de personalização 227. Um “NívelDePersonalização” de 0 significa “sistema” (dados ao nível do sistema), 1 significa “personalizado” (os dados são novos para o ocupante específico ou é uma modificação de dados de sistema) e 2 significa “apagado”.
Na tabela 200 exemplar, o atributo com o nome “Renda” foi apagado (o original indicado pela fileira 231, a versão atualizada listada pela fileira 234) e o atributo com o nome “Novo_campo” foi criado pelo ocupante (listado na fileira 235). Os dados com um “nível de personalização” de 0 são dados que não foram personalizados e são, portanto, “compartiIháveis” através dos ocupantes.
Quando é necessário que o sistema CRM recupere uma parte dos dados personalizáveis de um cache, o cache primeiro determina se a parte dos dados já foi recuperada do banco de dados para o ocupante específico. Se os dados não tiverem sido recuperados anteriormente, o cache recupera a parte dos dados. O cache em seguida olha para o “nível de personalização” da parte dos dados recuperada. Se o “nível de personalização” for 0, o cache faz uma verificação de modo a determinar se os dados de sistema já estão no cache e, se não estiverem, eles são adicionados ao cache. O cache insere então uma “sentinela de sistema”, que indica ao cache que, se estes dados forem solicitados novamente para este 5 ocupante, ele deve então, em vez disso, recuperar os dados de sistema do armazenamento cache. Se o “nível de personalização” da parte de dados for 1, o cache insere os dados no armazenamento cache para o ocupante específico. Se o “nível de personalização” da parte dos dados for 2, os dados não são adicionados ao cache. Em vez disso, é adicionado um “apagar sentinela”, que indica ao cache que, se esta parte dos dados for solicitada nova10 mente para este ocupante, o cache deve enviar de volta a notificação de que os dados não existem.
A Figura 3 mostra roteiros exemplares de processamento de solicitações de clientes em um sistema que implementa um armazenamento cache de dados personalizáveis compartilhados de vários ocupantes. Os roteiros exemplares da tabela 370 são mostrados em conjunto com o sistema de armazenamento cache de dados compartilhados exemplar 300.
Uma operação de acordo com as modalidades começa com uma solicitação de dados 354 que é recebida no sistema CRM de um cliente 342 associado a um ocupante. O cliente pode ser qualquer usuário (interno ou externo) do sistema CRM que acesse o siste20 ma através de um dispositivo ou aplicativo de cliente. Conforme mencionado anteriormente, cada ocupante pode estar associado a dados compartilhados personalizáveis, uma parte dos quais pode ser não personalizada (nível de sistema) e uma outra parte personalizada por esse ocupante específico. Além disso, uma parte dos dados para um ocupante pode ser apagada no sistema. O sistema CRM pode incluir bancos de dados individuais para cada 25 ocupante, como, por exemplo, o banco de dados (A) 346 para o ocupante A, o banco de dados (B) 348 para o ocupante Beo banco de dados (C) 350 para o ocupante C. O sistema CRM pode incluir também um único banco de dados com partes do banco de dados atribuídas a ocupantes individuais.
Quando a solicitação é recebida no cache 344 do sistema CRM, o cache 344 determina se os dados solicitados foram recuperados anteriormente do banco de dados do ocupante solicitante e, se tiverem sido, qual é o atributo de nível de personalização para os dados solicitados. O cache 344 determina se os dados já foram recuperados verificando junto ao armazenamento cache 362 (conforme indicado pelo número de referência 360).
Se os dados não tiverem sido recuperados anteriormente, o cache 344 acessa o banco de dados relevantes e recupera os dados ou determina que os dados já não existem no banco de dados (comunicações 356, 358, por exemplo). Se os dados tiverem sido recuperados anteriormente e estiverem armazenados no cache como um atributo de “sentinela de sistema" para este ocupante, então este ocupante exige os dados ao nível do sistema (não personalizados) de modo que o cache recupere os dados ao nível do sistema (não personalizado) do armazenamento cache e os envie ao ocupante solicitante. Se os dados forem recuperados pela primeira vez e o nível de personalização dos dados indicar que os dados para este ocupante são os dados ao nível do sistema (não personalizados), o cache 344 adicionará os dados ao nível do sistema ao armazenamento cache 362 desde que os dados ainda não estejam armazenados nele. Além disso, um atributo de “sentinela de sistema” é inserido no armazenamento cache 362 para este ocupante. Um atribuição de “sentinela de sistema” permite que o cache forneça os dados ao nível do sistema (não personalizados) a qualquer cliente que solicite esses dados específicos sem ter que armazenar várias cópias deles para cada ocupante. Se os dados forem personalizados, o cache armazena estes dados personalizados diretamente para esse ocupante, permitindo assim que o cache reconheça os dados personalizados e os forneça ao ocupante solicitante. Além do mais, se os dados solicitados já não existirem mais no banco de dados do ocupante, um atributo de “apagar sentinela” pode ser inserido no armazenamento cache para indicar ao cliente solicitante em futuras solicitações que estes dados não existem para esse ocupante sem ter que verificar primeiro o banco de dados do ocupante.
Além disso, o sistema pode ser habilitado para reconhecer e atribuir atributos para tipos específicos de personalização (no caso de vários ocupantes utilizarem o mesmo tipo de personalização). Em seguida, o cache pode armazenar em seu armazenamento local uma cópia de cada dado personalizado e enviá-la aos ocupantes solicitantes com base no atributo de tipo de personalização.
Agora com referência aos roteiros exemplares da tabela 370, de acordo com um primeiro roteiro na primeira fieira, o ocupante A solicita dados com a chave 1. O cache 344 acessa o armazenamento cache 362 e descobre que não há entrada no cache para este ocupante para o item com a chave 1. Assim, o cache 344 acessa 356 o banco de dados (A) 346, recupera os dados, nota que o nível de personalização dos dados é 1 (personalizado) e armazena os dados diretamente no armazenamento cache 362 para o ocupante solicitante e em seguida envia os dados recuperados ao ocupante solicitante A.
De acordo com o segundo roteiro na segunda fileira, o ocupante A solicita outra parte dos dados com a chave 2. Os dados foram recuperados anteriormente e são encontrados no armazenamento cache 362, mas os dados no cache constituem uma “sentinela de sistema” para este ocupante. Assim, o cache recupera os dados de sistema (não personalizados) do armazenamento cache e os envia de volta ao ocupante A sem ter que recuperalos do banco de dados (A) 346.
De acordo com o terceiro roteiro na terceira fileira, o ocupante A solicita outra parte dos dados com a chave 3. Os dados foram apagados do banco de dados (A) 346 anteriormente e uma indicação disso é armazenada no armazenamento cache 362 com a utilização do atributo “apagar sentinela”. Assim, o cache 344 fornece ao ocupante A solicitação de que os dados solicitados não existem mais sem ter que verificar no banco de dados (A) 346.
De acordo com um quarto roteiro na quarta fileira, o ocupante N solicita dados com a chave 3. Estes dados não foram recuperados pelo ocupante B e, portanto, o cache 344 acessa 358 o banco de dados (B) 348, recupera e armazena os dados no armazenamento cache 362, isto porque ele vê que o nível de personalização dos dados no banco de dados
(B) 348 é 1 e, portanto, o ocupante A personalizou os dados e em seguida os envia ao ocupante solicitante B.
De acordo com o quinto roteiro na quinta fileira, o ocupante C solicita dados com a
chave 2. O ocupante C solicitou estes dados antes e o cache recuperou os dados do banco de dados (C) 350, notou que o nível de personalização era 0 (para dados de sistema) e inseriu uma sentinela de sistema para este item. Os dados não personalizados foram recuperados anteriormente para o ocupante A e são encontrados no armazenamento cache 362. 15 Uma vez que os dados são dados ao nível do sistema, eles são compartilhados por todos os ocupantes, e uma vez que o armazenamento cache tem uma “sentinela de sistema” para o ocupante C para dados com a chave 2, os dados de sistema recuperados pelo ocupante A podem ser fornecidos ao ocupante C sem necessidade de recuperá-los do banco de dados
(C) 350.
O sistema de armazenamento cache de dados personalizados compartilhados e os
roteiros da Figura 3 são exemplares para fins de ilustração. Um sistema para armazenar em cache dados compartilhados, personalizados pode ser implementado com a utilização de componentes adicionais ou em menor número com a utilização dos princípios aqui descritos. Outros roteiros para armazenar em cache e fornecer dados personalizáveis a ocupantes são também possíveis em um sistema como o aqui descrito.
A Figura 4 é um ambiente de funcionamento em rede exemplar no qual modalidades podem ser implementadas. Sistemas/aplicativos CRM e o armazenamento cache de dados compartilhados personalizáveis podem ser implementados local em um único dispositivo de computação ou de uma maneira distribuída através de vários clientes e servidores 30 físicos e virtuais. Eles podem ser também implementados em sistemas não agrupados ou sistemas agrupados que utilizam vários nós que se comunicam através de uma ou mais redes (a(s) rede(s) 490, por exemplo).
Tal sistema pode compreender qualquer topologia de servidores, clientes, provedores de serviços da Internet e meios de comunicação. Além disso, o sistema pode ter uma topologia estática ou dinâmica. O termo “cliente” pode referir-se a um aplicativo de cliente ou a um dispositivo de cliente. Embora um sistema de funcionamento em rede que implementa armazenamento cache de dados personalizáveis compartilhados possa envolver muito mais componentes, componentes relevantes são discutidos em conjunto com esta figura.
Os aplicativos associados a um sistema CRM podem ser implementados em dispositivos de cliente individuais 481-483 ou executados no servidor 492 e acessados de qualquer um dos dispositivos (ou aplicativos) de cliente. Da mesma maneira, um serviço de ar5 mazenamento cache de dados personalizáveis compartilhados associado ao sistema CRM pode ser executado localmente em um dos dispositivos de cliente ou, mais tipicamente, em um ou mais servidores (o servidor 492, por exemplo) e acessado pelos dispositivos (ou aplicativos) de cliente.
Armazenamentos de dados associados ao armazenamento cache de dados perso10 nalizáveis compartilhados dentro de um sistema CRM podem ser corporificados em um único armazenamento de dados, tal como o armazenamento de dados 496, ou distribuído através de vários armazenamentos de dados associados a dispositivos, servidores de cliente individuais e semelhantes. A(s) rede(s) 490 pode(m) incluir uma rede segura, tal como uma rede empresarial, uma rede não segura, tal como uma rede aberta sem fio ou a Internet. 15 A(s) rede(s) 490 provê(em) comunicação entre os nós aqui descritos. A título de exemplo, e não de limitação, a(s) rede(s) 490 pode(m) incluir meios cabeados, como, por exemplo, uma rede cabeada ou uma conexão cabeada direta e meios sem fio tais como acústicos, RF, infravermelhos e outros meios sem fio.
Muitas outras configurações de aparelhos de computação, aplicativos, fontes de 20 dados, sistemas de distribuição de dados podem ser utilizadas para implementar armazenamento cache de dados personalizáveis compartilhados de vários ocupantes. Além disso, os ambientes de funcionamento em rede discutidos na Figura 4 são apenas para fins de ilustração. As modalidades não estão limitadas aos aplicativos, módulos ou processos exemplares.
A Figura 5 e a discussão afim pretendem fornecer uma descrição geral e breve de
um ambiente de computação adequado no qual podem ser implementadas modalidades. Com referência à Figura 5, é mostrado um diagrama de blocos de um ambiente operacional de computação exemplo, tal como o dispositivo de computação 500. Em uma configuração básica, o aparelho de computação 500 pode ser um servidor ou um dispositivo de cliente 30 que provê armazenamento cache de dados personalizáveis compartilhados em conjunto com um serviço CRM e inclui tipicamente pelo menos uma unidade de processamento 502 e uma memória de sistema 504. O dispositivo de computação 500 pode incluir também uma série de unidades de processamento que cooperam na execução de programas. Dependendo da configuração e do tipo exatos do dispositivo de computação, a memória de sistema 35 504 pode ser volátil (tal como uma RAM), não volátil (tal como uma ROM, memória flash, etc.) Ou alguma combinação das duas. A memória de sistema 504 inclui tipicamente um sistema operacional 505 adequado para controlar o funcionamento de um computador pessoai de funcionamento em rede, como, por exemplo, os sistemas operacionais WINDOWS®, da MICROSOFT CORPORATION, de Redmond, Washington. A memória de sistema 504 pode incluir também um ou mais aplicativos de software, tais como os módulos de programa 506, o aplicativo CRM e o módulo de armazenamento cache 524.
O aplicativo CRM 522 pode ser um aplicativo separado ou um módulo integrante de um serviço CRM que provê serviços de gerenciamento de relações entre clientes para aplicativos de cliente associados ao aparelho de computação 500. O módulo de armazenamento cache 524 pode prover serviços associados à determinação de um atributo de nível de personalização dos dados solicitados, ao armazenamento cache de dados recuperados e ao fornecimento de dados solicitados ou notificação sobre os dados para o aplicativo CRC, conforme descrito anteriormente. Esta configuração básica é exemplificada na Figura 5 pelos componentes dentro da linha tracejada 508.
O dispositivo de computação 500 pode ter características ou funcionalidade adicionais. Por exemplo, o dispositivo de computação 500 pode incluir também dispositivos de armazenamento de dados adicionais (removíveis e/ou não removíveis) tais como, por exemplo, discos magnéticos, discos ópticos ou fita. Tal armazenamento adicional é mostrado na Figura 5 pelo armazenamento removível 509 e pelo armazenamento não removível 510. Os meios de armazenamento em computador podem incluir meios voláteis e não voláteis, removíveis e não removíveis implementados em qualquer os em qualquer método ou tecnologia para armazenamento de informações, tais como instruções passíveis de leitura por computador, estruturas de dados, módulos de programa ou outros dados. A memória de sistema 504, o armazenamento removível 509 e o armazenamento não removível 510 são todos exemplos de meios de armazenamento em computador. Os meios de armazenamento em computador incluem, mas não se limitam a, RAM, ROM, EEPROM, memória flash ou outra tecnologia de memória, CD-ROM, discos versáteis digitais (DVD) ou outro armazenamento óptico, cassetes magnéticos, fita magnética, armazenamento em disco magnético ou outros armazenamentos magnéticos, ou qualquer outro meio que possa ser utilizado para armazenar as informações desejadas e que possa ser acessado pelo dispositivo de computação 500. Qualquer meio de armazenamento em computador que tal pode ser parte do aparelho 500. O dispositivo de computação 500 pode ter também um dispositivo(s) de entrada 512, tal como teclado, mouse, caneta, dispositivo para entrada de voz, dispositivo de entrada sensível ao toque, etc. Dispositivo(s) de saída 514, tal(ais) como um monitor, altofalantes, impressora, etc., pode(m) ser também incluído(s). Estes dispositivos são notoriamente conhecidos na técnica e não é necessário discuti-los extensivamente aqui.
O dispositivo de computação 500 pode conter também conexões de comunicação 516, que permitem que o dispositivo se comunique com outros dispositivos de computação 518, seja, por exemplo, através de uma rede sem fio em um ambiente de computação distribuído, como, por exemplo, uma intranet ou a Internet. Outros dispositivos de computação 518 podem incluir servidores que executam aplicativos associados a um servidor de acesso a dados e de diretório. A rede de comunicação 516 é um exemplo de meio de comunicação. Meios de comunicação podem ser tipicamente corporificados por instruções passíveis de leitura por computador, estruturas de dados, módulos de programa ou outros dados em um sinal de dados modulado, tal como uma onda portadora ou outro mecanismo de transporte e inclui qualquer meio de distribuição de informações. O termo “sinal de dados modulado” Significa um sinal que tem uma ou mais de suas características fixadas ou alteradas de maneira a se codificarem as informações no sinal. A título de exemplo, e não de limitação, os meios de comunicação incluem meios cabeados, como, por exemplo, uma rede cabeada ou uma conexão cabeada direta e meios sem fio tais como acústicos, RF, infravermelhos e outros meios sem fio. O termo meio passível de leitura por computador conforme aqui utilizado inclui tanto meios de armazenamento quanto meios de comunicação.
O objeto reivindicado inclui também métodos. Estes métodos podem ser implementados de qualquer número de maneiras, inclusive as estruturas descritas neste documento. Uma maneira que tal é por operações mecânicas de dispositivos do tipo descrito neste documento.
Outra maneira opcional é que uma ou mais das operações individuais dos métodos sejam executadas em conjunto com a execução de algumas delas por operadores humanos. É necessário que estes operadores humanos sejam co-localizados uns com os outros, mas cada um pode estar sozinho com uma máquina que executa uma parte do programa.
A Figura 6 mostra um diagrama de fluxos lógico para um processo de armazenamento cache de dados personalizáveis compartilhados de vários ocupantes. O processo 600 pode ser implementado como parte de um serviço CRM.
O processo 600 começa com a operação 602, na qual uma chave de dados e um ID de ocupante são recebidos pelo cache de um sistema CRM que indica uma solicitação de dados do ocupante. O processamento da operação 602 até a operação de decisão 604.
Na operação de decisão 604, é determinado se o item associado aos dados solicitados está no cache. O item pode incluir uma lista de atributos para os dados solicitados que define os dados, ou pode ser uma “sentinela de sistema” ou um “apagar sentinela”, que indica que o item foi recuperado para este ocupante, mas é ou equivalente à versão de sistema compartilhada já no cache, ou os dados foram apagados para este ocupante. Se o item não existir no cache, o processamento avança até a operação 720 do processo 700 da Figura 7.
Se o item for encontrado no cache na operação de decisão 604, o processamento avança até a operação 606, na qual o item é recuperado do armazenamento cache. O processamento se move até a operação de decisão 608 a partir da operação 606.
Na operação de decisão 608, é determinado se o item armazenado em cache é uma “sentinela de sistema”. Se este for o caso, o processamento avança até a operação 610, na qual os dados de sistema indicados pelo item são recuperados do armazenamento cache. O processamento se move da operação 610 até a operação 612, na qual os dados de sistema são fornecidos ao ocupante solicitante. Após a operação 612, o processamento se move até um processo de chamada de outras ações.
Se a determinação na operação de decisão 608 for negativa, o processamento avança até a operação de decisão 614, na qual é determinado se o item é um “apagar sentinela”. Se este for o caso, o processamento avança até a operação 616, onde é fornecida ao ocupante solicitante uma notificação que indica dados não existentes. Após a operação 616, o processamento se move até um processo de chamada de outras ações.
Se a determinação na operação de decisão 614 for negativa, ela indica que os dados recuperados do armazenamento cache representam personalizações específicas do ocupante com o dado ID. O processamento avança até a operação 618, na qual os dados recuperados são fornecidos ao ocupante solicitante. Após a operação 618, o processamento se move até um processo de chamada de outras ações.
A Figura 7 mostra um diagrama de fluxos lógico para o processo 700, que é uma parte do processo de armazenamento cache de dados personalizáveis compartilhados de vários ocupantes da Figura 6.
O processo 700 começa com a operação 720 em seguida a uma determinação negativa na operação de decisão 604 do processo 600. Na operação 720, os dados solicitados são recuperados de um banco de dados associados ao ocupante solicitante. O processamento avança da operação 720 até a operação de decisão 722.
Na operação de decisão 722, é determinado se o nível de personalização para os dados solicitados é 0, indicando dados não personalizados ao nível do sistema. Se o nível de personalizáveis é 0, o processamento avança até o ponto de decisão 724.
No ponto de decisão 724, o cache determina se o armazenamento cache já contém uma cópia dos dados de sistema (não personalizados) para o item com a dada chave. Se os dados de sistema ainda não existirem no armazenamento cache, o processamento avança até a operação 725 da Figura
Na operação 725, os dados recuperados para este ocupante são inseridos no armazenamento cache como os dados de sistema (não personalizados) em que podem ser recuperados para este ou outros ocupantes que exigem os dados de sistema (não personalizados) no futuro. O processamento avança da operação 725 até a 726.
Se a determinação na operação de decisão 724 for afirmativa, isto significa que os dados de sistema (não personalizados) para a dada chave já existem no armazenamento cache. O processamento avança até a operação 726. Na operação 726, uma “sentinela de sistema” é inserida no armazenamento cache para os dados recuperados e o ocupante solicitante. O processamento se move até a operação 728 a partir da operação 726. Na operação 728, os dados de sistema são fornecidos ao ocupante solicitante. Após a operação 728, o processamento se move até um processo de chamada de outras ações.
Se a determinação na operação de decisão 722 for negativa, o processamento avança até a operação de decisão 730, na qual é determinado se o nível de personalização para os dados solicitados é 2, indicando dados não existentes. Se o nível de personalizáveis é 2, o processamento avança a operação 736.
Na operação 736, um “apagar sentinela” é inserido no armazenamento cache para os dados recuperados e o ocupante solicitante, indicando que os dados foram apagados no banco de dados do ocupante. O processamento se move até a operação 738 a partir da operação 736.
Na operação 738, é fornecida ao ocupante solicitante a notificação de que os dados já não existem Após a operação 738, o processamento se move até um processo de chamada de outras ações.
Se a determinação na operação de decisão 730 for negativa, o processamento avança até a operação 732, onde os dados com a dada chave e o ID de ocupante são inseridos no armazenamento cache uma vez que eles são sabidamente dados que são personalizados para o ocupante solicitante. O processamento avança até a operação 734 a partir da operação 732.
Na operação 734, os dados personalizados recuperados são fornecidos ao ocupante solicitante. Após a operação 734, o processamento se move até um processo de chamada de outras ações.
As operações incluídas nos processos 600 e 700 são para fins de exemplificação. O armazenamento cache de dados personalizáveis compartilhados de vários ocupantes pode ser implementado por processos semelhantes com menos ou mais etapas adicionais, assim como em uma ordem de operações diferente com a utilização dos princípios aqui descritos.
O relatório, os exemplos e dados acima proporcionam uma descrição completa da fabricação e uso da composição das modalidades. Embora o objeto tenha sido descrito em uma linguagem específica das características estruturais e/ou dos atos metodológicos, deve ficar entendido que o objeto definido nas reivindicações anexas não está necessariamente limitado às características e aos atos descritos acima. Em vez disso, as características e os atos específicos descritos acima são revelados como formas exemplares de implementar as reivindicações e modalidades.

Claims (20)

1. Método a ser executado, pelo menos em parte, em um dispositivo de computação para processar dados personalizáveis em um ambiente de vários ocupantes, o método sendo CARACTERIZADO por compreender: receber uma solicitação de dados de um ocupante (602); determinar se uma entrada associada aos dados solicitados está armazenada em um armazenamento cache (604); se a entrada estiver armazenada e for um apagar sentinela, enviar uma notificação de dados não existentes ao ocupante solicitante; se a entrada estiver armazenada e for um apagar sentinela, recuperar os dados solicitados do armazenamento cache e enviar os dados ao ocupante solicitante (610, 612); e se a entrada estiver armazenada e for o dado solicitado que é personalizado para o ocupante, fornecer os dados solicitados personalizados ao ocupante solicitante (618).
2. Método, de acordo com a reivindicação 1, CARACTERIZADO por compreender também: se nenhuma entrada associada aos dados solicitados estiver armazenada no armazenamento cache: determinar se os dados existem em um armazenamento de dados associado ao ocupante; se os dados não existirem no armazenamento de dados associado ao ocupante, armazenar uma entrada de “apagar sentinela” no armazenamento cache e enviar notificação de dados não existentes ao ocupante solicitante; se os dados existirem no armazenamento de dados associado ao ocupante e forem dados personalizados para o ocupante, armazenar os dados personalizados no armazenamento cache e fornecer os dados personalizados ao ocupante solicitante (732, 734); e se os dados existirem no armazenamento de dados associado ao ocupante e forem dados ao nível do sistema, armazenar uma sentinela de sistema e os dados ao nível do sistema no armazenamento cache e fornecer os dados personalizados a qualquer ocupante solicitante (726, 728).
3. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que os dados ao nível de sistema recuperados são armazenados no armazenamento cache (344) para envio a qualquer ocupante solicitante.
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que os dados personalizados são enviados ao ocupante solicitante com base em uma chave de dados e um identificador de ocupante associados à solicitação (370).
5.. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que os dados personalizados por um ocupante só são acessíveis por esse ocupante (370).
6. Método, de acordo com a reivindicação 1, CARACTERIZADO por compreender também: habilitar um ocupante para acessar dados personalizados por outro ocupante.
7. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que os dados personalizáveis (200) incluem pelo menos um de um conjunto de: metadados, uma forma de interface com usuário, uma vista da interface com usuário, um plug-in de extensibiIidade e um parâmetro de comunicação.
8. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que uma condição de personalização dos dados é armazenada como um atributo de nível de personalização.
9. Sistema para processar dados personalizáveis em um ambiente de aplicativo comercial de vários ocupantes, que por compreende: uma memória cache (344); um processador acoplado à memória (502), CARACTERIZADO pelo fato de que o processador é configurado para executar módulos de programa que incluem: um módulo de armazenamento cache configurado para (524); determinar se uma entrada associada ao registro solicitado está armazenada na memória cache; fornecer ao ocupante solicitante uma notificação de registro não existente em resposta à determinação de que a entrada está armazenada e é um apagar sentinela; recuperar o registro solicitado da memória cache e enviar ao ocupante solicitante em resposta à determinação de que a entrada está armazenada e é uma sentinela de sistema, em que uma única cópia do registro é armazenada na memória cache para qualquer ocupante solicitante; e fornecer ao ocupante solicitante o registro solicitado personalizado em resposta à determinação de que a entrada está armazenada e é o registro solicitado personalizado para o ocupante.
10. Sistema, de acordo com a reivindicação 9. CARACTERIZADO pelo fato de que o módulo de armazenamento cache (524) é também configurado para: determinar se o registro existe em um armazenamento de dados associado ao ocupante em resposta à determinação de que nenhuma entrada associada ao registro existe na memória cache; armazenar uma entrada de “apagar sentinela” na memória cache e enviar ao ocupante solicitante a notificação de registro não existente em resposta à determinação de que o registro não existe rio armazenamento de dados associado ao ocupante; armazenar o registro personalizado na memória cache e fornecer ao ocupante solicitante o registro personalizado em resposta à determinação de que o registro existe no armazenamento de dados associado ao ocupante e é o registro personalizado para o ocupante; e armazenar uma sentinela de sistema e o registro ao nível de sistema no armazenamento cache e fornecer a qualquer ocupante solicitante o registro personalizado em resposta à determinação de que o registro existe no armazenamento de dados associado ao ocupante e é o registro ao nível de sistema.
11. Sistema, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que o módulo de armazenamento cache (524) é também configurado para: armazenar um atributo de nível de personalização que indica a condição de personalização do registro recuperado na memória cache como parte da entrada associada ao registro.
12. Sistema, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que o atributo de nível de personalização (227) é armazenado em uma tabela de atributos associada ao registro solicitado.
13. Sistema, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que o processador (502) é também configurado para executar um módulo de aplicativo comercial (522) associado a um sistema de Gerenciamento de Relações entre Clientes (CRM) para comunicação com o ocupante solicitante.
14. Sistema, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que o armazenamento de dados (346 348, 350) associado ao ocupante solicitante é um de um banco de dados individual atribuído a um único ocupante e uma parte de uma banco de dados atribuído a uma série de ocupantes.
15. Sistema de reivindicações 9, CARACTERIZADO pelo fato de que o módulo de armazenamento cache (524) é também configurado para habilitar um ocupante a permitir o compartilhamento de um registro personalizado com outros ocupantes com base em um identificador de registro e um identificador de ocupante para cada ocupante.
16. Sistema, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que o módulo de armazenamento cache (524) é também configurado para atualizar a entrada associada aos dados solicitados na memória cache com base em pelo menos uma de: expiração de um período, uma solicitação de ocupante e uma notificação de alteração de um armazenamento de dados associado ao ocupante.
17. Meio de armazenamento passível de leitura por computador com instruções armazenadas nele para processar dados personalizáveis em um ambiente de aplicativo comercial de vários ocupantes, as instruções, CARACTERIZADAS por compreender: determinar se uma entrada associada aos dados solicitados está armazenada em um armazenamento cache em resposta ao recebimento de uma solicitação de dados de um ocupante (602); se a entrada estiver armazenada e for um apagar sentinela, enviar uma notificação de dados não existentes ao ocupante solicitante (616); se a entrada estiver armazenada e for uma sentinela de sistema, disponibilizar os dados solicitados para uma série de ocupantes solicitantes sem recuperar os dados de um armazenamento de dados de ocupante para cada solicitação; e se a entrada estiver armazenada e for o dado solicitado que é personalizado para o ocupante, disponibilizar dados personalizados apenas para o ocupante solicitante (618).
18. Meio de armazenamento passível de leitura por computador, de acordo com a reivindicação 17, CARACTERIZADO pelo fato de que as instruções compreendem também: se nenhuma entrada associada aos dados solicitados estiver armazenada no armazenamento cache e os dados solicitados estiverem disponíveis de um armazenamento de dados associado ao ocupante: recuperar os dados do armazenamento de dados associado ao ocupante (720); determinar o nível de personalizáveis dos dados recuperados (722, 730); se os dados forem personalizados, enviar os dados personalizados apenas ao ocupante solicitante (7342, 734); se os dados forem não personalizados, disponibilizar os dados não personalizados para qualquer ocupante solicitante, em que apenas uma cópia dos dados não personalizados é armazenada no armazenamento cache (726, 728).
19. Meio de armazenamento passível de leitura por computador, de acordo com a reivindicação 18, CARACTERIZADO pelo fato de que as instruções compreendem também armazenar uma sentinela de sistema que indica uma condição de não personalizado dos dados recuperados no armazenamento cache (725).
20. Meio de armazenamento passível de leitura por computador, de acordo com a reivindicação 17, CARACTERIZADO pelo fato de que o ocupante (342) inclui um de uma organização e um membro de uma organização participando em um sistema CRM.
BRPI0808912A 2007-03-30 2008-03-15 Armazenamento cache em memória de dados personalizáveis de vários ocupantes BRPI0808912A8 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/731,564 US8095618B2 (en) 2007-03-30 2007-03-30 In-memory caching of shared customizable multi-tenant data
US11/731.564 2007-03-30
PCT/US2008/057173 WO2008121540A1 (en) 2007-03-30 2008-03-15 In-memory caching of shared customizable multi-tenant data

Publications (2)

Publication Number Publication Date
BRPI0808912A2 true BRPI0808912A2 (pt) 2014-08-19
BRPI0808912A8 BRPI0808912A8 (pt) 2016-12-20

Family

ID=39796296

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0808912A BRPI0808912A8 (pt) 2007-03-30 2008-03-15 Armazenamento cache em memória de dados personalizáveis de vários ocupantes

Country Status (8)

Country Link
US (1) US8095618B2 (pt)
EP (1) EP2143051B1 (pt)
JP (1) JP5226770B2 (pt)
KR (1) KR101475964B1 (pt)
CN (1) CN101652787B (pt)
BR (1) BRPI0808912A8 (pt)
RU (1) RU2458399C2 (pt)
WO (1) WO2008121540A1 (pt)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095618B2 (en) 2007-03-30 2012-01-10 Microsoft Corporation In-memory caching of shared customizable multi-tenant data
US8577835B2 (en) * 2007-06-28 2013-11-05 Salesforce.Com, Inc. Method and system for sharing data between subscribers of a multi-tenant database service
US10430338B2 (en) * 2008-09-19 2019-10-01 Oracle International Corporation Selectively reading data from cache and primary storage based on whether cache is overloaded
US8868831B2 (en) * 2009-09-14 2014-10-21 Oracle International Corporation Caching data between a database server and a storage system
US8954488B2 (en) * 2009-01-21 2015-02-10 Microsoft Corporation Extensibility for web based diagram visualization
US9286364B2 (en) 2009-01-23 2016-03-15 Salesforce.Com Inc. Methods and systems for sharing information in a supply chain
US8880549B2 (en) * 2009-11-09 2014-11-04 International Business Machines Corporation Concurrent database access by production and prototype applications
GB201004449D0 (en) * 2010-02-22 2010-05-05 Corbett Sean Data accelerator
US20110246524A1 (en) 2010-04-01 2011-10-06 Salesforce.Com, Inc. System, method and computer program product for portal user data access in a multi-tenant on-demand database system
US8631333B2 (en) 2010-06-07 2014-01-14 Microsoft Corporation Feature set differentiation by tenant and user
US8751656B2 (en) 2010-10-20 2014-06-10 Microsoft Corporation Machine manager for deploying and managing machines
US8386501B2 (en) 2010-10-20 2013-02-26 Microsoft Corporation Dynamically splitting multi-tenant databases
US8417737B2 (en) 2010-10-20 2013-04-09 Microsoft Corporation Online database availability during upgrade
US8296267B2 (en) 2010-10-20 2012-10-23 Microsoft Corporation Upgrade of highly available farm server groups
US9075661B2 (en) 2010-10-20 2015-07-07 Microsoft Technology Licensing, Llc Placing objects on hosts using hard and soft constraints
US8799453B2 (en) 2010-10-20 2014-08-05 Microsoft Corporation Managing networks and machines for an online service
US8850550B2 (en) 2010-11-23 2014-09-30 Microsoft Corporation Using cached security tokens in an online service
US9721030B2 (en) 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects
CN102215264B (zh) * 2011-06-10 2013-04-10 山东大学 一种支持多租户数据与服务定制运行的方法和装置
US9973884B2 (en) * 2012-03-07 2018-05-15 Intel Corporation Device, system and method of controlling access to location sources
JP5969107B2 (ja) 2012-03-29 2016-08-10 インテル コーポレイション モバイルデバイスの位置推定を行うデバイス、システム及び方法
US9645242B2 (en) 2012-04-10 2017-05-09 Intel Corporation Device, system and method of collaborative location error correction
GB2503266A (en) * 2012-06-21 2013-12-25 Ibm Sharing aggregated cache hit and miss data in a storage area network
US9959423B2 (en) * 2012-07-30 2018-05-01 Microsoft Technology Licensing, Llc Security and data isolation for tenants in a business data system
JP6511394B2 (ja) * 2012-09-27 2019-05-15 アマデウス エス.アー.エス.Amadeus S.A.S. データの保存および取得の方法およびシステム
US20140181992A1 (en) * 2012-12-21 2014-06-26 Michael Alexander Janson Multi-tenant content provider
US9483754B2 (en) * 2013-03-15 2016-11-01 Stevenson Systems, Inc. Interactive building stacking plans
TWI506452B (zh) * 2013-03-18 2015-11-01 廣達電腦股份有限公司 雲端平台及其資料交換方法
CN103310382B (zh) * 2013-05-28 2016-09-21 中国矿业大学 一种矿山综合自动化集成平台下的数据定制方法及系统
US20140379634A1 (en) * 2013-06-21 2014-12-25 Avaya Inc. Application-to-repository data mapping in data repositories, and related methods, systems, and computer-readable media
US9798655B2 (en) 2013-09-20 2017-10-24 Oracle International Corporation Managing a cache on storage devices supporting compression
US10229161B2 (en) 2013-09-20 2019-03-12 Oracle International Corporation Automatic caching of scan and random access data in computing systems
KR102271265B1 (ko) 2014-01-21 2021-07-01 오라클 인터내셔날 코포레이션 어플리케이션 서버, 클라우드 또는 다른 환경에서 멀티 테넌시를 지원하기 위한 시스템 및 방법
US10084723B2 (en) * 2014-09-25 2018-09-25 Oracle International Corporation System and method for providing an end-to-end lifecycle in a multitenant application server environment
US9853873B2 (en) 2015-01-10 2017-12-26 Cisco Technology, Inc. Diagnosis and throughput measurement of fibre channel ports in a storage area network environment
US9900250B2 (en) 2015-03-26 2018-02-20 Cisco Technology, Inc. Scalable handling of BGP route information in VXLAN with EVPN control plane
US10222986B2 (en) * 2015-05-15 2019-03-05 Cisco Technology, Inc. Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system
US11588783B2 (en) 2015-06-10 2023-02-21 Cisco Technology, Inc. Techniques for implementing IPV6-based distributed storage space
US9996321B2 (en) * 2015-06-23 2018-06-12 Microsoft Technology Licensing, Llc Multi-tenant, tenant-specific applications
US10778765B2 (en) 2015-07-15 2020-09-15 Cisco Technology, Inc. Bid/ask protocol in scale-out NVMe storage
US9860214B2 (en) * 2015-09-10 2018-01-02 International Business Machines Corporation Interconnecting external networks with overlay networks in a shared computing environment
US9892075B2 (en) 2015-12-10 2018-02-13 Cisco Technology, Inc. Policy driven storage in a microserver computing environment
US9823919B2 (en) 2015-12-30 2017-11-21 Microsoft Technology Licensing, Llc Controlled deployment of application feature in mobile environment
US11106467B2 (en) * 2016-04-28 2021-08-31 Microsoft Technology Licensing, Llc Incremental scheduler for out-of-order block ISA processors
US10140172B2 (en) 2016-05-18 2018-11-27 Cisco Technology, Inc. Network-aware storage repairs
US20170351639A1 (en) 2016-06-06 2017-12-07 Cisco Technology, Inc. Remote memory access using memory mapped addressing among multiple compute nodes
US10664169B2 (en) 2016-06-24 2020-05-26 Cisco Technology, Inc. Performance of object storage system by reconfiguring storage devices based on latency that includes identifying a number of fragments that has a particular storage device as its primary storage device and another number of fragments that has said particular storage device as its replica storage device
US11563695B2 (en) 2016-08-29 2023-01-24 Cisco Technology, Inc. Queue protection using a shared global memory reserve
CN106844529B (zh) * 2016-12-29 2019-08-20 金蝶软件(中国)有限公司 缓存数据更新方法、装置和系统
US10545914B2 (en) 2017-01-17 2020-01-28 Cisco Technology, Inc. Distributed object storage
US10243823B1 (en) 2017-02-24 2019-03-26 Cisco Technology, Inc. Techniques for using frame deep loopback capabilities for extended link diagnostics in fibre channel storage area networks
US10713203B2 (en) 2017-02-28 2020-07-14 Cisco Technology, Inc. Dynamic partition of PCIe disk arrays based on software configuration / policy distribution
US10254991B2 (en) 2017-03-06 2019-04-09 Cisco Technology, Inc. Storage area network based extended I/O metrics computation for deep insight into application performance
CN108628769A (zh) * 2017-03-17 2018-10-09 华为技术有限公司 一种缓存分配方法,及设备
US11500836B2 (en) * 2017-06-27 2022-11-15 Salesforce, Inc. Systems and methods of creation and deletion of tenants within a database
US10303534B2 (en) 2017-07-20 2019-05-28 Cisco Technology, Inc. System and method for self-healing of application centric infrastructure fabric memory
US10404596B2 (en) 2017-10-03 2019-09-03 Cisco Technology, Inc. Dynamic route profile storage in a hardware trie routing table
US10942666B2 (en) 2017-10-13 2021-03-09 Cisco Technology, Inc. Using network device replication in distributed storage clusters
US11048815B2 (en) * 2018-08-06 2021-06-29 Snowflake Inc. Secure data sharing in a multi-tenant database system
US11650749B1 (en) 2018-12-17 2023-05-16 Pure Storage, Inc. Controlling access to sensitive data in a shared dataset
US10922229B2 (en) 2019-03-11 2021-02-16 Microsoft Technology Licensing, Llc In-memory normalization of cached objects to reduce cache memory footprint
CN111045802B (zh) * 2019-11-22 2024-01-26 中国联合网络通信集团有限公司 Redis集群组件调度系统及方法、平台设备
US11082487B1 (en) 2020-09-22 2021-08-03 Vignet Incorporated Data sharing across decentralized clinical trials using customized data access policies
CN112632130B (zh) * 2020-12-30 2024-09-17 中国农业银行股份有限公司 一种数据管理的方法、装置、设备及介质
CN112800362B (zh) * 2021-02-04 2024-05-17 百果园技术(新加坡)有限公司 一种界面视图延时加载方法及装置
US12019610B2 (en) * 2021-08-27 2024-06-25 Salesforce, Inc. Mechanisms for truncating tenant data
US12008041B2 (en) 2021-09-15 2024-06-11 International Business Machines Corporation Shared cache for multiple index services in nonrelational databases
US12149508B2 (en) * 2022-10-06 2024-11-19 Sap Se Data sharing between tenants at different network platforms
US12007870B1 (en) 2022-11-03 2024-06-11 Vignet Incorporated Monitoring and adjusting data collection from remote participants for health research
US11790107B1 (en) 2022-11-03 2023-10-17 Vignet Incorporated Data sharing platform for researchers conducting clinical trials

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5038278A (en) * 1988-04-01 1991-08-06 Digital Equipment Corporation Cache with at least two fill rates
KR960015583B1 (ko) 1994-06-30 1996-11-18 김정덕 다중프로세서의 캐시메모리 필터링장치
US6421683B1 (en) * 1999-03-31 2002-07-16 Verizon Laboratories Inc. Method and product for performing data transfer in a computer system
US7987217B2 (en) * 2000-05-12 2011-07-26 Oracle International Corporation Transaction-aware caching for document metadata
US6725265B1 (en) * 2000-07-26 2004-04-20 International Business Machines Corporation Method and system for caching customized information
US6732237B1 (en) * 2000-08-29 2004-05-04 Oracle International Corporation Multi-tier caching system
US6928466B1 (en) * 2000-09-28 2005-08-09 Emc Corporation Method and system for identifying memory component identifiers associated with data
MXPA03008384A (es) * 2001-03-16 2004-11-12 Netomat Inc Compartir, administrar y comunicar informacion sobre una red de computadoras.
US7624126B2 (en) 2003-06-25 2009-11-24 Microsoft Corporation Registering for and retrieving database table change information that can be used to invalidate cache entries
US7779039B2 (en) * 2004-04-02 2010-08-17 Salesforce.Com, Inc. Custom entities and fields in a multi-tenant database system
US7529728B2 (en) * 2003-09-23 2009-05-05 Salesforce.Com, Inc. Query optimization in a multi-tenant database system
US20060235831A1 (en) * 2005-01-14 2006-10-19 Adinolfi Ronald E Multi-source multi-tenant entitlement enforcing data repository and method of operation
US9135304B2 (en) * 2005-12-02 2015-09-15 Salesforce.Com, Inc. Methods and systems for optimizing text searches over structured data in a multi-tenant environment
US8069153B2 (en) * 2005-12-02 2011-11-29 Salesforce.Com, Inc. Systems and methods for securing customer data in a multi-tenant environment
US7716180B2 (en) * 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US8949368B2 (en) * 2006-05-12 2015-02-03 Citrix Systems, Inc. Method for cache object aggregation
US7831455B2 (en) * 2007-03-08 2010-11-09 Salesforce.Com, Inc. Method and system for posting ideas and weighting votes
US8095618B2 (en) 2007-03-30 2012-01-10 Microsoft Corporation In-memory caching of shared customizable multi-tenant data

Also Published As

Publication number Publication date
WO2008121540A1 (en) 2008-10-09
EP2143051A1 (en) 2010-01-13
CN101652787B (zh) 2013-09-18
RU2009136171A (ru) 2011-04-10
KR101475964B1 (ko) 2014-12-23
US8095618B2 (en) 2012-01-10
KR20100014546A (ko) 2010-02-10
CN101652787A (zh) 2010-02-17
BRPI0808912A8 (pt) 2016-12-20
US20080244184A1 (en) 2008-10-02
JP2010524083A (ja) 2010-07-15
JP5226770B2 (ja) 2013-07-03
EP2143051B1 (en) 2017-11-01
RU2458399C2 (ru) 2012-08-10
EP2143051A4 (en) 2012-08-29

Similar Documents

Publication Publication Date Title
BRPI0808912A2 (pt) Armazenamento cache em memória de dados personalizáveis de vários ocupantes
JP7341225B2 (ja) マルチテナント環境における非集中型台帳による高度なスマートコントラクト
JP6461167B2 (ja) アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムおよび方法
EP3258369B1 (en) Systems and methods for distributed storage
US20190187980A1 (en) Version control of applications
JP2022501712A (ja) ブロックチェーンネットワークにおけるフィールドベースのピア許可
US20180121672A1 (en) Restricting access to content
US10261996B2 (en) Content localization using fallback translations
JP2006244485A (ja) 階層的に安全なストレージシステム内の発見可能性および列挙の機構
WO2012098457A1 (en) Method for generating universal objects identifiers in distributed multi-purpose storage systems
CN103597800A (zh) 自动云服务重新连接
US9231957B2 (en) Monitoring and controlling a storage environment and devices thereof
CN103902637B (zh) 用于向用户提供计算资源的方法和装置
US20140053156A1 (en) Autonomic customization of a virtual appliance
US10831794B2 (en) Dynamic alternate keys for use in file systems utilizing a keyed index
US12483544B2 (en) Method and system for performing authentication and object discovery for on-premises cloud service providers
US20170220819A1 (en) Information exchange gateway
US20060037062A1 (en) Method, system and program product for securing resources in a distributed system
US20220188289A1 (en) Online file system consistency check for container data on a clustered filesystem
US12229022B2 (en) Method and system for generating incremental approximation backups of limited access cloud data
US12566873B2 (en) Method and system for automatic data protection for limited access cloud data
US20250355856A1 (en) Timestamp-based approach to detecting stale values in a cache
US20250110862A1 (en) Fragment tiering
US20240232025A9 (en) Method and system for generating indexing metadata for object level restoration of limited access cloud data
Kemper Getting to know neo4j

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US)

B06T Formal requirements before examination [chapter 6.20 patent gazette]

Free format text: PARECER 6.20

B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE A 11A ANUIDADE.

B08K Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette]

Free format text: EM VIRTUDE DO ARQUIVAMENTO PUBLICADO NA RPI 2505 DE 08-01-2019 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDO O ARQUIVAMENTO DO PEDIDO DE PATENTE, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.