Extensible and programmable multi-tenant service architecture
Abstract
method to be performed on a computing device to provide an extensible multi-tenant service platform, system for hosting multi-tenant extensible services and computer readable storage media with instructions stored therein to provide a multi-tenant extensible service platform a multi-tenant extensible business application platform of a software as a service is provided to host multiple organizations. The organization's services are provided by virtual or physical servers with dedicated data stores mounted in scalable groups. Distributed interaction between scalable group components can enable extensibility and reliability, while changes in the organization's service locations are provided to the customer (customers) for uninterrupted continued customer access to services. Customizable and dynamic apis for accessing data and applications from each organization isolated from each other and pluggable third party authentication services can also be integrated into the platform.

Term
Projected expiry 1 April 2028.
- Priority and filed
- Granted
- Today
- Projected expiry
14 claims: 3 independent, 11 dependent
- 1REIVINDICAÇÕ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).
- 2Mé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.
- 3Mé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).
- 4Mé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.
- 5Mé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.
- 6Sistema 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).
- 7Sistema, 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).
- 8Sistema, 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.
- 9Sistema, 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).
- 10Sistema, 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.
- 11Sistema, 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.
- 12Meio 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).
- 13Meio 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).
- 14Meio 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.
Independent claims14
79 paragraphs, as filed
METHOD TO BE PERFORMED IN A COMPUTER DEVICE TO PROVIDE AN EXTENSIVE SERVICE PLATFORM FOR MULTIPLE RENTERS, A SYSTEM FOR HOSTING MULTIPLE RANGE AND A COMPLETE PERSONNEL PROVIDER
Business fundamentals strive to respond to consumer demands quickly, get products to trade faster, increase overall profitability, and consistently exercise competition. Agility, the ability to meet these common market challenges, is dependent on a solid business application technology platform. For business agility, a multifaceted intelligent software infrastructure is required that is designed for application integration.
[002] Business application platforms are typically single-tenant, meaning that they can host applications only for a single organization and all platform resources are dedicated to that organization only. Such platforms are typically consumer hosted and installed and organized within their company premises. The cost of organizing and maintaining such a platform can be high and the return on investment not optimized.
[003] On the other hand, designing and managing multi-tenant systems has its own challenges. In a practical multi-tenant system, each customer may have a different scheme for connecting to their organization. What's more, each customer can connect across multiple organizations making management of such systems
Petition 870180163830, 12/17/2018, p. 4/30
This is a very complex task in terms of security, traffic management, reliability and extensibility.
Summary This summary is provided to present a selection of concepts in a simplified form which are also described below in the detailed description. This summary is not intended to identify key aspects or essential aspects of the claimed exposed matter, nor is it intended as an aid in determining the scope of the claimed exposed matter.
[005] Modalities are directed at providing an extensible multi-tenant model of software as a service to serve multiple organizations from a single platform. A platform according to embodiments may include a discovery service for providing customer information associated with a location and configuration of the organization's services hosted by the platform. The customer is then enabled to access the organization's services, which may be hosted in scalable groups. Location changes may be provided to the customer (customers) for uninterrupted customer access to the requested service (services).
These and other aspects and advantages will become apparent from a reading of the following detailed description and a review of the associated drawings. It is to be understood that both the foregoing general description and the following detailed description are explanatory only and are not restrictive of the aspects as claimed. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 illustrates an exemplary single tenant service model, Figure 2 illustrates an exemplary multiple tenant service model, Figure 3 illustrates an extensible service tenant architecture.
Petition 870180163830, 12/17/2018, p. 5/30
3/17 multiple tenants according to embodiments, [0010] Figure 4 illustrates exemplary components of a service portion of the organization of a multi-tenant service, [0011] Figure 5 is an action diagram illustrating interactions between a customer and the components of a multi-tenant service during operations, Figure 6 is an exemplary network environment where modalities can be implemented, Figure 7 is a block diagram of an exemplary computing operation environment, where modalities can be implemented and Figure 8 illustrates a logical flow diagram for a multi-tenant extensible service delivery process to a customer.
Detailed Description As briefly described above, a multi-tenant extensible business application platform can be provided using a discovery service and scalable server groups. In the following detailed description, references are made to the accompanying drawings which form a part thereof and in which specific embodiments or examples are shown by way of illustrations. These aspects may be combined, other aspects may be utilized, and structural changes may be made without departing from the spirit or scope of the present disclosure. The following detailed description, therefore, is not to be taken in a limiting sense and the scope of the present invention is defined by the appended claims and their equivalents.
Although the modalities are described in the general context of program modules that work in conjunction with an application program that runs on an operating system on a
Petition 870180163830, 12/17/2018, p. 6/30
In the personal computer, those skilled in the art will recognize that aspects may also be implemented in combination with other program modules.
Program modules generally include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. In addition, those skilled in the art will appreciate that the embodiments may be practiced with other computer system configurations, including handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, large computers, and so forth. against. Modalities may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are connected through a communications network. In a distributed computing environment, program modules can be located on both local and remote memory storage devices.
The embodiments may be implemented as a computer process (method), a computer system or as an article of manufacture, such as a computer program product or computer readable media. The computer program product may be a computer storage medium that is readable by a computer system and encoding a computer instruction program to perform a computer process. The computer program product may also be a signal propagated on a carrier readable by a computer system and encoding a computer instruction program to execute a computer process.
With reference to figure 1, the diagram 100 of a model
Petition 870180163830, 12/17/2018, p. 7/30
5/17 exemplary single renter service is illustrated. As mentioned earlier, typical business application platform programming architectures are single-tenant and suitable for on-premises hosted applications.
On such a typical single tenant platform, client 102 accesses the business data and applications associated with a single tenant that is hosted by network service 106 through networks 104. Although networks 104 may be the Internet, it is usually a combination of intranet type networks. Since a single tenant is hosted by the service, the authentication, security, and other preliminary operations may be performed by the service itself, rather than using a third party service. The location of services typically does not change, although redundancy and some load balancing operations may involve the use of multiple servers and / or server groups.
Thus, operations in a single tenant system are relatively simple and straightforward. However, in today's business world, many organizations prefer to base their business application platforms on entities that can provide efficient, cost effective and reliable service. In order to modernize their business model and efficiently utilize their resources, such entities may prefer to host services for multiple organizations. In addition, some customers may be associated with multiple organizations, in which case it would make sense for the customer to access all organizations through a single point of contact.
[0022] Figure 2 illustrates an exemplary multi-tenant service model 200. In a multi-tenant service, a business application platform hosts services for multiple organizations. Any number of clients 202 can call network service 206 through networks 204, which in this case is more likely
Petition 870180163830, 12/17/2018, p. 8/30
6/17 being the Internet or a combination of diverse networks, to access data and applications associated with one or more organizations.
Network service 206 may perform management services and direct clients to organization-specific network services 208. In addition, network service 206 may perform authentication, security verification, and similar preliminary services optionally using third party services. Organization-specific network services 208 may include scalable groups, where the operations of individual organizations may be driven by load balancing and other reasons. Network service 206 can monitor such changes and redirect the calling client accordingly, so that the change is transparent to the client.
Customers may be scarce or numerous customers with additional services optionally provided by third party applications in the case of scarce customers. Different customers can access different services using different schemes. Some of the services may also share the schemes.
[0025] The architecture in figure 2 - with regard to that subject also figure 1 - is to illustrate an overview of software platforms as a service. Only essential components are illustrated for simplicity purposes. In practice, such systems include many more components with specific tasks and communication methods. A more detailed discussion of such a platform according to the modalities is provided below.
Figure 3 illustrates a multi-tenant extensible service architecture 300 according to embodiments. A software-as-a-service business application platform 320 according to the modalities may be deployed at different sites and be capable of hosting data and applications from multiple organizations at each site. Each platform 320 site installation can be
Petition 870180163830, 12/17/2018, p. 9/30
It is highly scalable enabling high performance and service availability. Sites can be hosted on the Internet or on intranets.
In some embodiments, the service may use an optional trusted third party authentication service to authenticate the users (client 302) of each organization (for example, ingress service). Standalone connection authentication services can also be used for Internet or Intranet modes. According to other embodiments, access to each organization's operations and data may be restricted based on security functions and privileges and membership in the organization.
According to some implementations, data and applications from each organization can be isolated from others and accessed through a set of dedicated APIs. APIs can enable developers to access and modify business data, as well as define / invoke / modify business processes and logic remotely over the Internet. APIs can be automatically generated and dynamic, so whenever a new organization is added to or removed from the platform, APIs can adjust automatically. APIs can also be customizable by allowing custom objects and operations to be added in each separate organization from other organizations.
Discovery Service 322 provides organization discovery and authentication services enabling a 302 client to subscribe to platform 320 and discover all organizations of which he / she is a member. Discovery service 322 can provide detailed configuration data about each organization including its location within the platform for direct access and other configuration information. Configuration information can be stored in and retrieved from configuration storage 870180163830, 12/17/2018, p. 10/30
324. A user (customer) can be a member of one or more organizations hosted on a site. Discovery service 322 can operate in multiple authentication modes. Each authentication mode can have its own dedicated endpoint allowing the client to specify which authentication to use.
According to additional embodiments, each end of the API may serve multiple organizations. Each call to the API can identify the target organization planned to reach. Discovery service 322 can use configuration store 324 to retrieve configuration data from the organization. An administrator can be enabled to access and maintain configuration store 324.
Organization data and operations may be placed into a plurality of scalable groups (service locations 1, 2, etc.) available within a service group 330 of platform 320. An organization's location may change and move. between groups scalable for load balancing purposes. The multi-tenant extensible service model is dynamic in a sense that it can locate the target organization even after a move. Each service location (332, 334, ...) may include one or more physical or virtual servers providing the services.
Figure 4 illustrates exemplary components of a service portion of the multi-tenant service organization. As mentioned above, 430 scalable server groups are at the core of an extensible software platform as a multi-tenant service. In some embodiments, 430 server groups may include a group of 431 virtual or physical network servers that receive the client request, handle synchronous requests, and manage access to the 433 organization's databases. 431 network servers
Petition 870180163830, 12/17/2018, p. 11/30
9/17 can be assigned to the client by random selection according to a predefined algorithm (eg a load balancing algorithm) and more. Organization 433 databases can include physical or virtual data stores for each organization (or tenant) served by the platform. For example, a financial services system may include separate databases for each of the participating financial organizations (banks, etc.) that store account information, account access information, and so on. Information about individual databases, their configuration, any redundancies, etc., can be stored in configuration store 324 of Figure 3.
According to other embodiments, a locator service (not shown) may provide information about which database (databases) may be used by network servers. Network 433 servers can also have asynchronous service requests queued to be handled by asynchronous 435 servers in conjunction with organization 433 databases. When a client request advances in the queue, one of the asynchronous servers 435 can be contacted to process the request. The relationship between asynchronous servers and individual organization databases can be a distributed one, where each server can work with any of the databases. This distributed interaction between asynchronous servers and the organization's databases can provide the ability to automatically recover from failures on asynchronous processing machines by allowing databases to connect to another available server when a failure occurs.
Due to the independent distribution of synchronous and asynchronous work and the interaction between servers and databases, any part of the 430 server group is scalable. This wayPetition 870180163830, 12/17/2018, p. 12/30
10/17, multiple instances of servers (and / or databases) may be provided for increased workload by address, additional organizations, data capacity, and so forth.
[0035] Figure 5 is an action diagram illustrating the interactions between a customer and components of a multi-tenant service during operations. The interactions in action diagram 500 illustrate an exemplary operation with specific steps. Interactions on a multi-tenant platform according to modalities may include different exchanges with fewer or more steps, as well as a different order of interactions.
According to the exemplary operation, client 504 initiates a call requesting a site policy from the discovery service part 506. Discovery service 506 responds with the site policy, which can identify an optional ticket service 502 (e.g. for authentication). If optional third-party ticket service 502 is used, client 504 may submit a ticket request to ticket service 502 and receive service ticket if client credentials are confirmed for access to a requested organization (tenant).
Client 504 then submits a site join request with the service ticket from the ticket 502 service to the discovery service 506. The discovery service 506 responds with the entering of the site. Client 504 can then submit a list of requested organizations, to which discovery service 506 responds with the list of requested organization locations and other configuration information (schema, etc.). Subsequently, client 504 can access target organizations through service of organization 508 using the location and configuration information provided by discovery service 506. As indicated previously, the location of services in organization can
Petition 870180163830, 12/17/2018, p. 13/30
11/17 change due to escalation, load balancing and others. Discovery service 506 can update the client with the changed location information, so that client access to the organization's service can continue uninterrupted.
The scalable multi-tenant systems and operations described in Figure 3 to Figure 5 are exemplary for illustration purposes. A system for multi-tenant extensible services can be implemented with more or less components and operations using the principles described here.
[0039] Figure 6 is an exemplary network environment where modalities can be implemented. Extensible multi-tenant service systems can be deployed in a distributed manner across a number of physical and virtual clients and servers. They can also be deployed on unclustered systems or clustered systems using a number of nodes communicating over one or more networks (for example, network (s) 610).
Such a system may comprise any topology of servers, clients, Internet service providers and the media. Also, the system may have a static or dynamic topology. The term "client" may refer to a client application or a client device. Although a network system implementing multi-tenant extensible services may involve many more components, the relevant ones are discussed in conjunction with this figure.
Requests for access may come from tenants using individual client devices 602-606 or application server 608 in a networked multi-tenant system. Such a system may also be deployed on one or more servers (for example, servers 612, 614) and accessed by client devices (or applications). One or more network servers (physical or virtual),
Petition 870180163830, 12/17/2018, p. 14/30
12/17 as a 612 network server, can receive requests and direct them to the appropriate resource. Features can include scalable server groups with synchronous and asynchronous server, organization databases, and other components.
Organization databases can be personified into a single data store, such as 618 data store, or distributed over a number of data stores. Dedicated database servers (eg, database server 616) may be used to coordinate data retrieval and storage in one or more of such data stores.
Network (networks) 610 may include a secure network, such as a corporate network, an unsecured network, such as an open wireless network or the Internet. Network 610 provides communication between nodes described herein. By way of example, and not limitation, the network (networks) may include wired media, such as a wired or direct-attached network, and wireless media, such as acoustic, RF, infrared wireless media. and others.
Many other computing device configurations, applications, data sources, data distribution systems can be used to implement an extensible multi-tenant service platform. Furthermore, the network environments discussed in Figure 6 are for illustration purposes only. Modalities are not limited to exemplary applications, modules or processes.
[0045] Figure 7 and the associated discussion are designed to provide a brief overview of a suitable computing environment in which modalities can be implemented. Referring to Figure 7, a block diagram of an exemplary computing operating environment is illustrated, such as a device for
Petition 870180163830, 12/17/2018, p. 15/30
700. In a basic configuration, the computing device 700 may be a server providing management services associated with an extensible multi-tenant service and typically includes at least one processing unit 702 and system memory 704. The device 700 may also include a plurality of processing units that cooperate in the execution of the programs. Depending on the exact configuration and type of computing device, system memory 704 may be volatile (such as RAM), nonvolatile (such as ROM, flash memory, etc.) or some combination of the two. System memory 704 typically includes an operating system 705 suitable for controlling the operation of a networked personal computer, such as WINDOWS® operating systems from MICROSOFT CORPORATION in Redmond, Washington. System memory 704 may also include one or more software applications, such as program modules 706, network services 722, a discovery service 724 within network services 722, and an optional locator service 726.
Network Services 722 may be a separate application or an integral module of a hosted multi-tenant service platform providing data and processing services for client applications associated with computing device 700. Discovery service 724 may provide location and configuration information associated with individual organization (tenant) services to a customer requesting access to them. Optional locator service 726 may provide services associated with determining a purpose of the service and which databases to use for network servers as well as asynchronous processing servers, as previously described. This basic configuration is illustrated in Figure 7 by these components within the line.
Petition 870180163830, 12/17/2018, p. 16/30
Dashed 14/17 708.
The computing device 700 may have additional aspects or functionality. For example, computing device 700 may also include additional data storage devices (removable and / or non-removable) such as, for example, magnetic disks, optical disks or tape. Such additional storage is illustrated in Figure 7 by removable storage 709 and non-removable storage 710. Computer storage media may include volatile, non-volatile, removable, and non-removable media implemented in any method or technology for storing information, such as computer readable instructions, data structures, program modules, or other data. System memory 704, removable storage 709, and nonremovable storage 710 are all examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile discs (DVDs) or other optical storage, magnetic cassettes, magnetic tape, storage on magnetic disk or other magnetic storage devices or any other means that may be used to store the desired information and which may be accessed by computing device 700. Any such storage media in the computer may be part of device 700. Computing device 700 may also have input device (s) 712, such as keyboard, mouse, pen, voice input device, touch input device, etc. Output device (s) 714, such as a monitor, speakers, printer, etc. may also be included. Such devices are well known in the art and need not be discussed further here.
Computing device 700 may also contain application 870180163830 of 12/17/2018, p. 17/30
Communication connections 716 that allow the device to communicate with other computing devices 718, such as over a wireless network in a distributed computing environment, for example, an intranet or the Internet. Other computing devices 718 may include server (servers) running applications associated with a location service or other services. Communication connection 716 is an example of the media. Communication media may typically be embodied by computer readable instructions, data structures, program modules or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and include any information delivery means. The term "modulated data signal" means a signal that has one or more of its characteristics adjusted or altered in such a manner as to encode the information in the signal. By way of example, and not limitation, communication means includes wired media such as a wired or direct-attached network and wireless means such as acoustic, RF, infrared and the like. The term computer readable media as used herein includes both storage media and communication media.
The claimed exposed matter also includes methods. These methods can be implemented in any number of ways, including the structures described in this document. One such way is by machine operations of devices of the type described in this document.
Another optional way is for one or more of the individual method operations to be performed in conjunction with one or more human operators performing some. These human operators do not have to be together, but can only be each with a machine that runs a portion of the program.
Petition 870180163830, 12/17/2018, p. 18/30
Figure 8 illustrates a logical flow diagram for the multi-tenant extensible service provision process 800 for a customer. Process 800 may be implemented as part of a software as a service business application platform.
[0052] Process 800 begins with operation 802, where a request to access one or more organizations is received from a customer along with the customer's credentials. As previously described, customers of a multi-tenant hosted service are typically associated with organizations or tenants, each of which has a service including a dedicated database within the system. Prior to receiving the request, the customer may optionally use a third party authentication service. Processing proceeds from operation 802 to decision operation 804.
[0053] In decision operation 804, a determination is made whether the client is authenticated. The determination may also include a check whether the requested organization (organizations) is hosted by the multi-tenant service platform. If the client is authenticated, the process proceeds to operation 806. Otherwise, processing moves to a calling process for additional actions.
[0054] In operation 806, a requested service location of the organization is determined. Processing moves from operation 806 to operation 808, where the location of the organization's service is provided to the client for access. Additional configuration information may also be provided along with location information. After operation 808, processing moves to decision operation 810.
[0055] In decision operation 810, a determination is made whether the location of the organization's service changes due to escalation,
Petition 870180163830, 12/17/2018, p. 19/30
17/17 load balancing and others. If a change in location is determined, processing moves to operation 812. Otherwise, processing moves to a calling process for additional actions.
In operation 812, the change in the service location of the organization is provided to the customer such that customer access to the service may continue uninterrupted. After operation 812, processing moves to a calling process for additional actions.
The operations included in process 800 are for illustration purposes only. Providing multi-tenant extensible service to a customer can be implemented by similar processes with fewer or more steps, as well as in order of different operations using the principles described here.
The above descriptive report, examples and data provide a complete description of the manufacture and use of the composition of the embodiments. Although the subject matter has been described in language specific to structural aspects and / or methodological actions, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific aspects or actions described above. Preferably, the specific aspects and actions described above are disclosed as exemplary embodiments of the claims and embodiments.
8 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8
29 members in 10 offices
Members29
| Document | Office | Kind | |
|---|---|---|---|
| US2008256607A1 | United States of America | A1 | |
| WO2008127871A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2008127871A1 | World Intellectual Property Organization (WIPO) | A1 | |
| TW200847055A | Taiwan Province of China | A | |
| KR20100015398A | Republic of Korea | A | |
| KR20100015398A | Republic of Korea | A | |
| CN101657804A | China | A | |
| EP2156308A1 | European Patent Office (EPO) | A1 | |
| JP2010526358A | Japan | A | |
| RU2009137767A | Russian Federation | A | |
| RU2009137767A | Russian Federation | A | |
| US8019812B2 | United States of America | B2 | |
| US2011252089A1 | United States of America | A1 | |
| US8195743B2 | United States of America | B2 | |
| US2012210390A1 | United States of America | A1 | |
| RU2463652C2 | Russian Federation | C2 | |
| KR101279740B1 | Republic of Korea | B1 | |
| KR101279740B1 | Republic of Korea | B1 | |
| US8533261B2 | United States of America | B2 | |
| US2014012900A1 | United States of America | A1 | |
| EP2156308A4 | European Patent Office (EPO) | A4 | |
| JP2014132462A | Japan | A | |
| BRPI0809083A2 | Brazil | A2 | |
| TWI473029B | Taiwan Province of China | B | |
| CN101657804B | China | B | |
| BRPI0809083A8 | Brazil | A8 | |
| EP2156308B1 | European Patent Office (EPO) | B1 | |
| ES2709436T3 | Spain | T3 | |
| BRPI0809083B1This record | Brazil | B1 |
6 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapse because of non-payment of annual fees (definitively: art 78 iv lpi, resolution 113/2013 art. 12)LapsedEM VIRTUDE DA EXTINCAO PUBLICADA NA RPI 2873 DE 27-01-2026 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDA A EXTINCAO DA PATENTE E SEUS CERTIFICADOS, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.B24J | B24J | |
| Lapse acc. art. 78, item iv - on non-payment of the annual fees in timeLapsedREFERENTE A 18A ANUIDADE.B21F | B21F | |
| Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]GrantedPRAZO 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 LEGAISB16A | B16A | |
| Decision: intention to grant [chapter 9.1 patent gazette]B09A | B09A | |
| Formal requirements before examination [chapter 6.20 patent gazette]B06T | B06T | |
| Requested transfer of rights approvedB25A | B25A |
Numbers
- Publication
- PI0809083
- Application
- 8090831
Titles2
- Portuguese
- 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.
- English
- A METHOD TO BE PERFORMED ON A COMPUTING DEVICE TO PROVIDE A MULTIPLE LESS MANAGEMENT EXTENSIBLE SERVICE PLATFORM, SYSTEM FOR ACCOMPANYING MULTIPLE LICENSORS AND COMPUTER-RELATED STORAGE WITH INSTRUCTIONS STORED IN IT TO PROVIDE AN EXTENSIBLE SERVICE PLATFORM FOR MULTIPLE LICENSORS.
Classification
- CPC, 11
- H04L63/08
- G06F15/16
- H04L67/1029
- H04L67/1031
- H04L67/1023
- H04L67/1001
- H04L67/563
- H04L67/51
- G06F15/173
- H04L9/32
- H04L67/00
- IPC, 2
- G06F15 16
- G06F15 173