Attachment collaboration within message environments

Disclosed herein are systems, methods, and software for facilitating collaboration within message environments. In an implementation, a message system receives a request to send on behalf of a sender a message having an attachment. In response to the request, the message system generates a collaborative version of the attachment within a location associated with the sender. The collaborative version of the attachment may be modified to reflect updates initiated on behalf of recipients of the message.

TECHNICAL FIELD

Aspects of the disclosure are related to computing and communication technology, and in particular, to collaboration within message environments.

TECHNICAL BACKGROUND

Collaboration solutions allow teams or other groups of users to work together on a document, spreadsheet, or other types of content. Users may collaborate in various ways depending on which of a variety of collaboration solutions may be implemented. In one scenario a document may be emailed from a sender to several recipients. A suitable word processing application cable of tracking changes and conveying other edits can be used by each recipient to review the document. Edited copies of the document may then be returned by email to the sender for viewing, merging, or other analysis.

Some scenarios involve collaboration servers to which subject documents or other content may be uploaded such that others may edit the document in one place without having to return an edited copy. For example, a user may post a document to a collaboration server and then distribute a link to the document by email to other users. The other users may navigate to the posted document using the link. Having gained access to the posted document, the other users may make changes, provide comments, or otherwise provide their feedback with respect to the posted document.

More recent scenarios allow users to share documents stored within their own cloud-based storage repositories. Some cloud services provide tools by which a user may distribute a link to a shared document such that recipients of the link may navigate to and edit the shared document. It is also possible for the user to simply copy the link associated with the shared document and manually pasted it into an email destined for the recipients.

OVERVIEW

Provided herein are systems, methods, and software for facilitating collaboration within message environments. In an implementation, a message system receives a request to send on behalf of a sender a message having an attachment. In response to the request, the message system generates a collaborative version of the attachment within a location associated with the sender. The collaborative version of the attachment may be modified to reflect updates initiated on behalf of recipients of the message.

TECHNICAL DISCLOSURE

Implementations described herein provide for facilitating collaboration on attachments within email environments. In various implementations, a message may be composed and sent to various recipients with a collaborative version of an attachment that is hosted and shared from within the message system that sends the message. The message may reside within a location in a message environment associated with the sender of the message such that the sender may experience any modifications or other changes to the collaborative version of the attachment from within their message environment. As updates initiated on behalf of the recipients are received, modifications are made to the collaborative version of the attachment by the message system. In some implementations updates initiated on behalf of the sender may also be received and modifications made to the collaborative version of the attachment accordingly.

In some implementations, the message may be an email and the message system may be an email system. In such a scenario, when composing the email the sender may be presented with a collaboration option upon attaching a document, spreadsheet, photo, or other content to the email to create the attachment. The sender may nominate the attachment for collaborative sharing by selecting the collaboration option. A request communicated to the email system to send the email may then indicate that the attachment has been nominated. In this manner, the email system can recognized the collaborative status of the attachment and proceed accordingly. Without nominating the attachment for collaboration, the email system may proceed in a normal fashion my sending the email to its recipients with merely a copy of the attachment, rather than generating the collaborative version and providing access to it via the email.

Access to a collaborative version of an attachment may be provided in a variety of ways. In some scenarios, the message system may communicate the message to each recipient with a reference to the collaborative version of the attachment. The recipient communication systems may then access the collaborative version of the attachment using the reference. In some examples the reference may be a link that points to the collaborative version within the location associated with the sender. In some scenarios each recipient may be provided with a unique link such that access to the collaborative version may be controlled on a per-recipient basis. In other scenarios, a copy of the collaborative version of the attachment may be included with each message sent to the recipients. The recipients can then edit the copy of the collaborative version and reply to the initial message with an edited copy attached thereto. The message system may modify the collaborative version stored within the location associated with the sender based on the changes provided in the edited copy. Other access techniques and variations and combinations of the access techniques disclosed herein are possible and may be considered with the scope of the present discussion.

Referring now to the drawings,FIG. 1illustrates a message environment in which collaboration processes illustrated inFIG. 2andFIG. 3may be implemented.FIG. 4andFIG. 5illustrate various operational scenarios that may be carried out in the message environment.FIG. 6illustrates a view of a sample message andFIG. 7illustrates a view of contents of a sample mailbox.FIG. 8illustrates a computing architecture suitable for implementing at least portions of the message environment.

Turning toFIG. 1, message environment100includes message system101, communication system103, communication system105, and communication system107. In operation, communication system103communicates with message system101to send messages on behalf of sender113for delivery to recipients, such as recipient115associated with communication system105and recipient117associated with communication system107. Communication system103may also communicate with message system101to receive messages initiated by others. Message environment100may include other elements in addition to those included herein to facilitate such messaging, such as other message systems, communication networks, links, and the like.

Message system101may be any system or collection of systems capable of employing collaboration process300and sending and receiving messages on behalf of sender113. Examples of message system101include email servers, exchange servers, unified communication servers, instant messaging servers, or any variation or combination thereof. Examples of messages include emails, instant messages, voice messages, video messages, or any other variation or combination of message capable of having an attachment.

Communication system103may be any system or collection of systems capable of employing collaboration process200when communicating with message system101to send and receive messages on behalf of sender113. Examples of communication system103include tablet computers, laptop computers, desktop computers, mobile phones, smart phones, and gaming systems as well as any variation or combination thereof. Communication system105and communication system107may each be any system or collection of systems capable of receiving messages initiated by communication system103, such as tablet computers, laptop computers, desktop computers, mobile phones, smart phones, and gaming systems as well as any variation or combination thereof.

Referring toFIG. 2, collaboration process200may be carried out by communication system103within the context of employing a messaging application, such as an email or instant messaging client, to interface with message system101. In some scenarios, the messaging application may be locally installed and executed on communication system103. In other scenarios, the messaging application may be hosted by an application server and accessed by way of a web browser or other application running on communication system103. In yet other scenarios, the messaging application may be streamed to communication system103and executed therefrom. Collaboration process200may be carried out within the context of executing such a messaging application.

In operation, sender113may interface with communication system103to compose and send messages. When composing a message, sender113may desire to include an attachment with the message, such as by attaching a document, spreadsheet, or the like to the message. In the event that sender113may include an attachment with a message, communication system103presents a collaboration option associated with the attachment to the message (step201), the selection of which nominates the attachment for collaboration.

When communicating with message system101to send the message to recipients, communication system103determines whether or not the attachment is nominated for collaboration (step203). For example, if the collaboration option is selected, then the attachment is nominated for collaboration, and if not, then the attachment is not nominated. In this scenario it is assumed for exemplary purposes that attachment104A is nominated for collaboration. Accordingly, communication system103communicates a request to message system101requesting that the message be sent to its recipients and that a collaborative version104B of attachment104A be generated and hosted for access by the recipients. The request may be communicated within the context of any well-known message exchange protocol that governs how a communication system may communicate with a message system to accomplish the delivery of messages. It may be appreciated that the sender may also access collaborative version104B. For example, the sender may access the collaborative version104B via a sent version of the message sent to the recipients or in some other manner.

Upon execution of collaboration process200by communication system103, message system101employs collaboration process300to respond to and handle the request to send the email. In particular, message system101receives the request to send on behalf of sender113the message with attachment104A (step301). In response to the request, message system101generates collaborative version104B of attachment104A within location109(step303). Location109may be any location within a message environment, such as message system101, that is associated with sender113. Examples of location109include a mailbox associated with sender113hosted by message system101.

Message system101also sends the message to any recipients listed in the message, assumed to be recipient115and recipient117for exemplary purposes. Having generated collaborative version104B and sent the message, message system101may receive updates to collaborative version104B initiated on behalf of recipient115or recipient117or both. Message system101modifies collaborative version104B accordingly to reflect the updates such that sender113may be able to view the feedback provided by recipient115and recipient117(step305).

Access may be provided to collaborative version104B of attachment104A in a variety of ways, two of which are illustrated byFIG. 4andFIG. 5.FIG. 4illustrates operational sequence400during which message system101includes a reference with each message sent to recipient115and recipient117respectively.FIG. 5illustrates operational sequence500during which message system101attaches a copy of the collaborative version104to each message sent to recipient115and recipient117.

Referring toFIG. 4, communication system103communicates a request to message system101to send a message having a document or some other content attached thereto. The message may include a flag or some other indication that the attachment has been nominated for collaboration. Upon receiving the request, message system101generates a collaborative version of the attachment and stores it in a location, such as a mailbox, associated with sender113. Message system101communicates the email for delivery to communication system105and communication system107with a reference to the collaborative version of the attachment within the location associated with sender113.

In operational sequence400, communication system107provides an access request to message system101using the reference provided in the email. The request may be communicated within the context of any well-known email protocol that governs how emails may be communicated and delivered. An example of an email protocol in accordance with which such requests may be communicated is SMTP (simple mail transfer protocol), although other protocols open and proprietary may be used, as well as any variation or combination thereof.

Message system101responsively provides communication system107with access to the collaborative version of the attachment such that recipient117may edit or otherwise engage with the collaborative version. For example, the collaborative version of the attachment may be opened directly from message system101such that recipient117may directly edit it using communication system107. In this manner, communication system107provides the updates with which message system101modified the collaborative version of the attachment. The modifications are ultimately communicated back to communication system103so that sender113may view the changes, comments, or other edits made by recipient117.

In fact, the manner in which the modifications are communicated back to communication system103may vary depending upon the implementation. In some scenarios, a message history may include a sent version of the message that itself includes a reference to the collaborative version of the attachment. Upon selecting or otherwise viewing the sent version of the message, communication system103may communicate with message system101to access the collaborative version, in much the same way as communication system107. Such access may also occur on a period or continuous basis in the background so that the sent version is updated with the modifications in real-time.

It may be appreciated that updates may also be made to the collaborative version of the attachment on behalf of sender113. In such a scenario, communication system103may access the collaborative version of the attachment hosted by message system101using the reference or a variation thereof generated for inclusion with the message sent to recipients115and117. For example, a sent version of the message may include the reference. In another example, the original version of the attachment may include the reference such that opening the original version launches a request to retrieve and open the collaborative version of the attachment. Other mechanisms for accessing the collaborative version of the attachment are possible and may be considered with the scope of the present disclosure. Having opened or otherwise gained access to the collaborative version of the attachment, communication system103may communicate updates to message system101such that modifications can be made to the collaborative version of the attachment to reflect the updates.

Referring toFIG. 5, communication system103communicates a request to message system101to send a message having a document or some other content attached thereto. The request may be communicated within the context of any well-known email protocol that governs how emails may be communicated and delivered. An example of an email protocol in accordance with which such requests may be communicated is SMTP (simple mail transfer protocol), although other protocols open and proprietary may be used, as well as any variation or combination thereof.

The message may include a flag or some other indication that the attachment has been nominated for collaboration. Upon receiving the request, message system101generates a collaborative version of the attachment and stores it in a location, such as a mailbox, associated with sender113. Message system101communicates the email for delivery to communication system105and communication system107with a copy of the collaborative version of the attachment.

In operational sequence500, recipient117may edit the copy of the collaborative attachment to make changes, comments, or other edits. Communication system107provides the edited copy of the collaborative version to message system101which may then update or otherwise modify the collaborative version of the attachment accordingly. For example, message system101may compare the edited copy to the collaborative version stored within message system101. In other scenarios, message system101may maintain multiple versions of the collaborative version, such as the original version and any edited versions. The modifications are communicated back to communication system103so that sender113may view the changes, comments, or other edits made by recipient117.

It may be appreciated that updates may also be made to the collaborative version of the attachment on behalf of sender113. In such a scenario, communication system103may access the collaborative version of the attachment hosted by message system101using the reference or a variation thereof generated for inclusion with the message sent to recipients115and117. For example, a sent version of the message may include the reference. In another example, the original version of the attachment may include the reference such that opening the original version launches a request to retrieve and open the collaborative version of the attachment. Other mechanisms for accessing the collaborative version of the attachment are possible and may be considered with the scope of the present disclosure. Having opened or otherwise gained access to the collaborative version of the attachment, communication system103may communicate updates to message system101such that modifications can be made to the collaborative version of the attachment to reflect the updates.

As mentioned, the manner in which the modifications are communicated back to communication system103may vary depending upon the implementation. In some scenarios, an updated copy of the collaborative version may be returned to communication system103. The copy may be integrated into a sent version of the message in replacement of or in addition to the attachment as originally sent.

For purposes of clarity and brevity,FIG. 1,FIG. 4, andFIG. 5illustrate updates made by communication system107, but it may be understood that updates may also be communicated by communication system105on behalf of recipient115. In fact, it may also be appreciated that the process described above for providing access to the collaborative version and modifying the collaborative version to reflect changes made by senders or recipients may be repeated or followed in a collaborative fashion such that changes made by any participant in a conversation may be reflected in the collaborative attachment when accessed and viewed by other participants.

In one implementation scenario, a sender may attach a document to a message for transmittal to various recipients. A message system handling the message generates a collaborative version of the attachment and sends a reference to the collaborative version along with the message to the various recipients. Upon delivery of the message, the recipients may access the collaborative version simultaneously, sequentially, or out of sequence, to make edits to the collaborative version of the document. As updates are communicated to the message system on behalf of a recipient, the modifications made to the collaborative version of the document are implemented so that any subsequent access to the collaborative version reflects the modifications.

For example, one recipient may make changes to the collaborative version of the document. Another recipient may then subsequently access the collaborative version, at which time the collaborative version is provided to the other recipient with the changes reflected therein. Similarly, the sender may access the collaborative version of the document subsequent to the recipient making the changes. The collaborative version would be presented to the sender with the changes reflected therein.

In another example, one recipient may make changes to the collaborative version of the document and modifications made to reflect the changes. At the meantime, another recipient may make other changes to the attached document off-line, such that the other changes are made with respect to the collaborative version in its original state. Upon coming online, the other changes made by the other recipient may be communicated such that modifications can be made that reflect the other changes. As a result, the most up-to-date state of the collaborative version would include both the changes made by the one recipient and the other changes made by the other recipient.

In some implementations, the message system used to handle the initial message may communicate to the sender or the recipients or both when changes are made to the collaborative version of an attachment. For example, upon a recipient accessing and making changes to a collaborative version of an attachment, the message system may generate and distribute a new message to each participant—the sender and the recipients—alerting them to the changes. In some cases the new message may include a new or updated reference to the collaborative version of the attachment in its updated state.

Updates or changes to a collaborative version of an attachment may also be made on behalf of the sender. The sender may access the collaborative version in the same manner as the recipients, such as by using a reference that links to the collaborative version. Upon the sender editing the collaborative version, the collaborative version in an updated or changed state would be presented to any recipients upon their access using the same reference or a variation of the reference.

FIG. 6illustrates a view600of a message that may be presented to sender113by communication system103. View600includes several fields, including field601that identifies the recipients of the message. Field603identifies recipients that may be copied on the message. Field605identifies a subject of the message, while field607identifies documents or other content that may be attached to the message. In this implementation, attachment104A is identified in field607. In view600, the message also includes collaboration option609which may be selected to nominate attachment104A or any other attachment for sharing by message system101. Composition space611provides an area for text input.

Upon composing the message, sender113may provide a user input corresponding to send button613. In response to touching, clicking on, or otherwise selecting the send button613, communication system103communicates the request to message system101to send the message. Depending upon whether or not collaboration option609is selected, the request may also indicate that attachment104A should be treated as a collaborative attachment, as discussed at length above.

FIG. 7illustrates a view700of contents of a mailbox associated with sender113. View700illustrates with particularity how sender113may experience the collaborative version104B of attachment104A. In view700, the mailbox includes a list of folders701from which sender113may select a particular folder to view. In this example, sent folder705is selected. Accordingly, a list of sent messages711-719are displayed in a message pane. Within the message pane, any given sent message may be further selected for detailed viewing. In this example, sent message713is selected and may be assumed to correspond to the message composed and sent with respect toFIG. 6.

Sent message713also includes several fields, including field723that identifies the recipients of the message. Field727includes the written content of the message input by way of composition space611referred to with respect toFIG. 6. Field725notably identifies any content that may have been attached to the message.

In this implementation, the content identified in field725includes collaborative version104B of attachment104A. In other words, sent message713includes a reference to or a copy of collaborative version104B rather than only a copy of attachment104A. In this manner, when viewing sent messages sender113is able to view the most recent version of the document, spreadsheet, or other suitable content represented by attachment104A, rather than being relegated to viewing only a past version. While view700of the mailbox pertains mainly to sent folder705, it may be appreciated that similar scenarios may unfold with respect to inbox folder703and trash folder707. Just as sent message713includes a reference to or copy of collaborative version104B, so to could messages within inbox folder703, trash folder707, or any other folder.

Various aspects may be appreciated from the discussion above. Message environment100assists with incorporating multiple feedback streams into an original document or other content after feedback is solicited over email or other types of messaging. Message environment100and its operational features provide a document owner with an improved way to collapse an original document and all received documents into a single document having feedback from all participants. At that point the document author can also choose to include or exclude certain changes from specific respondents after reviewing the changes from the respondent.

In some implementations, modifications to a collaborative version of an attachment may be accomplished using merge logic included in Microsoft® Office Document Cache functionality. Before file is sent as a collaborative attachment for review by recipients of a message, it is decomposed into a tree of smaller elements (paragraphs, slides, comments) using a Cobalt protocol handler. The tree is stored in the sender's mailbox as a base for future merges. The information is used to merge future changes into the original document or other content in the same manner as Office Document Cache merges off-line edits into a server copy of a document.

When recipients change the document with their feedback and send the edited document back to the author or sender, the document is decomposed into a tree again inside of the author's inbox and the elements are compared to identify changed ones. When the author browses her inbox with replies, she may be presented with an option to merge the changes from the reply or replies into the original document. The modified document remains in the inbox, and future merges are possible when more changes received.

In the event that multiple replies are received with multiple changes to a document, the author may be presented with an option to merge all of the changes into the original document by repeating the merge process for each reply. This provides an n-way merge procedure for document changes. Each step in the process is a 3-way merge between the original sent copy of the document, the current state of the modified document, and the changes from a particular recipient. This merge is performed using the logic inside Office Document Cache. If a conflicting change is detected between parts of a document tree, the merge interface of a corresponding productivity application may be invoked to allow the author to resolve the conflict manually. The original and merged document may be stored in an author's inbox as object trees. When the author needs to save or print the document, the full version can re-assembled using a Cobalt library.

FIG. 8illustrates a communication architecture800that may be suitable for implementing all or portions of a message environment, such as message environment100. Communication architecture800includes message system810in communication with communication system820over communication link812. Message system810may be representative of message system101. Communication system820may be representative of communication system103and in some implementations may also be representative of communication system105and communication system107.

Message system810may be any system or collection of systems suitable for implementing collaboration process300or variations thereof. Examples of message system810include server computers, cloud computing platforms, and virtual machines, as well as any other type of computing system, variation, or combination thereof.

Communication system820may be representative of any system or collection of systems suitable for implementing collaboration process200or any variations thereof. Implementing collaboration process200may include the local execution, streaming execution, or hosted execution of an associated application, application component, or operating system component having collaboration process200embodied therein, as well as any combination or variation thereof. Examples of communication system820include mobile computing devices, desktop computers, cell phones, tablet computers, laptop computers, notebook computers, media devices, and gaming devices, as well as any other type of communicate system or device or any combination or variation thereof. Examples of communication system820may also include server computers, cloud computing platforms, and virtual machines, as well as any other type of computing system, variation, or combination thereof.

In other words, in various implementation scenarios, collaboration process200may be implemented as part of locally installed applications, or modules within other applications, running on a suitable application platform, such as a personal computer, mobile phone, or the like. In other scenarios, the application or applications within which collaboration process200is embodied may be hosted by a suitable application platform, such as an application server, with which another application, such as a personal computer, mobile phone, or the like, may interact. In other scenarios, the application or application or applications within which collaboration process200may be embodied may be streamed to communication system820or some other suitable computing system for local execution. It may be appreciated that collaboration process200may be implemented using a wide variety of delivery mechanisms and techniques and a wide variety of communication systems, devices, and other types of computing equipment of which communication system820is intended to be representative.

Message system810includes processing system811, storage system813, software815, communication interface817, and user interface819, which is optional. Processing system811is operatively coupled with storage system813, communication interface817, and user interface819. Processing system811loads and executes software815from storage system813. When executed by message system810in general, and processing system811in particular, software815directs message system810to operate as described herein for collaboration process300or variations thereof. Message system810may optionally include additional devices, features, or functionality not discussed herein.

Referring still toFIG. 8, processing system811may comprise a microprocessor and other circuitry that retrieves and executes software815from storage system813. Processing system811may be implemented within a single processing device but may also be distributed across multiple processing devices or sub-systems that cooperate in executing program instructions. Examples of processing system811include general purpose central processing units, application specific processors, and logic devices, as well as any other type of processing device, combinations, or variations thereof.

Storage system813may comprise any computer readable storage media readable by processing system811and capable of storing software815. Storage system813may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Examples of storage media include random access memory, read only memory, magnetic disks, optical disks, flash memory, virtual memory and non-virtual memory, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other suitable storage media. In no case is the storage media a propagated signal. In addition to storage media, in some implementations, storage system813may also include communication media over which software815may be communicated. Storage system813may be implemented as a single storage device but may also be implemented across multiple storage devices or sub-systems co-located or distributed relative to each other. Storage system813may comprise additional elements, such as a controller, capable of communicating with processing system811.

Software815may be implemented in program instructions and among other functions may, when executed by message system810in general or processing system811in particular, direct message system810or processing system811to operate as described herein for collaboration process300. Software815may include additional processes, programs, or components, such as operating system software or other application software. Software815may also comprise firmware or some other form of machine-readable processing instructions executable by processing system811.

In general, software815may, when loaded into processing system811and executed, transform message system810overall from a general-purpose computing system into a special-purpose computing system customized to facilitate collaboration within message environments as described herein for each implementation. Indeed, encoding software815on storage system813may transform the physical structure of storage system813. The specific transformation of the physical structure may depend on various factors in different implementations of this description. Examples of such factors may include, but are not limited to the technology used to implement the storage media of storage system813and whether the computer-storage media are characterized as primary or secondary storage.

It should be understood that message system810is generally intended to represent a computing system with which software815is deployed and executed in order to implement collaboration process300(and variations thereof). However, message system810may also represent any computing system on which software815may be staged and from where software815may be distributed, transported, downloaded, or otherwise provided to yet another computing system for deployment and execution, or yet additional distribution.

Through the operation of message system810employing software815, transformations may be performed. As an example, message system810could be considered transformed from one state to another when subject to collaboration process300or variations thereof. In a first state, message system810may receive a request to send a message with an attachment. Responsive to the request, a collaborative version of the attachment may be generated and stored within a location associated with the sender, thereby changing message system810to a second, different state. The collaborative version of the attachment may also be modified in response to updates initiated on behalf of the recipients, thereby message system810to another different state.

Some technical aspects may be appreciated with respect to message system810. For example, generating and storing a collaborative version of an attachment within a location in a message environment associated with the sender may achieve various operational efficiencies. For example, by incorporating the management of a collaborative version within a message system, running and operating a separate collaboration solution may be avoided in part or entirely, thus saving processing and operational resources.

Referring again toFIG. 8, communication interface817may include communication connections and devices that allow for communication between message system810and communication system820over communication link812. Examples of connections and devices that together allow for inter-system communication may include network interface cards, antennas, power amplifiers, RF circuitry, transceivers, and other communication circuitry. To facilitate communication link812, the connections and devices may communicate over communication media to exchange communications with other computing systems or networks of systems, such as metal, glass, air, or any other suitable communication media. The aforementioned communication media, network, connections, and devices are well known and need not be discussed at length here.

Communication system820includes processing system821, storage system823, software825, communication interface827, and user interface829, which is optional. Processing system821is operatively coupled with storage system823, communication interface827, and user interface829. Processing system821loads and executes software825from storage system823. When executed by communication system820in general, and processing system821in particular, software825directs communication system820to operate as described herein for collaboration process200or variations thereof. Communication system820may optionally include additional devices, features, or functionality not discussed herein.

Referring still toFIG. 8, processing system821may comprise a microprocessor and other circuitry that retrieves and executes software825from storage system823. Processing system821may be implemented within a single processing device but may also be distributed across multiple processing devices or sub-systems that cooperate in executing program instructions. Examples of processing system821include general purpose central processing units, application specific processors, and logic devices, as well as any other type of processing device, combinations, or variations thereof.

Storage system823may comprise any computer readable storage media readable by processing system821and capable of storing software825. Storage system823may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Examples of storage media include random access memory, read only memory, magnetic disks, optical disks, flash memory, virtual memory and non-virtual memory, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other suitable storage media. In no case is the storage media a propagated signal. In addition to storage media, in some implementations storage system823may also include communication media over which software825may be communicated. Storage system823may be implemented as a single storage device but may also be implemented across multiple storage devices or sub-systems co-located or distributed relative to each other. Storage system823may comprise additional elements, such as a controller, capable of communicating with processing system821.

Software825may be implemented in program instructions and among other functions may, when executed by communication system820in general or processing system821in particular, direct communication system820or processing system821to operate as described herein for collaboration process200. Software825may include additional processes, programs, or components, such as operating system software or other application software. Software825may also comprise firmware or some other form of machine-readable processing instructions executable by processing system821.

In general, software825may, when loaded into processing system821and executed, transform communication system820overall from a general-purpose computing system into a special-purpose computing system customized to facilitate attachment collaboration as described herein for each implementation. Indeed, encoding software825on storage system823may transform the physical structure of storage system823. The specific transformation of the physical structure may depend on various factors in different implementations of this description. Examples of such factors may include, but are not limited to the technology used to implement the storage media of storage system823and whether the computer-storage media are characterized as primary or secondary storage.

It should be understood that communication system820is generally intended to represent a computing system with which software825is deployed and executed in order to implement collaboration process200(and variations thereof). However, communication system820may also represent any computing system on which software825may be staged and from where software825may be distributed, transported, downloaded, or otherwise provided to yet another computing system for deployment and execution, or yet additional distribution.

Through the operation of communication system820employing software825, transformations may be performed. As an example, communication system820could be considered transformed from one state to another when subject to collaboration process200or variations thereof. In a first state, communication system820may present a collaboration option associated with an attachment to a message. Responsive to a selection of the collaboration option, communication system820may communicate a request to send the message with a collaborative version of the attachment, thereby changing communication system820to a second, different state.

Some technical aspects may be appreciated with respect to communication system820. For example, nominating an attachment for collaboration occurs within the context of composing a message. A user may select a collaboration option within an email composition view or window within the work flow of sending the email, rather than having to accomplish such a task separately from sending the email. This may achieve various operational efficiencies, such as reduced processing steps or improved energy utilization due to the fact that less steps are performed than otherwise may be.

Referring again toFIG. 8, communication interface827may include communication connections and devices that allow for communication between communication system820and message system810over communication link812. Examples of connections and devices that together allow for inter-system communication may include network interface cards, antennas, power amplifiers, RF circuitry, transceivers, and other communication circuitry. To facilitate communication link812, the connections and devices may communicate over communication media to exchange communications with other computing systems or networks of systems, such as metal, glass, air, or any other suitable communication media. The aforementioned communication media, network, connections, and devices are well known and need not be discussed at length here.

User interface829may include a mouse, a voice input device, a touch input device for receiving a touch gesture from a user, a motion input device for detecting non-touch gestures and other motions by a user, and other comparable input devices and associated processing elements capable of receiving user input from a user. Output devices such as a display, speakers, haptic devices, and other types of output devices may also be included in user interface829. In some cases, the input and output devices may be combined in a single device, such as a display capable of displaying images and receiving touch gestures. The aforementioned user input and output devices are well known in the art and need not be discussed at length here. User interface829may also include associated user interface software executable by processing system821in support of the various user input and output devices discussed above. Separately or in conjunction with each other and other hardware and software elements, the user interface software and devices may provide a graphical user interface, a natural user interface, or any other kind of user interface.