Updating conversations after redirection

The claimed subject matter provides a system and/or a method that facilitates maintaining identification data for a real-time communication. A unified communications component can enable real-time communications by employing a communication session with at least one data communication mode, wherein the communication session can include conversation identification (ID). An invitation from a source to a target can initiate at least one of the communication session or the at least one data communication mode within the communication session. An update component can generate an additional conversation ID for the communication session upon detecting the invitation is forwarded by the target.

BACKGROUND

Computing and network technologies have transformed many aspects of everyday life. Computers have become household staples rather than luxuries, educational tools and/or entertainment centers, and provide individuals and corporations with tools to manage and forecast finances, control operations such as heating, cooling, lighting and security, and store records and images in a permanent and reliable medium. Networking technologies like the Internet provide individuals virtually unlimited access to remote systems, information and associated applications.

As computing and network technologies have evolved and have become more robust, secure and reliable, more consumers, wholesalers, retailers, entrepreneurs, educational institutions and the like are shifting paradigms and are employing the Internet to perform business rather traditional means. For example, today consumers can access their bank accounts on-line (e.g., via the Internet) and can perform an ever growing number of banking transactions such as balance inquiries, fund transfers, bill payments, and the like. In light of such technological advances and evolution, people in general tend to be more and more concerned about being connected and/or available for various communications such as cell phone calls, text messages, emails, instant messages, land line phone calls, voice mails, real-time communications, etc. With the rapid pace of today's society, being available and/or reachable on a constant basis is fitting for busy lifestyles albeit personal or business.

In general, real-time communications can include communication applications that establish and manage connections, communication sessions, or conversations between computing devices, users, machines, and the like. For instance, an instant messaging service can be utilized between two users on distinct machines, in order to communicate in real-time. Real-time communication services can utilize various mechanisms to establish a communication session such as, for instance, an application-level control protocol that computing devices can utilize to discover one another and manage communication sessions there between (e.g., establish, modify, terminate, etc.). Moreover, such communication sessions and/or conversations can include identification data that can identify session participants, time, length, etc. However, issues can arise with such identification data with the advent of unified communications in that participant identification data is extremely difficult to track and/or maintain.

SUMMARY

The following presents a simplified summary of the innovation in order to provide a basic understanding of some aspects described herein. This summary is not an extensive overview of the claimed subject matter. It is intended to neither identify key or critical elements of the claimed subject matter nor delineate the scope of the subject innovation. Its sole purpose is to present some concepts of the claimed subject matter in a simplified form as a prelude to the more detailed description that is presented later.

The subject innovation relates to systems and/or methods that facilitate generating communication session identifications (e.g., conversation identification, identification related to a communication session, etc.) upon the detection of an invitation being redirected and/or forwarded. An update component can dynamically update a conversation ID based upon the detection of a redirection and/or forwarding of an invitation related to real-time communications. In particular, the update component can generate an additional conversation ID in the event an invitation from a source to a target is forwarding and/or redirected, wherein the invitation is associated with a communication session or a data communication mode within the communication session. Moreover, a unified communications component can be an integrated enterprise communication client which can enable real-time communications (e.g., communication session) utilizing various data communication modes such as, but not limited to, instant messaging, voice over Internet protocol (VoIP), video conferencing, audio, voice, desktop sharing, application sharing, etc. Furthermore, the update component can generate an additional conversation ID based upon detecting an escalation of the communication session to a conference call.

In accordance with an aspect of the subject innovation, an evaluation component can continuously monitor a communication session or a data communication mode within the communication session in order to identify an invitation being forwarded and/or redirected. Based at least in part upon the identified redirection and/or forwarding, an ID component can employ a conversation ID to distinguish such forwarded and/or redirected invitation. By implementing a disparate conversation ID to the communication session that is forwarded and/or redirected, the subject innovation eliminates inaccurate conversation IDs that incorrectly identify participants and/or data related thereto. In other aspects of the claimed subject matter, methods are provided that facilitate evaluating real-time communications in order to maintain communication session identification (e.g., conversation identification, conversation ID, etc.) integrity and/or accuracy.

DETAILED DESCRIPTION

Furthermore, the claimed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the disclosed subject matter. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. For example, computer readable media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips . . . ), optical disks (e.g., compact disk (CD), digital versatile disk (DVD) . . . ), smart cards, and flash memory devices (e.g., card, stick, key drive . . . ). Additionally it should be appreciated that a carrier wave can be employed to carry computer-readable electronic data such as those used in transmitting and receiving electronic mail or in accessing a network such as the Internet or a local area network (LAN). Of course, those skilled in the art will recognize many modifications may be made to this configuration without departing from the scope or spirit of the claimed subject matter. Moreover, the word “exemplary” is used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs.

Now turning to the figures,FIG. 1illustrates a system100that facilitates generating conversation identifications upon the detection of an invitation being redirected and/or forwarded. The system100can include a unified communications component104that can employ at least one communication session106identified with a conversation identification (ID), wherein an update component102can generate an additional conversation ID upon a redirection of an invitation related to at least one of the communication session106or a data communication mode utilized within the communication session106. In other words, the update component102can enable the communication session106to be dynamically updated with a conversation ID upon the redirection and/or forwarding of an invitation from a source to a target associated with the communication session106. By maintaining the conversation ID and/or updating the conversation ID, the system100provides enhanced real-time communications in connection with unified communications. It is to be appreciated that the conversation identification can be any suitable identification associated with a communication session and can be related to as a communication session identification, conversation identification, a communication session ID, a conversation ID, etc.

It is to be appreciated that the unified communications component104can be an integrated enterprise communication client which can enable real-time communications (e.g., communication session106) utilizing various data communication modes such as, but not limited to, instant messaging, voice over Internet protocol (VoIP), video conferencing, audio, voice, desktop sharing, application sharing, etc. The unified communications component104can leverage a server (not shown) in order to initiate communication sessions106utilizing at least one data communication mode. Furthermore, the unified communications component104can further enable integration of various computer applications and/or software within the communication session106such as, but not limited to, a word processing application, a data spreadsheet application, a presentation/slide creation program, an email application (e.g., leveraging off of address books, contact information, etc.), note taking applications, information gathering applications, multi-user collaboration note taking applications, desktop sharing applications, shared workspace applications, proprietary peer-to-peer software applications, and/or enterprise portal applications. In other words, the unified communications component104can employ real-time communications via communication sessions106in various data communication modes in which numerous applications and/or software can be leveraged in order to enhance the real-time communication experience.

It is to be further appreciated that a communication session106with a data communication mode can be initiated and additional data communication modes can be added with an invitation from a participant of the communication session106. Thus, a communication session106can be between user A and user B with an audio data communication mode and further add a data communication mode such as video to the communication session106. In such example, the audio data communication mode can be within a first window while the video data communication mode can be within a second window, wherein the windows can have a conversation ID signifying the participants, time, data communication modes, etc. If however, an invitation for a data communication mode from a participant within the communication session is forwarded and/or redirected, the conversation ID is updated to reflect the additional participant(s) (e.g., the entity receiving the forwarded and/or redirected invitation).

For instance, a real-time communication session can be initiated with a unified communication component104based upon an invitation from a source to a target. The communication session can include numerous data communication modes and/or techniques between at least one source and at least one target (e.g., based upon the invitation, pre-defined settings, etc.) such as, but not limited to, email, instant messaging, voice, audio, video, voice over Internet Protocol (VoIP), application sharing, real-time communication, and/or any suitable real-time data communication mode associated with unified communications. The communication session between the source and the target can be distinguished by a conversation ID, wherein a disparate conversation ID can be generated for the communication session upon any redirection and/or forwarding of an invitation related to at least one of the communication session106or the data communication mode.

For example, a communication session can be initiated by an invitation from a first user to a second user. This communication session can include numerous data communication modes (e.g., email, voice, audio, VoIP, instant messaging, etc.), wherein each mode within the communication session can be initiated by an invitation. Thus, the first user can initiate the communication session with an invitation for instant messaging with the second user. Once the communication session is initiated, numerous data communication modes can be established with invitations from either communication session participant. Thus, the second user can send an invitation for audio to the first user (e.g., in addition to the instant messaging data communication mode). This entire real-time communication with unified communications can be distinguished with a conversation ID. However, if the invitation is redirected and/or forwarded by a target within the communication session106, the conversation ID can be dynamically updated in order to accurately track data associated therewith.

In another example, the update component102can update the conversation ID upon detection of at least one of the communication session106or the data communication mode escalating to a conference call. For instance, a communication session can be initiated by an invitation, wherein the data communication mode can be video. However, if the update component102identifies such communication session becoming a conference call, the conversation ID can be updated in order to distinguish such communication session. Thus, if the initial communication session escalates (e.g., based on additional invitations, participants included, participants designation of conference call, participants ranking within the corporate hierarchy, a conference call request, a conference call response, a conference call flag/identifier, or a manual designation of a conference call. etc.), the conversation ID can be dynamically updated.

In addition, the system100can include any suitable and/or necessary interface component (not shown), which provides various adapters, connectors, channels, communication paths, etc. to integrate the update component102into virtually any operating and/or database system(s) and/or with one another. In addition, the interface component can provide various adapters, connectors, channels, communication paths, etc., that provide for interaction with the update component102, unified communication component104, communication session106, and any other device and/or component associated with the system100.

FIG. 2illustrates a system200that facilitates evaluating real-time communications in order to maintain conversation identification integrity and/or accuracy. The system200can include the update component102that can dynamically update a conversation ID upon the redirection and/or forwarding of an invitation related to at least one of the communication session106or a data communication mode. The communication session106can be any suitable real-time communication employed by the unified communications component104, wherein the communication session106can include at least one data communication mode (e.g., voice, audio, instant messaging, VoIP, desktop sharing, application sharing/distribution, etc.) initiated by an invitation from a source to a target. In order to accurately track such communication sessions and/or conversations, an additional conversation ID can be associated with the communication session upon a redirection and/or forwarding of an invitation. By updating the conversation ID, the update component102allows the participants, data communication modes, time, communication session, etc. to be tracked/stored/logged.

The update component102can include an evaluation component202that can continuously monitor a communication session106and/or invitations associated therewith. In other words, the evaluation component202can dynamically evaluate data related to the communication session106and any invitations in order to identify whether the invitation is redirected and/or forwarded by a target. It is to be appreciated that the evaluation component202can evaluate and/or monitor any suitable data associated with the system200in order to identify a redirection and/or forwarding of an invitation. For instance, the evaluation component202can evaluate and/or monitor the communication session106, a target associated with the communication session106, a server related to the communication session106, a source associated with the communication session106, an application and/or software leveraged by the unified communications component104, a real-time communication related to a source, a real-time communication related to a target, a device/machine (e.g., computer, portable computer, hand-held device, laptop, portable digital assistant (PDA), desktop, mobile communications device, smartphone, VoIP device, instant messaging device, portable media device, media player, gaming device, device with real-time communication capability, etc.) utilized by a source, a device/machine utilized by a target, etc. The update component102can further include an ID component204that can generate conversation ID's and/or communication session ID's based at least in part upon the detection of an invitation being redirected and/or forwarded. The ID component204can generate an additional conversation ID in order to distinguish the communication session106upon the forwarding and/or redirecting of an invitation. It is to be appreciated that the ID component204can provide an additional conversation ID based upon the evaluation component202detecting and/or identifying the forwarding and/or redirection.

For example, a real-time communication session can be initiated upon a target receiving an invitation from a source, wherein the communication session can be employed utilizing VoIP and be distinguished by the conversation ID1234. An additional data communication mode can be initiated within the communication session by an invitation (e.g., sent by any participant involved with the communication session), wherein the invitation can be forwarded and/or redirected by the intended target. Upon such redirection and/or forwarding, the evaluation component202can identify the redirection and enable the ID component204to generate an additional conversation ID, for instance, a conversation ID5678. Thus, the conversation ID1234can accurately describe and/or correlate to the communication session prior to the forwarding and/or redirection, whereas the conversation ID5678can describe and/or correlate to the communication session with the new participant since the invitation was forwarded and/or redirected.

FIG. 3illustrates a system300that facilitates detecting a redirection of a real-time communication invitation and creating conversation identifications for tracking. The system300can include the update component102that can generate an additional conversation ID for the communication session106based upon an invitation being forwarded and/or redirected. The communication session106can be a real-time communication employed by the unified communications component104, wherein an invitation can relate to at least one of the communication session106or a data communication mode utilized therewith.

The system300can further include a data store302that can include any suitable data related to the update component102, the unified communications component104, the communication session106, a data communication mode within the communication session106, a source, a target, an invitation, and/or any suitable data associated with the system300. For example, the data store302can include, but not limited to including, conversation IDs, communication session IDs, historic data related to communication session IDs, historic data related to conversation IDs, participants within the communication session, data communication modes utilized within a communication session, invitation data, invitation historic data, logging data related to detected forwarding and/or redirection of invitations, communication session ID data (e.g., participants, time, data communication mode, length, duration, Internet protocol address, etc.), conversation ID data, applications and/or software utilized or leveraged within the communication session, etc.

It is to be appreciated that the data store302can be, for example, either volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory. By way of illustration, and not limitation, nonvolatile memory can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memory can include random access memory (RAM), which acts as external cache memory. By way of illustration and not limitation, RAM is available in many forms such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), Rambus direct RAM (RDRAM), direct Rambus dynamic RAM (DRDRAM), and Rambus dynamic RAM (RDRAM). The data store302of the subject systems and methods is intended to comprise, without being limited to, these and any other suitable types of memory. In addition, it is to be appreciated that the data store302can be a server, a database, a hard drive, a pen drive, an external hard drive, a portable hard drive, and the like.

FIG. 4illustrates a timing diagram400that facilitates creating communication session identification and/or conversation identification based on redirection and/or forwarding of a real-time communication invitation. It is to be appreciated that the timing diagram400is just one illustration in accordance with the subject innovation and is not to be limiting on the claimed subject matter. The timing diagram400can include a user A, a unified communications (UC) server, a user B, and a user C, wherein each user can utilize a unified communications component (not shown but described above) associated with the UC server in order to employ a real-time communication via communication sessions.

At reference numeral402, a two-way communication (e.g., a communication session and/or conversation with at least one data communication mode) can be utilized between user A and user B. This communication session (e.g., the two-way communication) can include a conversation ID1111. At reference numeral404, user A can initiate an additional data communication mode by sending an invitation targeted to user B, wherein the invitation is communicated through the UC server. At reference numeral406, the invitation is forwarded by user B to user C. It is to be appreciated that the forwarding and/or redirection can be automatic, manual, and/or any combination thereof. At reference numeral408, user C can respond with acceptance (e.g., ok response), wherein at reference numeral410, user A can acknowledge such response. Based upon the redirection and/or forwarding, at reference numeral412, a new conversation ID can be issued to the communication session, such as conversation ID2222. It is to be appreciated that the new conversation ID can be implemented by at least one of the user A, the device/machine/application associated with user A, the UC server, and/or the unified communications component associated with user A. Without the new conversation ID of2222, user A may include conversation (e.g., communication session) history items with the same conversation ID, when each communication session should be distinguished based upon changing participants. At reference numeral414, an information update for the conversation ID can be provided to user C. It is to be appreciated that the update can be provided to user C (e.g., the remote end) with any suitable technique. For instance, SIP informational update can be provided to user C by utilizing XML. At reference numeral416, user C can provide acknowledgment for the new conversation ID2222.

FIG. 5illustrates a timing diagram500that facilities tracking communication session identifications and/or conversation identifications associated with real-time communications within unified communications. It is to be appreciated that the timing diagram500is just one illustration in accordance with the subject innovation and is not to be limiting on the claimed subject matter. The timing diagram500can include a user A, a unified communications (UC) server, a user B, and a user C, wherein each user can utilize a unified communications component (not shown but described above) associated with the UC server in order to employ a real-time communication via communication sessions. It is to be appreciated and understood that the timing diagram500provides an additional example of when a conversation ID can be updated/changed.

At reference numeral502, a two-way communication (e.g., a communication session utilizing at least one data communication mode) can be utilized between user A and user B. This communication session (e.g., the two-way communication) can include a conversation ID1111. At reference numeral504, user A can initiate an additional data communication mode by sending an invitation targeted to user B, wherein the invitation is communicated through the UC server. At reference numeral506, the invitation can be forwarded by user B to user C. It is to be appreciated that the forwarding and/or redirection can be automatic, manual, and/or any combination thereof. Based upon the redirection and/or forwarding, at reference numeral508, a new conversation ID can be issued to the communication session, such as conversation ID2222. It is to be appreciated that the new conversation ID can be implemented by at least one of the user C, the device/machine/application associated with user C, the UC server, and/or the unified communications component associated with user C. At reference numeral510, user C can respond with acceptance (e.g., ok response) and the updated conversation ID2222, wherein at reference numeral512, user A can acknowledge such response. The update for the conversation ID can be provided to user A (e.g., the remote end) with any suitable technique. For instance, SIP informational update can be provided to user A by utilizing XML. In other words, the receiving application/unified communications component/device/machine can send the new conversation ID in the response (e.g., ok response) when it is determined that the original intended participant (e.g., in this example, user B) was not itself. For example, the determination can be made by evaluating the invitation, such as the TO: line in the SIP invitation (e.g., the TO: line stated user B but it was received by user C).

FIG. 6illustrates a system600that employs intelligence to facilitate evaluating real-time communications in order to maintain conversation identification integrity and/or accuracy. The system600can include the update component102, the unified communications component104, the communication session106, a data communication mode, and/or an invitation. It is to be appreciated that the update component102, the unified communications component104, the communication session106, the data communication mode, and/or the invitation can be substantially similar to respective components, sessions, modes, and/or invitations described in previous figures. The system600further includes an intelligent component602. The intelligent component602can be utilized by the update component102to facilitate maintaining communication session identification data and/or conversation identification data for a communication session in real-time communications. For example, the intelligent component602can infer communication session IDs, conversation IDs, redirection, forwarding, invitation forwarding, invitation redirecting, data communication mode, participants within a communication session, etc.

The update component102can further utilize a presentation component604that provides various types of user interfaces to facilitate interaction between a user and any component coupled to the update component102. As depicted, the presentation component604is a separate entity that can be utilized with the update component102. However, it is to be appreciated that the presentation component604and/or similar view components can be incorporated into the update component102and/or a stand-alone unit. The presentation component604can provide one or more graphical user interfaces (GUIs), command line interfaces, and the like. For example, a GUI can be rendered that provides a user with a region or means to load, import, read, etc., data, and can include a region to present the results of such. These regions can comprise known text and/or graphic regions comprising dialogue boxes, static controls, drop-down-menus, list boxes, pop-up menus, as edit controls, combo boxes, radio buttons, check boxes, push buttons, and graphic boxes. In addition, utilities to facilitate the presentation such as vertical and/or horizontal scroll bars for navigation and toolbar buttons to determine whether a region will be viewable can be employed. For example, the user can interact with one or more of the components coupled and/or incorporated into the update component102.

The user can also interact with the regions to select and provide information via various devices such as a mouse, a roller ball, a keypad, a keyboard, a pen and/or voice activation, for example. Typically, a mechanism such as a push button or the enter key on the keyboard can be employed subsequent entering the information in order to initiate the search. However, it is to be appreciated that the claimed subject matter is not so limited. For example, merely highlighting a check box can initiate information conveyance. In another example, a command line interface can be employed. For example, the command line interface can prompt (e.g., via a text message on a display and an audio tone) the user for information via providing a text message. The user can then provide suitable information, such as alpha-numeric input corresponding to an option provided in the interface prompt or an answer to a question posed in the prompt. It is to be appreciated that the command line interface can be employed in connection with a GUI and/or API. In addition, the command line interface can be employed in connection with hardware (e.g., video cards) and/or displays (e.g., black and white, and EGA) with limited graphic support, and/or low bandwidth communication channels.

FIG. 7illustrates a method700that facilitates generating communication session identifications and/or conversation identifications upon the detection of an invitation being redirected and/or forwarded. At reference numeral702, a communication session related to real-time communications can be evaluated. The communication session can be implemented by an integrated enterprise communication client in order to enable real-time communications (e.g., communication session) utilizing various data communication modes such as, but not limited to, instant messaging, voice over Internet protocol (VoIP), video conferencing, audio, voice, desktop sharing, application sharing, etc. Furthermore, the communication session can be utilized to integrate various computer applications and/or software such as, but not limited to, a word processing application, a data spreadsheet application, a presentation/slide creation program, an email application (e.g., leveraging off of address books, contact information, etc.), note taking applications, information gathering applications, multi-user collaboration note taking applications, desktop sharing applications, shared workspace applications, proprietary peer-to-peer software applications, and/or enterprise portal applications.

At reference numeral704, a redirection or a forwarding of an invitation can be identified, wherein the invitation can relate to at least one of the communication session or a data communication mode within the communication session. The redirection or forwarding can be identified by evaluating at least one of a participant within the communication session, a server related to the communication session, the communication session, the invitation, an application and/or software leveraged by the communication session, a device/machine (e.g., computer, portable computer, hand-held, laptop, portable digital assistant (PDA), desktop, mobile communications device, smartphone, VoIP device, instant messaging device, portable media device, media player, gaming device, device with real-time communication capability, etc.) utilized by a participant in the communication session, etc.

At reference numeral706, the communication session can be updated with an additional conversation identification based at least in part upon the detection of a forwarding and/or redirection. For example, the communication session can include identification data (e.g., communication session identification, conversation identification, communication session ID, conversation ID, etc.) that can be updated upon a forwarding and/or redirecting of an invitation specified for a particular target. If the invitation is forwarded by the target to a disparate entity (e.g., machine, user, computer, etc.), the conversation identification can be updated so as to distinguish the communication session before the forwarding and/or redirection and the communication session after the forwarding and/or redirection.

FIG. 8illustrates a method800for creating communication session identification and/or conversation ID based on redirection and/or forwarding of a real-time communication invitation. At reference numeral802, a communication session with a conversation ID can be employed to provide real-time communications. It is to be appreciated that the communication session can be associated with real-time communications and/or unified communications implemented by, for instance, an integrated enterprise communications client that interacts with a server. At reference numeral804, an invitation can be sent to a target to add an additional data communication mode to the communication session. As discussed above, the communication session can include any suitable data communication mode such as, but not limited to, instant messaging, voice over Internet protocol (VoIP), video conferencing, audio, voice, desktop sharing, application sharing, etc.

At reference numeral806, a determination is made as to whether redirection or forwarding is detected in connection with the invitation. If forwarding or redetection is not identified, the methodology800can continue to reference numeral808. At reference numeral808, the conversation identification can be maintained (e.g., not change, not updated, etc.). If forwarding or redetection is identified, the methodology800can continue to reference numeral810. At reference numeral810, the conversation identification can be updated for distinction.

In order to provide additional context for implementing various aspects of the claimed subject matter,FIGS. 9-10and the following discussion is intended to provide a brief, general description of a suitable computing environment in which the various aspects of the subject innovation may be implemented. For example, an update component that facilitates generating communication session identifications and/or conversation identifications including participant information regardless of redirection and/or forwarding within unified communications, as described in the previous figures, can be implemented in such suitable computing environment. While the claimed subject matter has been described above in the general context of computer-executable instructions of a computer program that runs on a local computer and/or remote computer, those skilled in the art will recognize that the subject innovation also may be implemented in combination with other program modules. Generally, program modules include routines, programs, components, data structures, etc., that perform particular tasks and/or implement particular abstract data types.

Moreover, those skilled in the art will appreciate that the inventive methods may be practiced with other computer system configurations, including single-processor or multi-processor computer systems, minicomputers, mainframe computers, as well as personal computers, hand-held computing devices, microprocessor-based and/or programmable consumer electronics, and the like, each of which may operatively communicate with one or more associated devices. The illustrated aspects of the claimed subject matter may also be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network. However, some, if not all, aspects of the subject innovation may be practiced on stand-alone computers. In a distributed computing environment, program modules may be located in local and/or remote memory storage devices.

FIG. 9is a schematic block diagram of a sample-computing environment900with which the claimed subject matter can interact. The system900includes one or more client(s)910. The client(s)910can be hardware and/or software (e.g., threads, processes, computing devices). The system900also includes one or more server(s)920. The server(s)920can be hardware and/or software (e.g., threads, processes, computing devices). The servers920can house threads to perform transformations by employing the subject innovation, for example.

One possible communication between a client910and a server920can be in the form of a data packet adapted to be transmitted between two or more computer processes. The system900includes a communication framework940that can be employed to facilitate communications between the client(s)910and the server(s)920. The client(s)910are operably connected to one or more client data store(s)950that can be employed to store information local to the client(s)910. Similarly, the server(s)920are operably connected to one or more server data store(s)930that can be employed to store information local to the servers920.

With reference toFIG. 10, an exemplary environment1000for implementing various aspects of the claimed subject matter includes a computer1012. The computer1012includes a processing unit1014, a system memory1016, and a system bus1018. The system bus1018couples system components including, but not limited to, the system memory1016to the processing unit1014. The processing unit1014can be any of various available processors. Dual microprocessors and other multiprocessor architectures also can be employed as the processing unit1014.

The system memory1016includes volatile memory1020and nonvolatile memory1022. The basic input/output system (BIOS), containing the basic routines to transfer information between elements within the computer1012, such as during start-up, is stored in nonvolatile memory1022. By way of illustration, and not limitation, nonvolatile memory1022can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memory1020includes random access memory (RAM), which acts as external cache memory. By way of illustration and not limitation, RAM is available in many forms such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), Rambus direct RAM (RDRAM), direct Rambus dynamic RAM (DRDRAM), and Rambus dynamic RAM (RDRAM).

Computer1012can operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s)1044. The remote computer(s)1044can be a personal computer, a server, a router, a network PC, a workstation, a microprocessor based appliance, a peer device or other common network node and the like, and typically includes many or all of the elements described relative to computer1012. For purposes of brevity, only a memory storage device1046is illustrated with remote computer(s)1044. Remote computer(s)1044is logically connected to computer1012through a network interface1048and then physically connected via communication connection1050. Network interface1048encompasses wire and/or wireless communication networks such as local-area networks (LAN) and wide-area networks (WAN). LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ring and the like. WAN technologies include, but are not limited to, point-to-point links, circuit switching networks like Integrated Services Digital Networks (ISDN) and variations thereon, packet switching networks, and Digital Subscriber Lines (DSL).

Communication connection(s)1050refers to the hardware/software employed to connect the network interface1048to the bus1018. While communication connection1050is shown for illustrative clarity inside computer1012, it can also be external to computer1012. The hardware/software necessary for connection to the network interface1048includes, for exemplary purposes only, internal and external technologies such as, modems including regular telephone grade modems, cable modems and DSL modems, ISDN adapters, and Ethernet cards.

There are multiple ways of implementing the present innovation, e.g., an appropriate API, tool kit, driver code, operating system, control, standalone or downloadable software object, etc. which enables applications and services to use the advertising techniques of the invention. The claimed subject matter contemplates the use from the standpoint of an API (or other software object), as well as from a software or hardware object that operates according to the advertising techniques in accordance with the invention. Thus, various implementations of the innovation described herein may have aspects that are wholly in hardware, partly in hardware and partly in software, as well as in software.