US20080301053A1 - Service broker - Google Patents
Service broker Download PDFInfo
- Publication number
- US20080301053A1 US20080301053A1 US11/754,676 US75467607A US2008301053A1 US 20080301053 A1 US20080301053 A1 US 20080301053A1 US 75467607 A US75467607 A US 75467607A US 2008301053 A1 US2008301053 A1 US 2008301053A1
- Authority
- US
- United States
- Prior art keywords
- proxy
- information
- message
- request
- communication
- 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.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
Definitions
- FIG. 1 schematically illustrates an exemplary architecture in which systems and methods described herein may be implemented
- FIG. 2 illustrates an exemplary network in which systems and methods described herein may be implemented
- FIG. 3 illustrates an exemplary configuration of components of the management hub of FIG. 2 ;
- FIGS. 4 and 5 A- 5 C illustrate exemplary processing by various devices illustrated in FIG. 2 .
- Implementations described herein relate to an infrastructure for allowing various entities to exchange information.
- the infrastructure facilitates transactions and the exchange of information in a reliable, secure and accountable manner.
- the infrastructure may also allow various entities that use different systems that execute different networking protocols/standards to exchange data without requiring the entities to make significant changes to their systems or equipment.
- FIG. 1 is a block diagram schematically illustrating an exemplary system/system architecture 100 in which systems and methods described herein may be implemented.
- system 100 includes participants 110 , 120 , 130 and 140 and management hub 150 .
- the exemplary configuration illustrated in FIG. 1 is provided for simplicity. It should be understood that a typical system may include more or fewer devices than illustrated in FIG. 1 .
- Participants 110 - 140 may represent providers, consumers and other clients/entities that wish to exchange information, provide services, receive services, etc.
- Each of participants 110 - 140 may include a device, such as a work station, a personal computer (PC), a laptop computer, a personal digital assistant (PDA), a web-based appliance, a wireless telephone or another type of computation or communication device, or a process running on one of these devices.
- Participants 110 - 140 may communicate with management hub 150 and other ones of participants over a network (not shown) via wired, wireless or optical connections.
- Management hub 150 may include a server/computing device, or a set of servers/computing devices, that provides participants 110 - 140 with secure and accountable communications with other ones of participants 110 - 140 .
- management hub 150 may act as a service broker and/or manager to allow participants 110 - 140 to communicate with one another on a managed peer-to-peer basis.
- participants 110 - 140 may communicate with both management hub 150 and other ones of participants 110 - 140 .
- participants 110 - 140 may subscribe to services provided by management hub 150 . These services may include services associated with allowing participants to communicate with one another, exchange information, etc.
- management hub 150 may provision for the particular services to ensure that participants 110 - 140 can, for example, communicate with each other in a seamless and secure manner even when ones of participants 110 - 140 have systems that operate in accordance with different standards/protocols than other ones of participants 110 - 140 . That is, management hub 150 may provide for inter-operability between participants 110 - 140 and also provide security-related processing and other processing for facilitating communications between participants 110 - 140 .
- Participants 110 - 140 may forward information to management hub 150 via proxies (not shown in FIG. 1 ).
- proxies may forward control and/or management information to management hub 150 for communications involving participants 110 - 140 .
- This control/management information may be service management information (SMI) that may include, for example, information regarding the size of messages, time stamp information and other identification information that may be used to trace back, if necessary, the history of each transaction in system 100 .
- SMI service management information
- Management hub 150 may also authenticate clients 110 - 140 , encrypt messages, sign messages and compress messages prior to routing messages to the appropriate destination (e.g., a target service uniform resource locator (URL)).
- URL target service uniform resource locator
- Management hub 150 may also use the received SMI for billing, auditing, network monitoring, statistical analysis or other purposes associated with transactions involving participants 110 - 140 , as described in detail below. As one example, management hub 150 may gather metering information, such as the amount of data transmitted, response times of participants 110 - 140 , etc., to provide for accurate billing for participants 110 - 140 based on the particular services provided and to ensure, for example, that the communications satisfied various quality of service (QoS) related requirements, service level agreements (SLAs), etc.
- QoS quality of service
- SLAs service level agreements
- Participants 110 - 140 may also communicate content information and/or message data to other ones of participants 110 - 140 via one or more proxies.
- some or all of the content information/message data may be sent to other ones of participants 110 - 140 via proxies that ensure that participants 110 - 140 are able to process the received content, as described in detail below.
- the proxies may also provide various security services, such as encryption and decryption of message data.
- FIG. 2 illustrates a configuration of an exemplary network 200 in which methods and systems described herein may be implemented.
- network 200 includes management hub 150 (illustrated within the dotted box), provider 270 , consumer 280 , and network 290 .
- Management hub 150 may include management layer 210 , broker 220 , proxy 230 , proxy 232 , backend systems 240 , provisioning system 250 and provisioning data storage 260 .
- the configuration associated with network 200 in FIG. 2 is provided for simplicity. It should be understood that additional components and/or different components may be included in network 200 . For example, various routers, switches, gateways (not shown) may be included in network 200 for routing purposes.
- management hub 150 may include additional devices, such as additional proxies for routing data to and from subscribers of the services of management hub 150 .
- management hub 150 may provide delivery related functions and system related functions associated with managing communication sessions in network 200 .
- the delivery related functions may include, for example, security related processing, message validation, transport and routing of messages, ensuring quality of service (QoS), non-repudiation services, providing service level agreements (SLAs), ensuring that the communication sessions meet QoS requirements and SLAs, versioning related processing, transformation and mapping of different protocols for compatibility and compliance with various standards and protocols and other delivery related functions.
- the system related functions may include, for example, monitoring, auditing, provisioning, accounting and billing, performance management, statistical analysis, load balancing, fail over or fail safe processing and other system related functions.
- the particular delivery and security related functions may be divided among components in management hub 150 , as described in more detail below.
- Management layer 210 may perform various functions associated with managing the operations of management hub 150 .
- management layer 210 may maintain information associated with subscribers of the services of management hub 150 .
- Management layer 210 may use this information to make policy decisions governing business transactions. This information may include provisioning information about subscribers, along with electronic business policies that control the exchange of business data in a secure, accountable and highly trusted manner.
- Management layer 210 may also monitor all business transactions and provide control processing and data retrieval necessary to broker services between subscribers.
- management layer 210 may be associated with providing web-related services to subscribers. In other implementations, management layer 210 may provide any particular services to subscribers based on the particular subscribers.
- Broker 220 may provide and guarantee secure and highly accountable data exchanges between providers and consumers, such as provider 270 and consumer 280 .
- broker 220 may enforce business data exchange policies and monitor business transactions via its communications with management layer 210 .
- Broker 220 may receive message control directives from a proxy (e.g., one of proxies 230 or 232 ) and send access entitlements, URL addresses and transformation schemas to another proxy.
- broker 220 may also receive the delivery status of a transaction, security alerts and process statistics from the proxies 230 and 232 .
- the centralized broker 220 and the distributed proxies e.g., proxies 230 and 232
- SOAP simple object access protocol
- Proxies 230 and 232 allow participants who conduct business transactions with other parties to exchange data in a secure, accountable and highly trusted manner.
- Proxies 230 and 232 may act as interfaces or gateways to those business information systems that, for example, use or host various service, such as web services.
- proxies 230 and 232 may interact with broker 220 to perform address resolution and may forward/receive information associated with transactions between subscribers or customers.
- Proxies 230 and 232 may also provide various security related functions.
- proxies 230 and 232 may provide message validation and extensible markup language (XML) encryption.
- XML extensible markup language
- Proxies 230 and 232 may also perform XML parsing, message transformations (e.g., extensible stylesheet language (XSL) transformations) and message compression via, for example, adherence to web services standards or adherence to agreed upon parameters. Proxies 230 and 232 may also gather management data, such as response times and metering information. Proxies 230 and 232 may also queue messages locally. Proxies 230 and 232 may further interact with broker 220 and management layer 210 to perform dynamic routing to other proxies in network 200 .
- message transformations e.g., extensible stylesheet language (XSL) transformations
- message compression e.g., extensible stylesheet language (XSL) transformations
- the dynamic routing may be used for load balancing the handling of messages among a number of proxies in network 200 , to avoid proxies that may be undergoing maintenance or are experiencing problems (e.g., as a failsafe or failover mechanism), or for other reasons.
- each of the proxies in network 200 may forward transaction information associated with a communication session between two subscribers (e.g., provider 270 and consumer 280 ) to broker 220 each time that the proxy receives a communication in network 200 .
- This transaction information may be stored and used by other devices/systems in network 200 , such as backend systems 240 , as described in detail below.
- Backend systems 240 may receive usage information from management layer 210 and use this information for various purposes.
- backend systems 240 may include a billing system, an auditing system, a network monitoring system, a statistical analysis system and other systems associated with billing, auditing, monitoring, analyzing, etc., transactions involving subscribers (e.g., providers and consumers in network 200 , such as provider 270 and consumer 280 ).
- a billing system included in backend systems 240 may generate billing information for subscribers.
- an auditing system included in backend systems 240 may audit transactions involving subscribers.
- a monitoring system including in backend systems 240 may monitor transactions for QoS purposes, to ensure that the transactions meet a previously agreed upon SLA, etc.
- Provisioning system 250 may include provisioning information used by management layer 210 to ensure that customers are able to communicate in a seamless, transparent manner in accordance with agreed to protocols, standards, etc.
- provisioning system 250 may allow subscribers, such as provider 270 and consumer 280 , to communicate in accordance with SLAs regarding the exchange of information between these entities. These SLAs may include agreed upon security measures required for communications between these entities.
- Provisioning data storage 260 may include various data, such as subscriber data associated with subscribers of various services (e.g., web services) in network 200 .
- Management layer 210 may store and/or use this information when setting up a service between entities in network 200 .
- Provider 270 and consumer 280 may correspond to two of participants 110 - 140 illustrated in FIG. 1 .
- provider 270 may represent a provider of goods, services (e.g., web services), information, etc.
- Consumer 280 may represent a consumer of goods, services, information, etc., provided by provider 270 .
- Provider 270 and consumer 280 may interact with each other via management hub 150 in a transparent manner. That is, consumer 280 may request information from provider 270 and management hub 150 may facilitate the transaction such that provider 270 and consumer 280 have little to no processing burden associated with the transaction, other than to provide the previously agreed upon service, information, etc., as described in detail below.
- Network 290 may include one or more networks, such as a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network, such as the Public Switched Telephone Network (PSTN), the Internet, a cellular network, a satellite network, another type of network that is capable of transmitting data from a source device to a destination device or a combination of networks.
- Network 290 may also include one or more wireless networks for receiving wireless signals and forwarding the wireless signals toward the intended destination.
- Firewalls that are located at provider's 270 and/or consumer's 280 location may also be included in network 200 to provide additional protection to provider 270 and consumer 280 , respectively.
- firewalls may be coupled to provider 270 and consumer 280 to filter data and/or block data that may be associated with a network attack having malicious purposes.
- Management hub 150 may operate outside the subscriber's (e.g., provider 270 and/or consumer 280 ) firewall.
- management layer 210 and broker 220 may be located in the same server/computing device and proxies 230 and 232 may be distributed in network 200 .
- broker 220 may be implemented in a separate device/system than management layer 210 .
- proxies 230 and 232 may be co-located with management layer 210 and/or broker 220 .
- components of management hub 150 may be centralized, distributed or a combination of centralized and distributed in network 200 based on the particular implementation.
- FIG. 3 illustrates an exemplary configuration of a device/system in which management layer 210 may be implemented.
- broker 220 may be implemented in the same device/system or a separate device. The description below assumes that management layer 210 and broker 220 are implemented in the same device/server/system.
- Proxies 230 and 232 may each be configured in a similar manner.
- management layer 210 /broker 220 may include bus 310 , processor 320 , main memory 330 , read only memory (ROM) 340 , storage device 350 , input device 360 , output device 370 , and communication interface 380 .
- Bus 310 may include a path that permits communication among the elements of management layer 210 /broker 220 .
- Processor 320 may include a processor, microprocessor, or processing logic that may interpret and execute instructions.
- Memory 330 may include a random access memory (RAM) or another type of dynamic storage device that may store information and instructions for execution by processor 320 .
- ROM 340 may include a ROM device or another type of static storage device that may store static information and instructions for use by processor 320 .
- Storage device 350 may include a magnetic and/or optical recording medium and its corresponding drive.
- Input device 360 may include a mechanism that permits an operator to input information to management layer 210 /broker 220 (or proxies 230 or 232 ), such as a keyboard, a mouse, a pen, voice recognition and/or biometric mechanisms, etc.
- Output device 370 may include a mechanism that outputs information to the operator, including a display, a printer, a speaker, etc.
- Communication interface 380 may include any transceiver-like mechanism that management layer 210 /broker 220 use to communicate with other devices and/or systems.
- communication interface 380 may include a modem or an Ethernet interface to a LAN.
- communication interface 380 may include other mechanisms for communicating via a network, such as network 290 .
- Management layer 210 and broker 220 may perform processing associated with managing the overall operation of management hub 150 , as described in detail below.
- Proxies 230 and 232 may perform processing associated with providing for secure transactions and transport delivery between various entities in network 200 .
- management layer 210 /broker 220 and proxies 230 and 232 may perform these operations in response to their respective processors 320 executing sequences of instructions contained in a computer-readable medium, such as their respective memories 330 .
- a computer-readable medium may be defined as a physical or logical memory device and/or carrier wave.
- the software instructions may be read into memory 330 from another computer-readable medium, such as data storage device 350 , or from another device via communication interface 380 .
- the software instructions contained in memory 330 may cause processor 320 to perform processes that will be described later.
- hard-wired circuitry may be used in place of or in combination with software instructions to implement processes consistent with the principles of the invention. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
- FIG. 4 is a flow diagram illustrating exemplary processing associated with managed peer-to-peer services in network 200 .
- Processing may begin when various entities, such as provider 270 and consumer 280 , establish a relationship with management hub 150 to subscribe to services provided by management hub 150 .
- provider 270 and consumer 280 may be two entities that wish to exchange information, services, etc. in network 200 .
- Each of provider 270 and consumer 280 may then forward information to management hub 150 via a secure proxy or portal (e.g., proxy 230 or 232 ).
- Management hub 150 may receive the information from provider 270 and consumer 280 via the proxies (act 410 ).
- the received information may include SLA information associated with communications between provider 270 and consumer 280 or other information identifying parameters associated with an expected service, such as an expected QoS associated with communications between these entities.
- the received information may also include information identifying particular protocols/standards executed by provider 270 and consumer 280 .
- the particular protocols/standards executed by provider 270 and consumer 280 may be different in various instances.
- the received information may also include information identifying a level of security for communications between these entities (e.g., what type of encryption to use, what type of message validation to use, etc.).
- Provisioning system 250 may then identify what particular services that management hub 150 will perform to facilitate communications between provider 270 and consumer 280 and establish parameters for implementing the services (act 420 ). For example, provisioning system 250 may determine that proxies 230 and 232 may need to modify a particular data message received by provider 270 , such as perform an XSL transformation, so that it will be compatible or usable by consumer 280 . Provisioning system 250 may also identify security related requirements to be performed by management hub 150 . That is, as discussed above, management hub 150 may perform security related processing, such as encryption, decryption, providing digital signatures, etc. The particular level or depth of these services, such as the particular level of encryption, may be based on the agreed upon SLA between provider 270 and consumer 280 .
- provisioning system 250 may store provisioning related information in provisioning data storage 260 (act 430 ).
- the provisioning related information may be used by proxies 230 and 232 to facilitate communications between provider 270 and consumer 280 , as described in detail below.
- Management layer 210 may also store information regarding communications between provider 270 and consumer 280 and/or forward information regarding communications between provider 270 and consumer 280 to backend systems 240 for storage (act 440 ).
- management layer 210 may receive transaction information from proxies 230 and 232 via broker 220 .
- This transaction information may include, for example, a transaction identifier (ID), information identifying the origination and destination parties associated with the message, the size of the message, time stamp information, an identifier of a network element involved in the transaction (e.g., one of proxies 230 or 232 ), etc.
- Management layer 210 may store all or a portion of this transaction information in various ones of backend systems 240 for processing by the respective backend systems, as described in more detail below. Alternatively, management layer 210 may store this transaction information locally, such as on storage device 350 ( FIG. 2 ), for access by backend systems 240 .
- a billing system included in backend systems 240 may use the stored transaction information for billing entities (e.g., one or both of provider 270 and consumer 280 ) in network 200 in an accurate manner based on the particular agreed upon parameters, as described in detail below. That is, the billing system may allow for detailed billing of each transaction, each communication session, etc., based on the agreed upon parameters.
- a monitoring system included in backend systems 240 may use the stored transaction information to determine whether communications between entities in network 200 meet QoS requirements, SLAs, etc.
- provider 270 and consumer 280 may communicate in a transparent manner with respect to management hub 150 . That is, provider 270 and consumer 280 may exchange information, services, etc., with little to no additional processing with respect to management hub 150 , as described in detail below.
- FIGS. 5A-5C are diagrams illustrating exemplary processing associated with processing requests in network 200 .
- provider 270 and consumer 280 have already established agreed upon parameters as described above with respect to FIG. 4 and that management hub 150 has performed the necessary processing to facilitate transactions between provider 270 and consumer 280 .
- Processing may begin when consumer 280 generates and forwards a request for services to a provider, such as provider 270 .
- the request may be, for example, a request for web related services, such as a request for information from provider 270 , and may be transmitted in accordance with secure hypertext transfer protocol (HTTPS).
- Consumer 280 may forward the request to management hub 150 via network 290 .
- consumer 280 as described above, may be a subscriber to services provided by management hub 150 . In this case, consumer 280 may be configured to forward such requests to a URL associated with management hub 150 .
- the URL may correspond to a proxy in network 200 that is located closest (e.g., physically and/or logically) to consumer 280 .
- Proxy 232 receives the request (act 510 ).
- the request may be associated with a request for information, a request for services or any other request.
- provider 270 may be associated with a web site with which consumer 280 has contracted via an SLA to provide various information to consumer 280 in a manner similar to that described above with respect to FIG. 4 .
- the request may include information identifying the party to whom the request is directed, which in this example is provider 270 .
- Proxy 232 may notify broker 220 of the request and provide transaction information associated with the request to broker 220 (act 510 ).
- the transaction information may include, for example, a transaction ID, information identifying the origination and destination parties associated with the message, the size of the message, time stamp information, an identifier of a network element involved in the transaction (e.g., proxy 232 in this example), etc.
- proxy 232 may request that broker 220 identify the appropriate proxy in network 200 associated with provider 270 . This request may be forwarded via a control message sent to broker 220 along with the transaction information.
- the control message to broker 220 may also request that broker 220 identify access rights and/or requirements associated with accessing provider 270 .
- Broker 220 may receive the request and notify management layer 210 of the request (act 515 ). Broker 220 may also forward the transaction information to management layer 210 . Upon receipt of this request and the transaction information, management layer 210 may store all or some of the transaction information in, for example, storage device 350 (act 515 ). Management layer 210 may also identify access rights associated with accessing provider 270 and identify the proxy associated with provider 270 (act 515 ). The access rights associated with provider 270 may identify particular requirements associated with accessing provider 270 , such as particular security requirements (e.g., encryption levels, message validation requirements, signature requirements, etc.) associated with accessing provider 270 . The requirements may also include QoS requirements, SLA information, message transformation requirements, message compression requirements, etc.
- Management layer 210 may then determine whether consumer 280 is allowed to access provider 270 .
- management layer 210 may access an internal memory (e.g., storage device 350 ) and/or an external memory, such as provisioning data storage 260 , to determine whether consumer 280 should be granted permission to access provider 270 . This determination may be made based on various properties associated with consumer 280 , such as whether consumer 280 is pre-approved to communicate with provider 270 , whether provider 270 and consumer 280 have previously agreed to interact via the process described above with respect to FIG. 4 , etc.
- management layer 210 determines that consumer 280 is permitted to access provider 270 . Further assume that management layer identifies proxy 230 as the distributed proxy in network 200 associated with provider 270 . Management layer 210 may then initiate a data exchange with broker 220 that indicates that permission for consumer 280 to access provider 270 is granted. Management layer 210 may also forward location information associated with proxy 230 (e.g., a URL address of proxy 230 ) and delivery service parameters to broker 220 . These delivery service parameters may provide information identifying various parameters required for communications to/from provider 270 . Broker 220 may then forward the location information of proxy (e.g., the URL address) and the delivery parameters to the proxy associated with consumer 280 (i.e., proxy 232 in this example) (act 520 ).
- location information associated with proxy e.g., the URL address
- delivery parameters may provide information identifying various parameters required for communications to/from provider 270 .
- Broker 220 may then forward the location information of proxy (e.g., the URL address) and the delivery parameters
- Proxy 232 receives the information from broker 220 . Proxy 232 may then perform any necessary processing in accordance with the received delivery service parameters. For example, proxy 232 may perform message encryption, generate a digital signature for forwarding with the message, perform data compression on the message, transform the message into a format compatible with provider 270 , etc. Proxy 232 may then send the processed message data to the identified proxy associated with provider 270 (i.e., proxy 230 in this example) (act 525 ). For example, proxy 232 may generate a message using the received URL address and include the processed message data in the communication to proxy 230 . The processed message data included in the communication to proxy 230 may correspond to the information in the initial request from consumer 280 intended for provider 270 .
- the processed message data may be attached to, for example, an initial communication from proxy 232 to proxy 230 .
- proxy 230 and proxy 232 may be connected via a network, such as a LAN, a WAN, the Internet or some other private or public network (e.g., the PSTN).
- intermediate proxies may be included in network 200 between proxies 232 and 230 .
- proxy 232 may forward the message data to one or more other proxies, which ultimately forward the data to proxy 230 .
- Each intermediate proxy that receives the message data may forward transaction information, such as the transaction information described above (i.e., a transaction ID, information identifying the origination and destination parties associated with the message, the size of the message, time stamp information, an identifier of a network element involved in the transaction), to broker 220 .
- Broker 220 may then forward this transaction information to management layer 210 for use by backend systems 240 . In this manner, the transmission of message data between subscribers (e.g., consumer 280 and provider 270 ) may be traced back at a later time for various purposes.
- proxy 230 receives the request message and notifies broker 220 that it received the request, along with transaction information (act 530 ).
- Broker 220 may forward the transaction information to management layer 210 .
- Management layer 210 may then store the appropriate transaction information (act 530 ).
- the transaction information as described above, may include a transaction ID, information identifying the origination and destination parties associated with the message, the size of the message, time stamp information, a proxy ID identifying the proxy that forwarded the transaction information (i.e., proxy 230 in this example) and other information that may be used by backend systems 240 for various purposes.
- Proxy 230 may perform various processing on the received message, such as decrypt the message, perform message validation, de-compress the message, etc., to determine the authenticity of the message. Proxy 230 may also perform processing to ensure that the message is in a format compatible with provider 270 such that provider 270 will be able to determine the contents of the request. Proxy 230 may then forward the request message to provider 270 (act 535 ). In some implementations, proxy 230 may forward the message in accordance with HTTPS.
- Provider 270 may receive the request and send, for example, a reply message to proxy 230 .
- the reply message may include the requested message data.
- Proxy 230 may receive the reply message (act 540 ).
- the reply may also include the requested information for consumer 280 .
- the reply message may include message data that is responsive to consumer's 280 initial request for information.
- the requested information may be embedded in the reply message or attached to the reply message.
- proxy 230 may notify broker 220 and send transaction information to broker 220 (act 540 ).
- the transaction information may include, for example, a transaction ID, information identifying the origination and destination parties associated with the message, the size of the message, time stamp information, a proxy ID identifying proxy 230 , etc.
- Broker 220 may forward the transaction information to management layer 210 , which may then store the transaction information in, for example, storage device 350 (act 540 ).
- Proxy 230 may also perform address resolution associated with delivering the message to consumer 280 and send a reply message including the requested information to proxy 232 (act 545 ). That is, proxy 230 may identify a location (e.g., a URL) associated with consumer's 280 proxy (i.e., proxy 232 in this example). Proxy 230 may also perform various security related processing associated with the message. For example, proxy 230 may perform data encryption, provide a message signature, etc., in accordance with the agreed upon parameters associated with communications between provider 270 and consumer 280 . Proxy 230 may also perform additional processing, such as data compression, data format conversion, data transformation, etc., to ensure that the data is in a format compatible with consumer 280 .
- proxy 230 may identify a location (e.g., a URL) associated with consumer's 280 proxy (i.e., proxy 232 in this example). Proxy 230 may also perform various security related processing associated with the message. For example, proxy 230 may perform data encryption, provide a message signature,
- proxy 230 may communicate with management layer 210 via broker 220 to determine the particular processing to perform on the received message, such as what type of security-related processing, compression, conversion, transformation, etc., to perform. This information may be provided by management layer 210 to proxy 230 , via broker 220 , using control messages.
- Proxy 232 may receive the reply message (act 550 ). Upon receipt of this reply message, proxy 232 may notify broker 220 that it received the reply message from proxy 230 (act 550 ). Proxy 232 may also forward transaction information to broker 220 .
- the transaction information may include a transaction ID, information identifying the origination and destination parties associated with the message, the size of the message, time stamp information, a proxy ID identifying proxy 232 and other information.
- Broker 220 may receive the transaction information and may forward all or some of the transaction information to management layer 210 , which may store the transaction information in, for example, storage device 350 (act 550 ). Proxy 232 may also forward the reply to consumer 280 (act 555 ). The reply message may include information responsive to the initial request message. Consumer 280 may then acknowledge the receipt of the reply message. Proxy 232 may receive the acknowledgement from consumer 280 and notify broker 220 that consumer 280 has received the reply message (act 560 ). Broker 220 may then forward transaction information to management layer 210 , which may then store the transaction information in, for example, storage device 350 (act 560 ). Backend systems 240 may use the stored transaction information for various purposes.
- a billing system included in backend systems 240 may use the stored transaction information for billing one or both of provider 270 and consumer 280 for the particular transaction/communication session, for auditing purposes, for monitoring purposes, such as monitoring QoS, SLA compliance, or for other purposes.
- management hub 150 acts as a broker and/or manager to manage communication sessions in a peer-to-peer environment.
- management hub 150 separates control information and message data in network 200 .
- control information may be sent by proxies 230 and 232 to broker 220 and/or management layer 210 for identifying various information (e.g., SLA information, QoS information, security related information, compatibility related information, etc.) to facilitate communications between consumer 280 and provider 270 and to ensure that the communications are performed in accordance with agreed upon parameters.
- various information e.g., SLA information, QoS information, security related information, compatibility related information, etc.
- message data such as requests for information from an entity (e.g., provider 270 ) and message data provided in response to such requests, may be sent between proxies 230 and 232 without requiring that the message data be sent to broker 220 and/or management layer 210 .
- This allows management hub 150 to process information from a large number of subscribers without slowing down processing. That is, broker 220 and/or management layer 210 may not receive and/or process the actual message data transmitted between subscribers (e.g., provider 270 and consumer 280 ).
- This enables management hub 150 to facilitate communications sessions for a large number of subscribers in an efficient manner. That is, by not receiving and/or storing message data, management hub 150 may quickly process transaction information and forward message data to subscribers.
- proxies 230 and 232 may forward transaction information associated with communication sessions to broker 220 .
- This transaction information enables management hub 150 to perform a number of services associated with the communication sessions. For example, management hub 150 may use the transaction information to ensure that communication sessions may be accurately billed based on the particular services performed. Management hub 150 may also use the transaction information to monitor the communication sessions for compliance with agreed upon parameters, as well as analyze the communication sessions for other purposes, based on the particular implementation and the particular subscriber requirements.
- provider 270 and/or consumer 280 may notify management hub 150 of the changes and management hub 150 may perform various processing needed to ensure that the changes are reflected at management hub 150 .
- management hub 150 to provide on-going support and change management to ensure that both entities (e.g., provider 270 and consumer 280 ) are able to communicate with each other in accordance with agreed upon parameters.
- Implementations described herein also provide operational automation for service providers and customers when communicating over a network. For example, security related processing, compatibility related processing, accounting related processing, auditing related processing and monitoring related processing may be performed by management hub 150 that allows both providers and consumers to simplify their processing.
- management hub 150 may perform processing to facilitate the multiple communications and also store transaction information associated with each communication.
- logic may include hardware, such as a processor, a microprocessor, an application specific integrated circuit, or a field programmable gate array, software, or a combination of hardware and software.
Abstract
Description
- Exchanging information over networks has become increasingly common. For example, businesses often exchange business related data over the Internet with customers, suppliers and other business partners. Ensuring that these communications are secure and reliable is very important to both the entity originating the communication and the entity receiving the communication.
-
FIG. 1 schematically illustrates an exemplary architecture in which systems and methods described herein may be implemented; -
FIG. 2 illustrates an exemplary network in which systems and methods described herein may be implemented; -
FIG. 3 illustrates an exemplary configuration of components of the management hub ofFIG. 2 ; and - FIGS. 4 and 5A-5C illustrate exemplary processing by various devices illustrated in
FIG. 2 . - The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements. Also, the following detailed description does not limit the invention. Instead, the scope of the invention is defined by the appended claims and their equivalents.
- Implementations described herein relate to an infrastructure for allowing various entities to exchange information. The infrastructure facilitates transactions and the exchange of information in a reliable, secure and accountable manner. The infrastructure may also allow various entities that use different systems that execute different networking protocols/standards to exchange data without requiring the entities to make significant changes to their systems or equipment.
-
FIG. 1 is a block diagram schematically illustrating an exemplary system/system architecture 100 in which systems and methods described herein may be implemented. Referring toFIG. 1 ,system 100 includesparticipants management hub 150. The exemplary configuration illustrated inFIG. 1 is provided for simplicity. It should be understood that a typical system may include more or fewer devices than illustrated inFIG. 1 . - Participants 110-140 may represent providers, consumers and other clients/entities that wish to exchange information, provide services, receive services, etc. Each of participants 110-140 may include a device, such as a work station, a personal computer (PC), a laptop computer, a personal digital assistant (PDA), a web-based appliance, a wireless telephone or another type of computation or communication device, or a process running on one of these devices. Participants 110-140 may communicate with
management hub 150 and other ones of participants over a network (not shown) via wired, wireless or optical connections. -
Management hub 150, also referred to herein as a platform or a management platform, may include a server/computing device, or a set of servers/computing devices, that provides participants 110-140 with secure and accountable communications with other ones of participants 110-140. In general,management hub 150 may act as a service broker and/or manager to allow participants 110-140 to communicate with one another on a managed peer-to-peer basis. - In an exemplary implementation, participants 110-140 may communicate with both
management hub 150 and other ones of participants 110-140. In one implementation, participants 110-140 may subscribe to services provided bymanagement hub 150. These services may include services associated with allowing participants to communicate with one another, exchange information, etc. Once each of the various participants 110-140 have selected desired services to which they would like to subscribe,management hub 150 may provision for the particular services to ensure that participants 110-140 can, for example, communicate with each other in a seamless and secure manner even when ones of participants 110-140 have systems that operate in accordance with different standards/protocols than other ones of participants 110-140. That is,management hub 150 may provide for inter-operability between participants 110-140 and also provide security-related processing and other processing for facilitating communications between participants 110-140. - Participants 110-140 may forward information to
management hub 150 via proxies (not shown inFIG. 1 ). For example, proxies may forward control and/or management information tomanagement hub 150 for communications involving participants 110-140. This control/management information may be service management information (SMI) that may include, for example, information regarding the size of messages, time stamp information and other identification information that may be used to trace back, if necessary, the history of each transaction insystem 100. This SMI may be used, for example, for non-repudiation purposes.Management hub 150 may also authenticate clients 110-140, encrypt messages, sign messages and compress messages prior to routing messages to the appropriate destination (e.g., a target service uniform resource locator (URL)).Management hub 150 may also use the received SMI for billing, auditing, network monitoring, statistical analysis or other purposes associated with transactions involving participants 110-140, as described in detail below. As one example,management hub 150 may gather metering information, such as the amount of data transmitted, response times of participants 110-140, etc., to provide for accurate billing for participants 110-140 based on the particular services provided and to ensure, for example, that the communications satisfied various quality of service (QoS) related requirements, service level agreements (SLAs), etc. - Participants 110-140 may also communicate content information and/or message data to other ones of participants 110-140 via one or more proxies. In an exemplary implementation, some or all of the content information/message data may be sent to other ones of participants 110-140 via proxies that ensure that participants 110-140 are able to process the received content, as described in detail below. The proxies may also provide various security services, such as encryption and decryption of message data.
-
FIG. 2 illustrates a configuration of anexemplary network 200 in which methods and systems described herein may be implemented. Referring toFIG. 2 ,network 200 includes management hub 150 (illustrated within the dotted box),provider 270,consumer 280, andnetwork 290.Management hub 150 may includemanagement layer 210,broker 220,proxy 230,proxy 232,backend systems 240,provisioning system 250 andprovisioning data storage 260. The configuration associated withnetwork 200 inFIG. 2 is provided for simplicity. It should be understood that additional components and/or different components may be included innetwork 200. For example, various routers, switches, gateways (not shown) may be included innetwork 200 for routing purposes. In addition,management hub 150 may include additional devices, such as additional proxies for routing data to and from subscribers of the services ofmanagement hub 150. - In general,
management hub 150 may provide delivery related functions and system related functions associated with managing communication sessions innetwork 200. The delivery related functions may include, for example, security related processing, message validation, transport and routing of messages, ensuring quality of service (QoS), non-repudiation services, providing service level agreements (SLAs), ensuring that the communication sessions meet QoS requirements and SLAs, versioning related processing, transformation and mapping of different protocols for compatibility and compliance with various standards and protocols and other delivery related functions. The system related functions may include, for example, monitoring, auditing, provisioning, accounting and billing, performance management, statistical analysis, load balancing, fail over or fail safe processing and other system related functions. The particular delivery and security related functions may be divided among components inmanagement hub 150, as described in more detail below. -
Management layer 210 may perform various functions associated with managing the operations ofmanagement hub 150. For example,management layer 210 may maintain information associated with subscribers of the services ofmanagement hub 150.Management layer 210 may use this information to make policy decisions governing business transactions. This information may include provisioning information about subscribers, along with electronic business policies that control the exchange of business data in a secure, accountable and highly trusted manner.Management layer 210 may also monitor all business transactions and provide control processing and data retrieval necessary to broker services between subscribers. In an exemplary implementation,management layer 210 may be associated with providing web-related services to subscribers. In other implementations,management layer 210 may provide any particular services to subscribers based on the particular subscribers. -
Broker 220 may provide and guarantee secure and highly accountable data exchanges between providers and consumers, such asprovider 270 andconsumer 280. For example,broker 220 may enforce business data exchange policies and monitor business transactions via its communications withmanagement layer 210.Broker 220 may receive message control directives from a proxy (e.g., one ofproxies 230 or 232) and send access entitlements, URL addresses and transformation schemas to another proxy. In addition,broker 220 may also receive the delivery status of a transaction, security alerts and process statistics from theproxies centralized broker 220 and the distributed proxies (e.g.,proxies 230 and 232) may use simple object access protocol (SOAP) messages to communicate with each other. -
Proxies Proxies proxies broker 220 to perform address resolution and may forward/receive information associated with transactions between subscribers or customers.Proxies proxies Proxies Proxies Proxies Proxies broker 220 andmanagement layer 210 to perform dynamic routing to other proxies innetwork 200. The dynamic routing may be used for load balancing the handling of messages among a number of proxies innetwork 200, to avoid proxies that may be undergoing maintenance or are experiencing problems (e.g., as a failsafe or failover mechanism), or for other reasons. - In an exemplary implementation, each of the proxies in network 200 (e.g.,
proxies provider 270 and consumer 280) to broker 220 each time that the proxy receives a communication innetwork 200. This transaction information may be stored and used by other devices/systems innetwork 200, such asbackend systems 240, as described in detail below. -
Backend systems 240 may receive usage information frommanagement layer 210 and use this information for various purposes. For example,backend systems 240 may include a billing system, an auditing system, a network monitoring system, a statistical analysis system and other systems associated with billing, auditing, monitoring, analyzing, etc., transactions involving subscribers (e.g., providers and consumers innetwork 200, such asprovider 270 and consumer 280). As an example, a billing system included inbackend systems 240 may generate billing information for subscribers. As another example, an auditing system included inbackend systems 240 may audit transactions involving subscribers. As still another example, a monitoring system including inbackend systems 240 may monitor transactions for QoS purposes, to ensure that the transactions meet a previously agreed upon SLA, etc. -
Provisioning system 250 may include provisioning information used bymanagement layer 210 to ensure that customers are able to communicate in a seamless, transparent manner in accordance with agreed to protocols, standards, etc. For example,provisioning system 250 may allow subscribers, such asprovider 270 andconsumer 280, to communicate in accordance with SLAs regarding the exchange of information between these entities. These SLAs may include agreed upon security measures required for communications between these entities.Provisioning data storage 260 may include various data, such as subscriber data associated with subscribers of various services (e.g., web services) innetwork 200.Management layer 210 may store and/or use this information when setting up a service between entities innetwork 200. -
Provider 270 andconsumer 280 may correspond to two of participants 110-140 illustrated inFIG. 1 . In an exemplary implementation,provider 270 may represent a provider of goods, services (e.g., web services), information, etc.Consumer 280 may represent a consumer of goods, services, information, etc., provided byprovider 270.Provider 270 andconsumer 280 may interact with each other viamanagement hub 150 in a transparent manner. That is,consumer 280 may request information fromprovider 270 andmanagement hub 150 may facilitate the transaction such thatprovider 270 andconsumer 280 have little to no processing burden associated with the transaction, other than to provide the previously agreed upon service, information, etc., as described in detail below. -
Network 290 may include one or more networks, such as a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network, such as the Public Switched Telephone Network (PSTN), the Internet, a cellular network, a satellite network, another type of network that is capable of transmitting data from a source device to a destination device or a combination of networks.Network 290 may also include one or more wireless networks for receiving wireless signals and forwarding the wireless signals toward the intended destination. - Firewalls that are located at provider's 270 and/or consumer's 280 location (not shown) may also be included in
network 200 to provide additional protection toprovider 270 andconsumer 280, respectively. For example, firewalls may be coupled toprovider 270 andconsumer 280 to filter data and/or block data that may be associated with a network attack having malicious purposes.Management hub 150, however, may operate outside the subscriber's (e.g.,provider 270 and/or consumer 280) firewall. - In an exemplary implementation,
management layer 210 andbroker 220 may be located in the same server/computing device andproxies network 200. In other implementations,broker 220 may be implemented in a separate device/system thanmanagement layer 210. In still other implementations,proxies management layer 210 and/orbroker 220. In other words, components ofmanagement hub 150 may be centralized, distributed or a combination of centralized and distributed innetwork 200 based on the particular implementation. -
FIG. 3 illustrates an exemplary configuration of a device/system in whichmanagement layer 210 may be implemented. As discussed above,broker 220 may be implemented in the same device/system or a separate device. The description below assumes thatmanagement layer 210 andbroker 220 are implemented in the same device/server/system.Proxies - Referring to
FIG. 3 ,management layer 210/broker 220 may includebus 310,processor 320,main memory 330, read only memory (ROM) 340,storage device 350,input device 360,output device 370, andcommunication interface 380.Bus 310 may include a path that permits communication among the elements ofmanagement layer 210/broker 220. -
Processor 320 may include a processor, microprocessor, or processing logic that may interpret and execute instructions.Memory 330 may include a random access memory (RAM) or another type of dynamic storage device that may store information and instructions for execution byprocessor 320.ROM 340 may include a ROM device or another type of static storage device that may store static information and instructions for use byprocessor 320.Storage device 350 may include a magnetic and/or optical recording medium and its corresponding drive. -
Input device 360 may include a mechanism that permits an operator to input information tomanagement layer 210/broker 220 (orproxies 230 or 232), such as a keyboard, a mouse, a pen, voice recognition and/or biometric mechanisms, etc.Output device 370 may include a mechanism that outputs information to the operator, including a display, a printer, a speaker, etc.Communication interface 380 may include any transceiver-like mechanism thatmanagement layer 210/broker 220 use to communicate with other devices and/or systems. For example,communication interface 380 may include a modem or an Ethernet interface to a LAN. Alternatively,communication interface 380 may include other mechanisms for communicating via a network, such asnetwork 290. -
Management layer 210 andbroker 220 may perform processing associated with managing the overall operation ofmanagement hub 150, as described in detail below.Proxies network 200. According to an exemplary implementation,management layer 210/broker 220 andproxies respective processors 320 executing sequences of instructions contained in a computer-readable medium, such as theirrespective memories 330. A computer-readable medium may be defined as a physical or logical memory device and/or carrier wave. - The software instructions may be read into
memory 330 from another computer-readable medium, such asdata storage device 350, or from another device viacommunication interface 380. The software instructions contained inmemory 330 may causeprocessor 320 to perform processes that will be described later. Alternatively, hard-wired circuitry may be used in place of or in combination with software instructions to implement processes consistent with the principles of the invention. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software. -
FIG. 4 is a flow diagram illustrating exemplary processing associated with managed peer-to-peer services innetwork 200. Processing may begin when various entities, such asprovider 270 andconsumer 280, establish a relationship withmanagement hub 150 to subscribe to services provided bymanagement hub 150. For example,provider 270 andconsumer 280 may be two entities that wish to exchange information, services, etc. innetwork 200. Each ofprovider 270 andconsumer 280 may then forward information tomanagement hub 150 via a secure proxy or portal (e.g.,proxy 230 or 232).Management hub 150 may receive the information fromprovider 270 andconsumer 280 via the proxies (act 410). - The received information may include SLA information associated with communications between
provider 270 andconsumer 280 or other information identifying parameters associated with an expected service, such as an expected QoS associated with communications between these entities. The received information may also include information identifying particular protocols/standards executed byprovider 270 andconsumer 280. The particular protocols/standards executed byprovider 270 andconsumer 280 may be different in various instances. The received information may also include information identifying a level of security for communications between these entities (e.g., what type of encryption to use, what type of message validation to use, etc.). - The received information may be received at or forwarded to
provisioning system 250.Provisioning system 250 may then identify what particular services thatmanagement hub 150 will perform to facilitate communications betweenprovider 270 andconsumer 280 and establish parameters for implementing the services (act 420). For example,provisioning system 250 may determine thatproxies provider 270, such as perform an XSL transformation, so that it will be compatible or usable byconsumer 280.Provisioning system 250 may also identify security related requirements to be performed bymanagement hub 150. That is, as discussed above,management hub 150 may perform security related processing, such as encryption, decryption, providing digital signatures, etc. The particular level or depth of these services, such as the particular level of encryption, may be based on the agreed upon SLA betweenprovider 270 andconsumer 280. - In each case,
provisioning system 250 may store provisioning related information in provisioning data storage 260 (act 430). The provisioning related information may be used byproxies provider 270 andconsumer 280, as described in detail below. -
Management layer 210 may also store information regarding communications betweenprovider 270 andconsumer 280 and/or forward information regarding communications betweenprovider 270 andconsumer 280 tobackend systems 240 for storage (act 440). For example,management layer 210 may receive transaction information fromproxies broker 220. This transaction information may include, for example, a transaction identifier (ID), information identifying the origination and destination parties associated with the message, the size of the message, time stamp information, an identifier of a network element involved in the transaction (e.g., one ofproxies 230 or 232), etc.Management layer 210 may store all or a portion of this transaction information in various ones ofbackend systems 240 for processing by the respective backend systems, as described in more detail below. Alternatively,management layer 210 may store this transaction information locally, such as on storage device 350 (FIG. 2 ), for access bybackend systems 240. - As one example, a billing system included in
backend systems 240 may use the stored transaction information for billing entities (e.g., one or both ofprovider 270 and consumer 280) innetwork 200 in an accurate manner based on the particular agreed upon parameters, as described in detail below. That is, the billing system may allow for detailed billing of each transaction, each communication session, etc., based on the agreed upon parameters. As another example, a monitoring system included inbackend systems 240 may use the stored transaction information to determine whether communications between entities innetwork 200 meet QoS requirements, SLAs, etc. - After
provider 270 andconsumer 280 have established agreed upon parameters with respect to exchanging information innetwork 200 andmanagement hub 150 has processed the agreed upon parameters,provider 270 andconsumer 280 may communicate in a transparent manner with respect tomanagement hub 150. That is,provider 270 andconsumer 280 may exchange information, services, etc., with little to no additional processing with respect tomanagement hub 150, as described in detail below. -
FIGS. 5A-5C are diagrams illustrating exemplary processing associated with processing requests innetwork 200. In this case, assume thatprovider 270 andconsumer 280 have already established agreed upon parameters as described above with respect toFIG. 4 and thatmanagement hub 150 has performed the necessary processing to facilitate transactions betweenprovider 270 andconsumer 280. Processing may begin whenconsumer 280 generates and forwards a request for services to a provider, such asprovider 270. The request may be, for example, a request for web related services, such as a request for information fromprovider 270, and may be transmitted in accordance with secure hypertext transfer protocol (HTTPS).Consumer 280 may forward the request tomanagement hub 150 vianetwork 290. For example,consumer 280, as described above, may be a subscriber to services provided bymanagement hub 150. In this case,consumer 280 may be configured to forward such requests to a URL associated withmanagement hub 150. - The URL may correspond to a proxy in
network 200 that is located closest (e.g., physically and/or logically) toconsumer 280. For example, assume that the URL is associated withproxy 232 and thatproxy 232 will act as consumer's 280 proxy for facilitating communications to/fromconsumer 280 innetwork 200.Proxy 232 receives the request (act 510). As discussed above, the request may be associated with a request for information, a request for services or any other request. For example,provider 270 may be associated with a web site with whichconsumer 280 has contracted via an SLA to provide various information toconsumer 280 in a manner similar to that described above with respect toFIG. 4 . In this case, the request may include information identifying the party to whom the request is directed, which in this example isprovider 270.Proxy 232 may notifybroker 220 of the request and provide transaction information associated with the request to broker 220 (act 510). As discussed previously, the transaction information may include, for example, a transaction ID, information identifying the origination and destination parties associated with the message, the size of the message, time stamp information, an identifier of a network element involved in the transaction (e.g.,proxy 232 in this example), etc. In one implementation,proxy 232 may request thatbroker 220 identify the appropriate proxy innetwork 200 associated withprovider 270. This request may be forwarded via a control message sent to broker 220 along with the transaction information. The control message to broker 220 may also request thatbroker 220 identify access rights and/or requirements associated with accessingprovider 270. -
Broker 220 may receive the request and notifymanagement layer 210 of the request (act 515).Broker 220 may also forward the transaction information tomanagement layer 210. Upon receipt of this request and the transaction information,management layer 210 may store all or some of the transaction information in, for example, storage device 350 (act 515).Management layer 210 may also identify access rights associated with accessingprovider 270 and identify the proxy associated with provider 270 (act 515). The access rights associated withprovider 270 may identify particular requirements associated with accessingprovider 270, such as particular security requirements (e.g., encryption levels, message validation requirements, signature requirements, etc.) associated with accessingprovider 270. The requirements may also include QoS requirements, SLA information, message transformation requirements, message compression requirements, etc. -
Management layer 210 may then determine whetherconsumer 280 is allowed to accessprovider 270. For example,management layer 210 may access an internal memory (e.g., storage device 350) and/or an external memory, such asprovisioning data storage 260, to determine whetherconsumer 280 should be granted permission toaccess provider 270. This determination may be made based on various properties associated withconsumer 280, such as whetherconsumer 280 is pre-approved to communicate withprovider 270, whetherprovider 270 andconsumer 280 have previously agreed to interact via the process described above with respect toFIG. 4 , etc. - Assume that
management layer 210 determines thatconsumer 280 is permitted toaccess provider 270. Further assume that management layer identifiesproxy 230 as the distributed proxy innetwork 200 associated withprovider 270.Management layer 210 may then initiate a data exchange withbroker 220 that indicates that permission forconsumer 280 toaccess provider 270 is granted.Management layer 210 may also forward location information associated with proxy 230 (e.g., a URL address of proxy 230) and delivery service parameters to broker 220. These delivery service parameters may provide information identifying various parameters required for communications to/fromprovider 270.Broker 220 may then forward the location information of proxy (e.g., the URL address) and the delivery parameters to the proxy associated with consumer 280 (i.e.,proxy 232 in this example) (act 520). -
Proxy 232 receives the information frombroker 220.Proxy 232 may then perform any necessary processing in accordance with the received delivery service parameters. For example,proxy 232 may perform message encryption, generate a digital signature for forwarding with the message, perform data compression on the message, transform the message into a format compatible withprovider 270, etc.Proxy 232 may then send the processed message data to the identified proxy associated with provider 270 (i.e.,proxy 230 in this example) (act 525). For example,proxy 232 may generate a message using the received URL address and include the processed message data in the communication toproxy 230. The processed message data included in the communication toproxy 230 may correspond to the information in the initial request fromconsumer 280 intended forprovider 270. In an alternative implementation, the processed message data may be attached to, for example, an initial communication fromproxy 232 toproxy 230. It should be noted thatproxy 230 andproxy 232 may be connected via a network, such as a LAN, a WAN, the Internet or some other private or public network (e.g., the PSTN). It should also be noted that intermediate proxies may be included innetwork 200 betweenproxies proxy 232 may forward the message data to one or more other proxies, which ultimately forward the data toproxy 230. Each intermediate proxy that receives the message data may forward transaction information, such as the transaction information described above (i.e., a transaction ID, information identifying the origination and destination parties associated with the message, the size of the message, time stamp information, an identifier of a network element involved in the transaction), to broker 220.Broker 220 may then forward this transaction information tomanagement layer 210 for use bybackend systems 240. In this manner, the transmission of message data between subscribers (e.g.,consumer 280 and provider 270) may be traced back at a later time for various purposes. - In each case,
proxy 230 receives the request message and notifiesbroker 220 that it received the request, along with transaction information (act 530).Broker 220 may forward the transaction information tomanagement layer 210.Management layer 210 may then store the appropriate transaction information (act 530). The transaction information, as described above, may include a transaction ID, information identifying the origination and destination parties associated with the message, the size of the message, time stamp information, a proxy ID identifying the proxy that forwarded the transaction information (i.e.,proxy 230 in this example) and other information that may be used bybackend systems 240 for various purposes. -
Proxy 230 may perform various processing on the received message, such as decrypt the message, perform message validation, de-compress the message, etc., to determine the authenticity of the message.Proxy 230 may also perform processing to ensure that the message is in a format compatible withprovider 270 such thatprovider 270 will be able to determine the contents of the request.Proxy 230 may then forward the request message to provider 270 (act 535). In some implementations,proxy 230 may forward the message in accordance with HTTPS. -
Provider 270 may receive the request and send, for example, a reply message toproxy 230. The reply message may include the requested message data.Proxy 230 may receive the reply message (act 540). The reply may also include the requested information forconsumer 280. For example, the reply message may include message data that is responsive to consumer's 280 initial request for information. The requested information may be embedded in the reply message or attached to the reply message. Upon receipt of this reply,proxy 230 may notifybroker 220 and send transaction information to broker 220 (act 540). - The transaction information, as discussed above, may include, for example, a transaction ID, information identifying the origination and destination parties associated with the message, the size of the message, time stamp information, a proxy
ID identifying proxy 230, etc.Broker 220 may forward the transaction information tomanagement layer 210, which may then store the transaction information in, for example, storage device 350 (act 540). -
Proxy 230 may also perform address resolution associated with delivering the message toconsumer 280 and send a reply message including the requested information to proxy 232 (act 545). That is,proxy 230 may identify a location (e.g., a URL) associated with consumer's 280 proxy (i.e.,proxy 232 in this example).Proxy 230 may also perform various security related processing associated with the message. For example,proxy 230 may perform data encryption, provide a message signature, etc., in accordance with the agreed upon parameters associated with communications betweenprovider 270 andconsumer 280.Proxy 230 may also perform additional processing, such as data compression, data format conversion, data transformation, etc., to ensure that the data is in a format compatible withconsumer 280. In some instances,proxy 230 may communicate withmanagement layer 210 viabroker 220 to determine the particular processing to perform on the received message, such as what type of security-related processing, compression, conversion, transformation, etc., to perform. This information may be provided bymanagement layer 210 toproxy 230, viabroker 220, using control messages. -
Proxy 232 may receive the reply message (act 550). Upon receipt of this reply message,proxy 232 may notifybroker 220 that it received the reply message from proxy 230 (act 550).Proxy 232 may also forward transaction information tobroker 220. The transaction information may include a transaction ID, information identifying the origination and destination parties associated with the message, the size of the message, time stamp information, a proxyID identifying proxy 232 and other information. -
Broker 220 may receive the transaction information and may forward all or some of the transaction information tomanagement layer 210, which may store the transaction information in, for example, storage device 350 (act 550).Proxy 232 may also forward the reply to consumer 280 (act 555). The reply message may include information responsive to the initial request message.Consumer 280 may then acknowledge the receipt of the reply message.Proxy 232 may receive the acknowledgement fromconsumer 280 and notifybroker 220 thatconsumer 280 has received the reply message (act 560).Broker 220 may then forward transaction information tomanagement layer 210, which may then store the transaction information in, for example, storage device 350 (act 560).Backend systems 240 may use the stored transaction information for various purposes. For example, a billing system included inbackend systems 240 may use the stored transaction information for billing one or both ofprovider 270 andconsumer 280 for the particular transaction/communication session, for auditing purposes, for monitoring purposes, such as monitoring QoS, SLA compliance, or for other purposes. - As described above,
management hub 150 acts as a broker and/or manager to manage communication sessions in a peer-to-peer environment. In an exemplary implementation,management hub 150 separates control information and message data innetwork 200. For example, control information may be sent byproxies management layer 210 for identifying various information (e.g., SLA information, QoS information, security related information, compatibility related information, etc.) to facilitate communications betweenconsumer 280 andprovider 270 and to ensure that the communications are performed in accordance with agreed upon parameters. - In an exemplary implementation, message data, such as requests for information from an entity (e.g., provider 270) and message data provided in response to such requests, may be sent between
proxies broker 220 and/ormanagement layer 210. This allowsmanagement hub 150 to process information from a large number of subscribers without slowing down processing. That is,broker 220 and/ormanagement layer 210 may not receive and/or process the actual message data transmitted between subscribers (e.g.,provider 270 and consumer 280). This enablesmanagement hub 150 to facilitate communications sessions for a large number of subscribers in an efficient manner. That is, by not receiving and/or storing message data,management hub 150 may quickly process transaction information and forward message data to subscribers. - In addition, as described above,
proxies management hub 150 to perform a number of services associated with the communication sessions. For example,management hub 150 may use the transaction information to ensure that communication sessions may be accurately billed based on the particular services performed.Management hub 150 may also use the transaction information to monitor the communication sessions for compliance with agreed upon parameters, as well as analyze the communication sessions for other purposes, based on the particular implementation and the particular subscriber requirements. - In addition, when changes are made to various equipment and/or procedures associated with one or both of
provider 270 andconsumer 280,provider 270 and/orconsumer 280 may notifymanagement hub 150 of the changes andmanagement hub 150 may perform various processing needed to ensure that the changes are reflected atmanagement hub 150. This enablesmanagement hub 150 to provide on-going support and change management to ensure that both entities (e.g.,provider 270 and consumer 280) are able to communicate with each other in accordance with agreed upon parameters. - Implementations described herein also provide operational automation for service providers and customers when communicating over a network. For example, security related processing, compatibility related processing, accounting related processing, auditing related processing and monitoring related processing may be performed by
management hub 150 that allows both providers and consumers to simplify their processing. - The foregoing description of exemplary implementations provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. For example, various features have been described above with respect to components in
management hub 150. In some implementations, the functions performed by some of these components may be performed by other components. In other implementations, the functions described as being performed by multiple components may be performed by a single component. - In addition, while the transaction described above focused on a single provider and a single consumer, it should be understood that a large number of providers and consumers may interact via
management hub 150. Further, a communication session involving a single request from one entity (i.e., consumer 280) to another entity (i.e., provider 270) and the reply message has been described above. It should be understood that a typical communication session or request for service, information, etc., may involve multiple communications between the entities. In each case,management hub 150 may perform processing to facilitate the multiple communications and also store transaction information associated with each communication. - In addition, while series of acts have been described with respect to FIGS. 4 and 5A-5C, the order of the acts may be varied in other implementations. Moreover, non-dependent acts may be implemented in parallel.
- It will be apparent that various features described above may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement the various features is not limiting of the invention. Thus, the operation and behavior of the aspects of the invention were described without reference to the specific software code—it being understood that one would be able to design software and control hardware to implement the various features based on the description herein.
- Further, certain portions of the invention may be implemented as “logic” that performs one or more functions. This logic may include hardware, such as a processor, a microprocessor, an application specific integrated circuit, or a field programmable gate array, software, or a combination of hardware and software.
- No element, act, or instruction used in the description of the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/754,676 US20080301053A1 (en) | 2007-05-29 | 2007-05-29 | Service broker |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/754,676 US20080301053A1 (en) | 2007-05-29 | 2007-05-29 | Service broker |
Publications (1)
Publication Number | Publication Date |
---|---|
US20080301053A1 true US20080301053A1 (en) | 2008-12-04 |
Family
ID=40089376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/754,676 Abandoned US20080301053A1 (en) | 2007-05-29 | 2007-05-29 | Service broker |
Country Status (1)
Country | Link |
---|---|
US (1) | US20080301053A1 (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050251556A1 (en) * | 2004-05-07 | 2005-11-10 | International Business Machines Corporation | Continuous feedback-controlled deployment of message transforms in a distributed messaging system |
US20050268146A1 (en) * | 2004-05-14 | 2005-12-01 | International Business Machines Corporation | Recovery in a distributed stateful publish-subscribe system |
US20070297327A1 (en) * | 2006-06-27 | 2007-12-27 | International Business Machines Corporation | Method for applying stochastic control optimization for messaging systems |
US20080209440A1 (en) * | 2004-05-07 | 2008-08-28 | Roman Ginis | Distributed messaging system supporting stateful subscriptions |
US20100057896A1 (en) * | 2008-08-29 | 2010-03-04 | Bank Of America Corp. | Vendor gateway technology |
US20100325252A1 (en) * | 2009-06-18 | 2010-12-23 | Software Ag | Broker system for a plurality of brokers, clients and servers in a heterogeneous network |
US20150089046A1 (en) * | 2013-09-26 | 2015-03-26 | Avaya Inc. | Providing network management based on monitoring quality of service (qos) characteristics of web real-time communications (webrtc) interactive flows, and related methods, systems, and computer-readable media |
US9923773B2 (en) | 2015-06-04 | 2018-03-20 | Cisco Technology, Inc. | Dynamic, broker-based virtual service platform (VSP) engagement for computer networks |
US20220272032A1 (en) * | 2017-06-30 | 2022-08-25 | Cisco Technology, Inc. | Malleable routing for data packets |
Citations (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4977455A (en) * | 1988-07-15 | 1990-12-11 | Insight Telecast, Inc. | System and process for VCR scheduling |
US5151789A (en) * | 1989-10-30 | 1992-09-29 | Insight Telecast, Inc. | System and method for automatic, unattended recording of cable television programs |
US5253066A (en) * | 1989-06-01 | 1993-10-12 | Vogel Peter S | TV recording and viewing control system |
US5307173A (en) * | 1988-12-23 | 1994-04-26 | Gemstar Development Corporation | Apparatus and method using compressed codes for television program record scheduling |
US5335079A (en) * | 1988-12-23 | 1994-08-02 | Gemstar Development Corporation | Apparatus and method using compressed codes for recorder preprogramming |
US5353121A (en) * | 1989-10-30 | 1994-10-04 | Starsight Telecast, Inc. | Television schedule system |
US5382983A (en) * | 1993-07-29 | 1995-01-17 | Kwoh; Daniel S. | Apparatus and method for total parental control of television use |
US5479266A (en) * | 1990-09-10 | 1995-12-26 | Starsight Telecast Inc. | User interface for television schedule system |
US5499103A (en) * | 1993-10-20 | 1996-03-12 | E Guide, Inc. | Apparatus for an electronic guide with video clips |
US5512963A (en) * | 1995-01-05 | 1996-04-30 | Mankovitz; Roy J. | Apparatus and methods for providing combining multiple video sources |
US5515173A (en) * | 1993-03-05 | 1996-05-07 | Gemstar Developement Corporation | System and method for automatically recording television programs in television systems with tuners external to video recorders |
US5532732A (en) * | 1988-12-23 | 1996-07-02 | Gemstar Development Corporation | Apparatus and methods for using compressed codes for monitoring television program viewing |
US5541738A (en) * | 1994-04-12 | 1996-07-30 | E. Guide, Inc. | Electronic program guide |
US5550576A (en) * | 1995-04-17 | 1996-08-27 | Starsight Telecast Incorporated | Method and apparatus for merging television program schedule information received from multiple television schedule information sources |
US5553123A (en) * | 1994-06-09 | 1996-09-03 | Gemstar Development Corporation | Method for downloading setup data via telephone to an appliance controller |
US5559550A (en) * | 1995-03-01 | 1996-09-24 | Gemstar Development Corporation | Apparatus and methods for synchronizing a clock to a network clock |
US5600711A (en) * | 1994-05-03 | 1997-02-04 | Yuen; Henry C. | Apparatus and methods for providing initializing settings to an appliance |
US5619274A (en) * | 1990-09-10 | 1997-04-08 | Starsight Telecast, Inc. | Television schedule information transmission and utilization system and process |
US5640484A (en) * | 1993-10-20 | 1997-06-17 | E. Guide, Inc. | Switch for automatic selection of television signal sources for delivery of television guide data |
US5701383A (en) * | 1994-05-20 | 1997-12-23 | Gemstar Development Corporation | Video time-shifting apparatus |
US5706145A (en) * | 1994-08-25 | 1998-01-06 | Hindman; Carl L. | Apparatus and methods for audio tape indexing with data signals recorded in the guard band |
US5727060A (en) * | 1989-10-30 | 1998-03-10 | Starsight Telecast, Inc. | Television schedule system |
US5790198A (en) * | 1990-09-10 | 1998-08-04 | Starsight Telecast, Inc. | Television schedule information transmission and utilization system and process |
US5801787A (en) * | 1996-06-14 | 1998-09-01 | Starsight Telecast, Inc. | Television schedule system and method of operation for multiple program occurrences |
US5808608A (en) * | 1990-09-10 | 1998-09-15 | Starsight Telecast, Inc. | Background television schedule system |
US5812205A (en) * | 1994-05-04 | 1998-09-22 | Starsight Telecast Incorporated | Automatic time set in a television system |
US5828945A (en) * | 1995-04-17 | 1998-10-27 | Starsight Telecast, Inc. | Merging multi-source information in a television system |
US5870150A (en) * | 1995-08-30 | 1999-02-09 | Gemstar Development Corporation | Television guide reader and programmer |
US5886746A (en) * | 1994-12-13 | 1999-03-23 | Gemstar Development Corporation | Method for channel scanning |
US5915026A (en) * | 1994-12-23 | 1999-06-22 | Gemstar Development Corporation | System and method for programming electronic devices from a remote site |
US5940073A (en) * | 1996-05-03 | 1999-08-17 | Starsight Telecast Inc. | Method and system for displaying other information in a TV program guide |
US5969748A (en) * | 1996-05-29 | 1999-10-19 | Starsight Telecast, Inc. | Television schedule system with access control |
US5974222A (en) * | 1988-12-23 | 1999-10-26 | Gemstar Development Corporation | Apparatus and method using compressed codes for scheduling broadcast information recording |
US5991498A (en) * | 1991-05-24 | 1999-11-23 | Starsight Telecast, Inc. | VCR programming system |
US5988078A (en) * | 1991-12-04 | 1999-11-23 | Gemstar Development Corp. | Method and apparatus for receiving customized television programming information by transmitting geographic location to a service provider through a wide-area network |
US6002394A (en) * | 1995-10-02 | 1999-12-14 | Starsight Telecast, Inc. | Systems and methods for linking television viewers with advertisers and broadcasters |
US6016141A (en) * | 1997-10-06 | 2000-01-18 | United Video Properties, Inc. | Interactive television program guide system with pay program package promotion |
US6028599A (en) * | 1994-08-31 | 2000-02-22 | Yuen; Henry C. | Database for use in method and apparatus for displaying television programs and related text |
US6049652A (en) * | 1988-12-23 | 2000-04-11 | Gemstar Development Corporation | Apparatus and method using compressed codes for recorder preprogramming |
US6052145A (en) * | 1995-01-05 | 2000-04-18 | Gemstar Development Corporation | System and method for controlling the broadcast and recording of television programs and for distributing information to be displayed on a television screen |
US6075575A (en) * | 1995-10-02 | 2000-06-13 | Starsight Telecast, Inc. | Remote control device and method for using television schedule information |
US6075551A (en) * | 1997-07-08 | 2000-06-13 | United Video Properties, Inc. | Video promotion system with flexible local insertion capabilities |
US6078348A (en) * | 1996-06-17 | 2000-06-20 | Starsight Telecast Inc. | Television schedule system with enhanced features |
US6118492A (en) * | 1996-08-14 | 2000-09-12 | Starsight Telecast, Inc. | Guide system and method of operation |
US6133909A (en) * | 1996-06-13 | 2000-10-17 | Starsight Telecast, Inc. | Method and apparatus for searching a guide using program characteristics |
US6137950A (en) * | 1991-10-23 | 2000-10-24 | Gemstar Development Corporation | Bar code matrix television calendar |
US6151059A (en) * | 1996-08-06 | 2000-11-21 | Starsight Telecast, Inc. | Electronic program guide with interactive areas |
US6177931B1 (en) * | 1996-12-19 | 2001-01-23 | Index Systems, Inc. | Systems and methods for displaying and recording control interface with television programs, video, advertising information and program scheduling information |
US6262722B1 (en) * | 1997-07-08 | 2001-07-17 | United Video Properties, Inc. | Interactive program guide navigator menu system |
US20010029610A1 (en) * | 2000-02-01 | 2001-10-11 | Corvin Johnny B. | Systems and methods for providing promotions with recorded programs |
US6323911B1 (en) * | 1995-10-02 | 2001-11-27 | Starsight Telecast, Inc. | System and method for using television schedule information |
US20010047298A1 (en) * | 2000-03-31 | 2001-11-29 | United Video Properties,Inc. | System and method for metadata-linked advertisements |
US20010054181A1 (en) * | 2000-02-01 | 2001-12-20 | Corvin Johnny B. | Methods and systems for forced advertisi |
US6341195B1 (en) * | 1994-12-28 | 2002-01-22 | E-Guide, Inc. | Apparatus and methods for a television on-screen guide |
US6388714B1 (en) * | 1995-10-02 | 2002-05-14 | Starsight Telecast Inc | Interactive computer system for providing television schedule information |
US6396546B1 (en) * | 1994-05-20 | 2002-05-28 | United Video Properties, Inc. | Electronic television program guide schedule system and method |
US20020073424A1 (en) * | 1996-12-19 | 2002-06-13 | Eguide, Inc. | System and method for modifying advertisement responsive to EPG information |
US6430359B1 (en) * | 1988-12-23 | 2002-08-06 | Gemstar Development Corporation | Apparatus and method using compressed codes for television program record scheduling |
US6430358B1 (en) * | 1988-12-23 | 2002-08-06 | Gemstar Development Corporation | Universal remote including apparatus using compressed codes for video recorder control |
US20030079120A1 (en) * | 1999-06-08 | 2003-04-24 | Tina Hearn | Web environment access control |
US6587946B1 (en) * | 1998-12-29 | 2003-07-01 | Lucent Technologies Inc. | Method and system for quorum controlled asymmetric proxy encryption |
US20030154260A1 (en) * | 2002-02-13 | 2003-08-14 | Mebane Cummins Aiken | Computer-implemented data messaging ring |
US20030204741A1 (en) * | 2002-04-26 | 2003-10-30 | Isadore Schoen | Secure PKI proxy and method for instant messaging clients |
US20040054723A1 (en) * | 2002-09-17 | 2004-03-18 | Umeshwar Dayal | Method and system for peer to peer common channel collaboration |
US20040255048A1 (en) * | 2001-08-01 | 2004-12-16 | Etai Lev Ran | Virtual file-sharing network |
US6968571B2 (en) * | 1997-09-26 | 2005-11-22 | Mci, Inc. | Secure customer interface for web based data management |
US20050289096A1 (en) * | 2004-06-23 | 2005-12-29 | Nokia Corporation | Method, system and computer program to enable SIP event-based discovery of services and content within a community built on context information |
US20060020660A1 (en) * | 2004-07-20 | 2006-01-26 | Vishwa Prasad | Proxy and cache architecture for document storage |
US20060020499A1 (en) * | 2004-07-26 | 2006-01-26 | Jethender Aitipamula | Asset visibility management system with event correlator |
US20060021019A1 (en) * | 2004-07-21 | 2006-01-26 | International Business Machines Corporation | Method and system for federated provisioning |
US20060031558A1 (en) * | 2002-01-29 | 2006-02-09 | Antonio Ortega | Method and system for delivering media data |
US20060041518A1 (en) * | 2004-08-21 | 2006-02-23 | Blair William R | Supplier capability methods, systems, and apparatuses for extended commerce |
US7050423B2 (en) * | 2000-08-07 | 2006-05-23 | Sbc Technology Resources, Inc. | Multiservice use of network connection capability |
US20060112433A1 (en) * | 2004-05-25 | 2006-05-25 | Mcisaac Joseph | System and method for controlling access to an electronic message recipient |
US7120666B2 (en) * | 2002-10-30 | 2006-10-10 | Riverbed Technology, Inc. | Transaction accelerator for client-server communication systems |
US7133846B1 (en) * | 1995-02-13 | 2006-11-07 | Intertrust Technologies Corp. | Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management |
US20060259957A1 (en) * | 2004-11-04 | 2006-11-16 | Tam Chung M | System and method for creating a secure trusted social network |
US20070159972A1 (en) * | 2004-03-09 | 2007-07-12 | Karl Lanzinger | Device and method for billing connections that are routed via a packet network |
US7616962B2 (en) * | 2006-06-07 | 2009-11-10 | Cisco Technology, Inc. | QoS support for VoIP and streaming services |
US7966404B2 (en) * | 2000-04-20 | 2011-06-21 | Telefonaktiebolaget L M Ericsson (Publ) | Proxy apparatus and method |
-
2007
- 2007-05-29 US US11/754,676 patent/US20080301053A1/en not_active Abandoned
Patent Citations (104)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4977455B1 (en) * | 1988-07-15 | 1993-04-13 | System and process for vcr scheduling | |
US5809204A (en) * | 1988-07-15 | 1998-09-15 | Starsight Telecast, Inc. | User interface for television schedule system |
US4977455A (en) * | 1988-07-15 | 1990-12-11 | Insight Telecast, Inc. | System and process for VCR scheduling |
US6430358B1 (en) * | 1988-12-23 | 2002-08-06 | Gemstar Development Corporation | Universal remote including apparatus using compressed codes for video recorder control |
US6091882A (en) * | 1988-12-23 | 2000-07-18 | Gemstar Development Corporation | Apparatus and method using compressed codes for recorder preprogramming |
US5307173A (en) * | 1988-12-23 | 1994-04-26 | Gemstar Development Corporation | Apparatus and method using compressed codes for television program record scheduling |
US5335079A (en) * | 1988-12-23 | 1994-08-02 | Gemstar Development Corporation | Apparatus and method using compressed codes for recorder preprogramming |
US5532732A (en) * | 1988-12-23 | 1996-07-02 | Gemstar Development Corporation | Apparatus and methods for using compressed codes for monitoring television program viewing |
US6049652A (en) * | 1988-12-23 | 2000-04-11 | Gemstar Development Corporation | Apparatus and method using compressed codes for recorder preprogramming |
US5974222A (en) * | 1988-12-23 | 1999-10-26 | Gemstar Development Corporation | Apparatus and method using compressed codes for scheduling broadcast information recording |
US5970206A (en) * | 1988-12-23 | 1999-10-19 | Gemstar Development Corporation | Television calendar and method for creating same |
US6430359B1 (en) * | 1988-12-23 | 2002-08-06 | Gemstar Development Corporation | Apparatus and method using compressed codes for television program record scheduling |
US5253066A (en) * | 1989-06-01 | 1993-10-12 | Vogel Peter S | TV recording and viewing control system |
US5253066C1 (en) * | 1989-06-01 | 2001-05-22 | United Video Properties Inc | Tv recording and viewing control system |
US5532754A (en) * | 1989-10-30 | 1996-07-02 | Starsight Telecast Inc. | Background television schedule system |
US5353121A (en) * | 1989-10-30 | 1994-10-04 | Starsight Telecast, Inc. | Television schedule system |
US5727060A (en) * | 1989-10-30 | 1998-03-10 | Starsight Telecast, Inc. | Television schedule system |
US5151789A (en) * | 1989-10-30 | 1992-09-29 | Insight Telecast, Inc. | System and method for automatic, unattended recording of cable television programs |
US5479266A (en) * | 1990-09-10 | 1995-12-26 | Starsight Telecast Inc. | User interface for television schedule system |
US6216265B1 (en) * | 1990-09-10 | 2001-04-10 | Starsight Telecast, Inc. | System and method for transmitting and utilizing electronic program guide information |
US5619274A (en) * | 1990-09-10 | 1997-04-08 | Starsight Telecast, Inc. | Television schedule information transmission and utilization system and process |
US5479268A (en) * | 1990-09-10 | 1995-12-26 | Starsight Telecast Inc. | User interface for television schedule system |
US5949954A (en) * | 1990-09-10 | 1999-09-07 | Starsight Telecast, Inc. | System and process for control of recording and reproducing apparatus |
US6167188A (en) * | 1990-09-10 | 2000-12-26 | Starsight Telecast, Inc. | User interface for television schedule system |
US5808608A (en) * | 1990-09-10 | 1998-09-15 | Starsight Telecast, Inc. | Background television schedule system |
US5790198A (en) * | 1990-09-10 | 1998-08-04 | Starsight Telecast, Inc. | Television schedule information transmission and utilization system and process |
US5991498A (en) * | 1991-05-24 | 1999-11-23 | Starsight Telecast, Inc. | VCR programming system |
US6137950A (en) * | 1991-10-23 | 2000-10-24 | Gemstar Development Corporation | Bar code matrix television calendar |
US5988078A (en) * | 1991-12-04 | 1999-11-23 | Gemstar Development Corp. | Method and apparatus for receiving customized television programming information by transmitting geographic location to a service provider through a wide-area network |
US5987213A (en) * | 1993-03-05 | 1999-11-16 | Gemstar Development Corporation | System and method for automatically recording television programs in television systems with tuners external to video recorders |
US5515173A (en) * | 1993-03-05 | 1996-05-07 | Gemstar Developement Corporation | System and method for automatically recording television programs in television systems with tuners external to video recorders |
US5382983A (en) * | 1993-07-29 | 1995-01-17 | Kwoh; Daniel S. | Apparatus and method for total parental control of television use |
US5499103A (en) * | 1993-10-20 | 1996-03-12 | E Guide, Inc. | Apparatus for an electronic guide with video clips |
US5640484A (en) * | 1993-10-20 | 1997-06-17 | E. Guide, Inc. | Switch for automatic selection of television signal sources for delivery of television guide data |
US5734786A (en) * | 1993-10-20 | 1998-03-31 | E Guide, Inc. | Apparatus and methods for deriving a television guide from audio signals |
US5541738A (en) * | 1994-04-12 | 1996-07-30 | E. Guide, Inc. | Electronic program guide |
US5600711A (en) * | 1994-05-03 | 1997-02-04 | Yuen; Henry C. | Apparatus and methods for providing initializing settings to an appliance |
US5812205A (en) * | 1994-05-04 | 1998-09-22 | Starsight Telecast Incorporated | Automatic time set in a television system |
US5701383A (en) * | 1994-05-20 | 1997-12-23 | Gemstar Development Corporation | Video time-shifting apparatus |
US6396546B1 (en) * | 1994-05-20 | 2002-05-28 | United Video Properties, Inc. | Electronic television program guide schedule system and method |
US5553123A (en) * | 1994-06-09 | 1996-09-03 | Gemstar Development Corporation | Method for downloading setup data via telephone to an appliance controller |
US5706145A (en) * | 1994-08-25 | 1998-01-06 | Hindman; Carl L. | Apparatus and methods for audio tape indexing with data signals recorded in the guard band |
US6239794B1 (en) * | 1994-08-31 | 2001-05-29 | E Guide, Inc. | Method and system for simultaneously displaying a television program and information about the program |
US6028599A (en) * | 1994-08-31 | 2000-02-22 | Yuen; Henry C. | Database for use in method and apparatus for displaying television programs and related text |
US5886746A (en) * | 1994-12-13 | 1999-03-23 | Gemstar Development Corporation | Method for channel scanning |
US5915026A (en) * | 1994-12-23 | 1999-06-22 | Gemstar Development Corporation | System and method for programming electronic devices from a remote site |
US6341195B1 (en) * | 1994-12-28 | 2002-01-22 | E-Guide, Inc. | Apparatus and methods for a television on-screen guide |
US6052145A (en) * | 1995-01-05 | 2000-04-18 | Gemstar Development Corporation | System and method for controlling the broadcast and recording of television programs and for distributing information to be displayed on a television screen |
US5512963A (en) * | 1995-01-05 | 1996-04-30 | Mankovitz; Roy J. | Apparatus and methods for providing combining multiple video sources |
US7133846B1 (en) * | 1995-02-13 | 2006-11-07 | Intertrust Technologies Corp. | Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management |
US5559550A (en) * | 1995-03-01 | 1996-09-24 | Gemstar Development Corporation | Apparatus and methods for synchronizing a clock to a network clock |
US5684525A (en) * | 1995-04-17 | 1997-11-04 | Starsight Telecast Incorporated | Merging multi-source information in a television system |
US6072983A (en) * | 1995-04-17 | 2000-06-06 | Starsight Telecast, Inc. | Merging multi-source information in a television system |
US5923362A (en) * | 1995-04-17 | 1999-07-13 | Starsight Telecast, Inc. | Merging multi-source information in a television system |
US5828945A (en) * | 1995-04-17 | 1998-10-27 | Starsight Telecast, Inc. | Merging multi-source information in a television system |
US5550576A (en) * | 1995-04-17 | 1996-08-27 | Starsight Telecast Incorporated | Method and apparatus for merging television program schedule information received from multiple television schedule information sources |
US5870150A (en) * | 1995-08-30 | 1999-02-09 | Gemstar Development Corporation | Television guide reader and programmer |
US6075575A (en) * | 1995-10-02 | 2000-06-13 | Starsight Telecast, Inc. | Remote control device and method for using television schedule information |
US6263501B1 (en) * | 1995-10-02 | 2001-07-17 | Star Sight | Systems and methods for linking television viewers with advertisers and broadcasters |
US6388714B1 (en) * | 1995-10-02 | 2002-05-14 | Starsight Telecast Inc | Interactive computer system for providing television schedule information |
US6002394A (en) * | 1995-10-02 | 1999-12-14 | Starsight Telecast, Inc. | Systems and methods for linking television viewers with advertisers and broadcasters |
US6323911B1 (en) * | 1995-10-02 | 2001-11-27 | Starsight Telecast, Inc. | System and method for using television schedule information |
US5940073A (en) * | 1996-05-03 | 1999-08-17 | Starsight Telecast Inc. | Method and system for displaying other information in a TV program guide |
US5969748A (en) * | 1996-05-29 | 1999-10-19 | Starsight Telecast, Inc. | Television schedule system with access control |
US6144401A (en) * | 1996-05-29 | 2000-11-07 | Starsight Telecast, Inc. | Television schedule system with access control |
US6133909A (en) * | 1996-06-13 | 2000-10-17 | Starsight Telecast, Inc. | Method and apparatus for searching a guide using program characteristics |
US6247176B1 (en) * | 1996-06-14 | 2001-06-12 | Starsight Telecast, Inc. | Television schedule system and method of operation for multiple program occurrences |
US5959688A (en) * | 1996-06-14 | 1999-09-28 | Starsight Telecast, Inc. | Television schedule system and method of operation for multiple program occurences |
US5801787A (en) * | 1996-06-14 | 1998-09-01 | Starsight Telecast, Inc. | Television schedule system and method of operation for multiple program occurrences |
US6341374B2 (en) * | 1996-06-14 | 2002-01-22 | Starsight Telecast. Inc. | Television schedule system and method of operation for multiple program occurrences |
US6078348A (en) * | 1996-06-17 | 2000-06-20 | Starsight Telecast Inc. | Television schedule system with enhanced features |
US6412110B1 (en) * | 1996-08-06 | 2002-06-25 | Starsight Telecast, Inc. | Electronic program guide with interactive areas |
US6151059A (en) * | 1996-08-06 | 2000-11-21 | Starsight Telecast, Inc. | Electronic program guide with interactive areas |
US6118492A (en) * | 1996-08-14 | 2000-09-12 | Starsight Telecast, Inc. | Guide system and method of operation |
US6177931B1 (en) * | 1996-12-19 | 2001-01-23 | Index Systems, Inc. | Systems and methods for displaying and recording control interface with television programs, video, advertising information and program scheduling information |
US20020073424A1 (en) * | 1996-12-19 | 2002-06-13 | Eguide, Inc. | System and method for modifying advertisement responsive to EPG information |
US6075551A (en) * | 1997-07-08 | 2000-06-13 | United Video Properties, Inc. | Video promotion system with flexible local insertion capabilities |
US6262722B1 (en) * | 1997-07-08 | 2001-07-17 | United Video Properties, Inc. | Interactive program guide navigator menu system |
US20060098583A1 (en) * | 1997-09-26 | 2006-05-11 | Worldcom, Inc. | Integrated customer web station for web based call management |
US6968571B2 (en) * | 1997-09-26 | 2005-11-22 | Mci, Inc. | Secure customer interface for web based data management |
US6016141A (en) * | 1997-10-06 | 2000-01-18 | United Video Properties, Inc. | Interactive television program guide system with pay program package promotion |
US6587946B1 (en) * | 1998-12-29 | 2003-07-01 | Lucent Technologies Inc. | Method and system for quorum controlled asymmetric proxy encryption |
US20030079120A1 (en) * | 1999-06-08 | 2003-04-24 | Tina Hearn | Web environment access control |
US20010029610A1 (en) * | 2000-02-01 | 2001-10-11 | Corvin Johnny B. | Systems and methods for providing promotions with recorded programs |
US20010054181A1 (en) * | 2000-02-01 | 2001-12-20 | Corvin Johnny B. | Methods and systems for forced advertisi |
US20010047298A1 (en) * | 2000-03-31 | 2001-11-29 | United Video Properties,Inc. | System and method for metadata-linked advertisements |
US7966404B2 (en) * | 2000-04-20 | 2011-06-21 | Telefonaktiebolaget L M Ericsson (Publ) | Proxy apparatus and method |
US7050423B2 (en) * | 2000-08-07 | 2006-05-23 | Sbc Technology Resources, Inc. | Multiservice use of network connection capability |
US7139811B2 (en) * | 2001-08-01 | 2006-11-21 | Actona Technologies Ltd. | Double-proxy remote data access system |
US20040255048A1 (en) * | 2001-08-01 | 2004-12-16 | Etai Lev Ran | Virtual file-sharing network |
US20060031558A1 (en) * | 2002-01-29 | 2006-02-09 | Antonio Ortega | Method and system for delivering media data |
US20030154260A1 (en) * | 2002-02-13 | 2003-08-14 | Mebane Cummins Aiken | Computer-implemented data messaging ring |
US20030204741A1 (en) * | 2002-04-26 | 2003-10-30 | Isadore Schoen | Secure PKI proxy and method for instant messaging clients |
US20040054723A1 (en) * | 2002-09-17 | 2004-03-18 | Umeshwar Dayal | Method and system for peer to peer common channel collaboration |
US7120666B2 (en) * | 2002-10-30 | 2006-10-10 | Riverbed Technology, Inc. | Transaction accelerator for client-server communication systems |
US20070159972A1 (en) * | 2004-03-09 | 2007-07-12 | Karl Lanzinger | Device and method for billing connections that are routed via a packet network |
US20060112433A1 (en) * | 2004-05-25 | 2006-05-25 | Mcisaac Joseph | System and method for controlling access to an electronic message recipient |
US20050289096A1 (en) * | 2004-06-23 | 2005-12-29 | Nokia Corporation | Method, system and computer program to enable SIP event-based discovery of services and content within a community built on context information |
US20060020660A1 (en) * | 2004-07-20 | 2006-01-26 | Vishwa Prasad | Proxy and cache architecture for document storage |
US20060021019A1 (en) * | 2004-07-21 | 2006-01-26 | International Business Machines Corporation | Method and system for federated provisioning |
US20060020499A1 (en) * | 2004-07-26 | 2006-01-26 | Jethender Aitipamula | Asset visibility management system with event correlator |
US20060041518A1 (en) * | 2004-08-21 | 2006-02-23 | Blair William R | Supplier capability methods, systems, and apparatuses for extended commerce |
US20060259957A1 (en) * | 2004-11-04 | 2006-11-16 | Tam Chung M | System and method for creating a secure trusted social network |
US7616962B2 (en) * | 2006-06-07 | 2009-11-10 | Cisco Technology, Inc. | QoS support for VoIP and streaming services |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7962646B2 (en) | 2004-05-07 | 2011-06-14 | International Business Machines Corporation | Continuous feedback-controlled deployment of message transforms in a distributed messaging system |
US20080209440A1 (en) * | 2004-05-07 | 2008-08-28 | Roman Ginis | Distributed messaging system supporting stateful subscriptions |
US20080244025A1 (en) * | 2004-05-07 | 2008-10-02 | Roman Ginis | Continuous feedback-controlled deployment of message transforms in a distributed messaging system |
US20050251556A1 (en) * | 2004-05-07 | 2005-11-10 | International Business Machines Corporation | Continuous feedback-controlled deployment of message transforms in a distributed messaging system |
US8533742B2 (en) | 2004-05-07 | 2013-09-10 | International Business Machines Corporation | Distributed messaging system supporting stateful subscriptions |
US20050268146A1 (en) * | 2004-05-14 | 2005-12-01 | International Business Machines Corporation | Recovery in a distributed stateful publish-subscribe system |
US7886180B2 (en) | 2004-05-14 | 2011-02-08 | International Business Machines Corporation | Recovery in a distributed stateful publish-subscribe system |
US20070297327A1 (en) * | 2006-06-27 | 2007-12-27 | International Business Machines Corporation | Method for applying stochastic control optimization for messaging systems |
US20080239951A1 (en) * | 2006-06-27 | 2008-10-02 | Robert Evan Strom | Method for applying stochastic control optimization for messaging systems |
US7792038B2 (en) | 2006-06-27 | 2010-09-07 | International Business Machines Corporation | Method for applying stochastic control optimization for messaging systems |
US8868706B2 (en) * | 2008-08-29 | 2014-10-21 | Bank Of America Corporation | Vendor gateway technology |
US20100057896A1 (en) * | 2008-08-29 | 2010-03-04 | Bank Of America Corp. | Vendor gateway technology |
US20100325252A1 (en) * | 2009-06-18 | 2010-12-23 | Software Ag | Broker system for a plurality of brokers, clients and servers in a heterogeneous network |
US9292355B2 (en) * | 2009-06-18 | 2016-03-22 | Software Ag | Broker system for a plurality of brokers, clients and servers in a heterogeneous network |
US20150089046A1 (en) * | 2013-09-26 | 2015-03-26 | Avaya Inc. | Providing network management based on monitoring quality of service (qos) characteristics of web real-time communications (webrtc) interactive flows, and related methods, systems, and computer-readable media |
US10225212B2 (en) * | 2013-09-26 | 2019-03-05 | Avaya Inc. | Providing network management based on monitoring quality of service (QOS) characteristics of web real-time communications (WEBRTC) interactive flows, and related methods, systems, and computer-readable media |
US9923773B2 (en) | 2015-06-04 | 2018-03-20 | Cisco Technology, Inc. | Dynamic, broker-based virtual service platform (VSP) engagement for computer networks |
US20220272032A1 (en) * | 2017-06-30 | 2022-08-25 | Cisco Technology, Inc. | Malleable routing for data packets |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9794298B2 (en) | Method, system, and computer program product for facilitating communication in an interoperability network | |
US20080301053A1 (en) | Service broker | |
US10425465B1 (en) | Hybrid cloud API management | |
US11665082B2 (en) | Sandbox environment for testing integration between a content provider origin and a content delivery network | |
US8239520B2 (en) | Network service operational status monitoring | |
US20160164890A1 (en) | Techniques for sharing network security event information | |
US20080133729A1 (en) | System and method for managing domain policy for interconnected communication networks | |
JP2007089199A (en) | Third party access gateway for communication service | |
US20190116186A1 (en) | Enterprise cloud access control and network access control policy using risk based blocking | |
US20090154699A1 (en) | Network-based data exchange | |
TWI416923B (en) | Secure data communications in web services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: VERIZON SERVICES ORGANIZATION INC., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TSERKOVNY, ALEX;HERSHEY, ANTOINETTE F.;ANTELL, THOMAS J.;AND OTHERS;REEL/FRAME:019351/0497;SIGNING DATES FROM 20070518 TO 20070525 |
|
AS | Assignment |
Owner name: VERIZON PATENT AND LICENSING INC., NEW JERSEY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:VERIZON SERVICES ORGANIZATION INC.;REEL/FRAME:023455/0919 Effective date: 20090801 Owner name: VERIZON PATENT AND LICENSING INC.,NEW JERSEY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:VERIZON SERVICES ORGANIZATION INC.;REEL/FRAME:023455/0919 Effective date: 20090801 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |