Abstract:

Content sharing and instant messaging are described. In an implementation,
a first user interface is displayed at a first client that is configured
to provide instant messaging with a second client having a second user
interface. One or more content items are output in the first user
interface to be controllable via both the first user interface and the
second user interface.

Claims:

1. A method comprising:displaying a first user interface at a first client
that is configured to provide instant messaging with a second client
having a second user interface; andoutputting one or more content items
in the first user interface to be controllable via both the first user
interface and the second user interface.

2. A method as described in claim 1, wherein the second user interface
provides an output of the one or more content items that matches the
first user interface.

3. A method as described in claim 1, wherein the outputting is performed
such that a particular said content item that is most-recently selected
via the first and second user interfaces is output.

4. A method as described in claim 3, wherein the most-recent selection is
indicated through a respective acknowledgement value.

5. A method as described in claim 1, wherein the outputting is performed
responsive to receipt at the first client of an indication of selection
of the one or more content items via the second user interface of the
second client.

6. A method as described in claim 5, further comprising displaying in the
first user interface a representation that the indication has been
received.

7. A method as described in claim 1, wherein the one or more content item
in the first user interface are controllable via both the first user
interface and the second user interface such that the outputting of the
one or more content items in the first user interface is cancellable via
the first user interface and the second user interface.

8. A method as described in claim 1, wherein the one or more content item
in the first user interface are controllable via both the first user
interface and the second user interface such that which of the one or
more content items that are to be output in both the first user interface
and the second user interface is controllable via both the first and the
second user interfaces.

9. A method as described in claim 1, wherein the first and second user
interfaces include representations of a plurality of said content items
that are displayed in matching arrangement on both the first and second
user interfaces.

10. A method as described in claim 1, wherein during a file transfer of
the one or more content items from the second client to the first client,
an order of the file transfer for a first said content item and a second
said content item is changeable via the first user interface.

11. A method as described in claim 1, further comprising displaying a
status of a file transfer of the one or more content items from the
second client to the first client in the first user interface using a
representation of the one or more content items.

12. A method as described in claim 11, wherein the representation is a
thumbnail of the one or more content items.

13. A method as described in claim 1, wherein the one or more content
items are photos.

14. A method comprising:displaying one or more content items in a first
user interface to be controllable via both the first user interface and a
second user interface, the first and second user interfaces configured to
provide instant messaging, one with another; anddisplaying a status of a
file transfer of another content item from the second client to the first
client in the first user interface using a representation of the other
content item.

15. A method as described in claim 14, wherein:the instant messaging is
performed via a peer-to-peer network; andthe one or more content items
include at least one photo.

16. A method as described in claim 14, wherein the representation is
changed an amount that corresponds to an amount of the other content item
that is currently transferred.

17. A method comprising:displaying one or more content items in a first
user interface that is configured to provide instant messaging with a
second user interface, the first user interface having:a content-sharing
portion to display the one or more content items; anda conversation
portion to display the instant messaging; anddisplaying an option that is
selectable to cause an increase in an amount of display area consumed by
the conversation portion and a decrease in an amount of display area
consumed by the content-sharing portion such that the content-sharing
portion and the conversation portion are concurrently displayed.

18. A method as described in claim 17, wherein the one or more content
items are displayed in the first user interface to be controllable via
both the first user interface and the second user interface.

19. A method as described in claim 17, further comprising displaying a
status of a file transfer of the one or more content items from the
second client to the first client in the first user interface using a
representation of the one or more content items.

20. A method as described in claim 17, further comprising after the option
has been selected cause the increase in the amount of display area
consumed by the conversation portion and the reduction in the amount of
display area consumed by the content-sharing area, displaying another
option to remove the increase in the amount of display area consumed by
the conversation area and to remove the decrease in the amount of display
area consumed by the content-sharing area.

Description:

BACKGROUND

[0001]Instant messaging is a popular communication tool that enables two
or more users to exchange messages via a network during an
instant-messaging session. When two users are online at the same time,
for instance, instant messages may be exchanged in real time between the
two users. Thus, the instant messages may be utilized to support a text
conversation between the two users in a manner that mimics how the two
users would participate in a typical spoken conversation. However,
traditional techniques that were provided to output content in
conjunction with an instant-messaging session were disconnected and
disjointed, thereby decreasing overall satisfaction of the two users with
the instant-messaging session.

SUMMARY

[0002]Content sharing and instant messaging are described. In an
implementation, a first user interface is displayed at a first client
that is configured to provide instant messaging with a second client
having a second user interface. One or more content items are output in
the first user interface to be controllable via both the first user
interface and the second user interface.

[0003]In an implementation, one or more content items are displayed in a
first user interface to be controllable via both the first user interface
and a second user interface. The first and second user interfaces are
configured to provide instant messaging, one with another. Status is
displayed of a file transfer of another content item from the second
client to the first client in the first user interface using a
representation of the other content item.

[0004]In an implementation, one or more content items are displayed in a
first user interface that is configured to provide instant messaging with
a second user interface. The first user interface has a content-sharing
portion to display the one or more content items and a conversation
portion to display the instant messaging. An option is displayed that is
selectable to cause an increase in an amount of display area consumed by
the conversation portion and a decrease in an amount of display area
consumed by the content-sharing portion, the content-sharing portion and
the conversation portion being concurrently displayed.

[0005]This Summary is provided to introduce a selection of concepts in a
simplified form that are further described below in the Detailed
Description. This Summary is not intended to identify key features or
essential features of the claimed subject matter, nor is it intended to
be used as an aid in determining the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

[0006]The detailed description is described with reference to the
accompanying figures. In the figures, the left-most digit(s) of a
reference number identifies the figure in which the reference number
first appears. The use of the same reference numbers in different
instances in the description and the figures may indicate similar or
identical items.

[0007]FIG. 1 is an illustration of an environment in an example
implementation that is operable to perform content sharing and instant
messaging.

[0008]FIG. 2 is a flow diagram depicting a procedure in an example
implementation in which a display of content is shared simultaneously in
two user interfaces that are configured to perform instant messaging.

[0009]FIG. 3 is an illustration of an example system showing first and
second clients that are to communicate via instant messaging.

[0010]FIG. 4 is an illustration of an example system showing first and
second user interfaces that are configured to communicate via instant
messaging and initiate a content-sharing session.

[0011]FIG. 5 is an illustration of an example system showing the first and
second user interfaces of FIG. 4 as outputting respective content-sharing
areas output in response to selection of an option in FIG. 4 to initiate
a content-sharing session and respective conversation areas.

[0012]FIG. 6 is an illustration of an example system showing the first and
second user interfaces of FIG. 5 in which a representation of a content
item is output that indicates a status of a transfer of the respective
content item from the second client to the first client.

[0013]FIG. 7 is an illustration of an example system showing display of
the content item transferred in FIG. 6.

[0014]FIG. 8 is an illustration of the first user interface of FIG. 7 in
which an amount of display area consumed by the conversation area in FIG.
7 is increased and an amount of display area consumed by the
content-sharing area is reduced in response to selection of an option.

DETAILED DESCRIPTION

[0015]Example Environment

[0016]FIG. 1 is an illustration of an environment 100 in an example
implementation which is operable to implement content sharing and instant
messaging. The environment includes first and second clients that are
illustrated as client 102 and client 104. Accordingly, reference may be
made to the clients in multiple ways in the following discussion, e.g.,
client 102, first client 102, and so on. Additionally, although two
clients 102, 104 are shown, it should be readily apparent that the
environment may employ additional clients without departing from the
spirit and scope thereof.

[0017]The clients 102, 104 are illustrated as being communicatively
coupled via a network 106. Accordingly, the clients 102, 104 may be
configured in a variety of ways for accessing the network 106. For
example, one or more of the clients 102, 104 may be configured as a
computing device, such as a desktop computer, a mobile station, an
entertainment appliance, a set-top box communicatively coupled to a
display device, a wireless phone, a game console, and so forth. Thus, the
clients 102, 104 may range from full resource devices with substantial
memory and processor resources (e.g., personal computers, game consoles)
to low-resource devices with limited memory and/or processing resources
(e.g., traditional set-top boxes, hand-held game consoles). The clients
102, 104 may also relate to a person and/or entity that operate the
clients. In other words, one or more of the clients 102, 104 may describe
logical clients that include users, software (e.g., executable modules),
and/or devices (e.g., a device with a processor and memory configured to
execute instructions).

[0018]Although the network 106 is illustrated as the Internet, the network
may assume a wide variety of configurations. For example, the network 106
may include a wide area network (WAN), a local area network (LAN), a
wireless network, a public telephone network, an intranet, and so on.
Further, although a single network 106 is shown, the network 106 may be
configured to include multiple networks. For instance, client 102 may be
communicatively coupled via a peer-to-peer network with client 104 to
perform instant messaging. In another instance, each of the clients 102,
104 may also be communicatively coupled to the messaging provider 108
(having a messaging manager module 110) over the Internet to communicate
instant messages. A variety of other instances are also contemplated.

[0019]Each of the plurality of clients 102, 104 is illustrated as
including a respective one of a plurality of messaging modules 112, 114.
Each of the messaging module 112, 114 is executable such that a
respective client 102, 104 may participate in an instant-messaging
session with another one of the clients 102, 104.

[0020]Instant messaging provides a mechanism such that each of the clients
102, 104, when participating in an instant-messaging session, may send
text messages to each other. The instant messages are typically
communicated in real time, although delayed delivery may also be
utilized, such as by logging the text messages when one of the clients
102, 104 is unavailable, e.g., offline. Thus, instant messaging may be
thought of as a combination of email and Internet chat in that instant
messaging supports message exchange and is designed for two-way "live"
chats. Therefore, instant messaging may be utilized for synchronous
communication. For instance, like a voice telephone call, an
instant-messaging session may be performed in real-time such that each
client 102, 104 may respond to each other user as the instant messages
are received.

[0021]In an implementation, the messaging modules 112, 114 communicate
with each other through use of a messaging provider 108. Messaging
provider 108, for instance, may include a messaging manager module 110
that is representative of functionality to route instant messages between
the messaging modules 112, 114. For example, client 102 may cause the
messaging module 112 to form an instant message for communication to
client 104. The messaging module 112 is executed to communicate the
instant message to the messaging provider 108, which then executes the
messaging manager module 110 to route the instant message to the client
104 over the network 106. The client 104 receives the instant message and
executes the messaging module 114 to display the instant message in a
user interface.

[0022]In another implementation, when the clients 102, 104 are
communicatively coupled directly, one to another (e.g., via a
peer-to-peer network), the instant messages are communicated without
utilizing the messaging provider 108. A variety of other examples are
also contemplated, such as multiple messaging providers 108.

[0023]Each of the plurality of clients 102, 104 may have access to a wide
variety of content in the environment 100 of FIG. 1. For example,
third-party services (e.g., a website) may provide content to the clients
102, 104. Likewise, each of the clients 102, 104 may include respective
storage 116, 118 (e.g., memory or other computer-readable media) for one
or more respective content items 120, 122.

[0024]To share this content, the clients 102, 104 are illustrated as
including respective content-sharing modules 124, 126. The
content-sharing modules 124, 126 are representative of functionality to
share content items within a context of an instant-messaging session. In
an implementation, this sharing is performed such that the content items
120, 122 may be shared electronically in a manner similar to a "coffee
table" discussion. For instance, the sharing may be performed such that
first and second user interfaces output respectively by the first and
second content-sharing modules 124, 126 match, e.g., each party views the
same content items at the same time and in the same order.

[0025]Additionally, in an implementation the content items are
controllable by both the first and second user interfaces. Traditionally,
control of a display of content items, whether output in a single user
interface or multiple user interfaces, was limited to a single entity,
such as a "leader" of an online meeting. Although leadership could be
passed in some traditional instances by communication of a token, the
control of the content was still limited to a single entity at any one
time.

[0026]In an implementation, control of the content items 120, 122 in the
user interfaces is possible via both the first user interface and the
second user interface at any one time. Therefore, the clients 102, 104
may control content 120, 122 freely in the user interfaces without
passing a token. Further discussion of content sharing may be found in
relation to the following procedures.

[0027]Synchronous List of Ordered Media Sources

[0028]In an implementation, each of the clients 102, 104 may add
additional media sources to an existing session at any time. The
content-sharing modules 124, 126 may keep each source in synchronous
order on each display involved in the content-sharing session. This
benefits user interaction by enabling use of common language phrases,
such as "What is the next photo about?".

[0029]Real Time Transfer Queue Prioritization

[0030]During file transfer of multiple media sources a receiver can change
the download order of his media with a single mouse click. Once selected
that media source will be moved to the top of the transfer queue on the
Host side to be transferred as the next media source.

[0031]Concurrency Handling.

[0032]Either party can change the media source and potentially both can
change the source at the same time. In an implementation, the
content-sharing modules 124, 126 converge the source on a most-recently
selected (e.g., last) source.

[0033]For example, when either client selects a media source in the UI a
system message ("a media source change request") is sent to the other
client which includes an incremented sequence number, an ack value, and
the identification number of the media source. For purposes of the
following discussion, the client that initiated the content-sharing
session is referred to as the "host" and the other client (or clients)
that are to receive the content item is referred to as the "receiver".

[0034]When a media source is selected by either client, a local
acknowledgement (e.g., "ack") value is updated from a sequence number in
a media source change request previously received. When the receiver
receives this message from the host, the receiver will update the user
interface to display the media source referenced by the identification
number in the system message.

[0035]When the host receives a system message from the receiver, the host
compares the acknowledgement value from the system message against the
receiver's own sequence number.

[0036]When the number is less than the receiver's local sequence number,
the receiver notifies the host that this message was sent before the last
message received, which indicates it is out of sequence. The message is
then ignored.

[0037]When the received acknowledgment value is greater than the local
sequence number, the message is considered a valid request and the host
user interface is updated with the media source identified. A variety of
other concurrency handling techniques are also contemplated without
departing from the spirit and scope thereof.

[0038]Generally, any of the functions described herein can be implemented
using software, firmware (e.g., fixed logic circuitry), manual
processing, or a combination of these implementations. The terms
"module," "functionality," and "logic" as used herein generally represent
software, firmware, or a combination of software and firmware. In the
case of a software implementation, the module, functionality, or logic
represents program code that performs specified tasks when executed on a
processor (e.g., CPU or CPUs). The program code can be stored in one or
more computer readable memory devices, such as memory. The features of
the instant messaging techniques described below are
platform-independent, meaning that the instant messaging techniques may
be implemented on a variety of commercial computing platforms having a
variety of processors.

[0039]Example Procedures

[0040]The following discussion describes content sharing and instant
messaging that may be implemented utilizing the previously described
systems and devices. Aspects of each of the procedures may be implemented
in hardware, firmware, or software, or a combination thereof. The
procedures are shown as a set of blocks that specify operations performed
by one or more devices and are not necessarily limited to the orders
shown for performing the operations by the respective blocks. In portions
of the following discussion, reference will be made to the environment
100 of FIG. 1.

[0041]FIG. 2 is a flow diagram depicting a procedure 200 in an example
implementation in which content sharing and instant messaging techniques
are described. During the discussion of FIG. 2, reference will also be
made to the illustrations of FIGS. 3-8 that include example clients 102,
104 of FIG. 1 and user interfaces. It should be readily apparent that
implementation of the procedures is not limited to the example
environment 100 of FIG. 1 or user interfaces and systems of FIGS. 3-8.
Likewise, the example environment 100 of FIG. 1 and user interfaces are
not limited to performing the following procedures.

[0042]A first user interface is displayed at a first client that is
configured to provide instant message with a second client having a
second user interface (block 202). FIG. 3 is an illustration 300 in an
example implementation showing user interfaces that are output in
relation to an instant-messaging session between the first and second
clients 102, 104 of FIG. 2 during an instant-messaging session. A first
client 104(1) (illustrated as "Adam") and a second client 104
(illustrated as "Bob") are engaged in an instant-messaging session. Text
associated with instant-messaging session is rendered for viewing in
respective user interfaces 302, 304 output by the respective clients 102,
104.

[0043]The text messages that are exchanged are transmitted between the
clients 102, 104 via a peer-to-peer network connection 306, although
other network connections are also contemplated as previously described
in relation to the network 106 of FIG. 1. Although FIG. 3 is illustrated
and described in relation to a plurality having two clients 102, 104 as
participating in an instant-messaging session, it should be recognized
that the techniques described herein may also be applied to scenarios in
which three or more clients participate in an instant-messaging session.

[0044]Reference will now be made again to FIG. 2, in which, one or more
content items are output in the first user interface to be controllable
via both the first user interface and the second user interface (block
204). For example, FIG. 4 depicts a system 400 showing the user
interfaces 302, 304 of FIG. 3 in greater detail. The user interfaces
include respective text 402, 404 that match in respective conversation
portions 404, 408.

[0045]The text 402, 404 describes a conversation performed during an
instant-messaging session in which Adam and Bob discuss a vacation taken
by Adam. In the conversation, Adam offers to show Bob pictures taken
during the vacation. Accordingly, Adam initiates a content-sharing
session through a drop-down menu 410 included in a toolbar of the user
interface 302. The drop-down menu 410 includes a portion 412 that is
selectable to initiate a content-sharing session. Although a drop-down
menu 410 is shown, a variety of other techniques may also be employed to
initiate the instant-messaging session, such as a key combination and so
on.

[0046]A content-sharing session is initiated such that a display of
content items in the first and second interfaces matches, one with
another (block 206). FIG. 5 depicts a system 500 in an example
implementation in which a content-sharing session is initiated within a
context of an instant-messaging session.

[0047]The user interfaces 302, 304 include the conversation portions 406,
408 of FIG. 4, but in this instance are reduced in size, e.g., consume a
lesser amount of display area. The user interfaces 302, 304 are also
illustrated as including content-sharing portions 502, 504 that are
configured to share content items. For example, the content-sharing
portions 502, 504 of the user interfaces 302, 304 are illustrated as
including a photo of a car 506, 508 and thumbnail representations of
photos of a dog 510, 512 and a clock 514, 516. The display of the content
items 502-516 is synchronized between the user interfaces 302, 304 such
that each client 102, 104 views a matching output of the content items
502-516. For example, the display of the content items 502-516 may be
arranged in a matching order, sized similarly with respect to a
corresponding display device, and so on.

[0048]Returning back to FIG. 2, a function is initiated involved control
of the one or more content items (block 208). In an implementation,
display of content items 502-516 in the user interfaces 302, 304 of FIG.
5 is controllable by both the first and second clients 102, 104. For
example, client 104 may select the thumbnail representation of dog 512
content item to be displayed, e.g., to replace the display of the car 504
content item. This selection may cause the dog 512 to be displayed in the
user interface 304 of client 104, as well as the dog 510 to be displayed
in the user interface 302 of client 102.

[0049]A variety of other control functions are also contemplated, such as
to cancel display of a particular content item, resize a display of a
content item, make a change (e.g., color, crop, visual and/or audio
effect) to a content item, and so on. The user interfaces 302, 304 is
also illustrated as including respective portions 518, 520 that are
selectable to add additional content items to the content-sharing
portions 502, 504. Although photos have been described, it should be
readily apparent that a wide variety of content items are contemplated,
such as music, videos, manually-created images, and so on.

[0050]A conflict is resolved regarding a plurality of requests to initiate
a control function (block 210). As previously described, in an
implementation display of content in the user interface 302 is
controllable via both the first user interface 302 and the second user
interface 304. Accordingly, instances may be encountered in which control
functions initiated by both clients 102, 104 conflict, one with another.
For example, client 102 may interact with user interface 302 and select
the dog 510 content item to be output. Client 104, however, may interact
with user interface 304 and select the clock 516 content item to be
output. Accordingly, the content-sharing modules 124, 126 of FIG. 1 may
resolve the conflict, such as to output a most-recently selected content
item as previously described in relation to FIG. 1.

[0051]A status is displayed of a file transfer of another content item
from the second client to the first client in the first user interface
using a representation of the other content item (block 212). FIG. 6 is a
system 600 depicting the user interfaces 302, 304 of FIG. 5 as
transferring the dog 512 content item from the second client 104 to the
first client 102. To display the status in the illustrated example, the
thumbnail representation of the dog 510 content item is "colored in" in
proportion to an amount (e.g., percentage) of the dog 510 content item
that is currently transferred.

[0052]When the content item is transferred, it may be displayed in "full
view", an example of which is shown in a system 700 of FIG. 7. In the
system 700, the dog 510, 512 content items replace the car 506, 508 in
the user interfaces 302, 304 in a synchronized manner such that the
output matches. In other words, the dog 512 content item is not displayed
in the user interface 304 of Bob until the content item is transferred to
Adam and ready for display in the user interface 302. A variety of other
techniques are also contemplated for indicating a status of a transfer
using a representation of a content item, such as shading, intensity,
resolution, manipulation of borders, and so on.

[0053]An option is displayed that is selected to cause a reduction in an
amount of display area consumed by a conversation portion and an increase
in an amount of display area consumed by a content-sharing portion (block
214). For example, the user interface 302 of FIG. 7, and more
particularly the content-sharing portion 502, includes an option 702 that
is selectable (e.g., by a cursor-control device) to minimize the
content-sharing area 502 and expand the conversation area 406, an example
of which is shown in FIG. 8.

[0054]FIG. 8 depicts a system 800 in an example implementation in which
the content-sharing area 502 is minimized and the conversation area 406
expanded in response to selection of the option 702 in the user interface
302 of FIG. 7. In this example, the car 506, dog 510 and clock 514
content items are displayed as thumbnail representations. In an
implementation, selection of the option 702 causes the matching (e.g.,
synchronization) of the display of the content items between the user
interfaces 302, 304 to suspend. In another implementation, however, both
content-sharing areas 502, 504 of both user interfaces 302, 304 may be
minimized in response to selection of the option through either the first
or second user interfaces 302, 304.

[0055]The user interface 302 of FIG. 8 also includes another option 802
that is selectable to remove the reduction in the amount of display area
consumed by the conversation portion and remove the reduction in the
amount of display area consumed by the content-display portion (block
216). For example, selection of the other option 802 may cause the user
interface 302 to return to a state previously shown in FIG. 7. A variety
of other examples are also contemplated.

[0056]Conclusion

[0057]Although the invention has been described in language specific to
structural features and/or methodological acts, it is to be understood
that the invention defined in the appended claims is not necessarily
limited to the specific features or acts described. Rather, the specific
features and acts are disclosed as exemplary forms of implementing the
claimed invention.