throbber
WhatsApp's Exhibit No. 1107
`Page 1
`
`

`
`WhatsApp's Exhibit No. 1107
`Page 2
`
`

`
`wo 02/44828
`
`PCT/ILOl/01096
`
`SYSTEM AND METHOD FOR MEDIA STREAM ADAPTATION
`
`FIELD OF THE INVENTION
`
`The present invention relates to media server output, more specifically to
`
`5
`
`adjusting the parameters (e.g., bandwidth) of such output dynamically and
`
`intelligently depending on the needs and capabilities of system components.
`
`BACKGROUND OF THE INVENTION
`
`In data streaming, data streams are typically sent from a server to a client
`
`10
`
`endpoint. Streaming data may include, for example, any data transmittable from a
`
`server to a client in a continuous stream. Data which is commonly streamed
`
`includes data such as voice and video data, although other data may be streamed.
`
`There are many types of endpoints or clients accepting streamed data, for example
`
`cellular telephones and video players on personal computers (PCs). Typically,
`
`15
`
`streaming data is transmitted by a network or series of networks. Components such
`
`as software components or hardware components such as routers may be involved in
`
`the delivery of streaming data. Each component may have different throughput or
`
`other capabilities. For example, a component such as a network segment may be
`
`able to handle only a certain bandwidth. Such capabilities may change over time -
`
`20
`
`for example, the bandwidth that is available on a network segment may change with
`
`time.
`
`Current streaming methods may require multiple streams, each having different
`
`parameters, to be sent from a server, according to the different types of network
`
`components and clients. For example, a server streaming a video presentation may
`
`25
`
`have to send one stream for a device or set of devices having certain video
`
`decompression and display capabilities, and another stream for a device or set of
`
`devices having a different set of capabilities. If different or changing capabilities
`
`require the server to produce more than one stream or to respond to changes in
`
`capabilities, the load on the server (e.g., its CPU load) may be increased. Increasing
`
`30
`
`this load on the server, which is a single point serving multiple clients, increases the
`
`overall load on the network.
`
`Therefore, a need exists for a system and method which allows data stream to be
`
`WhatsApp's Exhibit No. 1107
`Page 3
`
`

`
`wo 02/44828
`
`PCT/ILOl/01096
`
`manipulated, processed and distributed remotely from the server, to allow for
`
`different client and network capabilities, and to allow for a response to changing
`
`system capabilities without increasing the load on that server.
`
`5
`
`1 o
`
`SUMMARY OF THE INVENTION
`
`Embodiments of a system and method of the present invention accept a set of
`
`configuration parameters relating to components involved in data streaming (e.g.,
`
`clients or network equipment) and transform a data stream in response to such
`
`configuration parameters, transmitting the transformed data stream onward to a
`
`client. In further embodiments, dynamic changes in the configuration parameters
`
`may affect the transformations.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The present invention will be understood and appreciated more fully from the
`
`15
`
`following detailed description taken in conjunction with the drawings in which:
`
`Fig. 1 is a diagram of a network including an embodiment of the present
`
`invention.
`
`Fig. 2 depicts a streaming adapter according to an exemplary embodiment of the
`
`present invention.
`
`20
`
`Fig. 3 is a flowchart showing steps for modifying a data stream according an
`
`embodiment of the present invention.
`
`Fig. 4 is a flowchart showing a portion of the steps for modifying a data stream
`
`according an embodiment of the present invention.
`
`2
`
`WhatsApp's Exhibit No. 1107
`Page 4
`
`

`
`wo 02/44828
`
`PCT/ILOl/01096
`
`DETAILED DESCRIPTION OF THE INVENTION
`
`In the following description, various aspects of the present invention will be
`
`described. For purposes of explanation, specific configurations and details are set
`
`5
`
`forth in order to provide a thorough understanding of the present invention.
`
`However, it will also be apparent to one skilled in the art that the present invention
`
`may be practiced without the specific details presented herein. Furthermore,
`
`well-known features may be omitted or simplified in order not to obscure the present
`
`invention.
`
`10
`
`Fig. 1 is a diagram of a network including an embodiment of the present
`
`invention. Referring to Fig. 1, server 10 transmits streaming data to clients 20.
`
`Server 10 may be any known server streaming data. For example, server 10 may be
`
`a streaming server provided by Optibase, Inc., transmitting video data, but may be
`
`other types of servers transmitting other types of streaming data. Clients 20 may be,
`
`15
`
`for example, a cellular telephone accepting streamed audio or video data, a PC
`
`accepting video data and playing the video data on a video player, or other devices
`
`such as video phones, a large screen display, or devices in moving vehicles. In
`
`alternate embodiments, clients may but may be other types of clients and may accept
`
`other types of streaming data. In an alternate embodiment, a server may be a device
`
`20
`
`both sending and receiving streaming data, such as a videophone or PC with
`
`videoconference capabilities. In such a case, both the server and client (e.g., another
`
`party in the videoconference) may send and receive streaming data.
`
`Various networks may transmit the data. For example, the server 10 may be
`
`included in a server enterprise network 30. The streamed data may be transmitted
`
`25
`
`first by enterprise network 30 and then over the Internet 40. A cellular enterprise
`
`network 50 may accept streamed data for transmission to certain clients. A client
`
`enterprise network 60 may accept data including streamed data for local distribution
`
`to clients 20. A point-of-presence (POP) 70 may provide an access point to the
`
`Internet 40 for various clients 20, accessing the POP 70 via, for example, telephone
`
`30
`
`lines or other methods. The various networks 30, 40, 50 and 60 may include various
`
`components, such as routers, bridges, caches, fiber optic cables, wireless links, and
`
`other known network components. The network configuration provided in the
`
`3
`
`WhatsApp's Exhibit No. 1107
`Page 5
`
`

`
`wo 02/44828
`
`PCT/ILOl/01096
`
`Figures is merely exemplary; embodiments of the system and method of the present
`
`invention may operate with other network configurations or series of networks.
`
`In an exemplary embodiment, each of networks 30, 50 and 60, and POP 70,
`
`include network controllers, respectively network controllers 32, 52, 62 and 72, of
`
`5
`
`known construction, which may help manage and control networks, and may
`
`centralize data collection and command distribution. For example, network
`
`controllers 32, 52, 62 and 72 may be, for example, a Serving GPRS Support Node
`
`(SGSN) supplied by Lucent Technologies or Nokia, or an SIP Proxy server supplied
`
`by Cisco. The function of network controllers 32, 52, 62 and 72 may be spread
`
`1 o
`
`among multiple remotely situated devices. The construction and operation of
`
`network controllers is known, and network controllers may exist in varying forms.
`
`For example, a workstation or PC may be used to control a network, or various
`
`components in one or more locations may be used.
`
`In alternate embodiments,
`
`network controllers need not be used.
`
`15
`
`Streaming adapters 100 may be located at various points between the server
`
`10 and clients 20.
`
`In Fig. 1, streaming adapters 1 00 are shown within server
`
`enterprise network 30, client enterprise network 60 and POP 70. Preferably, a
`
`streaming adapter 100 is located at or near the edge of a network, where that network
`
`interfaces with another network. Preferably, a streaming adapter 100 is located at a
`
`20
`
`network bottleneck, so that data (possibly all data) entering the network may flow
`
`through the streaming adapter 100. Thus the streaming adapter 100 within the server
`
`enterprise network 30 is located near that network's interface with the Internet 40,
`
`and the streaming adapter 1 00 within the client enterprise network 60 is also located
`
`near that network's interface with the Internet 40.
`
`25
`
`In alternate embodiments, a streaming adapter may be located at any other
`
`position. For example, a streaming adapter may be co-located or included within a
`
`server, may be located at a position in a network not near the network's edge, may
`
`be included within or co-located with network equipment such as routers or bridges,
`
`or may be located in other networks, such as the Internet.
`
`30
`
`In an exemplary embodiment, a streaming adapter IS a component or
`
`processor including one or more DSPs which is programmed to include streaming
`
`adapter functionality. Such DSPs may be provided by, for example, Motorola or
`
`4
`
`WhatsApp's Exhibit No. 1107
`Page 6
`
`

`
`wo 02/44828
`
`PCT/ILOl/01096
`
`Texas Instruments.
`
`Such devices may have functionality added by known
`
`programming methods. In alternate embodiments, a streaming adapter may be any
`
`device including streaming adapter functionality. Components which may accept or
`
`be modified for such novel functionality are known. For example, a set of DSPs
`
`5
`
`controlled by an external controller, such as a PC or including a microcontroller may
`
`be used. A router, proxy server, or other network component, a streaming media
`
`server, or other component may include streaming adapter functionality via the
`
`inclusion of components or software providing such functionality. For example, a
`
`card including a set of DSPs and/or compression software and the appropriate
`
`1 o
`
`control software may be included in a network component. In further embodiments,
`
`a streaming adapter may be formed from the combination of multiple separate
`
`components, such as a controller sending remote commands to a DSP or other
`
`device.
`
`Fig. 2 depicts a streaming adapter according to an exemplary embodiment of
`
`15
`
`the present invention.
`
`In an exemplary embodiment, a streaming adapter 100
`
`includes a controller 110, a memory 120, a data converting unit 130, a data I/0 unit
`
`140, and a controller interface 150 providing a connection to a network or networks,
`
`or to other devices. Memory 120 may be, for example, a RAM, and may include
`
`various combinations of components. The data converting unit 130 may be the
`
`20
`
`combination of the controller 110 and software stored in, for example, the memory
`
`120 in a streaming adapter, or may be another unit, for example a digital signal
`
`processor (DSP) unit.
`
`In alternate embodiments, a streaming adapter may be of
`
`different configurations and include different components.
`
`A streaming adapter may communicate with and gather information from
`
`25
`
`various components, such as a server 10, clients 20, and network components,
`
`through various methods. Preferably, a streaming adapter communicates with
`
`components via the networks connecting them, but other methods may be used. In
`
`an exemplary embodiment,
`
`the streaming adapter 1 00 communicates with
`
`components and gathers and requests data using real time control protocol (RTCP),
`
`30
`
`Simple Network Management Protocol (SNMP), and/or possibly other protocols.
`
`A streaming adapter may gather information by receiving information sent
`
`from components either regularly or m response to changing conditions. For
`
`5
`
`WhatsApp's Exhibit No. 1107
`Page 7
`
`

`
`wo 02/44828
`
`PCT/ILOl/01096
`
`example, a network component may periodically transmit information regarding load
`
`and capabilities. A change in client status (e.g., a mobile client changing speed, a
`
`client no longer requiring a data stream, etc.) may be transmitted to the streaming
`
`adapter by a client 20. A network controller, client 20, server 10, or other
`
`5
`
`component may notify the streaming adapter of the addition or deletion of a client
`
`20.
`
`Furthermore, a streaming adapter may gather i;nformation by polling or
`
`otherwise requesting information from components. Information may be received in
`
`other mmmers, for example through other components gathering network or other
`
`information.
`
`For certain components, additional functionality may be added,
`
`1 o
`
`through known methods, allowing the component to transmit configuration
`
`information to the streaming adapter or to allow the streaming adapter to poll the
`
`component.
`
`In an exemplary embodiment, configuration data or information may include
`
`information on the components themselves, such as the bandwidth or current load of
`
`15
`
`individual components or networks, network topologies, the capabilities of servers,
`
`the data format or decompression capabilities of clients, or other information.
`
`Configuration infom1ation may include quality requirements; for example, a certain
`
`client or set of clients may have a minimum quality requirement, where too much
`
`data compression may cause unacceptable quality degradation or information loss.
`
`20
`
`Furthermore, configuration information may include data on load and usage, for
`
`example, which clients are receiving which data streams, which servers are sending
`
`data streams, how those data streams are being modified, and the paths that those
`
`data streams are being sent. Configuration information may include information
`
`sent in a client streaming media request.
`
`25
`
`In a streaming adapter 100 shown in Fig. 2, configuration information may,
`
`for example, be stored in a streaming adapter memory 120.
`
`In alternate
`
`embodiments, the configuration information may be stored in other manners; for
`
`example in a device other than or separate from the streaming adapter.
`
`Configuration information may be accepted at different times. For example,
`
`30
`
`configuration information may be accepted on the initialization or startup of a
`
`streaming adapter. Furthermore, configuration information may be accepted when a
`
`component is added or dropped. For example, when a client requests a data stream,
`
`6
`
`WhatsApp's Exhibit No. 1107
`Page 8
`
`

`
`wo 02/44828
`
`PCT/ILOl/01096
`
`the client, a network controller, or another component, may send configuration
`
`information, including information regarding the nature of the data stream request
`
`and the identity of the client (possibly including location or address information), to
`
`a streaming adapter. Configuration information may be accepted when a component
`
`5
`
`changes; for example, when the load on a network or network component changes.
`
`Configuration information may be pre-programmed into the streaming
`
`adapter, downloaded or sent from an external device, such as the server, or may be
`
`talcen from network components themselves. For example, the streaming adapter
`
`may poll a client or server, requesting information on what type(s) of compression or
`
`10
`
`decompression algorithm(s) the component uses.
`
`In an exemplary embodiment, a streaming adapter 1 00 accepts a data stream
`
`from the server 10 and resends the data stream to one or more clients 20, usually but
`
`not always in modified form. The streaming adapter 100 accepts configuration data
`
`from components such as network components, clients 20, or servers, and may
`
`15
`
`modify the data to suit network, client 20 or other needs.
`
`In an exemplary embodiment, in operation, a client 20 makes a request to a
`
`streaming data server 10. The network controller for the network or system in which
`
`the client 20 is located or through which the client is served preferably intercepts
`
`such streaming data requests.
`
`20
`
`If the streaming data server 10 is not yet streaming the requested data to a
`
`client 20 in the relevant network, the network controller forwards the streaming data
`
`request to the server 1 0 and preferably notifies the relevant streaming adapter 100 of
`
`the request. The network controller may send configuration information, including
`
`information describing the data stream and the client 20 and server 10 identity,
`
`25
`
`location or address, to a streaming adapter 100, and the information may be stored
`
`in, for example, the streaming adapter's memory. The server 10 provides the data
`
`via known methods. For example, a client 20 requests a video clip from the server
`
`1 0, and the server 1 0 streams the data to the address of client 20 using known video
`
`streaming methods. The streaming adapter 100 receives packets entering the
`
`30
`
`network, forwards packets not including streaming data onward, and processes
`
`packets containing streaming data, as discussed below. The processed packets are
`
`sent to the client 20 which displays the data on a video player on the client 20
`
`7
`
`WhatsApp's Exhibit No. 1107
`Page 9
`
`

`
`wo 02/44828
`
`PCT/ILOl/01096
`
`If the streaming data server 1 0 is already streaming the requested data to a
`
`client 20 in the relevant network other than the requesting client 20, the network
`
`controller forwards the streaming data request to the streaming adapter 1 00 which
`
`provides the data stream to the requesting client 20. The streaming adapter 100 may
`
`5
`
`stream a data stream it is receiving to multiple clients 20 at the same time, reducing
`
`the load on both the server 1 0 and the network connections between the server 1 0
`
`and the streaming adapter 100.
`
`In an exemplary embodiment, a streaming adapter 100 may accept multiple
`
`data streams, each having different data, from multiple data servers, and distribute
`
`10
`
`each of those streams to multiple clients 20. A streaming adapter 100 may output
`
`multiple data streams each having different content (each based on a different input
`
`stream) and may output multiple sets of data streams, where each set has the same
`
`content, but within each set each data stream may be sent to a different client or may
`
`have different transcoding, compression, error correction, or other formatting
`
`15
`
`differences.
`
`In alternate embodiments, the system and method of the present invention
`
`may act in different manners. For example, it is not required that a network
`
`controller forward streaming data requests to a streaming adapter.
`
`In other
`
`embodiments, other entities, such as a client or a server, may forward such request to
`
`20
`
`a streaming adapter, or the streaming adapter may detect such requests. A streaming
`
`adapter may serve an area other than an enterprise network; for example, a streaming
`
`adapter may be located near a server. A streaming adapter need not intercept all
`
`packets flowing through the network on which it is located.
`
`Fig. 3 is a flowchart showing steps for modifying a data stream according an
`
`25
`
`embodiment of the present invention.
`
`Referring to Fig. 3, in step 200, the streaming adapter accepts configuration
`
`information.
`
`In step 210, a client makes a streaming data request to a data server.
`
`In step 220, the streaming adapter is notified of the streaming data request.
`
`30
`
`In an exemplary embodiment, the streaming adapter accepts the data request from a
`
`network controller; in alternate embodiments, the streaming adapter may accept a
`
`data request in other manners; for example directly from a client. The client and
`
`8
`
`WhatsApp's Exhibit No. 1107
`Page 10
`
`

`
`wo 02/44828
`
`PCT/ILOl/01096
`
`client configuration data may be known to the streaming adapter from step 200,
`
`above, or may be provided in this step. As discussed above, information regarding
`
`the request may be provided to the streaming adapter by, for example, the client
`
`and/or a network controller.
`
`5
`
`In step 230, the streaming adapter accepts a data stream from a data server.
`
`h1 step 240, the streaming adapter determines whether and how to modify the
`
`data stream.
`
`In various embodiments, various considerations may be used to
`
`determine whether a data stream is to be modified. Preferably, the data stream is
`
`compressed, or has its compression altered, setting the data stream bandwidth so that
`
`I o
`
`it is below a limit or allocation, while allowing the data stream to maintain a
`
`minimum quality requirement. The limit or allocation may be based on network
`
`requirements or capabilities, network load, client parameters, or other information.
`
`In an exemplary embodiment, the streaming adapter considers the current
`
`capabilities of the relevant network and the client requesting the data in determining
`
`15
`
`whether and how to modify the data stream.
`
`In alternate embodiments, other
`
`considerations may be used.
`
`The strean1ing adapter considers the bandwidth requirements and possibly
`
`other characteristics of the data stream, the current load and topologies of the
`
`network or networks which are able to transmit data between the server and client,
`
`20
`
`and the bandwidth of these networks, and determines whether the networks are able
`
`to transmit the data without compression. If not, the data stream is to be modified.
`
`In alternate embodiments, other considerations or parameters based on networks
`
`maybe used.
`
`The streaming adapter considers the various characteristics of the data stream
`
`25
`
`and the capabilities of the client to determine whether the client is able to receive the
`
`data stream un-modified. If not, the data stream is to be modified. Such capabilities
`
`may include, for example, whether or not the client can accept the data stream in the
`
`format (e.g., the compression format, the data format, etc.) as provided to the
`
`streaming adapter by the server, and how many data streams a client may accept.
`
`30
`
`For example, the server may transmit in MPEG-2 format, while the client may only
`
`be able to receive in MPEG-4 format.
`
`In alternate embodiments, other
`
`considerations or parameters based on clients may be used.
`
`9
`
`WhatsApp's Exhibit No. 1107
`Page 11
`
`

`
`wo 02/44828
`
`PCT/ILOl/01096
`
`In step 250, if the data stream is to be modified, the streaming adapter
`
`modifies or transforms the data stream. In an exemplary embodiment, the streaming
`
`adapter determines how much the streaming data should be compressed, based on
`
`the network bandwidth and load for the network components which are to deliver
`
`5
`
`the data to the client, and the bandwidth requirements of the streaming data.
`
`In one
`
`embodiment, an upper bandwidth limit or allocation may be assigned to the data
`
`stream being sent to a particular client. Parameters which may be used to modify the
`
`amount of compression may include, for example, quantifiers or the use of motion
`
`vectors. Further considerations may include any minimum quality requirement or
`
`1 o
`
`compression limitations or capabilities of the client. In an exemplary embodiment,
`
`the streaming adapter may accept a data stream and modify the data stream in
`
`different ways for different clients.
`
`The data stream is modified based on the chosen method. In an exemplary
`
`embodiment, the data stream is transcoded. When used herein, transcoding includes
`
`15
`
`transforming one compression format to another. Other functions than transcoding
`
`may be used- for example, altering data formats or error check capabilities. For
`
`example, a video data stream sent by a server and accepted by a streaming adapter
`
`may be altered from MPEG-2 format and sent to the client in MPEG-4 format. The
`
`streaming adapter inputs the data stream from the server and outputs the modified
`
`20
`
`data stream.
`
`In alternate embodiments, modifications or transformations other than
`
`transcoding may be performed. For example, a streaming adapter may simply
`
`compress the data, or may modify the data format of a stream to be compatible with
`
`one or more clients, may time delay or cache a data stream, or may perform other
`
`25
`
`functions, such as adding error correction capabilities.
`
`In step 260, the streaming adapter sends the output data stream to a client,
`
`through known methods. The client accepts the modified data stream and, for
`
`example, displays or otherwise outputs the data to the user. For example, an audio
`
`program or a video program may be output.
`
`In an exemplary embodiment, the
`
`30
`
`streaming adapter may convert a data streams from a server and transmit the data
`
`stream to multiple clients; the data stream may be modified in different ways for
`
`different clients, or different clients may receive the identical output. Multiple
`
`10
`
`WhatsApp's Exhibit No. 1107
`Page 12
`
`

`
`wo 02/44828
`
`PCT/ILOl/01096
`
`network paths may be used.
`
`In an exemplary embodiment, when deciding if and how to modify data
`
`streams, the streaming adapter takes into account the overall needs of all current
`
`clients, and the overall limitations of the network components used to transmit data
`
`5
`
`to those clients. Furthermore, the modification of data streams to current clients may
`
`be modified based on changing conditions and different clients competing for
`
`resources.
`
`For example, when a new client makes a streaming data request which will
`
`impact network components by increasing the load on those components, the
`
`1 o
`
`streaming adapter may calculate the added load that the network is capable of
`
`absorbing, and use this as a limitation when deciding how to modify the data stream
`
`for the new client. Furthermore, the additional load placed on the network by the
`
`new client may cause the streaming adapter to modify the conversion methods for
`
`existing clients. A new client may lower the bandwidth one or more networks may
`
`15
`
`handle, causing higher data compression to be used for a set of clients. An exiting
`
`client may cause the reverse, a lowering in the amount of data compression used.
`
`The minimum requirements for each client, if existing, may be factored in.
`
`In an alternate embodiment, a streaming adapter may pass streaming data
`
`from two endpoints or clients which are each streaming data from and receiving data
`
`20
`
`from each other. For example, a streaming adapter (or set of streaming adapters)
`
`may pass data between two clients engaged in a videoconference. Such data may be
`
`streamed data or other data.
`
`In such a case, each endpoint acts as both a server
`
`transmitting streamed data and a client receiving streamed data. More than one
`
`streaming adapter may be used; for example, one streaming adapter for each data
`
`25
`
`direction.
`
`By transferring the need to respond to client requests, the need to create
`
`multiple data streams tailored to individual clients, and other processing from a
`
`server to a streaming adapter, the load on the server is reduced. Furthermore, the
`
`load on the network may be reduced, as a single stream may be transmitted to a
`
`30
`
`streaming adapter, which then splits the stream. Additional functionality, not
`
`available with current data streaming devices, may be provided by a streaming
`
`adapter.
`
`11
`
`WhatsApp's Exhibit No. 1107
`Page 13
`
`

`
`wo 02/44828
`
`PCT/ILOl/01096
`
`In an exemplary embodiment, the method of converting data, or the
`
`parameters for the data conversion, may be changed dynamically. For example, the
`
`load or capabilities of a network may change, allowing the streaming adapter to send
`
`more data via a network, or forcing the streaming adapter to lower the amount of
`
`5
`
`data it sends via a network. The capabilities of a client may change. For example, a
`
`client may be operating in a mobile vehicle. When the vehicle stops, the rate at
`
`which the client may accept data may increase, and thus the streaming adapter may
`
`increase the bandwidth send to the client by, for example, lowering the amount of
`
`data compression that takes place. When the vehicle resumes motion, the reverse
`
`1 o
`
`may take place. Any other dynamic parameter change may take place.
`
`Such dynamic change may occur while the streaming adapter is converting
`
`one or more data streams, and may cause the streaming adapter to change the
`
`methods it uses to convert those data streams. Such dynamic change may also occur
`
`in a manner not causing the streaming adapter to change the methods it uses to
`
`15
`
`convert those data streams.
`
`For example, a network component currently
`
`uninvolved in a data streaming operation may transmit information regarding a
`
`change in load; such information might not cause a change in the current data
`
`streaming operations of the streaming adapter, but may affect future streaming
`
`operations.
`
`20
`
`Dynamic configuration data may arrive at the initiation of a client. For
`
`example, the load on a client which had previously required a certain data
`
`compression regime may change, allowing for a different data compression regime
`
`to be used; the client notifies the streaming adapter of this change. The client may
`
`require additional functionality or programming in order to detect and notify the
`
`25
`
`streaming adapter of the change.
`
`Dynamic configuration data may arrive at the initiation of a network
`
`component, in such case the relevant network component notifies the streaming
`
`adapter of this change. Such a network component may require additional
`
`functionality or programming in order to detect and notify the streaming adapter of
`
`30
`
`the change. For example, the load on a component such as a network component
`
`may change, allowing for a different data compression regime to be used, or
`
`allowing for a different routing scheme to be used.
`
`In response to a change in
`
`12
`
`WhatsApp's Exhibit No. 1107
`Page 14
`
`

`
`wo 02/44828
`
`PCT/ILOl/01096
`
`network capabilities, the streaming adapter may modify the methods for converting
`
`more than one data stream currently being converted. For example, all data streams
`
`using a certain network may require more or less compression in response to a
`
`change in load on that network.
`
`5
`
`Dynamic configuration data may arrive at the initiation of the streaming
`
`adapter. The streaming adapter may query or poll various network components.
`
`Such polling may be regular (e.g., periodic) or, for example, may be in response to a
`
`change in conditions requiring up-to-date information. In alternate embodiments,
`
`other components may be polled, or may send information regarding, configuration
`
`1 o
`
`information.
`
`Fig. 4 is a flowchart showing a portion of the steps for modifying a data
`
`stream according an embodiment of the present invention.
`
`Referring to Fig. 4, in step 300, the streaming adapter accepts dynamic
`
`configuration information. Such dynamic configuration information may be as a
`
`15
`
`result of a poll of a component, as a result of a component initiating an information
`
`exchange, or may be as a result of other actions.
`
`In step 310, the streaming adapter determines whether and how to modify the
`
`data stream. The streaming adapter considers the factors described in step 240,
`
`above. In some cases, updated configuration data may not require a change to any or
`
`20
`
`all of the one or more data streams being converted.
`
`In step 320, the streaming adapter alters the way that it modifies the data
`
`stream or data streams. The streaming adapter considers the factors described in
`
`step 250, above. For each modified data stream, the streaming adapter continues to
`
`send the data stream to a client or clients, but uses the updated methods.
`
`25
`
`In alternate embodiments, a streaming adapter can operate in different
`
`manners. For example, a server may cooperate directly with a streaming adapter to
`
`service requests, without the cooperation of a network controller. Client requests
`
`received by a server may be forwarded to a streaming adapter. A server, a client, or
`
`a network controller need not have knowledge of the streaming adapter. The
`
`30
`
`streaming adapter can effect its functionality without the active participation of such
`
`components.
`
`It will be appreciated by persons skilled in the art that the present invention is
`
`13
`
`WhatsApp's Exhibit No. 1107
`Page 15
`
`

`
`wo 02/44828
`
`PCT/ILOl/01096
`
`not limited by what has been particularly shown and described hereinabove.
`
`Altemate embodiments are contemplated which fall within the scope of the
`
`invention.
`
`14
`
`WhatsApp's Exhibit No. 1107
`Page 16
`
`

`
`wo 02/44828
`
`PCT/ILOl/01096
`
`CLAIMS
`
`1.
`
`A method comprising:
`
`accepting a set of configuration parameters;
`
`5
`
`accepting a data stream from a server;
`
`transforming the data stream in response to the configuration parameters;
`
`and transmitting the transformed data stream to a data stream client.
`
`2.
`
`The method of claim 1 wherein the configuration parameters reflect the
`
`10
`
`capabilities of a network that transmits information between the server and the
`
`data stream client.
`
`3.
`
`The method of claim 2 wherein the capabilities of the network include
`
`bandwidth informati

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket