BRPI0809083B1 - Método a ser executado em um dispositivo de computação para prover uma plataforma de serviço extensível de múltiplos locatários, sistema para hospedar serviços extensíveis de múltiplos locatários e meio de armazenamento legível por computador com instruções armazenadas nele para prover uma plataforma de serviço extensível de múltiplos locatários. - Google Patents

Método a ser executado em um dispositivo de computação para prover uma plataforma de serviço extensível de múltiplos locatários, sistema para hospedar serviços extensíveis de múltiplos locatários e meio de armazenamento legível por computador com instruções armazenadas nele para prover uma plataforma de serviço extensível de múltiplos locatários. Download PDF

Info

Publication number
BRPI0809083B1
BRPI0809083B1 BRPI0809083-1A BRPI0809083A BRPI0809083B1 BR PI0809083 B1 BRPI0809083 B1 BR PI0809083B1 BR PI0809083 A BRPI0809083 A BR PI0809083A BR PI0809083 B1 BRPI0809083 B1 BR PI0809083B1
Authority
BR
Brazil
Prior art keywords
service
organization
services
customer
access
Prior art date
Application number
BRPI0809083-1A
Other languages
English (en)
Inventor
Akezyt Janedittakarn
Roberto Adlich dos Santos
Arash Ghanaie-Sicanie
Michael James Ott
Original Assignee
Microsoft Technology Licensing, Llc
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 Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BRPI0809083A2 publication Critical patent/BRPI0809083A2/pt
Publication of BRPI0809083A8 publication Critical patent/BRPI0809083A8/pt
Publication of BRPI0809083B1 publication Critical patent/BRPI0809083B1/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Telephonic Communication Services (AREA)

Abstract

método a ser executado em um dispositivo de computação para prover uma plataforma de serviço extensível de múltiplos locatários, sistema para hospedar serviços extensíveis de múltiplos locatários e meio de armazenamento legível por computador com instruções armazenadas nele para prover uma plataforma de serviço extensível de múltiplos locatários uma plataforma de aplicação de negócios extensível de múltiplos locatários de um software como um serviço é provida para hospedar múltiplas organizações. os serviços da organização são providos por servidores virtuais ou físicos com armazenamentos de dados dedicados montados em grupos escaláveis. a interação distribuída entre os componentes dos grupos escaláveis pode possibilitar a extensibilidade e confiabilidade, enquanto mudanças nas localizações dos serviços da organização são providas para o cliente (clientes) para a continuação ininterrupta do acesso do cliente aos serviços. apis personalizáveis e dinâmicas para acessar os dados e aplicações de cada organização isoladas dos outros e serviços de autenticação de terceiros ligáveis podem também ser integradas na plataforma.

Description

MÉTODO A SER EXECUTADO EM UM DISPOSITIVO DE COMPUTAÇÃO PARA PROVER UMA PLATAFORMA DE SERVIÇO EXTENSÍVEL DE MÚLTIPLOS LOCATÁRIOS, SISTEMA PARA HOSPEDAR SERVIÇOS EXTENSÍVEIS DE MÚLTIPLOS LOCATÁRIOS E MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR COM INSTRUÇÕES ARMAZENADAS NELE PARA PROVER UMA PLATAFORMA DE SERVIÇO EXTENSÍVEL DE MÚLTIPLOS LOCATÁRIOS.
Fundamentos [001] Esforços de negócios empenham-se em responder às demandas do consumidor rapidamente, obter produtos para comercializar mais rápido, aumentar a rentabilidade geral e exercitar consistentemente a competição. A agilidade, a capacidade de satisfazer esses desafios de mercado comuns, é dependente de uma plataforma de tecnologia de aplicação de negócio sólida. Para obter agilidade nos negócios, uma infraestrutura de software inteligente multifacetada é necessária que é projetada para integração da aplicação.
[002] As plataformas de aplicação de negócios são tipicamente de um único locatário, significando que elas podem hospedar aplicações somente para uma única organização e todos os recursos da plataforma são dedicados somente a essa organização. Tais plataformas são tipicamente hospedadas pelo consumidor e instaladas e organizadas dentro de suas instalações da companhia. O custo para organizar e manter tal plataforma pode ser alto e o retorno no investimento não otimizado.
[003] Por outro lado, projetar e gerenciar sistemas de múltiplos locatários tem seus próprios desafios. Em um sistema prático de múltiplos locatários, cada cliente pode ter um esquema diferente para conexão na sua organização. Além do mais, cada cliente pode conectar em múltiplas organizações tornando o gerenciamento de tais sistemas
Petição 870180163830, de 17/12/2018, pág. 4/30
2/17 uma tarefa muito complexa de acordo com aspectos de segurança, gerenciamento de tráfego, confiabilidade e extensibilidade.
Sumário [004] Esse sumário é provido para apresentar uma seleção de conceitos em uma forma simplificada que são também descritos abaixo na descrição detalhada. Esse sumário não é planejado para identificar aspectos chaves ou aspectos essenciais da matéria exposta reivindicada, nem ele é planejado como um auxílio na determinação do escopo da matéria exposta reivindicada.
[005] As modalidades são direcionadas para prover um modelo extensível de múltiplos locatários de um software como um serviço para servir múltiplas organizações a partir de uma única plataforma. Uma plataforma de acordo com modalidades pode incluir um serviço de descoberta para prover informação de clientes associados com uma localização e configuração dos serviços da organização hospedados pela plataforma. O cliente é então habilitado a acessar os serviços da organização, que podem estar hospedados em grupos escaláveis. Mudanças de localização podem ser providas para o cliente (clientes) para acesso ininterrupto do cliente ao serviço (serviços) solicitado.
[006] Esses e outros aspectos e vantagens se tornarão evidentes a partir de uma leitura da descrição detalhada seguinte e uma revisão dos desenhos associados. É para ser entendido que ambas a descrição geral precedente e a descrição detalhada seguinte são explicativas somente e não são restritivas dos aspectos como reivindicados. Breve Descrição dos Desenhos [007] A figura 1 ilustra um modelo de serviço de locatário único exemplar, [008] A figura 2 ilustra um modelo de serviço de múltiplos locatários exemplar, [009] A figura 3 ilustra uma arquitetura de serviço extensível de
Petição 870180163830, de 17/12/2018, pág. 5/30
3/17 múltiplos locatários de acordo com modalidades, [0010] A figura 4 ilustra componentes exemplares de uma porção do serviço da organização de um serviço de múltiplos locatários, [0011] A figura 5 é um diagrama de ação ilustrando as interações entre um cliente e os componentes de um serviço de múltiplos locatários durante as operações, [0012] A figura 6 é um ambiente de rede exemplar, onde as modalidades podem ser implementadas, [0013] A figura 7 é um diagrama de blocos de um ambiente exemplar de operação de computação, onde as modalidades podem ser implementadas e [0014] A figura 8 ilustra um diagrama de fluxo lógico para um processo de provimento de serviço extensível de múltiplos locatários para um cliente.
Descrição Detalhada [0015] Como brevemente descrito acima, uma plataforma de aplicação de negócios extensível de múltiplos locatários pode ser provida utilizando um serviço de descoberta e grupos de servidores escaláveis. Na descrição detalhada seguinte, referências são feitas aos desenhos acompanhantes que formam uma parte da mesma e nos quais são mostrados, por meio de ilustrações, modalidades específicas ou exemplos. Esses aspectos podem ser combinados, outros aspectos podem ser utilizados e mudanças estruturais podem ser feitas sem se afastar do espírito ou do escopo da presente revelação. A descrição detalhada seguinte, portanto, não é para ser adotada em um sentido limitador e o escopo da presente invenção é definido pelas reivindicações anexas e seus equivalentes.
[0016] Embora as modalidades sejam descritas no contexto geral de módulos de programa que funcionam em conjunto com um programa de aplicação que é executado em um sistema operacional em um
Petição 870180163830, de 17/12/2018, pág. 6/30
4/17 computador pessoal, aqueles versados na técnica reconhecerão que aspectos podem também ser implementados em combinação com outros módulos de programa.
[0017] De forma geral, módulos de programa incluem rotinas, programas, componentes, estruturas de dados e outros tipos de estruturas que executam tarefas particulares ou implementam tipos de dados abstratos particulares. Além do mais, aqueles versados na técnica verificarão que as modalidades podem ser praticadas com outras configurações de sistema de computador, incluindo dispositivos de mão, sistemas de multiprocessador, eletrônica de consumidor programável ou baseada em microprocessador, minicomputadores, computadores de grande porte e assim por diante. As modalidades podem também ser praticadas em ambientes de computação distribuídos onde as tarefas são executadas por dispositivos de processamento remoto que são ligados através de uma rede de comunicações. Em um ambiente de computação distribuído, módulos de programa podem estar localizados em ambos os dispositivos de armazenamento de memória local e remoto.
[0018] As modalidades podem ser implementadas como um processo de computador (método), um sistema de computação ou como um artigo de fabricação, tal como um produto de programa de computador ou meios legíveis por computador. O produto de programa de computador pode ser um meio de armazenamento no computador legível por um sistema de computador e codificando um programa de instruções de computador para executar um processo do computador. O produto de programa do computador pode também ser um sinal propagado em uma portadora legível por um sistema de computação e codificando um programa de instruções de computador para executar um processo do computador.
[0019] Com referência à figura 1, o diagrama 100 de um modelo
Petição 870180163830, de 17/12/2018, pág. 7/30
5/17 de serviço de locatário único exemplar é ilustrado. Como mencionado previamente, as arquiteturas de programação para plataformas de aplicação de negócios típicas são de único locatário e adequadas para aplicações hospedadas no local.
[0020] Em uma tal plataforma típica de locatário único, o cliente 102 acessa os dados e as aplicações de negócios associadas com um único locatário que é hospedado pelo serviço da rede 106 através das redes 104. Embora as redes 104 possam ser a Internet, ela é geralmente uma combinação de redes do tipo de Intranet. Desde que um único locatário é hospedado pelo serviço, as operações de autenticação, segurança e outras preliminares podem ser executadas pelo próprio serviço, ao invés de usar um serviço de terceiros. A localização dos serviços tipicamente não muda, embora redundância e algumas operações de equilíbrio de carga possam envolver o uso de múltiplos servidores e/ou grupos de servidores.
[0021] Dessa maneira, as operações em um sistema de locatário único são relativamente simples e diretas. Entretanto, no mundo de negócios atual, muitas organizações preferem basear suas plataformas de aplicação de negócios em entidades que podem prover serviço eficiente, de custo efetivo e confiável. A fim de modernizar o seu modelo de negócios e utilizar eficientemente os seus recursos, tais entidades podem preferir hospedar serviços para múltiplas organizações. Além do mais, alguns clientes podem estar associados com múltiplas organizações, em cujo caso faria sentido para o cliente acessar todas as organizações através de um único ponto de contato.
[0022] A figura 2 ilustra um modelo de serviço de múltiplos locatários exemplar 200. Em um serviço de múltiplos locatários, uma plataforma de aplicação de negócios hospeda serviços para múltiplas organizações. Qualquer número de clientes 202 pode convocar o serviço da rede 206 através das redes 204, que, nesse caso, é mais provável
Petição 870180163830, de 17/12/2018, pág. 8/30
6/17 de ser a Internet ou uma combinação de redes diversas, para acessar dados e aplicações associadas com uma ou mais organizações.
[0023] O serviço da rede 206 pode executar serviços de gerenciamento e direcionar os clientes para serviços de rede específicos da organização 208. Adicionalmente, o serviço da rede 206 pode executar autenticação, verificação de segurança e serviços preliminares similares opcionalmente usando serviços de terceiros. Serviços da rede específicos da organização 208 podem incluir grupos escaláveis, onde as operações das organizações individuais podem ser movidas por equilíbrio de carga e outras razões. O serviço da rede 206 pode monitorar tais mudanças e redirecionar o cliente que chama de acordo, tal que a mudança seja transparente para o cliente.
[0024] Clientes podem ser clientes escassos ou numerosos com serviços adicionais opcionalmente providos por aplicações de terceiros no caso de clientes escassos. Clientes diferentes podem acessar serviços diferentes usando esquemas distintos. Alguns dos serviços podem também compartilhar os esquemas.
[0025] A arquitetura na figura 2 - no que diz respeito a esse assunto também a figura 1 - é para ilustrar uma visão geral das plataformas de software como um serviço. Somente componentes essenciais são ilustrados por finalidades de simplicidade. Na prática, tais sistemas incluem muitos componentes a mais com tarefas e métodos de comunicação específicos. Uma discussão mais detalhada de uma tal plataforma de acordo com as modalidades é provida abaixo.
[0026] A figura 3 ilustra uma arquitetura de serviço extensível de múltiplos locatários 300 de acordo com as modalidades. Uma plataforma de aplicação de negócios de software como um serviço 320 de acordo com as modalidades pode ser implementada em sítios diferentes e ser capaz de hospedar dados e aplicações de múltiplas organizações em cada sítio. Cada instalação de sítio da plataforma 320 pode
Petição 870180163830, de 17/12/2018, pág. 9/30
7/17 ser altamente escalável possibilitando alto desempenho e disponibilidade de serviços. Os sítios podem ser hospedados na Internet ou nas intranets.
[0027] De acordo com algumas modalidades, o serviço pode usar um serviço de autenticação de terceiros de confiança opcional para autenticar os usuários (cliente 302) de cada organização (por exemplo, serviço de ingresso). Serviços de autenticação de conexão independente podem também ser usados para modos de Internet ou Intranet. De acordo com outras modalidades, o acesso às operações e dados de cada organização pode ser restrito com base em funções de segurança e privilégios e associação em organização.
[0028] De acordo com algumas implementações, os dados e aplicações de cada organização podem ser isolados dos outros e acessados através de um conjunto de APIs dedicadas. As APIs podem possibilitar que desenvolvedores acessem e modifiquem dados de negócios, bem como definam/invoque/modifiquem processos de negócio e lógica remotamente através da Internet. As APIs podem ser automaticamente geradas e dinâmicas, de modo que sempre que uma nova organização é adicionada a ou removida da plataforma, as APIs podem se ajustar automaticamente. As APIs podem também ser personalizáveis permitindo que objetos personalizados e operações sejam adicionados em cada organização separada de outras organizações.
[0029] O serviço de descoberta 322 proporciona serviços de descoberta da organização e autenticação possibilitando que um cliente 302 inscreva-se na plataforma 320 e descubra todas as organizações das quais ele/ela é um membro. O serviço de descoberta 322 pode proporcionar dados de configuração detalhados sobre cada organização incluindo sua localização dentro da plataforma para acesso direto e outra informação de configuração. A informação de configuração pode ser armazenada em e recuperada do armazenamento de configuPetição 870180163830, de 17/12/2018, pág. 10/30
8/17 ração 324. Um usuário (cliente) pode ser um membro de uma ou mais organizações hospedadas em um sítio. O serviço de descoberta 322 pode operar em múltiplos modos de autenticação. Cada modo de autenticação pode ter sua própria extremidade dedicada possibilitando que o cliente especifique qual autenticação deve ser usada.
[0030] De acordo com modalidades adicionais, cada extremidade da API pode servir a múltiplas organizações. Cada chamada para a API pode identificar a organização alvo planejada para atingir. O serviço de descoberta 322 pode usar o armazenamento de configuração 324 para recuperar os dados de configuração da organização. Um administrador pode ser habilitado a acessar e manter o armazenamento de configuração 324.
[0031] Dados da organização e operações podem ser colocados em uma pluralidade de grupos escaláveis (localizações de serviço 1, 2, etc.) disponíveis dentro de um grupo de serviço 330 da plataforma 320. A localização de uma organização pode mudar e se mover entre os grupos escaláveis por finalidades de equilíbrio de carga. O modelo de serviço extensível de múltiplos locatários é dinâmico em um sentido que ele pode localizar a organização alvo mesmo depois de um movimento. Cada localização de serviço (332, 334, ...) pode incluir um ou mais servidores físicos ou virtuais provendo os serviços.
[0032] A figura 4 ilustra componentes exemplares de uma porção do serviço da organização de um serviço de múltiplos locatários. Como mencionado acima, grupos de servidores escaláveis 430 ficam no núcleo de uma plataforma extensível de software como um serviço de múltiplos locatários. De acordo com algumas modalidades, grupos de servidores 430 podem incluir um grupo de servidores de rede virtuais ou físicos 431 que recebem a solicitação do cliente, lidam com as solicitações síncronas e gerenciam o acesso aos bancos de dados da organização 433. Um servidor particular entre os servidores da rede 431
Petição 870180163830, de 17/12/2018, pág. 11/30
9/17 pode ser atribuído para o cliente por seleção aleatória, de acordo com um algoritmo predefinido (por exemplo, um algoritmo de equilíbrio de carga) e outros mais. Os bancos de dados da organização 433 podem incluir armazenamentos de dados físicos ou virtuais para cada organização (ou locatário) servida pela plataforma. Por exemplo, um sistema de serviços financeiros pode incluir bancos de dados separados para cada uma das organizações financeiras participantes (bancos, etc.) que armazenam informação de conta, informação de acesso da conta e assim por diante. A informação sobre os bancos de dados individuais, sua configuração, quaisquer redundâncias e etc., pode ser armazenada no armazenamento de configuração 324 da figura 3.
[0033] De acordo com outras modalidades, um serviço localizador (não mostrado) pode prover informação sobre qual base de dados (bancos de dados) pode ser usado pelos servidores da rede. Os servidores da rede 433 podem também apresentar solicitações de serviço assíncronas em filas a serem manipuladas pelos servidores assíncronos 435 em conjunto com os bancos de dados da organização 433. Quando uma solicitação do cliente avança na fila, um dos servidores assíncronos 435 pode ser contatado para processar a solicitação. O relacionamento entre os servidores assíncronos e os bancos de dados da organização individuais pode ser um distribuído, onde cada servidor pode trabalhar com qualquer um dos bancos de dados. Essa interação distribuída entre os servidores assíncronos e os bancos de dados da organização pode prover a capacidade de recuperação automática das falhas nas máquinas de processamento assíncronas permitindo que os bancos de dados se conectem em um outro servidor disponível quando um falha.
[0034] Devido à distribuição independente do trabalho síncrono e assíncrono e à interação entre os servidores e os bancos de dados, qualquer parte do grupo de servidores 430 é escalável. Dessa maneiPetição 870180163830, de 17/12/2018, pág. 12/30
10/17 ra, múltiplas instâncias de servidores (e/ou base de dados) podem ser providas para carga de trabalho aumentada pelo endereço, organizações adicionais, capacidade de dados e assim por diante.
[0035] A figura 5 é um diagrama de ação ilustrando as interações entre um cliente e componentes de um serviço de múltiplos locatários durante as operações. As interações no diagrama de ação 500 ilustram uma operação exemplar com etapas específicas. As interações em uma plataforma de múltiplos locatários de acordo com as modalidades podem incluir trocas diferentes com menos ou mais etapas, bem como uma ordem diferente de interações.
[0036] De acordo com a operação exemplar, o cliente 504 inicia uma chamada solicitando uma política do sítio da parte do serviço de descoberta 506. O serviço de descoberta 506 responde com a política do sítio, que pode identificar um serviço de ingresso opcional 502 (por exemplo, para autenticação). Se o serviço de ingresso de terceiros opcional 502 é usado, o cliente 504 pode enviar uma solicitação de ingresso para o serviço de ingresso 502 e receber o ingresso do serviço se as credenciais do cliente estão confirmadas para acesso a uma organização solicitada (locatário).
[0037] O cliente 504 então submete uma solicitação de ingresso no sítio com o ingresso do serviço proveniente do serviço do ingresso 502 para o serviço de descoberta 506. O serviço de descoberta 506 responde com o ingresso do sítio. O cliente 504 pode então submeter uma lista de organizações solicitadas, para as quais o serviço de descoberta 506 responde com a lista das localizações das organizações solicitadas e outras informações de configuração (esquema, etc.). Subsequentemente, o cliente 504 pode acessar as organizações alvo através do serviço da organização 508 usando a informação de localização e configuração provida pelo serviço de descoberta 506. Como indicado previamente, a localização dos serviços da organização pode
Petição 870180163830, de 17/12/2018, pág. 13/30
11/17 mudar devido à escalação, equilíbrio de carga e outros. O serviço de descoberta 506 pode atualizar o cliente com a informação de localização alterada, tal que o acesso do cliente ao serviço da organização pode continuar ininterruptamente.
[0038] Os sistemas escaláveis de múltiplos locatários e operações descritos na figura 3 a figura 5 são exemplares por finalidades de ilustração. Um sistema para os serviços extensíveis de múltiplos locatários pode ser implementado com mais ou menos componentes e operações usando os princípios descritos aqui.
[0039] A figura 6 é um ambiente de rede exemplar, onde modalidades podem ser implementadas. Sistemas de serviço extensíveis de múltiplos locatários podem ser implementados em uma maneira distribuída através de um número de clientes e servidores físicos e virtuais. Eles podem também ser implementados em sistemas não agrupados ou sistemas agrupados utilizando um número de nós se comunicando sobre uma ou mais redes (por exemplo, rede(s) 610).
[0040] Um tal sistema pode compreender qualquer topologia de servidores, clientes, provedores de serviço da Internet e meios de comunicação. Também, o sistema pode ter uma topologia estática ou dinâmica. O termo “cliente” pode se referir a uma aplicação de cliente ou a um dispositivo de cliente. Embora um sistema de rede implementando serviços extensíveis de múltiplos locatários possa envolver muitos componentes a mais, os relevantes são discutidos em conjunto com essa figura.
[0041] Solicitações por acesso podem vir de locatários usando dispositivos de cliente individuais 602-606 ou o servidor de aplicação 608 em um sistema de múltiplos locatários em rede. Um tal sistema pode também ser implementado, em um ou mais servidores (por exemplo, servidores 612, 614) e acessado pelos dispositivos (ou aplicações) do cliente. Um ou mais servidores de rede (físicos ou virtuais),
Petição 870180163830, de 17/12/2018, pág. 14/30
12/17 tal como servidor de rede 612, podem receber as solicitações e direcioná-las para o recurso apropriado. Os recursos podem incluir grupos de servidores escaláveis com o servidor síncrono e assíncrono, bancos de dados da organização e outros componentes.
[0042] Bancos de dados da organização podem ser personificados em um único armazenamento de dados, tal como armazenamento de dados 618, ou distribuídos sobre um número de armazenamentos de dados. Servidores da base de dados dedicados (por exemplo, servidor da base de dados 616) podem ser usados para coordenar a recuperação dos dados e o armazenamento em um ou mais de tais armazenamentos de dados.
[0043] A rede (redes) 610 pode incluir uma rede segura, tal como uma rede empresarial, uma rede não segura, tal como rede aberta sem fio ou a Internet. A rede (redes) 610 propicia a comunicação entre os nós descritos aqui. Por meio de exemplo, e não limitação, a rede (redes) pode incluir meios ligados por fiação, tal como uma rede ligada por fiação ou de conexão direta, e meios sem fio, tais como meios sem fio acústicos, de RF, de infravermelho e outros.
[0044] Muitas outras configurações de dispositivos de computação, aplicações, fontes de dados, sistemas de distribuição de dados podem ser utilizados para implementar uma plataforma de serviço extensível de múltiplos locatários. Além do mais, os ambientes de rede discutidos na figura 6 são por finalidades de ilustração somente. As modalidades não são limitadas às aplicações, módulos ou processos exemplares.
[0045] A figura 7 e a discussão associada são planejadas para prover uma breve descrição geral de um ambiente de computação adequado no qual as modalidades podem ser implementadas. Com referência à figura 7, um diagrama de blocos de um ambiente de operação de computação exemplar é ilustrado, tal como dispositivo de
Petição 870180163830, de 17/12/2018, pág. 15/30
13/17 computação 700. Em uma configuração básica, o dispositivo de computação 700 pode ser um servidor proporcionando serviços de gerenciamento associados com um serviço extensível de múltiplos locatários e tipicamente inclui pelo menos uma unidade de processamento 702 e memória do sistema 704. O dispositivo de computação 700 pode também incluir uma pluralidade de unidades de processamento que cooperam na execução dos programas. Dependendo da configuração exata e do tipo do dispositivo de computação, a memória do sistema 704 pode ser volátil (tal como RAM), não volátil (tais como ROM, memória flash, etc.) ou alguma combinação das duas. A memória do sistema 704 tipicamente inclui um sistema operacional 705 adequado para controlar a operação de um computador pessoal em rede, tal como os sistemas operacionais WINDOWS® da MICROSOFT CORPORATION de Redmond, Washington. A memória do sistema 704 pode também incluir uma ou mais aplicações de software, tais como módulos de programa 706, serviços da rede 722, um serviço de descoberta 724 dentro dos serviços de rede 722 e um serviço localizador opcional 726.
[0046] Serviços de rede 722 podem ser uma aplicação separada ou um módulo integral de uma plataforma de serviço de múltiplos locatários hospedada que proporciona dados e serviços de processamento para aplicações de cliente associadas com o dispositivo de computação 700. O serviço de descoberta 724 pode prover a informação de localização e configuração associada com serviços individuais da organização (locatário) para um cliente solicitando acesso a esses. O serviço localizador opcional 726 pode prover serviços associados com a determinação de uma finalidade do serviço e quais bancos de dados usar para os servidores da rede, bem como servidores de processamento assíncronos, como descrito previamente. Essa configuração básica é ilustrada na figura 7 por esses componentes dentro da linha
Petição 870180163830, de 17/12/2018, pág. 16/30
14/17 tracejada 708.
[0047] O dispositivo de computação 700 pode ter aspectos ou funcionalidade adicionais. Por exemplo, o dispositivo de computação 700 pode também incluir dispositivos de armazenamento de dados adicionais (removíveis e/ou não removíveis) tais como, por exemplo, discos magnéticos, discos óticos ou fita. Tal armazenamento adicional é ilustrado na figura 7 pelo armazenamento removível 709 e armazenamento não removível 710. Meios de armazenamento no computador podem incluir meios voláteis e não voláteis, removíveis e não removíveis implementados em qualquer método ou tecnologia para armazenamento de informação, tais como instruções legíveis por computador, estruturas de dados, módulos do programa ou outros dados. A memória do sistema 704, armazenamento removível 709 e armazenamento não removível 710 são todos exemplos de meios de armazenamento no computador. Meios de armazenamento no computador incluem, mas não são limitados a, RAM, ROM, EEPROM, memória flash ou outra tecnologia de memória, CD-ROM, discos versáteis digitais (DVD) ou outro armazenamento ótico, cassetes magnéticos, fita magnética, armazenamento em disco magnético ou outros dispositivos de armazenamento magnético ou qualquer outro meio que possa ser usado para armazenar a informação desejada e que possa ser acessado pelo dispositivo de computação 700. Quaisquer tais meios de armazenamento no computador podem ser parte do dispositivo 700. O dispositivo de computação 700 pode também ter dispositivo(s) de entrada 712, tais como teclado, mouse, caneta, dispositivo de entrada por voz, dispositivo de entrada por toque, etc. Dispositivo(s) de saída 714, tais como um monitor, alto-falantes, impressora, etc. podem também ser incluídos. Esses dispositivos são bem conhecidos na técnica e não precisam ser discutidos mais aqui.
[0048] O dispositivo de computação 700 pode também conter coPetição 870180163830, de 17/12/2018, pág. 17/30
15/17 nexões de comunicação 716 que permitem que o dispositivo se comunique com outros dispositivos de computação 718, tal como através de uma rede sem fio em um ambiente de computação distribuído, por exemplo, uma Intranet ou a Internet. Outros dispositivos de computação 718 podem incluir servidor (servidores) que executa aplicações associadas com um serviço de localização ou outros serviços. A conexão de comunicação 716 é um exemplo dos meios de comunicação. Meios de comunicação podem ser personificados tipicamente por instruções legíveis por computador, estruturas de dados, módulos do programa ou outros dados em um sinal de dados modulado, tal como uma onda portadora ou outro mecanismo de transporte e incluem quaisquer meios de entrega de informação. O termo “sinal de dados modulado” significa um sinal que tem uma ou mais de suas características ajustadas ou alteradas em uma tal maneira de modo a codificar a informação no sinal. Por meio de exemplo, e não limitação, meios de comunicação incluem meios ligados por fiação, tais como uma rede ligada por fiação ou de conexão direta e meios sem fio, tais como meios sem fio acústicos, de RF, de infravermelho e outros. O termo meios legíveis por computador como usado aqui inclui ambos os meios de armazenamento e meios de comunicação.
[0049] A matéria exposta reivindicada também inclui métodos. Esses métodos podem ser implementados em qualquer número de maneiras, incluindo as estruturas descritas nesse documento. Uma tal maneira é por operações de máquina, de dispositivos do tipo descrito nesse documento.
[0050] Outra maneira opcional é que uma ou mais das operações individuais dos métodos sejam executadas em conjunto com um ou mais operadores humanos executando algumas. Esses operadores humanos não precisam estar juntos, mas podem estar somente, cada um, com uma máquina que executa uma porção do programa.
Petição 870180163830, de 17/12/2018, pág. 18/30
16/17 [0051] A figura 8 ilustra um diagrama de fluxo lógico para o processo 800 de provimento de serviço extensível de múltiplos locatários para um cliente. O processo 800 pode ser implementado como parte de uma plataforma de aplicação de negócios de software como um serviço.
[0052] O processo 800 começa com a operação 802, onde uma solicitação para acessar uma ou mais organizações é recebida de um cliente junto com as credenciais do cliente. Como descrito previamente, clientes de um serviço hospedado de múltiplos locatários são tipicamente associados com organizações ou locatários, cada um dos quais tem um serviço incluindo uma base de dados dedicada dentro do sistema. Antes de receber a solicitação, o cliente pode usar opcionalmente um serviço de autenticação de terceiros. O processamento avança da operação 802 para a operação de decisão 804.
[0053] Na operação de decisão 804, uma determinação é feita se o cliente está autenticado. A determinação pode também incluir uma verificação de se a organização (organizações) solicitada está hospedada pela plataforma de serviço de múltiplos locatários. Se o cliente está autenticado, o processo avança para a operação 806. De outra forma, o processamento se move para um processo de chamada para ações adicionais.
[0054] Na operação 806, uma localização do serviço da organização solicitada é determinada. O processamento se move da operação 806 para a operação 808, onde a localização do serviço da organização é provida para o cliente para o acesso. A informação de configuração adicional pode também ser provida junto com a informação de localização. Depois da operação 808, o processamento se move para a operação de decisão 810.
[0055] Na operação de decisão 810, uma determinação é feita se a localização do serviço da organização é alterada devido à escalação,
Petição 870180163830, de 17/12/2018, pág. 19/30
17/17 equilíbrio de carga e outros. Se uma mudança na localização é determinada, o processamento se move para a operação 812. De outra forma, o processamento se move para um processo de chamada para ações adicionais.
[0056] Na operação 812, a mudança na localização do serviço da organização é provida para o cliente, tal que o acesso do cliente ao serviço pode continuar ininterruptamente. Depois da operação 812, o processamento se move para um processo de chamada para ações adicionais.
[0057] As operações incluídas no processo 800 são por finalidades de ilustração. O fornecimento de serviço extensível de múltiplos locatários para um cliente pode ser implementado por processos similares com menos ou mais etapas, bem como em ordem de operações diferentes usando os princípios descritos aqui.
[0058] O relatório descritivo acima, exemplos e dados proporcionam uma descrição completa da fabricação e uso da composição das modalidades. Embora a matéria exposta tenha sido descrita em linguagem específica aos aspectos estruturais e/ou ações metodológicas, é para ser entendido que a matéria exposta definida nas reivindicações anexas não é necessariamente limitada aos aspectos específicos ou ações descritas acima. Preferivelmente, os aspectos específicos e as ações descritas acima são revelados como formas exemplares de implementação das reivindicações e modalidades.

Claims (14)

  1. REIVINDICAÇÕES
    1. Método a ser executado, pelo menos em parte, em um dispositivo de computação (700) para prover uma plataforma de serviço extensível de múltiplos locatários caracterizado pelo fato de que compreende as etapas de:
    receber uma solicitação por acesso de um cliente, em que cada cliente está associado com pelo menos um serviço da organização hospedado pela plataforma (802);
    determinar uma localização do serviço da organização, em que os serviços da organização são organizados em grupos escaláveis dentro da plataforma (806);
    prover a localização do serviço da organização para o cliente para possibilitar o acesso ao serviço da organização (808);
    se a localização do serviço da organização muda durante o acesso (810), prover a localização alterada para o cliente para o acesso continuado do cliente ao serviço da organização (812); e gerar automaticamente uma pluralidade de interfaces de programação de aplicação (APIs) dedicadas configuradas para prover acesso aos serviços da organização, de modo que dados e aplicações associados com cada serviço da organização são isolados dos outros serviços da organização (508).
  2. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende:
    autenticar o cliente (804) antes de prover a localização do serviço da organização usando um dentre um serviço de autenticação integrado e um serviço de autenticação de terceiros, em que o acesso do cliente (202) ao serviço da organização solicitado (208) é restrito com base em pelo menos um de um conjunto de: um estado de segurança da conexão do cliente, uma credencial do cliente e uma associação da organização; e/ou
    Petição 870180163830, de 17/12/2018, pág. 21/30
    2/6 em que o método ainda compreende:
    prover uma pluralidade de modos de autenticação, em que cada modo de autenticação inclui uma extremidade dedicada tal que o cliente (202) é habilitado a especificar um modo de autenticação desejado.
  3. 3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende:
    prover informação de configuração para o cliente (202) associado com o acesso do cliente ao serviço da organização solicitado (208).
  4. 4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que os grupos escaláveis (430) são configurados para possibilitar uma extensibilidade vertical e uma horizontal das aplicações associadas com os serviços da organização hospedados pela plataforma.
  5. 5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a plataforma é disposta para prover acesso de metadados para serviços da organização (208) hospedados pela plataforma.
  6. 6. Sistema para hospedar serviços extensíveis de múltiplos locatários caracterizado pelo fato de que compreende:
    um serviço de descoberta (506) configurado para:
    receber uma solicitação por acesso de um cliente associado com pelo menos um serviço da organização hospedado pelo sistema (802);
    determinar uma localização do serviço da organização solicitado (806); e prover a localização do serviço da organização para o cliente para possibilitar o acesso ao serviço da organização (808), uma pluralidade de grupos de serviço escaláveis configuraPetição 870180163830, de 17/12/2018, pág. 22/30
    3/6 da para prover o serviço da organização (508);
    um armazenamento de configuração (324) associado com o serviço de descoberta (506) disposto para armazenar a informação de configuração e localização associada com a pluralidade de grupos de serviço, de modo que uma mudança na localização do serviço da organização durante o acesso do cliente ao serviço da organização é provida para o cliente para o acesso continuado do cliente ao serviço da organização; e uma pluralidade de interfaces de programação de aplicação (APIs) dedicadas geradas automaticamente, configuradas para prover acesso aos serviços da organização, de modo que dados e aplicações associados com cada serviço da organização são isolados dos outros serviços da organização (508).
  7. 7. Sistema, de acordo com a reivindicação 6, caracterizado pelo fato de que o serviço de descoberta (506) e os grupos de serviço são providos como serviços da rede (722).
  8. 8. Sistema, de acordo com a reivindicação 6, caracterizado pelo fato de que o serviço de descoberta (506) ainda é configurado para autenticar o cliente (804) utilizando uma pluralidade de modos de autenticação através de um serviço de autenticação ligável.
  9. 9. Sistema, de acordo com a reivindicação 6, caracterizado pelo fato de que as APIs são uma ou mais de:
    personalizáveis, de modo que um usuário com permissão é habilitado a adicionar pelo menos um de um objeto personalizado e uma operação personalizada para um serviço da organização (508) selecionado; e configuradas para possibilitar que usuários com permissão executem ações incluindo:
    modificar os dados associados com um serviço da organização (508);
    Petição 870180163830, de 17/12/2018, pág. 23/30
    4/6 definir um dentre um processo e uma lógica associados com o serviço da organização (508);
    invocar um dentre um processo e uma lógica associados com o serviço da organização (508); e modificar um dentre um processo e uma lógica associados com o serviço da organização (508).
  10. 10. Sistema, de acordo com a reivindicação 6, caracterizado pelo fato de que as APIs são dinamicamente geradas, de modo que as APIs são adaptadas a uma dentre uma adição e uma remoção de um serviço da organização (508) no sistema.
  11. 11. Sistema, de acordo com a reivindicação 6, caracterizado pelo fato de que os grupos de serviço incluem uma pluralidade de servidores da rede (431), bancos de dados da organização (433) e servidores de processamento assíncronos (435) configurados para interagir em uma maneira distribuída, em que pelo menos uma porção da pluralidade de servidores da rede (431), bancos de dados da organização (433) e servidores de processamento assíncronos (435) é virtual, e/ou em que múltiplas instâncias da pluralidade de servidores da rede (431), bancos de dados da organização (433) e servidores de processamento assíncronos (435) são providas para possibilitar escalabilidade, equilíbrio de carga e recuperação de falha.
  12. 12. Meio de armazenamento legível por computador com instruções armazenadas nele para prover uma plataforma de serviço extensível de múltiplos locatários caracterizado pelo fato de que as instruções compreendem:
    receber uma solicitação por acesso de um cliente associado com pelo menos um serviço da organização (508) hospedado pela plataforma, em que a solicitação inclui uma credencial do cliente (802);
    determinar uma lista de serviços da organização (508) disPetição 870180163830, de 17/12/2018, pág. 24/30
    5/6 poníveis para o cliente com base na credencial do cliente;
    prover a lista dos serviços da organização para o cliente;
    receber uma solicitação para acessar pelo menos um serviço da organização da lista;
    determinar uma localização do pelo menos um serviço da organização solicitado (806), em que os serviços da organização são providos por grupos de serviço escaláveis hospedados pela plataforma;
    prover a localização do pelo menos um serviço da organização para o cliente para possibilitar o acesso ao serviço da organização (808);
    se a localização do serviço da organização mudar durante o acesso (810), prover a localização alterada para o cliente para o acesso continuado do cliente ao serviço da organização (812); e gerar automaticamente uma pluralidade de interfaces de programação de aplicação (APIs) dedicadas configuradas para prover acesso aos serviços da organização, de modo que dados e aplicações associados com cada serviço da organização são isolados dos outros serviços da organização (508).
  13. 13. Meio de armazenamento legível por computador, de acordo com a reivindicação 12, caracterizado pelo fato de que as instruções ainda compreendem:
    autenticar o cliente usando pelo menos um modo de autenticação para cada serviço da organização solicitado pelo cliente (804).
  14. 14. Meio de armazenamento legível por computador, de acordo com a reivindicação 12, caracterizado pelo fato de que as instruções ainda compreendem:
    dinamicamente prover um conjunto de APIs dedicadas para cada serviço da organização hospedado pela plataforma para possibilitar a modificação de pelo menos um dos dados e processos associaPetição 870180163830, de 17/12/2018, pág. 25/30
    6/6 dos com cada serviço da organização (508) por um administrador, de modo que as APIs são adaptadas para uma dentre uma adição e uma remoção de um serviço da organização na plataforma.
BRPI0809083-1A 2007-04-13 2008-04-01 Método a ser executado em um dispositivo de computação para prover uma plataforma de serviço extensível de múltiplos locatários, sistema para hospedar serviços extensíveis de múltiplos locatários e meio de armazenamento legível por computador com instruções armazenadas nele para prover uma plataforma de serviço extensível de múltiplos locatários. BRPI0809083B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/787,134 US8019812B2 (en) 2007-04-13 2007-04-13 Extensible and programmable multi-tenant service architecture
US11/787.134 2007-04-13
PCT/US2008/059061 WO2008127871A1 (en) 2007-04-13 2008-04-01 Extensible and programmable multi-tenant service architecture

Publications (3)

Publication Number Publication Date
BRPI0809083A2 BRPI0809083A2 (pt) 2014-09-09
BRPI0809083A8 BRPI0809083A8 (pt) 2016-12-20
BRPI0809083B1 true BRPI0809083B1 (pt) 2019-05-07

Family

ID=39854989

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0809083-1A BRPI0809083B1 (pt) 2007-04-13 2008-04-01 Método a ser executado em um dispositivo de computação para prover uma plataforma de serviço extensível de múltiplos locatários, sistema para hospedar serviços extensíveis de múltiplos locatários e meio de armazenamento legível por computador com instruções armazenadas nele para prover uma plataforma de serviço extensível de múltiplos locatários.

Country Status (10)

Country Link
US (4) US8019812B2 (pt)
EP (1) EP2156308B1 (pt)
JP (2) JP2010526358A (pt)
KR (1) KR101279740B1 (pt)
CN (1) CN101657804B (pt)
BR (1) BRPI0809083B1 (pt)
ES (1) ES2709436T3 (pt)
RU (1) RU2463652C2 (pt)
TW (1) TWI473029B (pt)
WO (1) WO2008127871A1 (pt)

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070050471A1 (en) * 2005-08-31 2007-03-01 Microsoft Corporation Portable Remoting Component With A Scaleable Feature Set
US8019812B2 (en) * 2007-04-13 2011-09-13 Microsoft Corporation Extensible and programmable multi-tenant service architecture
JPWO2010024027A1 (ja) * 2008-08-28 2012-01-26 日本電気株式会社 仮想サーバシステム及び物理サーバ選択方法
US8255490B1 (en) 2008-10-22 2012-08-28 Amazon Technologies, Inc. Dynamic service-oriented architecture using customization code
US20100262632A1 (en) * 2009-04-14 2010-10-14 Microsoft Corporation Data transfer from on-line to on-premise deployment
US20100286992A1 (en) * 2009-05-08 2010-11-11 Microsoft Corporation Integration of Third-Party Business Applications with Hosted Multi-Tenant Business Software System
US20100318609A1 (en) * 2009-06-15 2010-12-16 Microsoft Corporation Bridging enterprise networks into cloud
US20100325139A1 (en) * 2009-06-18 2010-12-23 Microsoft Corporation Service Provider Management Console
US8561055B2 (en) * 2009-10-15 2013-10-15 Blackberry Limited Method, system and apparatus for management of push content
EP2320376A1 (en) * 2009-11-06 2011-05-11 Research In Motion Limited Method, system and apparatus for management of push content when changing computing devices
US8505034B2 (en) 2009-12-17 2013-08-06 Amazon Technologies, Inc. Automated service interface optimization
US8645550B2 (en) 2010-02-18 2014-02-04 Microsoft Corporation Database virtualization
EP2365677B1 (en) * 2010-03-03 2020-04-08 BlackBerry Limited Method, system and apparatus for configuring a device for interaction with a server
US9178949B2 (en) * 2010-03-03 2015-11-03 Blackberry Limited Method, system and apparatus for managing push data transfers
US8489708B2 (en) 2010-04-06 2013-07-16 Microsoft Corporation Virtual application extension points
US8370905B2 (en) 2010-05-11 2013-02-05 Microsoft Corporation Domain access system
US20110302265A1 (en) * 2010-06-03 2011-12-08 Microsoft Corporation Leader arbitration for provisioning services
US8539078B2 (en) * 2010-07-08 2013-09-17 International Business Machines Corporation Isolating resources between tenants in a software-as-a-service system using the estimated costs of service requests
US8904511B1 (en) 2010-08-23 2014-12-02 Amazon Technologies, Inc. Virtual firewalls for multi-tenant distributed services
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
US8799453B2 (en) 2010-10-20 2014-08-05 Microsoft Corporation Managing networks and machines for an online service
US8417737B2 (en) 2010-10-20 2013-04-09 Microsoft Corporation Online database availability during upgrade
US9304614B2 (en) * 2010-10-20 2016-04-05 Salesforce.Com, Inc. Framework for custom actions on an information feed
US9075661B2 (en) 2010-10-20 2015-07-07 Microsoft Technology Licensing, Llc Placing objects on hosts using hard and soft constraints
US20120109947A1 (en) * 2010-11-02 2012-05-03 BrightEdge Technologies Multi-tenant analytics processing
US8850550B2 (en) 2010-11-23 2014-09-30 Microsoft Corporation Using cached security tokens in an online service
KR20120062514A (ko) * 2010-12-06 2012-06-14 한국전자통신연구원 SaaS 환경에서의 권한 관리 장치 및 방법
CN102012989B (zh) * 2010-12-07 2013-11-27 江苏风云网络服务有限公司 软件即服务中基于门限与密钥的授权方法
US9721030B2 (en) 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects
US8762795B2 (en) 2010-12-17 2014-06-24 Microsoft Corporation Alerting recipients to errors occurring when accessing external services
US10019503B2 (en) 2010-12-22 2018-07-10 Microsoft Technology Licensing, Llc Database transfers using constraint free data
US20120174092A1 (en) * 2010-12-29 2012-07-05 Wolfgang Faisst Integrated commercial infrastructure and business application platform
CN102103637A (zh) * 2011-01-24 2011-06-22 上海银杏界信息科技有限公司 SaaS软件数据模型的实现方法
US8903884B2 (en) * 2011-02-21 2014-12-02 Microsoft Corporation Multi-tenant services gateway
US8667024B2 (en) * 2011-03-18 2014-03-04 International Business Machines Corporation Shared data management in software-as-a-service platform
US8627431B2 (en) 2011-06-04 2014-01-07 Microsoft Corporation Distributed network name
US9652469B2 (en) 2011-06-04 2017-05-16 Microsoft Technology Licensing, Llc Clustered file service
US9652790B2 (en) * 2011-06-17 2017-05-16 International Business Machines Corporation Open data marketplace for municipal services
US8671407B2 (en) 2011-07-06 2014-03-11 Microsoft Corporation Offering network performance guarantees in multi-tenant datacenters
US8856518B2 (en) 2011-09-07 2014-10-07 Microsoft Corporation Secure and efficient offloading of network policies to network interface cards
US8635152B2 (en) * 2011-09-14 2014-01-21 Microsoft Corporation Multi tenancy for single tenancy applications
US8589481B2 (en) 2011-09-14 2013-11-19 Microsoft Corporation Multi tenant access to applications
US8819801B2 (en) * 2011-10-31 2014-08-26 Microsoft Corporation Secure machine enrollment in multi-tenant subscription environment
US9110729B2 (en) * 2012-02-17 2015-08-18 International Business Machines Corporation Host system admission control
US9075687B1 (en) * 2012-04-19 2015-07-07 NetSuite Inc. System and methods for declaration-based extension management for multi-tenant environments
US9509571B1 (en) 2012-07-25 2016-11-29 NetSuite Inc. First-class component extensions for multi-tenant environments
TWI476614B (zh) * 2012-12-27 2015-03-11 Chunghwa Telecom Co Ltd Multi - tenant Cloud Warehouse Integrated Retrieval System and Its Method
US9195513B2 (en) 2013-02-22 2015-11-24 Sas Institute Inc. Systems and methods for multi-tenancy data processing
US9607166B2 (en) 2013-02-27 2017-03-28 Microsoft Technology Licensing, Llc Discretionary policy management in cloud-based environment
US20140278812A1 (en) * 2013-03-14 2014-09-18 Microsoft Corporation Diagnostics storage within a multi-tenant data center
US9515947B1 (en) * 2013-03-15 2016-12-06 EMC IP Holding Company LLC Method and system for providing a virtual network-aware storage array
US9043458B2 (en) 2013-03-19 2015-05-26 Cognizant Technology Solutions India Pvt. Ltd. Framework for facilitating implementation of multi-tenant SaaS architecture
JP6056607B2 (ja) 2013-03-28 2017-01-11 富士通株式会社 情報処理システム及び情報処理システムの制御方法
US9411973B2 (en) 2013-05-02 2016-08-09 International Business Machines Corporation Secure isolation of tenant resources in a multi-tenant storage system using a security gateway
US20150081400A1 (en) * 2013-09-19 2015-03-19 Infosys Limited Watching ARM
US9154492B2 (en) * 2013-09-27 2015-10-06 The University Of North Carolina At Charlotte Moving target defense against cross-site scripting
US9621673B2 (en) 2013-12-12 2017-04-11 Sap Se Customer initiated tenant operations in a multitenant cloud environment
WO2015163924A1 (en) 2014-04-25 2015-10-29 Hewlett-Packard Development Company, L.P. Data management in a distributed computing environment
US10110501B2 (en) * 2014-07-07 2018-10-23 Microsoft Technology Licensing, Llc Tenant control in initiating atomic platform tasks
US20160028833A1 (en) * 2014-07-25 2016-01-28 Violeta Georgieva Tenant aware session manager
US9391972B2 (en) 2014-09-12 2016-07-12 Oracle International Corporation Multi-tenant application using hierarchical bean factory container
KR101770240B1 (ko) * 2014-09-29 2017-08-22 삼성전자주식회사 Ui 제공을 위한 디스플레이 장치, 시스템 및 그 제공 방법
JP6426489B2 (ja) * 2015-02-03 2018-11-21 東京エレクトロン株式会社 エッチング方法
US10942900B2 (en) 2015-06-02 2021-03-09 Oracle International Corporation Techniques for tenant controlled visualizations and management of files in cloud storage systems
US9996321B2 (en) * 2015-06-23 2018-06-12 Microsoft Technology Licensing, Llc Multi-tenant, tenant-specific applications
US10748070B2 (en) * 2015-07-31 2020-08-18 Microsoft Technology Licensing, Llc Identification and presentation of changelogs relevant to a tenant of a multi-tenant cloud service
US9667725B1 (en) 2015-08-06 2017-05-30 EMC IP Holding Company LLC Provisioning isolated storage resource portions for respective containers in multi-tenant environments
US10146936B1 (en) 2015-11-12 2018-12-04 EMC IP Holding Company LLC Intrusion detection for storage resources provisioned to containers in multi-tenant environments
US9983909B1 (en) 2016-03-15 2018-05-29 EMC IP Holding Company LLC Converged infrastructure platform comprising middleware preconfigured to support containerized workloads
US10326744B1 (en) 2016-03-21 2019-06-18 EMC IP Holding Company LLC Security layer for containers in multi-tenant environments
US10754838B1 (en) * 2016-03-31 2020-08-25 EMC IP Holding Company LLC Registration framework for an analytics platform
US10013213B2 (en) 2016-04-22 2018-07-03 EMC IP Holding Company LLC Container migration utilizing state storage of partitioned storage volume
US10187395B2 (en) 2016-04-28 2019-01-22 Microsoft Technology Licensing, Llc Resource sharing and designation of permissions for other tenants and unregistered users of same tenant
US10284557B1 (en) 2016-11-17 2019-05-07 EMC IP Holding Company LLC Secure data proxy for cloud computing environments
US11128437B1 (en) 2017-03-30 2021-09-21 EMC IP Holding Company LLC Distributed ledger for peer-to-peer cloud resource sharing
RU2646306C1 (ru) * 2017-06-15 2018-03-02 Федеральное Государственное унитарное предприятие Государственный научно-исследовательский институт гражданской авиации (ФГУП ГосНИИ ГА) Система мониторинга ставок арендных платежей операторов аэродромов за пользование имуществом аэродромов
US11063745B1 (en) 2018-02-13 2021-07-13 EMC IP Holding Company LLC Distributed ledger for multi-cloud service automation
KR102544820B1 (ko) 2018-05-23 2023-06-16 삼성에스디에스 주식회사 마이크로 서비스 아키텍처 기반의 서비스 시스템 및 상기 시스템에서의 멀티 테넌트 설정 관리 방법
US10747600B2 (en) * 2018-06-12 2020-08-18 commercetools GmbH Extensibility for third party application programming interfaces
US10445223B1 (en) * 2018-10-25 2019-10-15 Capital One Services, Llc Service virtualization platform
RU2737601C2 (ru) * 2019-03-13 2020-12-01 Анастасия Надеровна Рубцова Автоматизированная информационная система для размещения расширяемых служб с множеством арендаторов и субъектов (потребителей)
KR20220102151A (ko) * 2020-08-17 2022-07-19 구글 엘엘씨 엔드포인트 디바이스 기능 향상을 위한 엔드포인트 디바이스 간 시스템 서비스 공유

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434619B1 (en) * 1998-04-29 2002-08-13 Alcatel Canada Inc. Internet-enabled service management system and method
US7162464B1 (en) * 1998-10-02 2007-01-09 Ncr Corporation Data mining assists in a relational database management system
RU2237275C2 (ru) * 1999-02-18 2004-09-27 Ситрикс Системз, Инк. Сервер и способ (варианты) определения программного окружения клиентского узла в сети с архитектурой клиент/сервер
US20020065864A1 (en) * 2000-03-03 2002-05-30 Hartsell Neal D. Systems and method for resource tracking in information management environments
US20020120741A1 (en) * 2000-03-03 2002-08-29 Webb Theodore S. Systems and methods for using distributed interconnects in information management enviroments
US20020049841A1 (en) * 2000-03-03 2002-04-25 Johnson Scott C Systems and methods for providing differentiated service in information management environments
US20050049937A1 (en) * 2000-08-16 2005-03-03 Aaron Sanders Business method and processing system
US20040024846A1 (en) * 2000-08-22 2004-02-05 Stephen Randall Method of enabling a wireless information device to access data services
US6643635B2 (en) * 2001-03-15 2003-11-04 Sagemetrics Corporation Methods for dynamically accessing, processing, and presenting data acquired from disparate data sources
JP2003281007A (ja) * 2002-03-20 2003-10-03 Fujitsu Ltd 動的構成制御装置および動的構成制御方法
US7636499B1 (en) * 2002-04-05 2009-12-22 Bank Of America Corporation Image processing system
US8255548B2 (en) * 2002-06-13 2012-08-28 Salesforce.Com, Inc. Offline web services API to mirror online web services API
US7146499B2 (en) * 2002-09-30 2006-12-05 International Business Machines Corporation Security system for replicated storage devices on computer networks
JP2004151942A (ja) * 2002-10-30 2004-05-27 Ricoh Co Ltd ウェブサービス提供装置、ウェブサービス提供方法およびウェブサービス提供プログラム
US7076562B2 (en) * 2003-03-17 2006-07-11 July Systems, Inc. Application intermediation gateway
US7447212B2 (en) * 2003-09-03 2008-11-04 At&T Intellectual Property I, L.P. Method and system for automating membership discovery in a distributed computer network
US7779039B2 (en) * 2004-04-02 2010-08-17 Salesforce.Com, Inc. Custom entities and fields in a multi-tenant database system
US7669177B2 (en) * 2003-10-24 2010-02-23 Microsoft Corporation System and method for preference application installation and execution
JP2005157613A (ja) * 2003-11-25 2005-06-16 Canon Inc 情報管理装置
US20060184410A1 (en) * 2003-12-30 2006-08-17 Shankar Ramamurthy System and method for capture of user actions and use of capture data in business processes
JP4873852B2 (ja) * 2004-02-26 2012-02-08 株式会社リコー 第一の通信装置、情報処理装置、情報処理プログラム、記録媒体
US8533229B2 (en) * 2004-06-16 2013-09-10 Salesforce.Com, Inc. Soap-based web services in a multi-tenant database system
US20060015471A1 (en) * 2004-07-01 2006-01-19 Gmorpher Incorporated System, Method, and Computer Program Product of Building A Native XML Object Database
US7549054B2 (en) * 2004-08-17 2009-06-16 International Business Machines Corporation System, method, service method, and program product for managing entitlement with identity and privacy applications for electronic commerce
JP4748763B2 (ja) * 2004-09-06 2011-08-17 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、ならびにプログラム、記憶媒体
JP4392343B2 (ja) * 2004-12-28 2009-12-24 株式会社日立製作所 メッセージ配布方法、待機系ノード装置およびプログラム
US20060235831A1 (en) * 2005-01-14 2006-10-19 Adinolfi Ronald E Multi-source multi-tenant entitlement enforcing data repository and method of operation
US20060235715A1 (en) * 2005-01-14 2006-10-19 Abrams Carl E Sharable multi-tenant reference data utility and methods of operation of same
US7593994B2 (en) * 2005-03-08 2009-09-22 Microsoft Corporation Generating a dynamic web service and dynamic service surrogate for legacy application components
JP4702835B2 (ja) * 2005-07-06 2011-06-15 株式会社日立ソリューションズ Webサービスカスタマイズシステム
US20070038697A1 (en) * 2005-08-03 2007-02-15 Eyal Zimran Multi-protocol namespace server
US8069153B2 (en) * 2005-12-02 2011-11-29 Salesforce.Com, Inc. Systems and methods for securing customer data in a multi-tenant environment
US20070162537A1 (en) * 2006-01-11 2007-07-12 Gearworks, Inc. Common application services framework
US7937711B2 (en) * 2006-06-30 2011-05-03 Dell Products L.P. Method and apparatus for providing a consolidated namespace to client applications in multi-tenant common information model (CIM) environments
US8190724B2 (en) * 2006-10-13 2012-05-29 Yahoo! Inc. Systems and methods for establishing or maintaining a personalized trusted social network
WO2008061146A2 (en) * 2006-11-14 2008-05-22 Neveu Holdings, Llc Remote time and attendance system and method
US8219134B2 (en) * 2006-12-13 2012-07-10 Quickplay Media Inc. Seamlessly switching among unicast, multicast, and broadcast mobile media content
US8201231B2 (en) * 2007-02-21 2012-06-12 Microsoft Corporation Authenticated credential-based multi-tenant access to a service
US20100064234A1 (en) * 2007-03-09 2010-03-11 Ghost, Inc. System and Method for Browser within a Web Site and Proxy Server
US7680848B2 (en) * 2007-03-29 2010-03-16 Microsoft Corporation Reliable and scalable multi-tenant asynchronous processing
US8019812B2 (en) * 2007-04-13 2011-09-13 Microsoft Corporation Extensible and programmable multi-tenant service architecture
US7840413B2 (en) * 2007-05-09 2010-11-23 Salesforce.Com, Inc. Method and system for integrating idea and on-demand services
US8516366B2 (en) * 2008-06-20 2013-08-20 Wetpaint.Com, Inc. Extensible content service for attributing user-generated content to authored content providers
US20100082737A1 (en) * 2008-09-26 2010-04-01 Carlson Marketing Worldwide, Inc. Dynamic service routing
US10057775B2 (en) * 2009-01-28 2018-08-21 Headwater Research Llc Virtualized policy and charging system
US8243949B2 (en) * 2009-04-14 2012-08-14 Plantronics, Inc. Network addressible loudspeaker and audio play
US9229793B2 (en) * 2010-04-22 2016-01-05 Salesforce.Com, Inc. System, method and computer program product for routing messages to a server

Also Published As

Publication number Publication date
BRPI0809083A8 (pt) 2016-12-20
CN101657804A (zh) 2010-02-24
TWI473029B (zh) 2015-02-11
EP2156308B1 (en) 2018-11-07
US20120210390A1 (en) 2012-08-16
CN101657804B (zh) 2015-07-08
KR101279740B1 (ko) 2013-06-28
ES2709436T3 (es) 2019-04-16
US8195743B2 (en) 2012-06-05
TW200847055A (en) 2008-12-01
US20080256607A1 (en) 2008-10-16
US20140012900A1 (en) 2014-01-09
US8019812B2 (en) 2011-09-13
WO2008127871A1 (en) 2008-10-23
JP2014132462A (ja) 2014-07-17
US20110252089A1 (en) 2011-10-13
EP2156308A1 (en) 2010-02-24
RU2009137767A (ru) 2011-04-20
JP2010526358A (ja) 2010-07-29
US8533261B2 (en) 2013-09-10
EP2156308A4 (en) 2014-06-04
KR20100015398A (ko) 2010-02-12
BRPI0809083A2 (pt) 2014-09-09
RU2463652C2 (ru) 2012-10-10

Similar Documents

Publication Publication Date Title
BRPI0809083B1 (pt) Método a ser executado em um dispositivo de computação para prover uma plataforma de serviço extensível de múltiplos locatários, sistema para hospedar serviços extensíveis de múltiplos locatários e meio de armazenamento legível por computador com instruções armazenadas nele para prover uma plataforma de serviço extensível de múltiplos locatários.
US12003571B2 (en) Client-directed placement of remotely-configured service instances
US10838775B2 (en) Load balancing by endpoints
US8856917B2 (en) Single sign-on for remote desktops
US8473585B1 (en) Multi-threaded optimization for data upload
US8812687B2 (en) Managing user state of cloud desktops
US11411881B2 (en) Organization level identity management
US9270703B1 (en) Enhanced control-plane security for network-accessible services
US20130073670A1 (en) Geo-Migration Of User State
Spoorthy et al. A survey on data storage and security in cloud computing
US10270759B1 (en) Fine grained container security
US11943226B2 (en) Container and resource access restriction
CN104363229A (zh) 一种数据中心及其访问方法
Abbadi Middleware services at cloud virtual layer
US20220385596A1 (en) Protecting integration between resources of different services using service-generated dependency tags
US11297065B2 (en) Technology for computing resource liaison
Kant Highly Available XenApp Cloud

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]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 07/05/2019, OBSERVADAS AS CONDICOES LEGAIS. (CO) 10 (DEZ) ANOS CONTADOS A PARTIR DE 07/05/2019, OBSERVADAS AS CONDICOES LEGAIS