ES2709436T3 - Arquitectura de servicio multiempresa ampliable y programable - Google Patents

Arquitectura de servicio multiempresa ampliable y programable Download PDF

Info

Publication number
ES2709436T3
ES2709436T3 ES08744888T ES08744888T ES2709436T3 ES 2709436 T3 ES2709436 T3 ES 2709436T3 ES 08744888 T ES08744888 T ES 08744888T ES 08744888 T ES08744888 T ES 08744888T ES 2709436 T3 ES2709436 T3 ES 2709436T3
Authority
ES
Spain
Prior art keywords
service
organization
client
access
services
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
ES08744888T
Other languages
English (en)
Inventor
Akezyt Janedittakarn
Santos Roberto Adlich Dos
Arash Ghanaie-Sicanie
Michael James Ott
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
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
Application granted granted Critical
Publication of ES2709436T3 publication Critical patent/ES2709436T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)
  • Telephonic Communication Services (AREA)

Abstract

Un procedimiento para su ejecución, al menos en parte, en un dispositivo informático, para proporcionar una plataforma de servicio multiempresa ampliable, comprendiendo el procedimiento: recibir una solicitud de acceso procedente de un cliente, en el que cada cliente está asociado con al menos un servicio de organización que es alojado por la plataforma (802); determinar una ubicación del servicio de organización, en el que los servicios de organización se organizan en unos grupos ajustables a escala dentro de la plataforma (806); proporcionar la ubicación del servicio de organización al cliente para habilitar el acceso al servicio de organización (808); si la ubicación del servicio de organización cambia durante el acceso (810), proporcionar la ubicación cambiada al cliente para un acceso continuado del cliente al servicio de organización (812); y generar de forma automática una pluralidad de Interfaces de Programación de Aplicaciones, API, dedicadas que están configuradas para proporcionar acceso a los servicios de organización, de tal modo que las aplicaciones y los datos que están asociados con cada servicio de organización están aislados de otros servicios de organización (508).

Description

DESCRIPCION
Arquitectura de servicio multiempresa ampliable y programable
Antecedentes
Los esfuerzos empresariales pugnan por responder a las demandas de los consumidores con rapidez, por colocar productos en el mercado mas rapidamente, por aumentar la rentabilidad global y por superar constantemente el desempeno de la competencia. La agilidad, la capacidad de satisfacer estos desaffos comerciales comunes, depende de una plataforma solida de tecnologfa de aplicaciones de negocio. Para lograr agilidad empresarial, es necesaria una infraestructura de software polivalente e inteligente que se disene para la integracion de aplicaciones. Por lo general, las plataformas de aplicaciones de negocio son de empresa unica, lo que quiere decir que las mismas pueden alojar aplicaciones solo para una organizacion unica y la totalidad de los recursos de la plataforma se dedican solo a esa organizacion. Por lo general, tales plataformas son alojadas por el cliente y se instalan y se despliegan dentro de las instalaciones de la propia empresa. El coste de desplegar y de mantener tal plataforma puede ser alto, y puede que la rentabilidad de la inversion no este optimizada.
Por otro lado, el diseno y la gestion de sistemas multiempresa tiene sus propios desaffos. En un sistema multiempresa practico, cada cliente puede tener un esquema diferente para conectarse con su organizacion. Ademas, cada cliente se puede conectar con multiples organizaciones, lo que vuelve la gestion de tales sistemas una tarea muy compleja con respecto a los aspectos de seguridad, de gestion de trafico, de fiabilidad y de ampliabilidad. El documento US 2004/064729 A1 divulga un sistema y procedimiento para proporcionar una seguridad de acceso a particiones de almacenamiento que se almacenan en dispositivos de almacenamiento de red replicados. Cada particion esta asociada con una de multiples claves secretas que se comparten con un gestor de archivos. El gestor de archivos actua como un gestor de claves, emitiendo unas credenciales a los clientes que solicitan acceso a una particion particular. Las credenciales emitidas incluyen una direccion de red para la particion a la que va a acceder el cliente. El gestor de archivos puede invalidar una particion original si se produce una vulneracion en la seguridad de esa particion, y comenzar a redirigir todas las solicitudes nuevas a unas particiones replicadas y que no se han puesto en peligro mediante la provision de credenciales con unas direcciones que apuntan a unas replicas en lugar de unas direcciones que apuntan a las particiones originales.
Sumario
El objeto de la presente invencion es la provision de un procedimiento mejorado para una plataforma de servicio multiempresa, asf como un sistema correspondiente y un medio legible por ordenador correspondiente.
El presente objeto se soluciona por medio de la materia objeto de las reivindicaciones independientes.
Algunas formas de realizacion preferidas se definen por medio de las reivindicaciones dependientes.
El presente sumario se proporciona para presentar, de una forma simplificada, una seleccion de conceptos que se describen adicionalmente en lo sucesivo en la descripcion detallada. El presente sumario no tiene por objeto identificar caractensticas clave o caractensticas esenciales de la materia objeto que se reivindica, ni se tiene por objeto que sea una ayuda para determinar el ambito de la materia objeto que se reivindica.
Algunas formas de realizacion se dirigen a la provision de un modelo de software como servicio ampliable y multiempresa para atender a multiples organizaciones a partir de una plataforma unica. Una plataforma de acuerdo con algunas formas de realizacion puede incluir un servicio de descubrimiento para proporcionar una informacion de clientes que esta asociada con una ubicacion y una configuracion de los servicios de organizacion que son alojados por la plataforma. Entonces, el cliente esta habilitado para acceder a los servicios de organizacion, que se pueden alojar en agrupaciones ajustables a escala. Los cambios de ubicacion se pueden proporcionar al cliente o clientes para un acceso ininterrumpido del cliente al servicio o servicios solicitados.
Estas y otras caractensticas y ventajas seran evidentes a partir de la lectura de la siguiente descripcion detallada y una revision de los dibujos asociados. Se ha de entender que tanto la descripcion general anterior como la siguiente descripcion detallada son unicamente explicativas y no son limitantes de los aspectos tal como se reivindican.
Breve descripcion de los dibujos
La figura 1 ilustra un modelo de servicio de empresa unica a modo de ejemplo;
la figura 2 ilustra un modelo de servicio multiempresa a modo de ejemplo;
la figura 3 ilustra una arquitectura de servicio multiempresa ampliable de acuerdo con algunas formas de realizacion;
la figura 4 ilustra unos componentes a modo de ejemplo de una porcion de servicio de organizacion de un servicio multiempresa;
la figura 5 es un diagrama de acciones que ilustra algunas interacciones entre un cliente y los componentes de un servicio multiempresa durante las operaciones;
la figura 6 es un entorno en red a modo de ejemplo, en el que se pueden poner en practica algunas formas de realizacion;
la figura 7 es un diagrama de bloques de un entorno operativo informatico a modo de ejemplo, en el que se pueden poner en practica algunas formas de realizacion; y
la figura 8 ilustra un diagrama de flujo logico para un proceso de provision de un servicio multiempresa ampliable a un cliente.
Descripcion detallada
Tal como se ha descrito brevemente en lo que antecede, se puede proporcionar una plataforma de aplicacion de negocio multiempresa ampliable que emplea un servicio de descubrimiento y unas agrupaciones de servidores ajustables a escala. En la siguiente descripcion detallada, se hacen referencias a los dibujos adjuntos que forman una parte de la misma, y en los que se muestran a modo de ilustracion de algunos ejemplos o formas de realizacion espedficas. Estos aspectos se pueden combinar, se pueden utilizar otros aspectos, y se pueden hacer cambios estructurales sin apartarse del ambito de la presente divulgacion. Por lo tanto, la siguiente descripcion detallada no se ha de interpretar en un sentido limitante, y el ambito de la presente invencion se define por medio de las reivindicaciones adjuntas y sus equivalentes.
A pesar de que las formas de realizacion se describiran en el contexto general de los modulos de programa que se ejecutan junto con un programa de aplicacion que se ejecuta en un sistema operativo en un ordenador personal, los expertos en la materia reconoceran que algunos aspectos tambien se pueden poner en practica en combinacion con otros modulos de programa.
En general, los modulos de programa incluyen rutinas, programas, componentes, estructuras de datos, y otros tipos de estructuras que llevan a cabo unas tareas particulares o ponen en practica tipos particulares de datos abstractos. Ademas, los expertos en la materia apreciaran que algunas formas de realizacion se pueden poner en practica con otras configuraciones de sistema informatico, incluyendo dispositivos de mano, sistemas de multiples procesadores, electronica de consumo basada en microprocesador o programable, miniordenadores, ordenadores de gran sistema, y similares. Algunas formas de realizacion tambien se pueden poner en practica en entornos informaticos distribuidos en los que las tareas son llevadas a cabo por dispositivos de procesamiento remotos que estan vinculados a traves de una red de comunicaciones. En un entorno informatico distribuido, los modulos de programa se pueden ubicar en dispositivos de almacenamiento en memoria tanto locales como remotos.
Algunas formas de realizacion se pueden poner en practica como un proceso (procedimiento) informatico, un sistema informatico, o como un artfculo de fabricacion, tal como un producto de programa informatico o medios legibles por ordenador. El producto de programa informatico puede ser un medio de almacenamiento informatico que se puede leer por medio de un sistema informatico y que codifica un programa informatico de instrucciones para ejecutar un proceso informatico. El producto de programa informatico tambien puede ser una senal propagada sobre una portadora que se puede leer por medio de un sistema informatico y que codifica un programa informatico de instrucciones para ejecutar un proceso informatico.
Haciendo referencia a la figura 1, se ilustra el diagrama 100 de un modelo de servicio de empresa unica a modo de ejemplo. Tal como se ha mencionado previamente, las arquitecturas de programabilidad para las plataformas tfpicas de aplicaciones de negocio son de empresa unica y adecuadas para las aplicaciones alojadas en las propias instalaciones.
En una plataforma de empresa unica tan tfpica como esta, el cliente 102 accede a las aplicaciones de negocio y los datos que estan asociados con una empresa unica que es alojada por el servicio web 106 a traves de las redes 104. A pesar de que las redes 104 pueden ser Internet, estas son por lo general una combinacion de tipo intranet de redes. Debido a que una empresa unica es alojada por el servicio, las operaciones de autenticacion, de seguridad, y otras operaciones preliminares pueden ser llevadas a cabo por el propio servicio, en lugar de usar un servicio de terceros. Por lo general, la ubicacion de los servicios no cambia, a pesar de que la redundancia y algunas operaciones de equilibrado de cargas pueden involucrar el uso de multiples servidores y /o agrupaciones de servidores.
Por lo tanto, las operaciones en un sistema de empresa unica son relativamente simples y directas. No obstante, en el mundo empresarial de hoy en dfa, muchas organizaciones prefieren externalizar sus plataformas de aplicaciones de negocio a unas entidades que pueden proporcionar un servicio eficiente, rentable y fiable. Con el fin de simplificar mediante optimizacion su modelo de negocio y de utilizar de forma eficiente sus recursos, tales entidades pueden preferir alojar servicios para multiples organizaciones. Ademas, algunos clientes se pueden asociar con multiples organizaciones, caso en el cual tendna sentido que el cliente accediera a todas las organizaciones a traves de un unico punto de contacto.
La figura 2 ilustra un modelo de servicio multiempresa 200 a modo de ejemplo. En un servicio multiempresa, una plataforma de aplicaciones de negocio aloja servicios para multiples organizaciones. Cualquier numero de clientes 202 pueden realizar una llamada al servicio web 206 a traves de las redes 204 que, en este caso, es mas probable que sea Internet o una combinacion de redes diversas, para el acceso a las aplicaciones y los datos que estan asociados con una o mas organizaciones.
El servicio web 206 puede llevar a cabo servicios de gestion y dirigir a los clientes a unos servicios web espedficos de organizacion 208. Adicionalmente, el servicio web 206 puede llevar a cabo servicios de autenticacion, de comprobacion de seguridad, y otros servicios preliminares similares usando, de forma opcional, unos servicios de terceros. Los servicios web 208 espedficos de una organizacion pueden incluir agrupaciones ajustables a escala, en las que las operaciones de las organizaciones individuales se pueden mover por razones de equilibrado de cargas y otras razones. El servicio web 206 puede supervisar tales cambios y redirigir el cliente que realiza la llamada en consecuencia, de tal modo que el cambio es transparente para el cliente.
Los clientes pueden ser clientes ligeros o pesados con unos servicios adicionales que son proporcionados, de forma opcional, por unas aplicaciones de terceros en el caso de los clientes ligeros. Diferentes clientes pueden acceder a diferentes servicios usando unos esquemas distintos. Algunos de los servicios tambien pueden compartir los esquemas.
La arquitectura en la figura 2 - y, en lo que a ello respecta, tambien la figura 1 - tiene por objeto ilustrar una vision de conjunto de las plataformas de software como servicio. Por razones de simplicidad, solo se ilustran componentes esenciales. En la practica, tales sistemas incluyen muchos mas componentes con procedimientos de comunicacion y tareas espedficas. En lo sucesivo se proporciona un analisis mas detallado de una plataforma de este tipo de acuerdo con algunas formas de realizacion.
La figura 3 ilustra una arquitectura de servicio multiempresa ampliable 300 de acuerdo con algunas formas de realizacion. Una plataforma de aplicaciones de negocio de software como servicio 320 de acuerdo con algunas formas de realizacion se puede poner en practica en diferentes sitios y ser capaz de alojar las aplicaciones y los datos de multiples organizaciones en cada sitio. Cada instalacion de un sitio de la plataforma 320 puede ser sumamente ajustable a escala, lo que posibilita que un alto desempeno y disponibilidad de los servicios. Los sitios se pueden alojar en Internet o en intranets.
De acuerdo con algunas formas de realizacion, el servicio puede usar un servicio de autenticacion de terceros de confianza opcional para autenticar a los usuarios (el cliente 302) de cada organizacion (por ejemplo, un servicio de vale 312). Tambien se pueden usar servicios de autenticacion de acoplamiento independientes para los modos de Internet o de intranet. De acuerdo con otras formas de realizacion, el acceso a los datos y las operaciones de cada organizacion se puede limitar basandose en privilegios y papeles de seguridad y pertenencia a organizacion.
De acuerdo con algunas puestas en practica, las aplicaciones y los datos de cada organizacion se pueden aislar de los otros y accederse a los mismos a traves de un conjunto de API dedicadas. Las API pueden posibilitar que los desarrolladores accedan a y modifiquen datos de negocio asf como que definan / invoquen / modifiquen una logica y procesos de negocio de forma remota a traves de Internet. Las API se pueden generar de forma automatica y ser dinamicas, de tal modo que, siempre que una organizacion nueva se anade a o se retira de la plataforma, las API se pueden ajustar de forma automatica. Las API tambien pueden ser personalizables, lo que permite que se anadan operaciones y objetos personalizados a cada organizacion por separado de otras organizaciones.
El servicio de descubrimiento 322 proporciona unos servicios de autenticacion y de descubrimiento de organizaciones, lo que posibilita que un cliente 302 inicie sesion en la plataforma 320 y descubra la totalidad de las organizaciones de las que este es miembro. El servicio de descubrimiento 322 puede proporcionar unos datos de configuracion detallados acerca de cada organizacion que incluyen su ubicacion dentro de la plataforma para un acceso directo y otra informacion de configuracion. La informacion de configuracion se puede almacenar en y recuperarse del almacen de configuracion 324. Un usuario (cliente) puede ser un miembro de una o mas organizaciones que se alojan en un sitio. El servicio de descubrimiento 322 puede operar en multiples modos de autenticacion. Cada modo de autenticacion puede tener su propio punto de conexion dedicado lo que posibilita que el cliente especifique que autenticacion se debena usar.
De acuerdo con algunas formas de realizacion adicionales, cada punto de conexion de API puede atender a multiples organizaciones. Cada llamada a la API puede identificar la organizacion objetivo que se tiene por objeto alcanzar. El servicio de descubrimiento 322 puede usar el almacen de configuracion 324 para recuperar unos datos de configuracion de organizacion. Un administrador puede estar habilitado para acceder a y mantener el almacen de configuracion 324.
Los datos y las operaciones de organizacion se pueden colocar en una pluralidad de grupos ajustables a escala (las ubicaciones de servicio 1, 2, etc.) que se encuentran disponibles dentro de una agrupacion de servicios 330 de la plataforma 320. La ubicacion de una organizacion puede cambiar y moverse entre los grupos ajustables a escala para fines de equilibrado de cargas. El modelo de servicio multiempresa ampliable es dinamico en el sentido de que el mismo puede localizar la organizacion objetivo incluso despues de un movimiento. Cada ubicacion de servicio (332, 334, ...) puede incluir uno o mas servidores ffsicos o virtuales que proporcionan los servicios.
La figura 4 ilustra unos componentes a modo de ejemplo de una porcion de servicio de organizacion de un servicio multiempresa. Tal como se ha mencionado en lo que antecede, las agrupaciones de servidores ajustables a escala 430 se encuentran en el corazon de una plataforma de software como servicio multiempresa ampliable. De acuerdo con algunas formas de realizacion, las agrupaciones de servidores 430 pueden incluir un grupo de servidores web ffsicos o virtuales 431 que reciben la solicitud de cliente, manejan solicitudes smcronas y gestionan el acceso a las bases de datos de organizacion 433. Un servidor particular de entre los servidores web 431 se puede asignar al cliente por medio de una seleccion aleatoria, de acuerdo con un algoritmo previamente definido (por ejemplo, un algoritmo de equilibrado de cargas), y similares. Las bases de datos de organizacion 433 pueden incluir unos almacenes de datos ffsicos o virtuales para cada organizacion (o empresa) que es atendida por la plataforma. Por ejemplo, un sistema de servicios financieros puede incluir unas bases de datos separadas para cada una de las organizaciones financieras participates (bancos, etc.) que almacenan informacion de cuenta, informacion de acceso a cuenta, y asf sucesivamente. La informacion acerca de las bases de datos individuales, su configuracion, cualesquiera redundancias, y similares, se puede almacenaren el almacen de configuracion 324 de la figura 3. De acuerdo con otras formas de realizacion, un servicio de localizacion (que no se muestra) puede proporcionar una informacion acerca de que base o bases de datos pueden ser usadas por los servidores web. Los servidores web 433 tambien pueden colocar solicitudes de servicio asmcronas en colas para su manejo por servidores asmcronos 435 junto con las bases de datos de organizacion 433. A medida que una solicitud de cliente asciende en la cola, se puede entrar en contacto con uno de los servidores asmcronos 435 para procesar la solicitud. Una relacion entre los servidores asmcronos y las bases de datos de una organizacion individual puede ser una de tipo distribuido, en la que cada servidor puede trabajar con una cualquiera de las bases de datos. Esta interaccion distribuida entre los servidores asmcronos y las bases de datos de organizacion puede proporcionar la capacidad de recuperarse de forma automatica de los fallos en las maquinas de procesamiento asmcronas al permitir que las bases de datos se conecten con otro servidor disponible cuando uno falla.
Debido a la distribucion independiente del trabajo smcrono y asmcrono y la interaccion entre los servidores y las bases de datos, cualquier parte de la agrupacion de servidores 430 es ajustable a escala. Por lo tanto, se pueden proporcionar multiples instancias de los servidores ( y / o las bases de datos) para abordar una carga de trabajo aumentada, capacidad de datos u organizaciones adicionales, y asf sucesivamente.
La figura 5 es un diagrama de acciones que ilustra algunas interacciones entre un cliente y los componentes de un servicio multiempresa durante las operaciones. Las interacciones en el diagrama de acciones 500 ilustran una operacion a modo de ejemplo con unas etapas espedficas. Las interacciones en una plataforma multiempresa de acuerdo con algunas formas de realizacion pueden incluir diferentes intercambios con menos etapas o con etapas adicionales, asf como un orden de interacciones diferente.
De acuerdo con el funcionamiento a modo de ejemplo, el cliente 504 inicia una llamada mediante la solicitud de una directiva de sitio a partir del servicio de descubrimiento 506. El servicio de descubrimiento 506 responde con la directiva de sitio, que puede identificar un servicio de vale opcional 502 (por ejemplo, para la autenticacion). Si se usa el servicio de vale de terceros opcional 502, el cliente 504 pueden enviar una solicitud de vale al servicio de vale 502, y recibir el vale de servicio si se confirman las credenciales del cliente para el acceso a una organizacion (empresa) solicitada.
El cliente 504 envfa entonces una solicitud de vale de sitio con el vale de servicio a partir del servicio de vale 502 al servicio de descubrimiento 506. El servicio de descubrimiento 506 responde con el vale de sitio. El cliente 504 puede enviar entonces una lista de organizaciones solicitadas, a la que el servicio de descubrimiento 506 responde con la lista de ubicaciones de las organizaciones solicitadas y otra informacion de configuracion (un esquema, etc.). Posteriormente, el cliente 504 puede acceder a las organizaciones objetivo a traves de los servicios de organizacion 508 usando la informacion de ubicacion y de configuracion que se proporciona por medio del servicio de descubrimiento 506. Tal como se ha indicado previamente, la ubicacion de los servicios de organizacion puede cambiar debido al ajuste a escala, el equilibrado de cargas, y asf sucesivamente. El servicio de descubrimiento 506 puede actualizar el cliente con la informacion de ubicacion cambiada, de tal modo que el acceso del cliente al servicio de organizacion puede continuar de forma ininterrumpida.
Las operaciones y sistemas multiempresa ajustables a escala que se describen de la figura 3 a la figura 5 son a modo de ejemplo para fines de ilustracion. Un sistema para servicios multiempresa ampliables se puede poner en practica con menos componentes y operaciones o con componentes y operaciones adicionales usando los principios que se describen en el presente documento.
La figura 6 es un entorno en red a modo de ejemplo, en el que se pueden poner en practica algunas formas de realizacion. Los sistemas de servicio multiempresa ampliable se pueden poner en practica de una forma distribuida a lo largo de un numero de clientes y servidores ffsicos y virtuales. Los mismos tambien se pueden poner en practica en sistemas no agrupados o sistemas agrupados que emplean un numero de nodos que se comunican a traves de una o mas redes (por ejemplo, la red o redes 610).
Un sistema de este tipo puede comprender cualquier topologfa de servidores, clientes, proveedores de servicios de Internet, y medios de comunicacion. Asimismo, el sistema puede tener una topologfa estatica o dinamica. La expresion “cliente” se puede referir a una aplicacion de cliente o un dispositivo de cliente. A pesar de que un sistema en red que pone en practica servicios multiempresa ampliables puede involucrar muchos mas componentes, los relevantes se analizan junto con la presente figura.
Las solicitudes de acceso pueden provenir de empresas que usan unos dispositivos de cliente individual 602 - 606 o el servidor de aplicaciones 608 en un sistema multiempresa en red. Tambien se puede poner en practica un sistema de este tipo, en uno o mas servidores (por ejemplo, los servidores 612, 614) y los dispositivos (o las aplicaciones) de cliente pueden acceder al mismo. Uno o mas servidores web (ffsicos o virtuales) tales como el servidor web 612 pueden recibir las solicitudes y dirigir las mismas hacia el recurso apropiado. Los recursos pueden incluir unas agrupaciones de servidores ajustables a escala con un servidor smcrono y asmcrono, unas bases de datos de organizacion, y otros componentes.
Las bases de datos de organizacion se pueden materializar en un almacen de datos unico tal como el almacen de datos 618 o distribuirse a lo largo de un numero de almacenes de datos. Los servidores de base de datos dedicados (por ejemplo, el servidor de base de datos 616) se pueden usar para coordinar la recuperacion y el almacenamiento de datos en uno o mas de tales almacenes de datos.
La red o redes 610 pueden incluir una red segura tal como una red empresarial, una red no segura tal como una red abierta inalambrica, o Internet. La red o redes 610 proporcionan comunicacion entre los nodos que se describen en el presente documento. A modo de ejemplo, y no de limitacion, la red o redes 610 pueden incluir medios cableados tales como una red cableada o una conexion cableada directa, y medios inalambricos tales como medios acusticos, de RF, de infrarrojos y otros medios inalambricos.
Se pueden emplear muchas otras configuraciones de dispositivos informaticos, aplicaciones, fuentes de datos, sistemas de distribucion de datos para poner en practica una plataforma de servicio multiempresa ampliable. Ademas, los entornos en red que se analizan en la figura 6 son unicamente para fines de ilustracion. Las formas de realizacion no se limitan a las aplicaciones, modulos o procesos a modo de ejemplo.
La figura 7 y el analisis asociado tienen por objeto la provision de una descripcion breve y general de un entorno informatico conveniente en el que se pueden poner en practica algunas formas de realizacion. Con referencia a la figura 7, se ilustra un diagrama de bloques de un entorno operativo informatico a modo de ejemplo, tal como el dispositivo informatico 700. En una configuracion basica, el dispositivo informatico 700 puede ser un servidor que proporciona servicios de gestion que estan asociados con un servicio multiempresa ampliable y, por lo general, incluyen al menos una unidad de procesamiento 702 y una memoria de sistema 704. El dispositivo informatico 700 tambien puede incluir una pluralidad de unidades de procesamiento que cooperan en la ejecucion de programas. Dependiendo de la configuracion y el tipo exactos del dispositivo informatico, la memoria de sistema 704 puede ser volatil (tal como una RAM), no volatil (tal como una ROM, memoria flash, etc.) o una cierta combinacion de las dos. Por lo general, la memoria de sistema 704 incluye un sistema operativo 705 que es conveniente para controlar el funcionamiento de un ordenador personal en red, tal como los sistemas operativos WINDOWS® de MICROSOFT CORPORATION de Redmond, Washington. La memoria de sistema 704 tambien puede incluir una o mas aplicaciones de software tales como los modulos de programa 706, los servicios web 722, un servicio de descubrimiento 724 dentro de los servicios web 722 y un servicio de localizacion opcional 726.
Los servicios web 722 pueden ser una aplicacion separada o un modulo que forma parte de una plataforma de servicio multiempresa alojada que proporciona servicios de procesamiento y datos a las aplicaciones de cliente que estan asociadas con el dispositivo informatico 700. El servicio de descubrimiento 724 puede proporcionar una informacion de ubicacion y de configuracion que esta asociada con servicios de una organizacion individual (empresa) a un cliente que solicita acceso a los mismos. El servicio de localizacion opcional 726 puede proporcionar servicios que estan asociados con la determinacion de un fin del servicio y de que bases de datos usar para los servidores web, asf como servidores de procesamiento asmcronos, tal como se ha descrito previamente. Esta configuracion basica se ilustra en la figura 7 por medio de los componentes dentro de la lmea de trazo discontinuo 708.
El dispositivo informatico 700 puede tener caractensticas o funcionalidad adicionales. Por ejemplo, el dispositivo informatico 700 tambien puede incluir unos dispositivos de almacenamiento de datos adicional (extrafbles y /o no extrafbles) tales como, por ejemplo, discos magneticos, discos opticos o cinta. Tal almacenamiento adicional se ilustra en la figura 7 por medio del almacenamiento extrafble 709 y el almacenamiento no extrafble 710. Los medios de almacenamiento informatico pueden incluir unos medios volatiles y no volatiles, extrafbles y no extrafbles que se ponen en practica en cualquier procedimiento o tecnologfa para el almacenamiento de informacion, tal como instrucciones legibles por ordenador, estructuras de datos, modulos de programa, u otros datos. La memoria de sistema 704, el almacenamiento extrafble 709 y el almacenamiento no extrafble 710 son, todos ellos, ejemplos de medios de almacenamiento informatico. Los medios de almacenamiento informatico incluyen, pero no se limitan a, RAM, ROM, EEPROM, memoria flash u otra tecnologfa de memoria, CD-ROM, discos versatiles digitales (DVD, digital versatile disk) u otro almacenamiento optico, casetes magneticos, cinta magnetica, almacenamiento en disco magnetico u otros dispositivos de almacenamiento magnetico, o cualquier otro medio que se pueda usar para almacenar la informacion deseada y al que pueda acceder el dispositivo informatico 700. Cualquier medio de almacenamiento informatico de este tipo puede ser parte del dispositivo 700. El dispositivo informatico 700 tambien puede tener un dispositivo o dispositivos de entrada 712 tales como un teclado, un raton, un lapiz, un dispositivo de entrada de voz, un dispositivo de entrada tactil, etc. Tambien se pueden incluir un dispositivo o dispositivos de salida 714 tales como una pantalla, unos altavoces, una impresora, etc. Estos dispositivos son bien conocidos en la tecnica y no es necesario que se analicen de forma detenida en el presente caso.
El dispositivo informatico 700 tambien puede contener unas conexiones de comunicacion 716 que permiten que el dispositivo se comunique con otros dispositivos informaticos 718, tal como a traves de una red inalambrica en un entorno informatico distribuido, por ejemplo, una intranet o Internet. Otros dispositivos informaticos 718 pueden incluir un servidor o servidores que ejecutan aplicaciones que estan asociadas con un servicio de ubicacion u otros servicios. La conexion de comunicacion 716 es un ejemplo de medios de comunicacion. Por lo general, los medios de comunicacion se pueden materializar por medio de instrucciones legibles por ordenador, estructuras de datos, modulos de programa, u otros datos en una senal de datos modulada, tal como una onda portadora u otro mecanismo de transporte, e incluyen cualquier medio de entrega de informacion. La expresion “senal de datos modulada” quiere decir una senal que tiene una o mas de sus caractensticas establecidas o cambiadas de una forma tal como para codificar informacion en la senal. A modo de ejemplo, y no de limitacion, los medios de comunicacion incluyen medios cableados tales como una red cableada o una conexion cableada directa, y medios inalambricos tales como medios acusticos, de RF, de infrarrojos y otros medios inalambricos. La expresion medios legibles por ordenador, tal como se usa en el presente documento, incluye tanto medios de almacenamiento como medios de comunicacion.
La materia objeto que se reivindica tambien incluye procedimientos. Estos procedimientos se pueden poner en practica en cualquier numero de formas, incluyendo las estructuras que se describen en el presente documento. Una forma de este tipo es por medio de operaciones de maquina, de dispositivos del tipo que se describe en el presente documento.
Otra forma opcional es que una o mas de las operaciones individuales de los procedimientos se lleven a cabo junto con que uno o mas operadores humanos lleven a cabo algunas. No es necesario que estos operadores humanos esten ubicados uno junto a otro, sino que cada uno se puede encontrar solo con una maquina que lleva a cabo una porcion del programa.
La figura 8 ilustra un diagrama de flujo logico para el proceso 800 de provision de un servicio multiempresa ampliable a un cliente. El proceso 800 se puede poner en practica como parte de una plataforma de aplicaciones de negocio de software como servicio.
El proceso 800 comienza con la operacion 802, en la que se recibe una solicitud de acceso a una o mas organizaciones a partir de un cliente junto con las credenciales de cliente. Tal como se ha descrito previamente, los clientes de un servicio alojado multiempresa estan asociados, por lo general, con organizaciones o empresas cada una de las cuales tiene un servicio que incluye una base de datos dedicada dentro del sistema. Antes de recibir la solicitud, el cliente puede usar de forma opcional un servicio de autenticacion de terceros. El procesamiento avanza desde la operacion 802 a la operacion de decision 804.
En la operacion de decision 804, se realiza una determinacion en lo que respecta a si se autentica el cliente. La determinacion tambien puede incluir una comprobacion de si la organizacion u organizaciones solicitadas son alojadas por la plataforma de servicio multiempresa. Si se autentica el cliente, el proceso avanza a la operacion 806. De lo contrario, el procesamiento se mueve a un proceso de llamada para acciones adicionales.
En la operacion 806, se determina una ubicacion del servicio de organizacion solicitado. El procesamiento se mueve de la operacion 806 a la operacion 808, en la que la ubicacion del servicio de organizacion se proporciona al cliente para el acceso. Tambien se puede proporcionar una informacion de configuracion adicional junto con la informacion de ubicacion. Despues de la operacion 808, el procesamiento se mueve a la operacion de decision 810.
En la operacion de decision 810, se realiza una determinacion en lo que respecta a si se cambia la ubicacion del servicio de organizacion debido al ajuste a escala, el equilibrado de cargas, y asf sucesivamente. Si se determina un cambio en la ubicacion, el procesamiento se mueve a la operacion 812. De lo contrario, el procesamiento se mueve a un proceso de llamada para acciones adicionales.
En la operacion 812, se proporciona al cliente el cambio en la ubicacion del servicio de organizacion, de tal modo que el acceso del cliente al servicio puede continuar de forma ininterrumpida. Despues de la operacion 812, el procesamiento se mueve a un proceso de llamada para acciones adicionales.
Las operaciones que se incluyen en el proceso 800 son para fines de ilustracion. La provision de un servicio multiempresa ampliable a un cliente se puede poner en practica por medio de procesos similares con menos etapas o con etapas adicionales, asf como en un orden de operaciones diferente usando los principios que se describen en el presente documento.
La memoria descriptiva, los ejemplos y los datos anteriores proporcionan una descripcion completa de la fabricacion y el uso de la composicion de las formas de realizacion. A pesar de que la materia objeto se ha descrito en un lenguaje espedfico de caractensticas estructurales y /o actos metodologicos, se ha de entender que la materia objeto que se define en las reivindicaciones adjuntas no se limita necesariamente a las caractensticas o actos espedficos que se han descrito en lo que antecede.

Claims (14)

REIVINDICACIONES
1. Un procedimiento para su ejecucion, al menos en parte, en un dispositivo informatico, para proporcionar una plataforma de servicio multiempresa ampliable, comprendiendo el procedimiento:
recibir una solicitud de acceso procedente de un cliente, en el que cada cliente esta asociado con al menos un servicio de organizacion que es alojado por la plataforma (802);
determinar una ubicacion del servicio de organizacion, en el que los servicios de organizacion se organizan en unos grupos ajustables a escala dentro de la plataforma (806);
proporcionar la ubicacion del servicio de organizacion al cliente para habilitar el acceso al servicio de organizacion (808);
si la ubicacion del servicio de organizacion cambia durante el acceso (810), proporcionar la ubicacion cambiada al cliente para un acceso continuado del cliente al servicio de organizacion (812); y
generar de forma automatica una pluralidad de Interfaces de Programacion de Aplicaciones, API, dedicadas que estan configuradas para proporcionar acceso a los servicios de organizacion, de tal modo que las aplicaciones y los datos que estan asociados con cada servicio de organizacion estan aislados de otros servicios de organizacion (508).
2. El procedimiento de la reivindicacion 1, que comprende adicionalmente:
autenticar el cliente (804) antes de proporcionar la ubicacion del servicio de organizacion usando uno de un servicio de autenticacion integrado y un servicio de autenticacion de terceros,
en el que el acceso del cliente (202) al servicio de organizacion (208) solicitado se limita basandose en al menos uno de entre un conjunto de: un estado de seguridad de conexion de cliente, una credencial de cliente y una pertenencia a organizacion; y / o
en el que el procedimiento comprende adicionalmente:
proporcionar una pluralidad de modos de autenticacion, en el que cada modo de autenticacion incluye un punto de conexion dedicado, de tal modo que el cliente (202) esta habilitado para especificar un modo de autenticacion deseado.
3. El procedimiento de la reivindicacion 1, que comprende adicionalmente:
proporcionar una informacion de configuracion al cliente (202) que esta asociada con el acceso del cliente al servicio de organizacion (208) solicitado.
4. El procedimiento de la reivindicacion 1, en el que los grupos ajustables a escala (430) estan configurados para habilitar una ampliabilidad vertical, y una horizontal, de las aplicaciones que estan asociadas con los servicios de organizacion que son alojados por la plataforma.
5. El procedimiento de la reivindicacion 1, en el que la plataforma esta dispuesta para proporcionar un acceso de metadatos para los servicios de organizacion (208) que son alojados por la plataforma.
6. Un sistema para alojar servicios multiempresa ampliables, que comprende:
un servicio de descubrimiento (506) que esta configurado para:
recibir una solicitud de acceso procedente de un cliente que esta asociado con al menos un servicio de organizacion que es alojado por el sistema (802);
determinar una ubicacion del servicio de organizacion solicitado (806); y
proporcionar la ubicacion del servicio de organizacion al cliente para habilitar el acceso al servicio de organizacion (808);
una pluralidad de agrupaciones de servicios ajustables a escala que estan configuradas para proporcionar el servicio de organizacion (508);
un almacen de configuracion que esta asociado con el servicio de descubrimiento que esta dispuesto para almacenar una informacion de configuracion y de ubicacion que esta asociada con la pluralidad de agrupaciones de servicios, de tal modo que se proporciona al cliente un cambio en la ubicacion del servicio de organizacion durante el acceso del cliente al servicio de organizacion para un acceso continuado del cliente al servicio de organizacion; y
una pluralidad de Interfaces de Programacion de Aplicaciones, API, dedicadas y generadas de forma automatica que estan configuradas para proporcionar acceso a los servicios de organizacion, de tal modo que las aplicaciones y los datos que estan asociados con cada servicio de organizacion estan aislados de otros servicios de organizacion (508).
7. El sistema de la reivindicacion 6, en el que el servicio de descubrimiento (506) y las agrupaciones de servicios se proporcionan como servicios web.
8. El sistema de la reivindicacion 6, en el que el servicio de descubrimiento (506) esta configurado adicionalmente para autenticar el cliente (804) empleando una pluralidad de modos de autenticacion a traves de un servicio de autenticacion acoplable.
9. El sistema de la reivindicacion 6, en el que las API tienen una o mas de las siguientes caractensticas:
son personalizables, de tal modo que un usuario con permiso esta habilitado para anadir al menos uno de un objeto personalizado y una operacion personalizada a un servicio de organizacion (508) seleccionado; y estan configuradas para posibilitar que los usuarios con permiso lleven a cabo unas acciones que incluyen: modificar los datos que estan asociados con un servicio de organizacion (508);
definir uno de una logica y un proceso que esta asociado con el servicio de organizacion;
invocar uno de una logica y un proceso que esta asociado con el servicio de organizacion; y
modificar uno de una logica y un proceso que esta asociado con el servicio de organizacion.
10. El sistema de la reivindicacion 6, en el que las API se generan de forma dinamica, de tal modo que las API estan adaptadas a una de una adicion y una eliminacion de un servicio de organizacion (508) en el sistema.
11. El sistema de la reivindicacion 6, en el que las agrupaciones de servicios incluyen una pluralidad de servidores web (431), bases de datos de organizacion (433) y servidores de procesamiento asmcronos (435) que estan configurados para interaccionar de una forma distribuida,
en el que al menos una porcion de la pluralidad de servidores web (431), bases de datos de organizacion (433) y servidores de procesamiento asmcronos (435) es virtual, y / o
en el que se proporcionan multiples instancias de la pluralidad de servidores web (431), bases de datos de organizacion (433) y servidores de procesamiento asmcronos (435) para habilitar la capacidad de ajuste a escala, el equilibrado de cargas y la recuperacion de fallo.
12. Un medio de almacenamiento legible por ordenador con unas instrucciones almacenadas en el mismo para proporcionar una plataforma de servicio multiempresa ampliable, comprendiendo las instrucciones:
recibir una solicitud de acceso procedente de un cliente que esta asociado con al menos un servicio de organizacion que es alojado por la plataforma, en el que la solicitud incluye una credencial del cliente (802); determinar una lista de servicios de organizacion que se encuentran disponibles para el cliente basandose en la credencial del cliente;
proporcionar la lista de servicios de organizacion al cliente;
recibir una solicitud de acceso a al menos un servicio de organizacion a partir de la lista;
determinar una ubicacion del al menos un servicio de organizacion solicitado (806), en el que los servicios de organizacion se proporcionan por medio de unas agrupaciones de servicios ajustables a escala que son alojadas por la plataforma;
proporcionar la ubicacion del al menos un servicio de organizacion al cliente para habilitar el acceso al servicio de organizacion (808);
si la ubicacion del servicio de organizacion cambia durante el acceso (810), proporcionar la ubicacion cambiada al cliente para un acceso continuado del cliente al servicio de organizacion (812); y
generar de forma automatica una pluralidad de Interfaces de Programacion de Aplicaciones, API, dedicadas que estan configuradas para proporcionar acceso a los servicios de organizacion, de tal modo que las aplicaciones y los datos que estan asociados con cada servicio de organizacion estan aislados de otros servicios de organizacion (508).
13. El medio de almacenamiento legible por ordenador de la reivindicacion 12, en el que las instrucciones comprenden adicionalmente:
autenticar el cliente usando al menos un modo de autenticacion para cada servicio de organizacion que es solicitado por el cliente (804).
14. El medio de almacenamiento legible por ordenador de la reivindicacion 12, en el que las instrucciones comprenden adicionalmente:
proporcionar de forma dinamica un conjunto de API dedicadas para cada servicio de organizacion que es alojado por la plataforma para habilitar la modificacion de al menos uno de los datos y los procesos que estan asociados con cada servicio de organizacion (508) por un administrador, de tal modo que las API estan adaptadas a una de una adicion y una eliminacion de un servicio de organizacion en la plataforma.
ES08744888T 2007-04-13 2008-04-01 Arquitectura de servicio multiempresa ampliable y programable Active ES2709436T3 (es)

Applications Claiming Priority (2)

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
PCT/US2008/059061 WO2008127871A1 (en) 2007-04-13 2008-04-01 Extensible and programmable multi-tenant service architecture

Publications (1)

Publication Number Publication Date
ES2709436T3 true ES2709436T3 (es) 2019-04-16

Family

ID=39854989

Family Applications (1)

Application Number Title Priority Date Filing Date
ES08744888T Active ES2709436T3 (es) 2007-04-13 2008-04-01 Arquitectura de servicio multiempresa ampliable y programable

Country Status (10)

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

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
US8966038B2 (en) * 2008-08-28 2015-02-24 Nec Corporation Virtual server system and physical server selection method
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
US9178947B2 (en) * 2010-03-03 2015-11-03 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
US9075661B2 (en) 2010-10-20 2015-07-07 Microsoft Technology Licensing, Llc Placing objects on hosts using hard and soft constraints
US8751656B2 (en) 2010-10-20 2014-06-10 Microsoft Corporation Machine manager for deploying and managing machines
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
US8386501B2 (en) 2010-10-20 2013-02-26 Microsoft Corporation Dynamically splitting multi-tenant databases
US9304614B2 (en) * 2010-10-20 2016-04-05 Salesforce.Com, Inc. Framework for custom actions on an information feed
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 Анастасия Надеровна Рубцова Автоматизированная информационная система для размещения расширяемых служб с множеством арендаторов и субъектов (потребителей)
JP7535114B2 (ja) * 2020-08-17 2024-08-15 グーグル エルエルシー 能力が増大したエンドポイントデバイスのためのエンドポイントデバイス間のシステムサービス共有

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 Ситрикс Системз, Инк. Сервер и способ (варианты) определения программного окружения клиентского узла в сети с архитектурой клиент/сервер
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
US20020065864A1 (en) * 2000-03-03 2002-05-30 Hartsell Neal D. Systems and method for resource tracking in information management environments
US20050049937A1 (en) 2000-08-16 2005-03-03 Aaron Sanders Business method and processing system
GB2371178B (en) * 2000-08-22 2003-08-06 Symbian Ltd A 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
EP2177010B1 (en) * 2006-12-13 2015-10-28 Quickplay Media Inc. Mobile media platform
US8201231B2 (en) 2007-02-21 2012-06-12 Microsoft Corporation Authenticated credential-based multi-tenant access to a service
WO2008111049A2 (en) * 2007-03-09 2008-09-18 Ghost, Inc. System and method for a virtual hosted operating system
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
TW200847055A (en) 2008-12-01
US20140012900A1 (en) 2014-01-09
US20110252089A1 (en) 2011-10-13
JP2010526358A (ja) 2010-07-29
TWI473029B (zh) 2015-02-11
US8195743B2 (en) 2012-06-05
JP2014132462A (ja) 2014-07-17
US20120210390A1 (en) 2012-08-16
CN101657804B (zh) 2015-07-08
CN101657804A (zh) 2010-02-24
US20080256607A1 (en) 2008-10-16
BRPI0809083A8 (pt) 2016-12-20
EP2156308B1 (en) 2018-11-07
RU2009137767A (ru) 2011-04-20
RU2463652C2 (ru) 2012-10-10
US8533261B2 (en) 2013-09-10
BRPI0809083B1 (pt) 2019-05-07
WO2008127871A1 (en) 2008-10-23
KR20100015398A (ko) 2010-02-12
EP2156308A1 (en) 2010-02-24
KR101279740B1 (ko) 2013-06-28
US8019812B2 (en) 2011-09-13
BRPI0809083A2 (pt) 2014-09-09
EP2156308A4 (en) 2014-06-04

Similar Documents

Publication Publication Date Title
ES2709436T3 (es) Arquitectura de servicio multiempresa ampliable y programable
US20200267090A1 (en) Organization level identity management
US9485256B1 (en) Secure assertion attribute for a federated log in
US11122052B2 (en) Sensitive information accessibility in blockchain
US9356968B1 (en) Managing authentication using common authentication framework circuitry
CN105493099A (zh) 用于托管虚拟机的加密证实资源
US20090217029A1 (en) Kerberos ticket virtualization for network load balancers
US20150213285A1 (en) Configuration of partition relationships
US12052245B2 (en) Techniques for selective container access to cloud services based on hosting node
US20220385596A1 (en) Protecting integration between resources of different services using service-generated dependency tags
US11297065B2 (en) Technology for computing resource liaison
Banday et al. Directory services for identity and access management in cloud computing
US20170134302A1 (en) Construct data management between loosely coupled racks
US11777944B2 (en) Scalable authentication management
US20230362170A1 (en) Access configuration in hybrid network environments
WO2023241405A1 (en) Database query processing with database clients
US20230421556A1 (en) Distribution of secure client devices
US20220391490A1 (en) Vault password controller for remote resource access authentication