Patent Publication Number: US-10771525-B2

Title: System and method of discovery and launch associated with a networked media device

Description:
CLAIM OF PRIORITY 
     This application is a Continuation application of and claims priority to, and incorporates herein by reference the entire specification of the U.S. Utility application Ser. No. 14/834,458 titled SYSTEM AND METHOD OF DISCOVERY AND LAUNCH ASSOCIATED WITH A NETWORKED MEDIA, filed on Aug. 25, 2015. The U.S. utility application Ser. No. 14/834,458 further claims the priority to the applications:
         (1) U.S. Continuation application Ser. No. 14/053,620 titled DISCOVERY AND LAUNCH SYSTEM AND METHOD, filed on Oct. 15, 2013 and issued as U.S. Pat. No. 9,167,419 on Oct. 20, 2015.   (2) U.S. Utility patent application Ser. No. 13/736,031 titled ZERO CONFIGURATION COMMUNICATION BETWEEN A BROWSER AND A NETWORKED MEDIA DEVICE, filed on Jan. 7, 2013 and issued as U.S. Pat. No. 9,154,942 on Oct. 6, 2015.   (3) U.S. Provisional Patent application No. 61/696,711 titled SYSTEMS AND METHODS FOR RECOGNIZING CONTENT, filed on Sep. 4, 2012.   (4) U.S. Continuation application Ser. No. 13/470,814 titled GENERATION OF A TARGETED ADVERTISEMENT IN AN UNTRUSTED SANDBOX BASED ON A PSUEDONYM, filed on May 14, 2012 and issued as U.S. Pat. No. 8,539,072 on Sep. 17, 2013.   (5) U.S. Provisional Patent application No. 61/584,168 titled CAPTURING CONTENT FOR DISPLAY ON A TELEVISION, filed on Jan. 6, 2012.   (6) U.S. patent application Ser. No. 12/592,377 titled DISCOVERY, ACCESS CONTROL, AND COMMUNICATION WITH NETWORKED SERVICES FROM WITHIN A SECURITY SANDBOX, filed on Nov. 23, 2009 and issued as U.S. Pat. No. 8,180,891 on May 15, 2012.
           1. U.S. Provisional Patent application No. 61/118,286 titled DISCOVERY, ACCESS CONTROL, AND COMMUNICATION WITH NETWORKED SERVICES FROM WITHIN A SECURITY SANDBOX, filed on Nov. 26, 2008.   
               

    
    
     FIELD OF TECHNOLOGY 
     This disclosure relates generally to the technical field of networking, and in one example embodiment, this disclosure relates to a method, apparatus and/or system related to discovery and launch system and method. 
     BACKGROUND 
     A user may watch an audio-visual data (e.g., a movie, a television show, an advertisement, etc.) accessed through an online media streaming service (e.g., Amazon® Instant Video, NetFlix®, Google YouTube®, Apple iTunes® etc.) using a mobile device (e.g., a client device such as an Apple iPhone®, Google Nexus®, an AppleiPad®, a Samsung Galaxy phone, etc.). The user may also utilize an application (e.g., a website, a drawing program) on the mobile device. 
     However, a display size of the mobile device may be smaller than a media device (e.g., a television, a projection device, a multi-dimensional visual emersion system, a console) in close proximity to the user. For example, a student (e.g., the user) may be watching a movie on NetFlix® (e.g., the online media streaming service) on their Apple iPad® tablet (e.g., the client device) while sitting on a couch in front of a television (e.g., the media device). The user may not have an efficient way to seamlessly launch the audio-visual content (or the application) presently being viewed on the mobile device to the media device. In addition, the media device may be unaware that the user is currently watching the audio-visual data (or utilizing the application). As such, the user may be limited in their ability to use the media device. Therefore, the user may not be able to take advantage of enhanced capabilities of the media device (e.g., larger screen, better audio, better resolution, etc.). 
     SUMMARY 
     A method, apparatus and/or system related to discovery and launch system and method. 
     In one aspect, a method of a mobile device includes accessing a multicast capability of an operating system of a client device. The client device is associated with a user. The method also includes discovering, through the client device, at least one other data processing device in an active state of reception of data from the client device through a local area network (LAN) based on the multicast capability accessed in the client device. A request is wirelessly transmitted, through the client device, to the at least one other data processing device discovered to be in the active state of reception of the data from the client device through the LAN. The at least one other data processing device is communicatively coupled to the client device through the LAN, and the request is related to identifying an application residing on the at least one other data processing device. The method determines, through the client device, that the application residing on the at least one other data processing device is similar to an application residing on the client device configured to render an audio/visual data stream thereon based on a response to the request. The method also includes either populating a table of the operating system of the client device with a list of applications residing on the at least one other data processing device similar to the application residing on the client device, the applications within the list having identifiers associated therewith and/or presenting the identifiers to the client device to enable a user thereof select an identifier therethrough. 
     The method may wirelessly launch, through the client device, the audio/visual data stream on the at least one other data processing device through the similar application residing thereon across the LAN based on the determination of the similarity of the application, the wireless launching enabling the same user associated with the client device view the audio/visual data stream on the at least one other data processing device. The audio/visual data stream may be wirelessly launched on the similar application residing on the at least one other data processing device based on the populated table of the operating system of the client device comprising the identifier of the similar application residing on the at least one other data processing device. 
     The method may include bookmarking the audio/visual data stream through the application residing on the client device. The method may store data related to the bookmarking in the client device and/or a central server communicatively coupled to the client device through the LAN and/or another computer network, the central server being configured to serve the audio/visual data stream to the client device. The stored date related to the bookmarking may be leveraged to launch the audio/visual data stream on the similar application residing on the at least one other data processing device. 
     It may be determined whether the audio/visual data stream is being rendered on the application residing on the client device. The method may store data related to a currency of the rendering on the client device on the client device and/or a central server communicatively coupled to the client device through the LAN and/or another computer network, the central server being configured to host content related to the audio/visual data stream being rendered on the client device. The method include leveraging the stored data related to the currency of the rendering to launch the audio/visual data stream on the similar application residing on the at least one other data processing device. 
     The method may communicate either a Uniform Resource Locator (URL) and/or an interpretable content identifier to the application residing on the client device such that the wireless launching of the audio/visual data stream on the similar application of the at least one other data processing device is initiated based on data communicated through a corresponding destination Internet Protocol (IP) address associated with the URL and/or information associated with the interpretable content identifier. 
     The determination of the similarity between the application residing on the client device and the application residing on the at least one other data processing device may compare the application residing on the at least one other data processing device across a registry database residing on the client device and/or a server external thereto to associate the application residing on the at least one other data processing device with the application residing on the client device. 
     In another aspect, a system includes a LAN, a client device, a client device comprising a processor communicatively coupled to a memory, the client device being associated with a user, and at least one other data processing device communicatively coupled to the client device through the LAN. The processor of the client device is configured to execute instructions to access a multicast capability of an operating system of the client device, discover that the at least one other data processing device is in an active state of reception of data from the client device through the LAN based on the access of the multicast capability in the client device, wirelessly transmit a request related to identifying an application residing on the at least one other data processing device discovered to be in the active state of reception of the data from the client device thereto, determine that the application residing on the at least one other data processing device is similar to an application residing on the client device configured to render an audio/visual data stream thereon based on a response to the request, and either populate a table of the operating system of the client device with a list of applications residing on the at least one other data processing device similar to the application residing on the client device, the applications within the list having identifiers associated therewith, and/or present the identifiers to the client device to enable a user thereof select an identifier therethrough. 
     In yet another aspect, a non-transitory medium, readable through a client device associated with a user and comprising instructions embodied therein that are executable through the client device, includes instructions to access a multicast capability of an operating system of the client device, instructions to discover, through the client device, at least one other data processing device in an active state of reception of data from the client device through a LAN based on the multicast capability accessed in the client device, instructions to wirelessly transmit, through the client device, a request to the at least one other data processing device discovered to be in the active state of reception of the data from the client device through the LAN, the at least one other data processing device being communicatively coupled to the client device through the LAN, and the request being related to identifying an application residing on the at least one other data processing device, instructions to determine, through the client device, that the application residing on the at least one other data processing device is similar to an application residing on the client device configured to render an audio/visual data stream thereon based on a response to the request, and instructions to populate a table of the operating system of the client device with a list of applications residing on the at least one other data processing device similar to the application residing on the client device, the applications within the list having identifiers associated therewith, and/or present the identifiers to the client device to enable a user thereof select an identifier therethrough. 
     The methods, system, and/or apparatuses disclosed herein may be implemented in any means for achieving various aspects, and may be executed in a form of machine readable medium embodying a set of instruction that, when executed by a machine, causes the machine to perform any of the operations disclosed herein. Other features will be apparent from the accompanying drawing and from the detailed description that follows. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
       Example embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawing, in which like references indicate similar elements and in which: 
         FIG. 1  is a block diagram of a system of automatic bidirectional communication between multiple devices sharing a common network, according to one embodiment. 
         FIG. 2  is a block diagram of a system of automatic bidirectional communication between a client device  100  and a networked device  102  using a server, according to one embodiment. 
         FIG. 3  is an exploded view of the security sandbox  104 , according to one embodiment. 
         FIG. 4  is an exploded view of the pairing server  200 , according to one embodiment. 
         FIG. 5  is an exploded view of the client device  100 , according to one embodiment. 
         FIG. 6  is a table of example network information stored in a database  422  of a pairing server  200 , according to one embodiment. 
         FIG. 7  is a block diagram of a method by which a security sandbox  104  can communicate with a sandbox reachable service  114  that previously operated on a shared network  202 , according to one embodiment. 
         FIG. 8  is a schematic diagram of a private network  800  and a private network  802  communicating over the public Internet via a NAT device  804  and a NAT device  806 , according to one embodiment. 
         FIG. 9  illustrates a network view of a method, apparatus and system related to automatic detection of a similar application stored on a networked media device through a multicast capability of an operating system accessed through an application of a mobile device, according to one embodiment. 
         FIG. 10  illustrates a method, apparatus and system related to automated discovery and switch of a primary output display from a first display of a mobile device to a second display of a networked media device through an operating system of the mobile device, according to one embodiment. 
         FIG. 11  illustrates a system, apparatus and method related to a communication dongle physically coupled with a media device to automatically discover and launch an application on the media device and to enable switching of a primary output display from a first display of a mobile device to a second display of the media device through an operating system of the mobile device sharing a local area network with the communication dongle, according to one embodiment. 
         FIG. 12  is a user interface view of an operating system and a browser application executing through the operating system, according to one embodiment. 
     
    
    
     Other features of the present embodiments will be apparent from the accompanying drawings and from the detailed description that follows. 
     DETAILED DESCRIPTION 
     A method, apparatus and/or system related to discovery and launch system and method. 
     In one embodiment, a method of a mobile device  900  includes accessing a multicast capability of an operating system  918  through an application  914  of the mobile device  900 , determining if there is a similar application  914  locally stored on a networked media device  902  to the application  914  on the mobile device  900  when a multicast message (e.g., using the multicast algorithm  920 ) is broadcast to the networked media device  902  communicatively coupled to the mobile device  900  through a local area network  904 , and automatically launching the similar application  914  on the networked media device  902  based on a communication of the multicast message (e.g., using the multicast algorithm  920 ) from the mobile device  900  to the networked media device  902 . 
     The multicast message (e.g., using the multicast algorithm  920 ) may be delivered through a multicast algorithm of the operating system  918  that communicates a name-announce request to any networked media device  902  communicatively coupled to the mobile device  900  through the local area network  904 . The multicast message (e.g., using the multicast algorithm  920 ) may be communicated wirelessly through the local area network  904 . The multicast message (e.g., using the multicast algorithm  920 ) may be communicated as a broadcast to all available networked media device  902   s  communicatively coupled to the mobile device  900  through the local area network  904 . 
     It may be determined which network media devices in the local area network  904  may be listening for the multicast message (e.g., using the multicast algorithm  920 ). It may be determined if the similar application  914  meets a criteria. A name of the similar application  914  received in response to the name-announce request may be processed. A table of the application  914  that lists the name and/or other names of other similar application  914   s  associated with networked media device  902   s  in the local area network  904  may be processed. The name of the application  914  may be presented to a user. A launch sequence may be communicated to the similar application  914  responsive to a selection of the name by the user. It may be determined that the similar application  914  has launched based on the launch sequence. A communication session between the application  914  and/or the similar application  914  may be established. 
     A current state data and/or a bookmark data of an audio-visual data executing on the application  914  on the mobile device  900  may be communicated to the similar application  914  on the networked media device  902  through the mobile device  900  and/or a central server through which the audio-visual data is streamed to the mobile device  900 . The audio-visual data may be streamed from the central server to the similar application  914  on the networked media device  902  based on the current state data and/or the bookmark data. The mobile device  900  may be unaware of how many networked media device  902   s  are presently communicatively coupled with the mobile device  900  through the local area network  904 . 
     The nodes of the local area network  904  may replicate packets associated with the multicast message (e.g., using the multicast algorithm  920 ) having the name-announce request to reach multiple ones of the networked media device  902   s  when necessary. The launch sequence may be communicated in a form of a Uniform Resource Locator (URL) code to the similar application  914 , so that the networked media device  902  is instructed to launch the similar application  914  based on data communicated through a destination internet protocol (IP) address associated with the URL. The name of the similar application  914  may be compared with a registry of names in a registry database of any one of the central server and/or the mobile device  900  to determine whether the similar application  914  of the networked media device  902  is associatiable with the application  914  of the mobile device  900 . 
     In another embodiment, a method of a mobile device  900  includes accessing a multicast capability of an operating system  918  through an application  914  of the mobile device  900 , determining if there is a similar application  914  locally stored on a networked media device  902  to the application  914  on the mobile device  900  when a multicast message (e.g., using the multicast algorithm  920 ) is broadcast to the networked media device  902  communicatively coupled to the mobile device  900  through a local area network  904 , automatically launching the similar application  914  on the networked media device  902  based on a communication of the multicast message (e.g., using the multicast algorithm  920 ) from the mobile device  900  to the networked media device  902 , and delivering the multicast message (e.g., using the multicast algorithm  920 ) through a multicast algorithm of the operating system  918  that communicates a name-announce request to any networked media device  902  communicatively coupled to the mobile device  900  through the local area network  904 . 
     In yet another embodiment, a system includes a mobile device  900  to access a multicast capability of an operating system  918  through an application  914  of the mobile device  900 , a local area network  904 , and a networked media device  902  communicatively coupled with the mobile device  900  through the local area network  904 . The mobile device  900  determines if there is a similar application  914  locally stored on the networked media device  902  to the application  914  on the mobile device  900  when a multicast message (e.g., using the multicast algorithm  920 ) is broadcast to the networked media device  902  communicatively coupled to the mobile device  900  through a local area network  904 . The networked media device  902  automatically launches the similar application  914  on the networked media device  902  based on a communication of the multicast message (e.g., using the multicast algorithm  920 ) from the mobile device  900  to the networked media device  902 . 
     In a further embodiment, a method of a client device  100  includes determining that a networked device  102  sharing a local area network (e.g., the shared network  202 ) common with the client device  100  has automatically detected an audio-visual data and/or an application currently being accessed by a user of the client device  100 . The client device  100  automatically communicates a present state of the audio-visual data and/or the application currently being accessed by the user of the client device  100  to the networked device  102 . Then, the client device  100  detects that the audio-visual data and/or the application currently being accessed by the user of the client device  100  has been launched on the networked device  102 . Optionally, a haptic gesture (e.g., slide of a hand on a display of a mobile device, a tapping of a display, etc.) may be applied on the client device  100  by the user to transport the audio-visual data and/or the application from the client device  100  to the networked device  102 . The application may serve a control point when the present state of the audio-visual data and/or the application currently being accessed by the user of the client device  100  is communicated to the networked device  102 . In addition, an automatic content recognition algorithm in the client device  100  and/or the networked device  102  may generate a meta-data associated with content in the present state of the audio-visual data. 
     In yet an even further embodiment, a method of a networked device includes automatically detecting that an audio-visual data and/or an application currently being accessed by a user of a client device  100  is sharing a local area network (e.g., the shared network  202 ) common with the networked device. The networked device determines a present state of the audio-visual data and/or the application currently being accessed by the user of the client device  100 . Then, the networked device automatically launches the audio-visual data and/or the application currently being accessed by the user of the client device  100  on the networked device  102 . 
     In a separate embodiment, a system includes a networked device to launch an audio-visual data and/or an application currently being accessed in a local area network (e.g., the shared network  202 ) in which the networked device is affiliated, and a client device  100  sharing the local area network (e.g., the shared network  202 ) with the networked device to automatically communicate a present state of the audio-visual data and/or the application currently being accessed to the networked media. device. 
     A communication may be established between a client device (e.g., a laptop, a tablet device, a data processing) and a media device (e.g., a television, a projection device, a multi-dimensional visual emersion system, a console). For example, a user of the client device may need to read a manual to understand a protocol to configure the media device into a networked media device (the media device registered in a communication network). The user may not understand the protocol. As such, the user may consume significant customer support time in configuring the media device. Alternatively, the user may need to expend financial resources to request assistance from a network administrator to assist the user in configuring the media device. This may be cost prohibitive for the user. 
     Furthermore, the user may need to associate the media device with the client device. The user may need a code that uniquely identifies the media device. The user may be unable to locate the code that uniquely identifies the media device. Even still, the user may need to create an account to register a communication session between the client device and the media device. This may be time consuming and difficult. As a result, the user may give up and not associate the client device and the media device. Therefore, a revenue opportunity may be missed because an interested party (e.g., a distribution carrier, a set top box operator, a search engine, an advertiser, the user etc.) may be unable to access behavioral data associated with use of the media. In addition, the user may be inconvenienced when a programming on the media device and the client device remain independent of each other. 
       FIG. 1  is a block diagram of a system of automatic bidirectional communication (e.g., sending and receiving information in both directions without prior configuration by a human) between multiple devices sharing a common network, according to one embodiment.  FIG. 1  shows a client device  100 , a networked device  102 , a security sandbox  104 , an executable environment  106 , a processor  108 , a storage  117  a memory  110 , a sandboxed application  112 , and a sandbox reachable service  114 . The client device  100  communicates bidirectionally with the networked device  102  of  FIG. 1 . 
     According to one embodiment, a client device  100  may be a computer, a smartphone, and/or any other hardware with a program that initiates contact with a server to make use of a resource. A client device  100  may constrain an executable environment  106  in a security sandbox  104 , execute a sandboxed application  112  in a security sandbox  104  using a processor  108  and a memory  110 , and automatically instantiate (e.g., manifest) a connection (e.g., a complete path between two terminals over which two-way communications may be provided) between a sandboxed application  112  and a sandbox reachable service  114  of the networked device  102 . 
     According to one embodiment, a networked device  102  may be a television, stereo, game console, another computer, and/or any other hardware connected by communications channels that allow sharing of resources and information. A networked device  102  may comprise a number of sandbox reachable applications. A networked device  102  may announce a sandbox reachable service  114  using a processor  108  and a memory  110 . According to one embodiment, a processor  108  may be a central processing unit (CPU), a microprocessor, and/or any other hardware within a computer system which carries out the instructions of a program by performing the basic arithmetical, logical, and input/output operations of the system. According to one embodiment, a memory  110  may be a random access memory (RAM), a read only memory (ROM), a flash memory, and/or any other physical devices used to store programs or data for use in a digital electronic device. 
     The security sandbox  104 , the processor  108 , the storage  117 , and the memory  110  each exist within the client device  100  of  FIG. 1 , and they communicate bidirectionally with each other. According to one embodiment, a security sandbox  104  may be an operating system on which the sandboxed application  112  is hosted, a browser application of the operating system, and/or any other mechanism for separating running programs to execute untested code and/or untrusted programs from unverified third-parties, suppliers, untrusted users, and untrusted websites. According to one embodiment, a storage  117  may be a technology consisting of computer components and recording media used to retain digital data. 
     The executable environment  106  exists within the security sandbox  104  of  FIG. 1 . According to one embodiment, an executable environment  106  may be a virtual machine, a jail, a scripting language interpreter, a scratch space on disk and memory, and/or any other tightly controlled set of resources in which to run guest programs. 
     The sandboxed application  112  exists within the executable environment  106  of  FIG. 1 . According to one embodiment, a sandboxed application  112  may be an untested code, an untrusted program (e.g., from an untrusted web page), and/or any other software that can be executed with the appropriate runtime environment of the security sandbox  104 . 
     The sandbox reachable service  114  exists within the networked device  102  of  FIG. 1 . According to one embodiment, a sandbox reachable service  114  may be a smart television application, a set-top box application, an audio device application, a game console application, a computer application, and/or any other service that can be discovered and communicated with from within the sandboxed application  112 .  FIG. 1  may encompass constraining a sandbox reachable service  114  in a security sandbox  104  where it is described sandbox reachable service  114 , according to one embodiment. A security sandbox  104  may not allow a sandbox reachable service  114  that is constrained in the security sandbox  104  to open a server socket and receive inbound connections. However, a sandbox reachable service  114  that is constrained in the security sandbox  104  may still announce and be discovered, but all communications between a client device  100  and a networked device  102  may need to traverse through a relay in a pairing server  200 . 
       FIG. 2  is a block diagram of a system of automatic bidirectional communication between a client device  100  and a networked device  102  using a server, according to one embodiment.  FIG. 2  shows a client device  100 , a networked device  102 , a security sandbox  104 , an executable environment  106 , a processor  108 , a memory  110 , a sandboxed application  112 , a pairing server  200 , a shared network  202 , a Wide Area Network (WAN)  204 , a devices  206 , a global unique identifier (GUID)  208 , an alphanumeric name  210 , a private address pair  212 , a sandbox reachable service  114 , an identification data  216 , a switch  218 , a public address pair  220 , and a hardware address  222 . 
     The client device  100 , the networked device  102 , and the devices  206  communicate bidirectionally with each other through the switch  218  in the shared network  202 . According to one embodiment, a devices  206  may be a television, a projection screen, a multimedia display, a touchscreen display, an audio device, a weather measurement device, a traffic monitoring device, a status update device, a global positioning device, a geospatial estimation device, a tracking device, a bidirectional communication device, a unicast device, a broadcast device, a multidimensional visual presentation device, and/or any other devices with a network interface. According to one embodiment, a switch  218  may be a telecommunication device (e.g., a broadcast, multicast, and/or anycast forwarding hardware) that receives a message from any device connected to it and then transmits the message only to the device for which the message was meant. 
     According to one embodiment, a shared network  202  may be a local area network, a multicast network, an anycast network, a multilan network, a private network (e.g., any network with a private IP space), and/or any other collection of hardware interconnected by communication channels that allow sharing of resources and information. When a sandboxed application  112  and a sandbox reachable service  114  communicate in a shared network  202  common to the client device  100  and a networked device  102  when a connection is established, a client device  100  may eliminate a communication through a centralized infrastructure (e.g., a pairing server  200  which may be used only for discovery), minimize latency in the communication session (e.g., by establishing a connection between a client device  100  and a networked device  102  rather than by relaying via a pairing server  200 ), and improve privacy in the communication session. 
       FIG. 2  may encompass establishing a shared network  202  based on a bidirectional communication that does not use a relay service where it is described a shared network  202 , according to one embodiment. Multiple local area networks (LANs) may share a public IP address. A client device  100  may reside on one LAN, and a sandbox reachable service  114  may reside on another LAN. A client device  100  may discover a sandbox reachable service by matching public Internet Protocol (IP) addresses. However, a sandbox reachable service  114  that is not constrained to a security sandbox  104  may have an unconstrained view (e.g., it may have access to Media Access Control addresses, Address Resolution Protocol, and/or routing tables) of a shared network  202 . 
     A client device  100  may attempt to communicate with a sandbox reachable service  114  (e.g., by opening a Transmission Control Protocol connection and/or by sending a User Datagram Protocol datagram) without using a relay service. A shared network  202  may be established if a connection successfully handshakes, a datagram arrives, and/or the client device  100  and the sandbox reachable service  114  otherwise communicate bidirectionally without using a relay service. 
     In one embodiment, a method of a client device  100  includes applying an automatic content recognition algorithm (e.g., from the algorithm library  107 ) to determine a content identifier  111  of an audio-visual data. The client device  100  then associates the content identifier  111  with an advertisement data  113  based on a semantic correlation between a meta-data of the advertisement provided by a content provider and/or the content identifier  111 . Advertisement targeting (e.g., how relevant an advertisement is to a user) is improved when a script (e.g., a Javascript code, a cookie) is embedded in the client device  100 , a supply-side platform (e.g., a technology platform with the single mission of enabling publishers to manage their ad impression inventory and maximize revenue from digital media), and/or a data provider integrated with the supply side platform. 
     Arbitrary cross-site scripts are executed in the sandboxed application  112  of the client device  100 . The content identifier  111  are obfuscated in a manner that it is relevant to a particular demand-side platform (e.g., a system that allows buyers of digital advertising to manage multiple ad exchange and data exchange accounts through one interface) to eliminate a need to query the provider of the content identifier  111  on a per ad-spot basis. The demand-side platform submits requests to the advertising exchange server  115  based on a constraint type rather than through a bidding methodology on a per advertisement spot basis. 
     The advertisement data  113  may be generated through an advertising exchange server  115  based on the content identifier  111  of the audio-visual data and/or a public internet-protocol address associated with an application requesting the advertisement data  113 . A provider of the content identifier  111  may receive a compensation when the advertisement data  113  is associated with the audio-visual data based on the public internet protocol address associated with the application requesting the advertisement data  113 . 
     The provider of the content may append a set of content identifiers (e.g., the content identifier  111 ) from associated clients and/or a viewing history from associated clients to a plurality of advertisements and/or resells the advertisement data  113  back to the advertising exchange server  115  based on the appended content identifiers (e.g., content identifier  111 ). A capture infrastructure  105  may annotate the audio-visual data with a brand name and/or a product name by comparing entries in the master database  109  with a closed captioning data of the audio-visual data and/or through an application of an optical character recognition algorithm (e.g., from the algorithm library  107 ) in the audio-visual data. A sandboxed application  112  of the client device  100  may request access to a microphone and/or a camera on the client device  100  to capture a raw audio/video data. 
     The capture infrastructure  105  may process the raw audio/video data with the brand name and/or the product name by comparing entries in the master database  109  with the raw audio/video data and/or through the application of a sensory recognition algorithm (e.g., from the algorithm library  107 ) of the raw audio/video data. 
     The sandboxed application  112  may query a MAC address of the sandbox reachable service  114  in a common private network. The sandbox reachable service  114  may optionally verify that the sandboxed application  112  is in the common private network. The sandbox reachable service  114  may communicate a MAC address of the sandboxed application  112  to the sandboxed application  112  when the common private network is shared. The sandboxed application  112  may store the MAC address of the sandboxed application  112  and/or a unique identifier derived from the MAC address of the sandboxed application  112 . 
     The sandboxed application  112  may communicate the MAC address and/or the unique identifier to the pairing server. A script may be automatically regenerated that is embedded in the client device  100 , a supply-side platform, and/or a data provider integrated with the supply side platform when the common private network is shared by the sandboxed application  112  and/or sandboxed application  112  based on the MAC address of the sandboxed application  112  and/or the unique identifier communicated to the pairing server. 
     In another embodiment, a method of a networked device includes applying an automatic content recognition algorithm (e.g., from the algorithm library  107 ) to determine a content identifier  111  of an audio-visual data and associating the content identifier  111  with an advertisement data  113  based on a semantic correlation between a meta-data of the advertisement provided by a content provider and/or the content identifier  111 . 
     In this another embodiment, advertising targeting (e.g., how relevant an advertisement is to a user) is improved when a script (e.g., a Javascript code, a cookie) is embedded in the client device  100 , a supply-side platform (e.g., a technology platform with the single mission of enabling publishers to manage their ad impression inventory and maximize revenue from digital media), and/or a data provider integrated with the supply side platform. Arbitrary cross-site scripts are executed in the sandboxed application  112  of the client device  100 . The content identifier  111  are obfuscated in a manner that it is relevant to a particular demand-side platform (e.g., a system that allows buyers of digital advertising to manage multiple ad exchange and data exchange accounts through one interface) to eliminate a need to query the provider of the content identifier  111  on a per ad-spot basis. The demand-side platform submits requests to the advertising exchange server  115  based on a constraint type rather than through a bidding methodology on a per advertisement spot basis. 
     In yet another embodiment, a system includes a networked device and/or a client device  100  to apply an automatic content recognition algorithm (e.g., from the algorithm library  107 ) to determine a content identifier  111  of an audio-visual data and/or to associate the content identifier  111  with an advertisement data  113  based on a semantic correlation between a meta-data of the advertisement provided by a content provider and/or the content identifier  111 . In addition, the system includes a capture infrastructure  105  to annotate the audio-visual data with a brand name and/or a product name by comparing entries in the master database  109  with a closed captioning data of the audio-visual data and/or through an application of an optical character recognition algorithm (e.g., from the algorithm library  107 ) in the audio-visual data. 
     In one embodiment, a method of a client device  100  includes applying an automatic content recognition algorithm (e.g., in the algorithm library  107 ) to determine a content identifier  111  of an audio-visual data (e.g., a movie, a television show, an advertisement, etc.). The client device  100  then associates the content identifier  111  with an advertisement data  113  based on a semantic correlation between a meta-data of the advertisement (a particular advertisement of the advertisement data  113 ) provided by a content provider (e.g., an organization providing advertisements) and/or the content identifier  111 . A capture infrastructure  105  annotates the audio-visual data with a brand name and/or a product name by comparing entries in the master database  109  with a closed captioning data of the audio-visual data and/or through an application of an optical character recognition algorithm (e.g., in the algorithm library  107 ) in the audio-visual data. The content identifier  111  may involve a music identification, an object identification, a facial identification, and/or a voice identification. A minimal functionality including accessing a tuner and/or a stream decoder that identifies a channel and/or a content may be found in the networked media device (e.g., the networked device  102 ). The networked media device (e.g., the networked device  102 ) may produce an audio fingerprint and/or a video fingerprint that is communicated with the capture infrastructure  105 . 
     The capture infrastructure  105  may compare the audio fingerprint and/or the video fingerprint with a master database  109 . The capture infrastructure  105  may further annotate the audio-visual data with a logo name by comparing entries in the master database  109  with a logo data of the audio-visual data identified using a logo detection algorithm (e.g., in the algorithm library  107 ). The capture infrastructure  105  may automatically divide the audio-visual data into a series of scenes based on a sematic grouping of actions in the audio-visual data. The audio-visual data may be analyzed in advance of a broadcast to determine content identifiers (e.g., the content identifier  111 ) associated with each commercial in the audio-visual data such that advertisements are pre-inserted into the audio-visual data prior to broadcast. 
     The capture infrastructure  105  may apply a time-order algorithm (e.g., in the algorithm library  107 ) to automatically match advertisements to the audio-visual data when a correlation pattern is identified by the capture infrastructure  105  with other audio-visual content previously analyzed. The capture infrastructure  105  may include a buffer that is saved to a persistent storage and/or for which a label is generated to facilitate identification of reoccurring sequences. A post processing operation may be automated through a post-processing algorithm (e.g., in the algorithm library  107 ) and/or a crowd-sourced operation using a plurality of users in which a turing test is applied to determine a veracity of an input. 
     A device pairing algorithm (e.g., in the algorithm library  107 ) may be used in which a cookie data associated with a web page visited by the user stored on a browser on the client device  100  is paired with the networked media device (e.g., the networked device  102 ) when the client device  100  is communicatively coupled with the networked media device (e.g., the networked device  102 ). A transitive public IP matching algorithm (e.g., in the algorithm library  107 ) may be utilized in which the client device  100  and/or the networked media device (e.g., the networked device  102 ) communicates each public IP address with any paired entity to the capture infrastructure  105 . A tag that is unconstrained from a same-origin policy may be used to automatically load the advertisement in the browser, the tag is an image tag, a frame, a iframe, and/or a script tag. 
     An additional metadata including the content identifier  111  and/or the advertisement based on a video processing algorithm (e.g., in the algorithm library  107 ) may be referenced. The additional meta data may be a title, a description, a thumbnail, a name of an individual, and/or a historical data. The additional metadata may be determined from a browser history captured from the client device  100  based on a capture policy, and/or correlating a relevance of the browser history with the content identifier  111  and/or the advertisement. 
     In another embodiment, a method of a networked device includes applying an automatic content recognition algorithm (e.g., in the algorithm library  107 ) to determine a content identifier  111  of an audio-visual data, and associating the content identifier  111  with an advertisement data  113  based on a semantic correlation between a meta-data of the advertisement provided by a content provider and/or the content identifier  111 . In this other aspect, a capture infrastructure  105  annotates the audio-visual data with a brand name and/or a product name by comparing entries in the master database  109  with a closed captioning data of the audio-visual data and/or through an application of an optical character recognition algorithm (e.g., in the algorithm library  107 ) in the audio-visual data. 
     In yet another embodiment, a system includes a networked device and/or a client device  100  to apply an automatic content recognition algorithm (e.g., in the algorithm library  107 ) to determine a content identifier  111  of an audio-visual data and/or to associate the content identifier  111  with an advertisement data  113  based on a semantic correlation between a meta-data of the advertisement provided by a content provider and/or the content identifier  111 . The system also includes a capture infrastructure  105  to annotate the audio-visual data with a brand name and/or a product name by comparing entries in the master database  109  with a closed captioning data of the audio-visual data and/or through an application of an optical character recognition algorithm (e.g., in the algorithm library  107 ) in the audio-visual data. 
       FIG. 2  may also encompass establishing a shared network  202  based on a determination that a client device  100  and a sandbox reachable service  114  reside on a same LAN where it is described a shared network  202 , according to one embodiment. For example, a networked device  102  may broadcast ping (e.g., using Internet Control Message Protocol) and listen for a response from a client device  100 . 
       FIG. 2  may further encompass establishing a shared network  202  by using an address resolution protocol (e.g., ARP) where it is described a shared network  202 , according to one embodiment. A sandbox reachable service  114  may determine that a client device  100  resides on a same LAN if the IP address of the client device  100  can be resolved to a LAN address using an IP-to-LAN address resolution protocol (e.g., ARP). 
     The shared network  202  communicates with the pairing server  200  through the WAN  204 . According to one embodiment, a pairing server  200  may be a computer hardware system dedicated to enabling communication between a sandboxed application  112  and a sandbox reachable service  114 . According to one embodiment, a WAN  204  may be the Internet and/or any other telecommunications network that links across metropolitan, regional, and/or national boundaries using private and/or public transports. A networked device  102  may announce an availability of a sandbox reachable service  114  across a range of public addresses such that a sandboxed application  112  communicates with the sandbox reachable service  114  in any one of the range of the public addresses. However, a range of public addresses may be known by a pairing server  200  so that the announcement of the availability of a sandbox reachable service  114  across a range of public addresses is unnecessary. 
     The identification data  216  exists within the sandbox reachable service  114  of  FIG. 2 . According to one embodiment, an identification data  216  may be a reference information associated with an application sharing a public address with a client device  100 , a networked device  102 , and/or a devices  206  (e.g., to define a network in which the client device  100 , the networked device  102 , and/or the devices  206  reside). A client device  100  may access a pairing server  200  when processing an identification data  216  associated with a sandbox reachable service  114  sharing a public address with the client device  100 . A pairing server  200  may perform a discovery lookup of any device that has announced that it shares a public address associated with the client device  100 . Further, a sandbox reachable service  114  may announce itself to a pairing server  200  prior to the establishment of a communication session between a sandboxed application  112  and the sandbox reachable service  114 . 
     The GUID  208 , the alphanumeric name  210 , the private address pair  212 , the public address pair  220 , and the hardware address  222  each exist within the identification data  216  of  FIG. 2 . According to one embodiment, a GUID  208  may be a 128-bit reference number used by software programs to uniquely identify the location of a data object. For example,  FIG. 2  may be applicable to a GUID  208  of a sandbox reachable service  114  and/or a networked device  102  where it is described a global unique ID  208 . It may be preferable to have a one-to-one mapping between a GUID  208  and a networked device  102 . However, in the case when a sandbox reachable service  114  may be constrained to a security sandbox  104 , the sandbox reachable service  114  may have no way of determining its own IP address and/or whether it resides on a same device with other services. In this case, every sandbox reachable service  114  on the same device may have its own GUID  208 . 
     According to one embodiment, an alphanumeric name  210  may be a “Vizio® 36” TV,” a “living room TV,” a “bedroom printer,” and/or any other human-friendly reference name of a networked device  102 . According to one embodiment, a private address pair  212  may be a private Internet Protocol (IP) address and a port number associated with an application that sends and/or receives packets. According to one embodiment, a public address pair  220  may be a public IP address and a port number  604  associated with an application that sends and/or receives packets. According to one embodiment, a hardware address  222  may be a Media Access Control (MAC) address, a physical address, Ethernet hardware address (EHA), and/or any other unique identifier assigned to network interfaces for communications on the physical network segment. 
     A client device  100  may process an identification data  216  associated with a sandbox reachable service  114  sharing a public address with the client device  100  and determine a private address pair  212  of the sandbox reachable service  114  based on the identification data  216 . A networked device  102  may also communicate a global unique identifier  208  and/or an alphanumeric name  210  to a pairing server  200  along with a hardware address  222  associated with the networked device  102 , a public address pair  220  associated with a sandbox reachable service  114  of the networked device  102 , and/or a private address pair  212  associated with the sandbox reachable service  114  of the networked device  102 . 
       FIG. 3  is an exploded view of the security sandbox  104 , according to one embodiment.  FIG. 3  shows a security sandbox  104 , a sandboxed application  112 , a same origin policy exception  300 , a web page  302 , a script  304 , a binary executable  306 , an intermediate bytecode  308 , an abstract syntax tree  310 , an executable application  312 , a HyperText Markup Language 5 (HTML5) application  314 , a Javascript® application  316 , an Adobe® Flash® application  318 , an Asynchronous Javascript® and XML (AJAX) application  320 , a JQuery® application  324 , a Microsoft® Silverlight® application  326 , a hyperlink  328 , a frame  330 , a script  332 , an image  334 , a header  336 , and a form  338 . 
     The sandboxed application  112  exists within the security sandbox  104  of  FIG. 3 . The web page  302 , the script  304 , the binary executable  306 , the intermediate bytecode  308 , the abstract syntax tree  310 , and the executable application  312  are listed as general examples of the sandboxed application  112  of  FIG. 3 . According to one embodiment, a web page  302  may be a document and/or an information resource that is suitable for the World Wide Web and can be accessed through a web browser and displayed on a monitor and/or a mobile device. According to one embodiment, a script  304  may be a program written for a software environment that automates the execution of tasks which could alternatively be executed one-by-one by a human operator. 
     According to one embodiment, a binary executable  306  may be a binary file that may include a program in machine language which is ready to be run. According to one embodiment, an intermediate bytecode  308  may be a programming language implementation of instruction set designed for efficient execution by a software interpreter. According to one embodiment, an abstract syntax tree  310  may be a tree representation of the abstract syntactic structure of source code written in a programming language. According to one embodiment, an executable application  312  may be a file that causes a computer to perform indicated tasks according to encoded instructions. 
     The HTML5 application  314 , the Javascript® application  316 , the Adobe® Flash® application  318 , the Microsoft® Silverlight® application  326 , the JQuery® application  324 , and the AJAX application  320  are listed as specific examples of the general examples of  FIG. 3 . According to one embodiment, a HTML5 application  314  may be a program written in the fifth revision of the hypertext markup language standard for structuring and presenting content for the World Wide Web. According to one embodiment, a Javascript® application  316  may be a program written in a scripting language commonly implemented as part of a web browser in order to create enhanced user interfaces and dynamic websites. According to one embodiment, an Adobe® Flash® application  318  may be a program written for a multimedia and software platform used for authoring of vector graphics, animation, games and Rich Internet Applications (RIAs) which can be viewed, played, and executed in Adobe® Flash® Player. 
     According to one embodiment, an AJAX application  320  may be a program using a XMLHttpRequest method, a program using a Msxml2.XMLHTTP method, a program using a Microsoft.XMLHTTP method, and/or any other web program that can send data to and retrieve data from a server in the background without interfering with the display and behavior of the existing page. According to one embodiment, a JQuery® application  324  may be a program written using a multi-browser collection of pre-written Javascript® designed to simply the client-side scripting of HTML. According to one embodiment, a Microsoft® Silverlight® application  326  may be a program written in a framework for writing and running RIAs with features and purposes similar to those of Adobe® Flash®. 
     The same origin policy exception  300  extends horizontally below the security sandbox  104  of  FIG. 3 . According to one embodiment, a same origin policy exception  300  may be a cross-domain scripting technique, a cross-site scripting technique, a document.domain property, a Cross-Origin Resource Sharing (CORS), a cross-document messaging, a technique for relaxing a policy preventing access to methods and properties across pages on different sites, and/or an access control algorithm governing a policy through which a secondary authentication is required when establishing a communication between the sandboxed application  112  and the networked device  102 . 
     A client device  100  may establish a communication session between a sandboxed application  112  and a sandbox reachable service  114  using a cross-site scripting technique of a security sandbox  104 . A client device  100  may also append a header  336  of a hypertext transfer protocol to permit a networked device  102  to communicate with a sandboxed application  112  as a permitted origin domain through a Cross-origin resource sharing (CORS) algorithm. Further, a client device  100  may utilize a same origin policy exception  300  through a use of a hyperlink  328 , a form  338 , a script  332 , a frame  330 , a header  336 , and/or an image  334  when establishing the connection between a sandboxed application  112  and a sandbox reachable service  114 . 
     For example,  FIG. 3  may encompass a HTML5 cross-domain scripting using postMessage where it is described HTML5 application  314 . With postMessage, a calling window may call any other window in a hierarchy including those in other domains. A receiving window may set up a message listener to receive said message and can return results by posting a result message back to a calling frame. Assuming a web page residing at http://example.com/index.html: 
                                &lt;iframe src=”http://bar.com” id=”iframe”&gt;&lt;/iframe&gt;       &lt;form id=”form”&gt;        &lt;input type=”text″ id=″msg″ value=″Message to send″/&gt;        &lt;input type=″submit″/&gt;       &lt;/form&gt;       &lt;script&gt;       window.onload = function( ){                         var win = document.getElementById(″iframe″).contentWindow;           document.getElementById(″form″).onsubmit = function(e){                         win.postMessage( document.getElementById(″msg″).value );           e.preventDefault( );                         };                 };       &lt;/script&gt;                    
An iframe may load the following HTML from bar.com:
 
     
       
         
           
               
               
             
               
                   
                   
               
             
            
               
                   
                 &lt;b&gt;This iframe is located on bar.com&lt;/b&gt; 
               
               
                   
                 &lt;div id=“test”&gt;Send me a message!&lt;/div&gt; 
               
               
                   
                 &lt;script&gt; 
               
               
                   
                 document.addEventListener(“message”, function(e){ 
               
            
           
           
               
               
            
               
                   
                 document.getElementById(“test”).textContent = 
               
            
           
           
               
               
            
               
                   
                 e.domain + “ said: ” + e.data; 
               
            
           
           
               
               
            
               
                   
                 }, false); 
               
               
                   
                 &lt;/script&gt; 
               
               
                   
                   
               
            
           
         
       
     
     When a user  820  (e.g., a human agent who uses a service) clicks on the submit button, a message may be posted to the frame read from bar.com which changes “Send me a message!” to http://bar.com said: Message to send. 
     The hyperlink  328 , the frame  330 , the script  332 , the image  334 , the header  336 , and the form  338  comprise aspects of the same origin policy exception  300  of  FIG. 3 . According to one embodiment, a hyperlink  328  may be a reference to data that a reader can directly follow and/or that is followed automatically.  FIG. 3  may also be applicable to a hyperlink send message interface (e.g., a mechanism by which a sandboxed application  112  sends a message to a pairing server  200 ) where it is described a hyperlink  328  using an &lt;A&gt; tag to send a message to a pairing server  200  comprised of a discovery service and a relay service. The &lt;A&gt; tag may link to pages that are not in a same domain as a web page being viewed in a browser. As such a link may point to the pairing server  200  and arguments to be passed in a message may be encoded as key-value pairs in a uniform resource identifier (URI) query string. For example,
         &lt;A HREF=http://pairing_server.com/f?a=10&amp;b=bar&gt;call f&lt;/A&gt;       

     A sandboxed application  112  may announce to the pairing server  200 . At a later time, a user  820  may visit example.com and view index.html. When the user  820  clicks on a “call f” hyperlink, a HTTP request may be sent to the pairing server  200 . “f” may refer to a path to some arbitrary function and key-value pairs a=10 and/or b=bar may be arguments to that function. The pairing server  200  may receive an HTTP GET like this request generated using Google Chrome™: 
     
       
         
           
               
             
               
                   
               
             
            
               
                 GET /f?a=10&amp;b=bar HTTP/1.1 
               
            
           
           
               
               
            
               
                   
                 Host: pairing_server.com 
               
               
                   
                 Connection: keep-alive 
               
               
                   
                 Referer: http://example.dom/index.html 
               
               
                   
                 Accept: 
               
               
                   
                 application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/pn 
               
               
                   
                 g,*/*;q=0.5 
               
               
                   
                 User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) 
               
               
                   
                 AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3 
               
               
                   
                 Accept-Encoding: gzip,deflate,sdch 
               
               
                   
                 Accept-Language: en-US,en;q=0.8 
               
               
                   
                 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 
               
               
                   
                   
               
            
           
         
       
     
     The URI may not indicate to which service a message is intended. This may be interpreted by the pairing server  200  as a private broadcast meaning that a message passed via a message query interface (e.g., a mechanism to communicate a message from a pairing server  200  to a sandbox reachable service  114 ) is passed to all sandbox reachable services in a shared network  202 . In this case, a response HTML may simply be a new web page that may include a confirmation dialog and/or a notification that a message has been sent. 
     According to one embodiment, a frame  330  may be a frameset, an inline frame, and/or any display of web pages and/or media elements within the same browser window. According to one embodiment, a script  332  may be a HTML tag used to define a program that may accompany an HTML document and/or be directly embedded in it.  FIG. 3  may encompass a SCRIPT tag where it is described a script  332  used to contact the pairing server  200 . For example, a server may deliver an http://example.com/index.html that may include a cross-site &lt;script&gt; tag as follows: 
     
       
         
           
               
             
               
                   
               
             
            
               
                 &lt;html&gt;...&lt;head&gt; 
               
               
                 &lt;script type=″text/Javascript″&gt; 
               
               
                 function lookup_cb(d) { 
               
               
                 var services = d[″services″]; 
               
               
                 var slen = services.length; 
               
               
                 var s, len; 
               
               
                 s= ″&lt;ul&gt;″; 
               
               
                 for ( var i = 0; i &lt; slen; ++i ) 
               
            
           
           
               
               
            
               
                   
                 s = s + ″&lt;li&gt;″ + services[i].name + ″&lt;/li&gt;″; 
               
            
           
           
               
            
               
                 s = s + ″&lt;/ul&gt;″; 
               
               
                 document.getElementById(″services″).innerHTML=s; 
               
               
                 } 
               
               
                 &lt;/script&gt;&lt;/head&gt;&lt;body&gt; 
               
               
                 ... 
               
               
                 &lt;div id=”services”&gt;&lt;/div&gt; 
               
               
                 ... 
               
               
                 &lt;script id=″external_script″ type=″text/Javascript″&gt;&lt;/script&gt; 
               
               
                 &lt;script&gt; 
               
               
                 document.getElementById(″external_script″).src = 
               
            
           
           
               
               
            
               
                   
                 ″http://pairing_server.com/fling/lookup?callback=lookup_cb″; 
               
            
           
           
               
            
               
                 &lt;/script&gt;&lt;/body&gt;&lt;/html&gt; 
               
               
                   
               
            
           
         
       
     
     In the example above, Javascript® may replace a source of a&lt;script&gt; with id “external script” with a script downloaded from the pairing server  200 . A call being made to a sandbox reachable service  114  may be embedded in a call to “lookup” with a single argument “callback=lookup_cb.” The pairing server  200  may return a script that may include a result, e.g., 
     
       
         
           
               
               
             
               
                   
                   
               
             
            
               
                   
                 lookup_cb({ 
               
            
           
           
               
               
            
               
                   
                 “services”: [...], 
               
               
                   
                 “yourip”: “69.106.59.218”, 
               
               
                   
                 “version”: “1.0”, 
               
               
                   
                 “interval”: 900 
               
            
           
           
               
               
            
               
                   
                 }) 
               
               
                   
                   
               
            
           
         
       
     
     The result above may include a list of “services” discovered in a user&#39;s (e.g., the user of the client device  100 ) shared network  202 . The result may be encapsulated inside a call to lookup_cb which was a callback passed in a SRC URI to an external script &lt;script&gt; tag. A returned script may be automatically executed, causing lookup_cb to be called. lookup_cb may iterate over services in a result and may output them into the HTML of the web page http://example.com/index.html. 
     According to one embodiment, an image  334  may be a HTML tag that incorporates inline graphics into an HTML document.  FIG. 3  may also encompass an &lt;A&gt; tag encapsulating an &lt;IMG&gt; tag where it is described an image  334 , thereby allowing a link to take on the appearance of a button, according to one embodiment. With Javascript® a behavior of the image may be scripted to make the button change appearance when a mouse passes over the button or when a user clicks on the button, thereby making the image behave more like a button. For example, 
                                            &lt;A HREF=″http://pairing_server.com/f?a=10&amp;b=bar″&gt;&lt;IMG           SRC=”f.jpg”&gt;call f&lt;/IMG&gt;&lt;/A&gt;                          FIG. 3  may also be applicable to an IMG tag where it is described an image  334  used to communicate a call, according to one embodiment. For example,
         &lt;IMG SRC=“http://pairing_server.com/f?a=10&amp;b=bar”&gt;calling f . . . &lt;/IMG&gt;
 
This example may correspond to a call f with arguments a=10 and/or b=bar. The pairing server  200  sees
       

     
       
         
           
               
             
               
                   
               
             
            
               
                 GET /f?a=10&amp;b=bar HTTP/1.1 
               
               
                 Host: ec2-204-236-247-87.compute-1.amazonaws.com:7878 
               
               
                 Connection: keep-alive 
               
               
                 Referer: http://dave.flingo.org/browser_behavior_tests/img_link.html 
               
               
                 Cache-Control: max-age=0 
               
               
                 Accept: */* 
               
               
                 User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) 
               
               
                 AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 
               
               
                 Safari/534.3 
               
               
                 Accept-Encoding: gzip,deflate 
               
               
                 Accept-Language: en-US,en;q=0.8 
               
               
                 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 
               
               
                   
               
            
           
         
       
     
     A browser may expect an image to be returned by this request. As a result, an IMG send message interface may not threaten a calling web page with script injection attacks. However, it may limit what can be returned with an IMG tag. The pairing server  200  may return a valid transparent IMG with width and height set to communicate a pair. Since an IMG body has been loaded into the calling web page, the height and width of the image are immediately available to the calling page using Javascript®, e.g., 
     
       
         
           
               
             
               
                   
               
             
            
               
                 &lt;HTML&gt; 
               
               
                 &lt;HEAD&gt; ... 
               
               
                 &lt;script type=″text/Javascript″&gt; 
               
               
                 function loaded( ) { 
               
            
           
           
               
               
            
               
                   
                 var im = document.getElementById(″image″) 
               
               
                   
                 alert( ″image height=″ + im.height + ″ width=″ + im.width ); 
               
            
           
           
               
            
               
                 } 
               
               
                 &lt;/script&gt; 
               
               
                 &lt;/HEAD&gt;&lt;BODY&gt;... 
               
               
                 &lt;IMG ID=″image″ SRC=”http://pairing_server.com/f?a=10&amp;b=bar” 
               
               
                 onload=″loaded( );″&gt;&lt;/IMG&gt; 
               
               
                 &lt;/BODY&gt; 
               
               
                 &lt;/HTML&gt; 
               
               
                   
               
            
           
         
       
     
     According to one embodiment, a header  336  may be an origin header, a referrer header, and/or any other supplemental data placed at the beginning of a block of data being stored and/or transmitted.  FIG. 3  may be applicable to a passing of a URI of a web page that may include a hyperlink along with a GET request in a “referer [sic]” URI header where it is described a header  336  when a user  820  clicks on a hyperlink rendered from an &lt;A&gt; tag. A pairing server  200  can interpret a referer URI as an URI of a web page to be relayed to a sandbox reachable service  114  that can render web pages. For example, the following hyperlink appears in the web page http://example.com/foo.html
         &lt;A HREF=http://pairing_server.com/fling&gt;fling this web page &lt;/A&gt;       

     When a user  820  clicks on “fling this page,” the pairing server  200  may read the referer URI (e.g., associated with a client device  100 ) to determine that the page http://example.com/foo.html should be relayed to the receiving sandbox-reachable services. 
       FIG. 3  may also encompass interpreting a referer URI dependent on page content where it is described a header  336 , according to one embodiment. For example, a web page  302  that may include a video may cause a reference to the video to be passed to a networked device  102 . Similarly, a web page  302  that may include an audio may cause a reference to the audio to be passed to a networked device  102 . 
     According to one embodiment, a form  338  may be a HTML tag that allows a web user to enter data that is sent to a server for processing. For example,  FIG. 3  may encompass a sandboxed application  112  sending messages to a sandbox reachable service  114  via HTML FORMs where it is described a form  338 . The action of a form may direct the messages via the pairing server  200 . Assume a web page may reside at http://example.com/index.html and assume a relay infrastructure may run on a server with example domain “pairing_server.com.” The video to be relayed may be titled “Waxing Love.” 
     
       
         
           
               
             
               
                   
               
             
            
               
                 &lt;form name=“input” action=“http://pairing_server.com/fling” 
               
               
                 method=“post”&gt; 
               
               
                 &lt;INPUT TYPE=“HIDDEN” id=“title” name=“title” value=“Waxing 
               
               
                 Love” /&gt; 
               
               
                 &lt;INPUT TYPE=“HIDDEN” id=“description” name=“description” 
               
               
                 value=“An example video.” /&gt; 
               
               
                 &lt;INPUT TYPE=“HIDDEN” id=“uri” name=“uri” 
               
               
                 value=“http://example.com/wax.mp4” /&gt; 
               
               
                 &lt;INPUT TYPE=“SUBMIT” NAME=“submit” VALUE=“fling” /&gt; 
               
               
                 &lt;/form&gt; 
               
               
                   
               
            
           
         
       
     
     A hidden type may populate an HTTP POST. In this example, an URI of a resource may be passed to a pairing server  200 . The pairing server  200  may treat the POST as a message to be forwarded to services. In this example, the server may see something like: 
     
       
         
           
               
               
             
               
                   
                   
               
             
            
               
                   
                 POST /fling HTTP/1.1 
               
               
                   
                 Host: pairing_server.com 
               
               
                   
                 Origin: http://example.com/index.html 
               
               
                   
                 User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-us) 
               
               
                   
                 AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 
               
               
                   
                 Content-Type: application/x-www-form-urlencoded 
               
               
                   
                 Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain; 
               
               
                   
                 q=0.8,image/png,*/*;q=0.5 
               
               
                   
                 Referer: http://example.com/index.html 
               
               
                   
                 Accept-Language: en-us 
               
               
                   
                 Accept-Encoding: gzip, deflate 
               
               
                   
                 Content-Length: 95 
               
               
                   
                 Connection: keep-alive 
               
               
                   
                 title=Waxing+Love&amp;description=An+example+video.&amp;uri=http%3A%2F%2Fexampl 
               
            
           
           
               
            
               
                 e.com%2Fwax.mp4 
               
            
           
           
               
               
            
               
                   
                 &amp;submit=fling 
               
               
                   
                   
               
            
           
         
       
     
     The intended message may be encoded in key-value pairs of a message body. In this case a title, description, and URI and an operation “fling.” 
       FIG. 4  is an exploded view of the pairing server  200 , according to one embodiment.  FIG. 4  shows a pairing server  200 , a discovery module  400 , a discovery algorithm  402 , a relay module  404 , a relay algorithm  406 , a protocols  408 , and a database  422 . 
     The discovery module  400  and the relay module  404  communicate with the database  422 , and they all exist within the pairing server  200  of  FIG. 4 . According to one embodiment, a discovery module  400  may be a self-contained component of a pairing server  200  that detects devices and services on a network. According to one embodiment, a relay module  404  may be a self-contained component of a pairing server  200  that transmits data to an intermediate node located between a source and destination that are separated by a distance that prevents direct communications. According to one embodiment, a database  422  may be a structured collection of information. 
     A networked device  102  may announce a sandbox reachable service  114  to a discovery module  400 . When a shared network  202  is determined to be commonly associated with a client device  100  and a networked device  102 , a pairing server  200  may receive, store using a processor  108  and a memory  110 , and communicate to a client device  100  a global unique identifier  208  and/or an alphanumeric name  210  in an announcement from a networked device  102  along with a hardware address  222  associated with the networked device  102 , a public address pair  220  associated with a sandbox reachable service  114  of the networked device  102 , and/or a private address pair  212  associated with the sandbox reachable service  114  of the networked device  102 . A shared network  202  is determined to be commonly associated with a client device  100  and a networked device  102  when it is presently shared and/or was previously shared by the networked device  102  and the client device  100 . 
     The discovery algorithm  402  exists within the discovery module  400  of  FIG. 4 . According to one embodiment, a discovery algorithm  402  may be a procedure for detecting devices and services on a network. A service agent module of a networked device  102  may coordinate communications with a discovery module  400  of a security sandbox  104  and/or a pairing server  200 . For example, the service agent sits outside a browser or browser-like security sandbox thereby allowing it to listen on a socket. Thus, it can act as a means for services on the same device to discover one another. The service agent may also announce on behalf of service(s) local to that device. 
     The relay algorithm  406  exists within the relay module  404  of  FIG. 4 . According to one embodiment, a relay algorithm  406  may be a procedure for transmitting data to an intermediate node located between a source and destination that are separated by a distance that prevents direct communications. A service agent module of a networked device  102  may coordinate communications with a discovery module  400  of a security sandbox  104  and/or a pairing server  200 . For example, the service agent sits outside a browser or browser-like security sandbox thereby allowing it to listen on a socket. Thus, it can act as a relay for messages arriving from a shared network  202 . 
     When a client device  100  and a networked device  102  reside on networks that are incommunicable with each other comprising a firewall separation, a different network separation, a physical separation, and/or an unreachable connection separation, a sandboxed application  112  of a security sandbox  104  of the client device  100  and a sandbox reachable service  114  of the networked device  102  may communicate with each other through a relay service employed by a pairing server  200  having a discovery module  400  and a relay module  404  to facilitate a trusted communication (e.g., by guarding a GUID  208 , a private IP address  808 , and/or a hardware address  222  of a networked device  102  and/or a sandbox reachable service  114  from a sandboxed application  112 ) between the sandboxed application  112  and the sandbox reachable service  114 . 
     The discovery module  400  and the relay module  404  can also communicate using the protocols  408  of  FIG. 4 . According to one embodiment, a protocols  408  may be a system of digital message formats and rules for exchanging those messages in and/or between devices sharing a network. 
       FIG. 5  is an exploded view of the client device  100 , according to one embodiment.  FIG. 5  shows a client device  100 , a discovery module  500 , a relay module  504 , a discovery algorithm  502 , a relay algorithm  506 , an extension  518 , a sandboxed application  112 , a protocols  508 , a Bonjour® protocol  510 , a Simple Service Discovery Protocol (SSDP) protocol  512 , a local service discovery (LSD) uTorrent® protocol  514 , a local area network (LAN) based protocol  516 , a multicast protocol  519 , and an anycast protocol  520 . 
     The extension  518  exists within the client device  100  of  FIG. 5 . According to one embodiment, an extension  518  may be a program adding the capabilities of a discovery module  500  and/or a relay module  504  to a browser. A client device  100  may extend a security sandbox  104  with a discovery algorithm  502  and a relay algorithm  506  through a discovery module  500  and a relay module  504  added to the security sandbox  104 . A client device  100  may also bypass a pairing server  200  having a discovery algorithm  402  and a relay algorithm  406  when establishing a connection between a sandboxed application  112  and a sandbox reachable service  114  when the security is extended with the discovery algorithm  502  and the relay algorithm  506  through the discovery module  500  and the relay module  504  added to a security sandbox  104 . 
     The discovery module  500 , the relay module  504 , and the sandboxed application  112  exist within the extension  518  of  FIG. 5 . The discovery module  500  communicates with the relay module  504  of  FIG. 5 . According to one embodiment, a discovery module  500  may be a self-contained component of a client device  100  that detects devices and services on a network. According to one embodiment, a relay module  504  may be a self-contained component of a client device  100  that transmits data to an intermediate node located between a source and destination that are separated by a distance that prevents direct communications. A networked device  102  may announce a sandbox reachable service  114  to a discovery module  500 . A networked device  102  may also automatically instantiate a communication between a sandbox reachable service  114  of the networked device  102  and a client device  100  when a relay module  504  sends a request from a sandboxed application  112  of the client device  100  to the sandbox reachable service  114 . 
     The discovery algorithm  502  exists within the discovery module  500  of  FIG. 5 . A client device  100  may apply a discovery algorithm  502  of a security sandbox  104  to determine that a networked device  102  having a sandbox reachable service  114  communicates in a shared network  202  common to the client device  100  and the networked device  102 . 
     The relay algorithm  506  exists within the relay module  504  of  FIG. 5 . A client device  100  may apply a relay algorithm  506  of a security sandbox  104  to establish a connection between a sandboxed application  112  and a sandbox reachable service  114  of a networked device  102 . A client device  100  may utilize a WebSocket (e.g., a web technology providing full-duplex communications channels over a single Transmission Control Protocol connection) and/or a long polling service message query interface to reduce a latency of message delivery during a trusted communication between a sandboxed application  112  and a sandbox reachable service  114 . A client device  100  may also optimize a polling period between polling such that it is less than a timeout period of a session through the relay service. A client device  100  may initiate a relay service through a series of web pages where information is communicated using a hyperlink  328  that points at a pairing server  200 , and/or a form  338  having a confirmation dialog that is submitted back to the pairing server  200 . A global unique identifier  208  (e.g., of a sandbox reachable service  114 ) may be masked through a pairing server  200  when a confirmation dialog is served from the pairing server  200 . 
     The discovery algorithm  502  and the relay algorithm  506  can communicate using the protocols  508  of  FIG. 5 . The Bonjour® protocol  510 , the SSDP protocol  512 , the LSD uTorrent® protocol  514 , the LAN-based protocol  516 , the multicast protocol  519 , and the anycast protocol  520  exist within the protocols  508  of  FIG. 5 . According to one embodiment, a Bonjour® protocol  510  may be a system of technologies including service discovery, address assignment, and hostname resolution developed by Apple®. According to one embodiment, a SSDP protocol  512  may be a network protocol based on the Internet Protocol Suite for advertisement and discovery of network services and presence information that is accomplished without assistance of server-based configuration mechanisms and without special static configuration of a network host. According to one embodiment, a LSD uTorrent® protocol  514  may be an extension to the BitTorrent® file distribution system that is designed to support the discovery of local BitTorrent® peers, aiming to minimize traffic through an Internet service provider&#39;s (ISP) channel and minimize use of higher-bandwidth LAN while implemented in a client with a small memory footprint. According to one embodiment, a LAN-based protocol  516  may be a system of broadcast-based local area network discovery. According to one embodiment, a multicast protocol  519  may be a system of delivering information simultaneously to a group of destination devices in a single transmission from a source. According to one embodiment, an anycast protocol  520  may be a system of routing datagrams from a single sender to the topologically nearest node in a group of potential receivers, though it may be sent to several nodes, all identified by the same destination address. 
     A discovery algorithm  502  may utilize a protocols  508  comprising a Bonjour® protocol  510 , a SSDP protocol  512 , a LSD uTorrent® protocol  514 , a multicast protocol  519 , an anycast protocol  520 , and/or another LAN-based protocol  516  that discovers services in a LAN based on a broadcast from any one of an operating system service, a security sandbox  104 , a client device  100 , a sandbox reachable service  114 , and a networked device  102 . 
       FIG. 6  is a table of example network information stored in a database  422  of a pairing server  200 , according to one embodiment.  FIG. 6  shows a GUID  208 , an alphanumeric name  210 , a network  600 , a service  601 , a Network Address Translator (NAT)  602 , a port number  604 , an IP address  606 , and a table  650 . The GUID  208 , the alphanumeric name  210 , the network  600 , the service  601 , the NAT  602 , the port number  604 , and the IP address  606  are headings for each column of a table  650  of  FIG. 6 . 
     According to one embodiment, a network  600  may be a collection of hardware interconnected by communication channels that allow sharing of resources and information. According to one embodiment, a service  601  may be a description and/or a name of a service provided by a device. According to one embodiment, a NAT  602  may be an indication of whether or not a NAT device is present on a network  600 . According to one embodiment, a port number  604  may be a 16-bit reference number for a process-specific software construct serving as a communications endpoint in a computer&#39;s host operating system. According to one embodiment, an IP address  606  may be a numerical label assigned to each device participating in a computer network that uses the Internet Protocol for communication. According to one embodiment, a table  650  may be a set of data elements that is organized using a model of vertical columns which are identified by names and horizontal rows. A sandbox reachable service  114  may communicate a GUID  208  and/or an alphanumeric name  210  to a pairing server  200  along with an IP address  606  and/or a port number  604  of the sandbox reachable service  114 . 
       FIG. 7  is a block diagram of a method by which a security sandbox  104  can communicate with a sandbox reachable service  114  that previously operated on a shared network  202 , according to one embodiment.  FIG. 7  shows a client device  100 , a storage  117 , a remote access token  702 , a private IP address  704 , and a hardware address  222 . The storage  117  exists within the client device  100  of  FIG. 7 . The remote access token  702  exists within the storage  117  of  FIG. 7 . According to one embodiment, a remote access token  702  may be an object encapsulating a security descriptor of a process so that a client device  100  and a networked device  102  that previously established a communication session automatically recognize each other. A cookie associated with a security sandbox  104  may be used to store a remote access token  702  on a storage  117  (e.g., Web storage, HTML5 storage) of a client device  100 . A client device  100  can communicate with a sandbox reachable service  114  that previously operated on a common shared network  202  through a remote access token  702 . 
     The private IP address  704  and the hardware address  222  comprise aspects of the remote access token  702  of  FIG. 7 . According to one embodiment, a private IP address  704  may be an IP address of a node on a private network that may not be used to route packets on the public Internet. A remote access token  702  may identify a set of communicable private Internet Protocol (IP) address (e.g., the private ip address  704 ) and/or hardware addresses (e.g., the hardware address  222 ) associated with a sandbox reachable service  114  that previously operated on a common shared network  202  with a client device  100 . For example,  FIG. 7  may encompass a preference for associating a device with a hardware address  222  where it is described a hardware address  222 . A private IP address  704  may change as devices move between networks. However, a hardware address  222  may be a stable, long-term pseudonym for a device and thus may serve a good value from which to derive a remote access token  702 . 
       FIG. 8  is a schematic diagram of a private network  800  and a private network  802  communicating over the public Internet via a NAT device  804  and a NAT device  806 , according to one embodiment.  FIG. 8  shows a client device  100 , a networked device  102 , a pairing server  200 , a private network  800 , a private network  802 , a NAT device  804 , a NAT device  806 , a private IP address  808 , a private IP address  810 , a public IP address  812 , a public IP address  814 , a tablet device  816 , a printer  818 , and a user  820 . 
     The private network  800  and the private network  802  communicate bidirectionally through the pairing server  200  of  FIG. 8 . According to one embodiment, a private network  800  may be a home network and/or any other network with private IP space that may be behind a NAT device  804 . According to one embodiment, a private network  802  may be an office network and/or any other network with private IP space that may be behind a NAT device  806 . A client device  100  (e.g., laptop) and a networked device  102  (e.g., television) may reside on networks that are incommunicable with each other comprising a firewall separation, a different network separation, a physical separation, and/or an unreachable connection separation. A sandboxed application  112  of a security sandbox  104  of the client device  100  and a sandbox reachable service  114  of the networked device  102  may communicate with each other through a relay service employed by a pairing server  200  having the discovery module and the relay module to facilitate a trusted communication between the sandboxed application  112  and the sandbox reachable service  114 . 
     The NAT device  804 , the networked device  102 , and the tablet device  816  are all interconnected and exist within the private network  800  of  FIG. 8 . According to one embodiment, a NAT device  804  may be a device for modifying IP address information in IP packet headers while in transit across a traffic routing device. According to one embodiment, a tablet device  816  may be a one-piece mobile computer, primarily operated by touchscreen and/or an onscreen virtual keyboard. A NAT device  804  may be coupled with a network on which a networked device  102  operates. 
     The NAT device  806 , the client device  100 , and the printer  818  are all interconnected and exist within the private network  802  of  FIG. 8 . According to one embodiment, a NAT device  806  may be a device for modifying IP address information in IP packet headers while in transit across a traffic routing device. According to one embodiment, a printer  818  may be a peripheral device which produces a representation of an electronic document on physical media. A NAT device  806  may be coupled with a network on which a client device  100  operates. 
     The NAT device  804  connects to the pairing server  200  through the public IP address  812  of  FIG. 8 . The NAT device  804  connects to the networked device  102  through the private IP address  808  of the networked device  102  of  FIG. 8 . According to one embodiment, a public IP address  812  may be an IP address of a private network  800  that may be used to route packets on the public Internet. According to one embodiment, a private IP address  808  may be an IP address of a networked device  102  on a private network  800 . A trusted communication may be facilitated in a manner such that a sandboxed application  112  never learns a private IP address  808  and/or a hardware address  222  of a networked device  102  when a NAT device  804  may translate a private IP address  808  of a networked device  102  to a public IP address  812  visible to a sandboxed application  112 . 
     The NAT device  806  connects to the pairing server  200  through the public IP address  814  of  FIG. 8 . The NAT device  806  connects to the client device  100  through the private IP address  810  of the client device  100  of  FIG. 8 . According to one embodiment, a public IP address  814  may be an IP address of a private network  802  that may be used to route packets on the public Internet. According to one embodiment, a private IP address  810  may be an IP address of a networked device  102  on a private network  802 . A trusted communication may be facilitated in a manner such that a sandboxed application  112  never learns a private IP address  808  and/or a hardware address  222  of a networked device  102  when a NAT device  806  may receive communications from a public IP address  812  of a private network  800  on which a sandbox reachable service  114  operates. 
     For example,  FIG. 8  may encompass a sandboxed application  112  being constrained to know nothing but a description and/or name of a service (e.g., no private IP address  808 , no hardware address  222 , no GUID  208 ) where it is described a private IP address  808 . 
       FIG. 8  may also be applicable to a sandboxed application  112  being constrained to know nothing at all about who receives a communication (e.g., no private IP address  808 , no hardware address  222 , no GUID  208 , no description and/or name of a service) where it is described a private IP address  808 , according to one embodiment. For example, a sandboxed application  112  may include a hyperlink  328  to a pairing server  200  in which the hyperlink  328  may specify a message but no recipient http://flingo.tv/fling/a?url=url_of_media_to_be_played. A pairing server  200  may disambiguate an intended recipient (e.g., by returning a form  338  to a user  820  in which the user  820  may select a sandbox reachable service  114 ). A returned form  338  may execute in a security sandbox  104  associated with a domain of a pairing server  200  which may be different from a security sandbox  104  of a sandboxed application  112 . 
     The user  820  exists within the private network  802  of  FIG. 8 . According to one embodiment, a user  820  may be a human and/or software agent who uses a computer and/or network service. 
       FIG. 9  illustrates a network view  950  of a method, apparatus and system related to automatic detection of a similar application  916  stored on a networked media device  902  through a multicast capability (e.g., using the multicast algorithm  920 ) of an operating system  918  accessed through an application  914  of a mobile device  900 , according to one embodiment. 
     In  FIG. 9 , a method of a mobile device  900  includes accessing a multicast capability (e.g., using the multicast algorithm  920 ) of an operating system  918  through an application  914  of the mobile device  900 , determining if there is a similar application  916  locally stored on a networked media device  902  to the application  914  on the mobile device  900  when a multicast message (e.g., using the operating system  918 ) is broadcast to the networked media device  902  communicatively coupled to the mobile device  900  through a local area network  904 , and automatically launching the similar application  916  on the networked media device  902  based on a communication of the multicast message (e.g., using the operating system  918 ) from the mobile device  900  to the networked media device  902 . 
     The multicast message (e.g., using the operating system  918 ) may be delivered through a multicast algorithm  920  of the operating system  918  that communicates a name-announce request  912  to any networked media device  902  communicatively coupled to the mobile device  900  through the local area network  904 , according to the embodiment described in  FIG. 9 . The multicast message (e.g., using the operating system  918 ) may be communicated wirelessly through the local area network  904 , according to the embodiment described in  FIG. 9 . The multicast message (e.g., using the operating system  918 ) may be communicated as a broadcast to all available ones of the networked media device  902  communicatively coupled to the mobile device  900  through the local area network  904 , according to the embodiment described in  FIG. 9 . 
     It may be determined which network media devices (e.g., the networked media device  902 ) in the local area network  904  may be listening for the multicast message (e.g., using the operating system  918 ), according to the embodiment described in  FIG. 9 . It may be determined if the similar application  916  meets a criteria, according to the embodiment described in  FIG. 9 . A name of the similar application  916  received in response to the name-announce request  912  may be processed, according to the embodiment described in  FIG. 9 . A table  924  of the application  914  that lists the name and/or other names of other similar applications associated with ones of the networked media device  902  in the local area network  904  may be processed, according to the embodiment described in  FIG. 9 . The name of the application  914  may be presented to a user, according to the embodiment described in  FIG. 9 . A launch sequence  910  may be communicated to the similar application  916  responsive to a selection of the name by the user, according to the embodiment described in  FIG. 9 . It may be determined that the similar application  916  has launched based on the launch sequence  910 , according to the embodiment described in  FIG. 9 . A communication session between the application  914  and/or the similar application  916  may be established, according to the embodiment described in  FIG. 9 . 
     A current state data  928  and/or a bookmark data  926  of an audio-visual data  922  executing on the application  914  on the mobile device  900  may be communicated to the similar application  916  on the networked media device  902  through the mobile device  900  and/or a central server  906  through which the audio-visual data  922  is streamed to the mobile device  900 , according to the embodiment described in  FIG. 9 . The audio-visual data  922  may be streamed from the central server  906  to the similar application  916  on the networked media device  902  based on the current state data  928  and/or the bookmark data  926 , according to the embodiment described in  FIG. 9 . The mobile device  900  may be unaware of how many ones of the networked media device  902  are presently communicatively coupled with the mobile device  900  through the local area network  904 , according to the embodiment described in  FIG. 9 . 
     The nodes of the local area network  904  may replicate packets associated with the multicast message (e.g., using the operating system  918 ) having the name-announce request  912  to reach multiple ones of the ones of the networked media device  902  when necessary, according to the embodiment described in  FIG. 9 . The launch sequence  910  may be communicated in a form of a Uniform Resource Locator (URL) code to the similar application, so that the networked media device  902  is instructed to launch the similar application  916  based on data communicated through a destination internet protocol (IP) address associated with the URL, according to the embodiment described in  FIG. 9 . The name of the similar application  916  may be compared with a registry of names  932  in a registry database  930  of any one of the central server  906  and/or the mobile device  900  to determine whether the similar application  916  of the networked media device  902  is associatiable with the application  914  of the mobile device  900 , according to the embodiment described in  FIG. 9 . 
       FIG. 10  illustrates a method, apparatus and system related to automated discovery and switch of a primary output display (e.g., a display in which a user of the mobile device  900  primarily interacts with when operating the mobile device  900 ) from a first display  1002  of a mobile device  900  to a second display  1004  of a networked media device  902  through an operating system  918  of the mobile device  900 , according to one embodiment. 
     In  FIG. 10 , illustrates a network view  1050  of a method of a mobile device  900  that includes accessing a multicast capability (e.g., using the multicast algorithm  920 ) of an operating system  1018  responsive to a user interacting with an indicator  1202  on a menu bar  1200  of an operating system  1018  of the mobile device  900 , determining if there is a pairable application  1016  locally stored on a networked media device  902  that is compatible with the operating system  1018  on the mobile device  900  when a multicast message (e.g., using the operating system  1018 ) is broadcast from the operating system  1018  to the networked media device  902  communicatively coupled to the mobile device  900  through a local area network  904 , communicating a mirror sequence  1000  from the operating system  1018  to the pairable application  1016  responsive to a selection of a name by a user (e.g., in a table  1124 ) of the operating system  1018 , determining that the pairable application  1016  has launched based on the mirror sequence  1000 , and establishing a communication session between the operating system  1018  and/or the pairable application  1016 . 
     A primary output display (e.g., a display in which a user of the mobile device  900  primarily interacts with when operating the mobile device  900 ) of the mobile device  900  may be automatically switched from a first display  1002  physically coupled with the mobile device  900  to a second display  1004  physically coupled to the networked media device  902  based on the mirror sequence  1000 , according to the embodiment described in  FIG. 10 . The multicast message (e.g., using the operating system  1018 ) may be delivered through a multicast algorithm  920  of the operating system  1018  that communicates a name-announce request  912  to any networked media device  902  communicatively coupled to the mobile device  900  through the local area network  904 , according to the embodiment described in  FIG. 10 . The multicast message (e.g., using the operating system  1018 ) may be communicated wirelessly through the local area network  904 , according to the embodiment described in  FIG. 10 . The multicast message (e.g., using the operating system  1018 ) may be communicated as a broadcast to all available ones of the networked media device  902  communicatively coupled to the mobile device  900  through the local area network  904 , according to the embodiment described in  FIG. 10 . 
     It may be determined which network media devices (e.g., the networked media device  902 ) in the local area network  904  are listening for the multicast message (e.g., using the operating system  1018 ) through the operating system  1018 , according to the embodiment described in  FIG. 10 . In addition, it may be determined whether the pairable application  1016  meets a criteria, according to the embodiment described in  FIG. 10 . A name of the pairable application  1016  received in response to the name-announce request  912  of the operating system  1018  may be processed, according to the embodiment described in  FIG. 10 . A table  1124  of the operating system  1018  that lists the name and/or other names of other pairable application  1016   s  associated with ones of the networked media device  902  in the local area network  904  may be processed, according to the embodiment described in  FIG. 10 . The name may be presented to a user of the operating system  1018 , according to the embodiment described in  FIG. 10 . 
     The mobile device  900  may be unaware of how many ones of the networked media device  902  are presently communicatively coupled with the mobile device  900  through the local area network  904 , according to the embodiment described in  FIG. 10 . Nodes of the local area network  904  may replicate packets associated with the multicast message (e.g., using the operating system  1018 ) having the name-announce request  912  to reach multiple ones of the ones of the networked media device  902  when necessary, according to the embodiment described in  FIG. 10 . The mirror sequence  1000  may be communicated in a form of a Uniform Resource Locator (URL) code to the pairable application  1016 , so that the networked media device  902  is instructed to launch the pairable application  1016  based on data communicated through a destination internet protocol (IP) address associated with the URL, according to the embodiment described in  FIG. 10 . 
     The name of the pairable application  1016  may be compared with a registry of names  932  in a registry database  930  of any one of the central server  906  and/or the operating system  1018  to determine whether pairable application  1016  of the networked media device  902  is associatiable with the operating system  1018  of the mobile device  900 , according to the embodiment described in  FIG. 10 . 
       FIG. 11  illustrates a system, apparatus and method related to a communication dongle  1100  physically coupled with a media device  1102  to automatically discover and launch an application  914  on the media device  1102  and to enable switching of a primary output display (e.g., a display in which a user of the mobile device  900  primarily interacts with when operating the mobile device  900 ) from a first display  1002  of a mobile device  900  to a second display  1004  of the media device  1102  through an operating system  1118  of the mobile device  900  sharing a local area network  904  with the communication dongle  1100 , according to one embodiment. 
     In  FIG. 11  is a network view  1150  of a system that includes a mobile device  900  to access a multicast capability (e.g., using the multicast algorithm  920 ) of an operating system  1118  responsive to a user interacting with an selector  1206  on a header bar  1204  of a browser application  1103  of the mobile device  900  and/or an indicator  1202  on a menu bar  1200  of the operating system  1118  of the mobile device  900 , a media device  1102  (e.g., the media device  1102  may/may not have internal networking capability), and a communication dongle  1100  that communicatively couples the mobile device  900  with the media device  1102  (e.g., the media device  1102  may/may not have internal networking capability) through a local area network  904  that is commonly shared between the mobile device  900  and/or the communication dongle  1100 . 
       FIG. 12  is a user interface view of an operating system  1118  having a menu bar  1200  and the indicator  1202  (e.g., to initiate a launch and/or mirroring to a television from a mobile device  900 ), and a browser application  1103  executing through the operating system  1118 . The operating system  1118  of  FIG. 12  is illustrated as including a browser application  1103  having a header bar  1204  and a selector  1206 . The header may be an upper portion of a window providing a set of controls for the browser application  1103 . The selector  1206  may enable the browser application (e.g., Google Chrome) to launch a compatible application on the television from the mobile device  900  and/or mirror the browser application  1103  and/or the operating system  1118  on the mobile device  900 . The mobile device  900  determines if there is an enabling application  1104  resident on the communication dongle  1100  physically coupled on a port of the media device  1102  (e.g., the media device  1102  may/may not have internal networking capability) that is compatible with the browser application  1103  of the mobile device  900  and/or the operating system  1118  on the mobile device  900  when a multicast message (e.g., using the operating system  1118 ) is broadcast from the operating system  1118  to the communication dongle  1100  communicatively coupled to the mobile device  900  through the local area network  904 , according to the embodiment described in  FIG. 11 . 
     The operating system  1118  of the mobile device  900  and/or the browser application  1103  of the mobile device  900  communicates a launch sequence  910  and/or a mirror sequence  1000  from the operating system  1118  of the mobile device  900  and the browser application  1103  of the mobile device  900  to the communication dongle  1100  after establishing a session between the mobile device  900  and/or the communication dongle  1100 , according to the embodiment described in  FIG. 11 . A compatible application  1106  automatically launches on the communication dongle  1100  on a second display  1004  of the media device  1102  (e.g., the media device  1102  may/may not have internal networking capability) based on the launch sequence  910 , according to the embodiment described in  FIG. 11 . 
     A primary output display (e.g., a display in which a user of the mobile device  900  primarily interacts with when operating the mobile device  900 ) of the mobile device  900  is automatically switched from a first display  1002  physically coupled with the mobile device  900  to a second display  1004  physically coupled with the media device  1102  (e.g., the media device  1102  may/may not have internal networking capability) based on the mirror sequence  1000 , in this embodiment. The multicast message (e.g., using the operating system  1118 ) may be delivered through a multicast algorithm  920  of the operating system  1118  that communicates a name-announce request  912  to any media device  1102  (e.g., the media device  1102  may/may not have internal networking capability) communicatively coupled to the mobile device  900  through the local area network  904 , according to the embodiment described in  FIG. 11 . 
     A characteristic of the second display  1004  may be superior to that of the first display  1002  in that the second display  1004  has an enhanced video resolution, a larger display area, a superior audio quality, and/or a superior color saturation when compared with the first display  1002 , according to the embodiment described in  FIG. 11 . The multicast message (e.g., using the operating system  1118 ) may be wirelessly communicated through the local area network  904 , according to the embodiment described in  FIG. 11 . 
     The multicast message (e.g., using the operating system  1118 ) may be broadcast to all available media device  1102  (e.g., the media device  1102  may/may not have internal networking capability)s communicatively coupled to the mobile device  900  through the local area network  904 , according to the embodiment described in  FIG. 11 . It may be determined which media device  1102  (e.g., the media device  1102  may/may not have internal networking capability)s (e.g., the media device  1102  (e.g., the media device  1102  may/may not have internal networking capability)  902 ) in the local area network  904  are listening for the multicast message (e.g., using the operating system  1118 ) through the operating system  1118 , according to the embodiment described in  FIG. 11 . 
     It may be determined whether the compatible application  1106  and/or the enabling application  1104  meets a criteria, according to the embodiment described in  FIG. 11 . A name of the compatible application  1106  and/or the enabling application  1104  received in response to the name-announce request  912  of the operating system  1118  may be processed, according to the embodiment described in  FIG. 11 . A table  1124  of the operating system  1118  that lists the name and/or other names of other enabling application  1104   s  and/or other compatible application  1106   s  associated with media device  1102  (e.g., the media device  1102  may/may not have internal networking capability)s in the local area network  904  may be processed, according to the embodiment described in  FIG. 11 . The name may be presented to a user of the operating system  1118 , according to the embodiment described in  FIG. 11 . 
     The mobile device  900  may be unaware of how many ones of the media device  1102  (e.g., the media device  1102  may/may not have internal networking capability)  902  and/or communication dongle  1100   s  are presently communicatively coupled with the mobile device  900  through the local area network  904 , according to the embodiment described in  FIG. 11 . Nodes of the local area network  904  may replicate packets associated with the multicast message (e.g., using the operating system  1118 ) having the name-announce request  912  to reach multiple ones of the media device  1102  (e.g., the media device  1102  may/may not have internal networking capability)s and/or dongles when necessary, according to the embodiment described in  FIG. 11 . The mirror sequence  1000  may be communicated in a form of a Uniform Resource Locator (URL) code to the enabling application  1104 , so that the media device  1102  (e.g., the media device  1102  may/may not have internal networking capability) is instructed to launch the compatible application  1106  based on data communicated through a destination internet protocol (IP) address associated with the URL, according to the embodiment described in  FIG. 11 . 
     The name of the enabling application  1104  may be compared with a registry of names  932  in a registry database  930  of any one of the central server  906  and/or the operating system  1118  to determine whether enabling application  1104  of the media device  1102  (e.g., the media device  1102  may/may not have internal networking capability) is associatiable with the operating system  1118  of the mobile device  900  and/or the browser of the mobile device  900 , according to the embodiment described in  FIG. 11 . A current state data  928  and/or a bookmark data  926  of an audio-visual data  922  executing on the browser application  1103  on the mobile device  900  may be communicated to the compatible application  1106  on the communication dongle  1100  through the mobile device  900  and/or a central server  906  through which the audio-visual data  922  is streamed to the mobile device  900 , according to the embodiment described in  FIG. 11 . The audio-visual data  922  may be streamed from the central server  906  to the media device  1102  (e.g., the media device  1102  may/may not have internal networking capability) through the compatible application  1106  on the communication dongle  1100  based on the current state data  928  and/or the bookmark data  926 , according to the embodiment described in  FIG. 11 . 
     In another embodiment of  FIG. 11 , a method of a mobile device  900  includes accessing a multicast capability (e.g., using the multicast algorithm  920 ) of an operating system  1118  responsive to a user interacting with an selector  1206  on a header bar  1204  of a browser application  1103  of the mobile device  900  and/or an indicator  1202  on a menu bar  1200  of the operating system  1118  of the mobile device  900 , determining if there is an enabling application  1104  resident on a communication dongle  1100  physically coupled on a port of a media device  1102  (e.g., the media device  1102  may/may not have internal networking capability) that is compatible with the browser application  1103  of the mobile device  900  and the operating system  1118  on the mobile device  900  when a multicast message (e.g., using the operating system  1118 ) is broadcast from the operating system  1118  to the communication dongle  1100  communicatively coupled to the mobile device  900  through a local area network  904 . 
     A launch sequence  910  and/or a mirror sequence  1000  may be communicated from the operating system  1118  of the mobile device  900  and/or the browser application  1103  of the mobile device  900  to the communication dongle  1100  after establishing a session between the mobile device  900  and/or the communication dongle  1100 , according to the embodiment described in  FIG. 11 . A compatible application  1106  on the communication dongle  1100  may be automatically launched on a second display  1004  of the media device  1102  (e.g., the media device  1102  may/may not have internal networking capability) based on the launch sequence  910 , according to the embodiment described in  FIG. 11 . A primary output display (e.g., a display in which a user of the mobile device  900  primarily interacts with when operating the mobile device  900 ) of the mobile device  900  may be automatically switched from a first display  1002  physically coupled with the mobile device  900  to a second display  1004  physically coupled with the media device  1102  (e.g., the media device  1102  may/may not have internal networking capability) based on the mirror sequence  1000 , according to the embodiment described in  FIG. 11 . 
     The multicast message (e.g., using the operating system  1118 ) may be delivered through a multicast algorithm  920  of the operating system  1118  that communicates a name-announce request  912  to any media device  1102  (e.g., the media device  1102  may/may not have internal networking capability) communicatively coupled to the mobile device  900  through the local area network  904 , according to the embodiment described in  FIG. 11 . A characteristic of the second display  1004  may be superior to that of the first display  1002  in that the second display  1004  has an enhanced video resolution, a larger display area, a superior audio quality, and/or a superior color saturation when compared with the first display  1002 , according to the embodiment described in  FIG. 11 . The multicast message (e.g., using the operating system  1118 ) may be communicated wirelessly through the local area network  904 , according to the embodiment described in  FIG. 11 . The multicast message (e.g., using the operating system  1118 ) may be communicated as a broadcast to all available media device  1102  (e.g., the media device  1102  may/may not have internal networking capability)s communicatively coupled to the mobile device  900  through the local area network  904 , according to the embodiment described in  FIG. 11 . 
     It may be determined which media device  1102  in the local area network  904  are listening for the multicast message (e.g., using the operating system  1118 ) through the operating system  1118 , according to the embodiment described in  FIG. 11 . It may be determined whether the compatible application  1106  and/or the enabling application  1104  meets a criteria, according to the embodiment described in  FIG. 11 . A name of the compatible application  1106  and/or the enabling application  1104  received in response to the name-announce request  912  of the operating system  1118  may be processed, according to the embodiment described in  FIG. 11 . A table  1124  of the operating system  1118  that lists the name and/or other names of other enabling application  1104   s  and/or other compatible application  1106   s  associated with media device  1102  (e.g., the media device  1102  may/may not have internal networking capability)s in the local area network  904  may be populated, according to the embodiment described in  FIG. 11 . The name may be presented to a user of the operating system  1118 , according to the embodiment described in  FIG. 11 . 
     The mobile device  900  may be unaware of how many ones of the media device  1102  (e.g., the media device  1102  may/may not have internal networking capability)  902  and/or communication dongle  1100   s  are presently communicatively coupled with the mobile device  900  through the local area network  904 , according to the embodiment described in  FIG. 11 . Nodes of the local area network  904  may replicate packets associated with the multicast message (e.g., using the operating system  1118 ) having the name-announce request  912  to reach multiple ones of the media device  1102  (e.g., the media device  1102  may/may not have internal networking capability)s and/or dongles when necessary, according to the embodiment described in  FIG. 11 . The mirror sequence  1000  may be communicated in a form of a Uniform Resource Locator (URL) code to the enabling application  1104 , so that the media device  1102  (e.g., the media device  1102  may/may not have internal networking capability) is instructed to launch the compatible application  1106  based on data communicated through a destination internet protocol (IP) address associated with the URL, according to the embodiment described in  FIG. 11 . 
     The name of the enabling application  1104  may be compared with a registry of names  932  in a registry database  930  of any one of the central server  906  and/or the operating system  1118  to determine whether enabling application  1104  of the media device  1102  (e.g., the media device  1102  may/may not have internal networking capability) is associatiable with the operating system  1118  of the mobile device  900  and/or the browser of the mobile device  900 , according to the embodiment described in  FIG. 11 . A current state data  928  and/or a bookmark data  926  of an audio-visual data  922  executing on the browser application  1103  on the mobile device  900  may be communicated to the compatible application  1106  on the communication dongle  1100  through the mobile device  900  and/or a central server  906  through which the audio-visual data  922  is streamed to the mobile device  900 , according to the embodiment described in  FIG. 11 . The audio-visual data  922  may be streamed from the central server  906  to the media device  1102  (e.g., the media device  1102  may/may not have internal networking capability) through the compatible application  1106  on the communication dongle  1100  based on the current state data  928  and/or the bookmark data  926 , according to the embodiment described in  FIG. 11 . 
     It will be easily understood by those with skilled in the art that the various embodiments described in  FIGS. 1-12  in the present case are supported throughout the 61/118,286 filed Nov. 26, 2008 priority application and its progeny on which this application depends. 
     For example, the similar application  916 , the pairable application  1016 , the compatible application  1106 , and enabling application  1104  interacting with the mobile device  900  have been described in great detail in the 61/118,286 filed Nov. 26, 2008 priority application and its progeny, according to various embodiments. For example, the similar application  916 , the pairable application  1016 , the compatible application  1106 , and enabling application  1104  are discoverable services  201  (as well as other described) of the &#39;286 application in one embodiment. Similarly, the central server  906  is the discovery service  207  (as well as others described) of the 61/118,286 filed Nov. 26, 2008 priority application and its progeny, according to various embodiments. The Script  304  (and others such as  2102 ) of the &#39;286 application is the application  914 , in one or more embodiments. 
     The various methods of utilizing the multicast algorithm and the various sequences (mirror, name-announce, and launch) are described in great detail and through examples in the &#39;286 application in  FIGS. 1-21  as the various mapping techniques described in great detail. The communication dongle  1100  is a type of the network devices inside of a local area network shared with the mobile device (e.g., for example 507, 513, 2101 and others of the &#39;286 application) according to one or more embodiments. Therefore, this case duly claims its priority on the entirety of the disclosure of the &#39;286 application and its progeny. 
     In another embodiment, a method of a client device includes constraining an executable environment in a security sandbox. The method also includes executing a sandboxed application in the executable environment using a processor and a memory. Further, the method includes automatically instantiating a connection between the sandboxed application and a sandbox reachable service of a networked media device. 
     The method may include processing an identification data associated with the sandbox reachable service sharing a public address with the client device. The method may also include determining a private address pair of the sandbox reachable service based on the identification data. Additionally, the method may include establishing a communication session between the sandboxed application and the sandbox reachable service using a cross-site scripting technique of the security sandbox. Further, the method may include appending a header of a hypertext transfer protocol to permit the networked media device to communicate with the sandboxed application as a permitted origin domain through a Cross-origin resource sharing (CORS) algorithm. The header may be either one of a origin header when the CORS algorithm is applied and a referrer header in an alternate algorithm. 
     The method may further include accessing a pairing server when processing the identification data associated with the sandbox reachable service sharing the public address with the client device. The pairing server may perform a discovery lookup of any device that has announced that it shares the public address associated with the client device. The sandbox reachable service may announce itself to the pairing server prior to the establishment of the communication session between the sandboxed application and the sandbox reachable service. The sandbox reachable service may also announce its availability across a range of public addresses such that the sandboxed application communicates with the sandbox reachable service in any one of the range of the public addresses. However, the range of public addresses may be known by the pairing server so that the announcement of the availability of the sandbox reachable service across the range of public addresses is unnecessary. The sandbox reachable service may communicate a global unique identifier and/or an alphanumeric name to the pairing server along with the private address pair of the sandbox reachable service. The private address pair may include a private IP address and a port number associated with the sandbox reachable service. 
     The method may further include eliminating a communication through a centralized infrastructure when the sandboxed application and the sandbox reachable service communicate in a shared network common to the client device and the networked media device when the connection is established. The shared network may be a local area network, a multicast network, an anycast network, and/or a multilan network. The method may also include minimizing a latency in the communication session when the sandboxed application and the sandbox reachable service communicate in the shared network common to the client device and the networked media device when the connection is established. Further, the method may include improving privacy in the communication session when the sandboxed application and the sandbox reachable service communicate in the shared network common to the client device and the networked media device when the connection is established. 
     The sandboxed application may be a web page, a script, a binary executable, an intermediate bytecode, an abstract syntax tree, and/or an executable application in the security sandbox. The sandboxed application may comprise a markup language application such as a HyperText Markup Language 5 (HTML5) application, a Javascript® application, an Adobe® Flash® application, a Microsoft® Silverlight® application, a JQuery® application, and/or an Asynchronous Javascript® and a XML (AJAX) application. An access control algorithm may govern a policy through which a secondary authentication is required when establishing a communication between the sandboxed application and the networked media device. The method may include utilizing an exception to a same origin policy through a use of a hyperlink, a form, the script, a frame, a header, and an image when establishing the connection between the sandboxed application and the sandbox reachable service. 
     The method may include extending the security sandbox with a discovery algorithm and a relay algorithm through a discovery module and a relay module added to the security sandbox. The method may also include bypassing a pairing server having the discovery algorithm and the relay algorithm when establishing the connection between the sandboxed application and the sandbox reachable service when the security sandbox is extended with the discovery algorithm and the relay algorithm through the discovery module and the relay module added to the security sandbox. 
     The method may further include applying the discovery algorithm of the security sandbox to determine that the networked media device having the sandbox reachable service communicates in a shared network common to the client device and the networked media device. The method may also include applying the relay algorithm of the security sandbox to establish the connection between the sandboxed application and the sandbox reachable service of the networked media device. The discovery algorithm may utilize a protocol comprising a Bonjour® protocol, a SSDP protocol, a LSD uTorrent® protocol, a multicast protocol, an anycast protocol, and/or another Local Area Network (LAN) based protocol that discovers services in a LAN based on a broadcast from any one of an operating system service, the security sandbox, the client device, the sandbox reachable service, and the networked media device. 
     A cookie associated with the security sandbox may be used to store a remote access token on a storage of the client device. The remote access token may identify a set of communicable private Internet Protocol (IP) addresses and/or hardware addresses associated with sandbox reachable services that previously operated on a common shared network with the client device. The client device may communicate with the sandbox reachable services that previously operated on the common shared network through the remote access token. 
     The client device and the networked media device may reside on networks that are incommunicable with each other comprising a firewall separation, a different network separation, a physical separation, and/or an unreachable connection separation. The sandboxed application of the security sandbox of the client device and the sandbox reachable service of the networked media device may communicate with each other through a relay service employed by a pairing server having a discovery module and a relay module to facilitate a trusted communication between the sandboxed application and the sandbox reachable service. 
     The trusted communication may be facilitated in a manner such that the sandboxed application never learns a private IP address and/or a hardware address of the networked media device. This may occur when a first Network Address Translator (NAT) device receives communications from a public IP address of a different network on which the sandbox reachable service operates, and a second NAT device translates the private IP address of the networked media device to the public IP address visible to the sandboxed application. The first NAT device may be coupled with a network on which the client device operates. The second NAT device may be coupled with the different network on which the networked media device operates. 
     The networked media device may comprise a number of sandbox reachable applications including the sandbox reachable application. A service agent module of the networked media device may coordinate communications with the discovery module of the security sandbox and/or the pairing server. The security sandbox may be an operating system on which the sandboxed application is hosted and/or a browser application of the operating system. The networked media device may be a television, a projection screen, a multimedia display, a touchscreen display, an audio device, and/or a multidimensional visual presentation device. 
     The method may include utilizing a WebSocket and/or a long polling service message query interface to reduce a latency of message delivery during the trusted communication between the sandboxed application and the sandbox reachable service. The method may also include optimizing a polling period between polling such that it is less than a timeout period of a session through the relay service. The method may further include initiating the relay service through a series of web pages where information is communicated using hyperlinks that point at the pairing server, and/or a form having a confirmation dialog that is submitted back to the pairing server. A global unique identifier may be masked through the pairing server when the confirmation dialog is served from the pairing server. 
     In one embodiment, a method of a networked device includes announcing a sandbox reachable service of the networked device to a discovery module using a processor and memory. The method also includes automatically instantiating a communication between the sandbox reachable service of the networked device and a client device when a relay module sends a request from a sandboxed application of the client device to the sandbox reachable service. 
     In yet another embodiment, a system includes a networked device to announce a sandbox reachable service of the networked device to a discovery module using a processor and memory. The system also includes a client device to constrain an executable environment in a security sandbox, to execute a sandboxed application in the security sandbox, and to automatically instantiate a connection between the sandboxed application and the sandbox reachable service of the networked device. 
     In still another embodiment, a method of a pairing server includes receiving, storing using a processor and a memory, and communicating to a client device a global unique identifier and/or an alphanumeric name in an announcement from a networked device along with a hardware address associated with the networked device, a public address pair associated with a sandbox reachable service of the networked device, and/or a private address pair associated with the sandbox reachable service of the networked device when a shared network is determined to be commonly associated with the client device and the networked device. The shared network is a local area network, a multicast network, an anycast network, and/or a multilan network. 
     In one embodiment, a method of a mobile device  900  includes accessing a multicast capability of an operating system  1018  responsive to a user interacting with an indicator  1202  on a menu bar  1200  of an operating system  1018  of the mobile device  900 , determining if there is a pairable application  1016  locally stored on a networked media device  902  that is compatible with the operating system  1018  on the mobile device  900  when a multicast message (e.g., using the multicast algorithm  920 ) is broadcast from the operating system  1018  to the networked media device  902  communicatively coupled to the mobile device  900  through a local area network  904  using a processor  108  and a memory  110 , communicating a mirror sequence  1000  from the operating system  1018  to the pairable application  1016  responsive to a selection of a name by a user of the operating system  1018 , determining that the pairable application  1016  has launched based on the mirror sequence  1000 , and establishing a communication session between the operating system  1018  and/or the pairable application  1016 . 
     In another embodiment, a method of a mobile device  900  includes accessing a multicast capability of an operating system  1018  responsive to a user interacting with an indicator  1202  on a menu bar  1200  of an operating system  1018  of the mobile device  900 , determining if there is a pairable application  1016  locally stored on a networked media device  902  that is compatible with the operating system  1018  on the mobile device  900  when a multicast message (e.g., using the multicast algorithm  920 ) is broadcast from the operating system  1018  to the networked media device  902  communicatively coupled to the mobile device  900  through a local area network  904  using a processor  108  and a memory  110 , and communicating a mirror sequence  1000  from the operating system  1018  to the pairable application  1016  responsive to a selection of a name by a user of the operating system  1018 . 
     In yet another embodiment, a system includes a mobile device  900  to access a multicast capability of an operating system  1018  responsive to a user interacting with an indicator  1202  on a menu bar  1200  of an operating system  1018  of the mobile device  900 , a local area network  904 , and a networked media device  902  communicatively coupled with the mobile device  900  through the local area network  904 . The operating system  1018  of the mobile device  900  determines if there is a pairable application  1016  locally stored on the networked media device  902  that is compatible with the operating system  1018  on the mobile device  900  when a multicast message (e.g., using the multicast algorithm  920 ) is broadcast from the operating system  1018  to the networked media device  902  communicatively coupled to the mobile device  900  through the local area network  904 . The operating system  1018  communicates a mirror sequence  1000  from the operating system  1018  to the pairable application  1016 . 
     In one embodiment, a system includes a mobile device  900  to access a multicast capability of an operating system  1118  responsive to a user interacting with an selector  1206  on a header bar  1204  of a browser application  1103  of the mobile device  900  and/or an indicator  1202  on a menu bar  1200  of the operating system  1118  of the mobile device  900 , a media device  1102 , and a communication dongle  1100  that communicatively couples the mobile device  900  with the media device  1102  through a local area network  904  that is commonly shared between the mobile device  900  and/or the communication dongle  1100 . The mobile device  900  determines if there is an enabling application  1104  resident on the communication dongle  1100  physically coupled on a port of the media device  1102  that is compatible with the browser application  1103  of the mobile device  900  and/or the operating system  1118  on the mobile device  900  when a multicast message is broadcast from the operating system  1118  to the communication dongle  1100  communicatively coupled to the mobile device  900  through the local area network  904 , in this embodiment. 
     The operating system  1118  of the mobile device  900  and/or the browser application  1103  of the mobile device  900  communicates a launch sequence and/or a mirror sequence from the operating system  1118  of the mobile device  900  and the browser application  1103  of the mobile device  900  to the communication dongle  1100  after establishing a session between the mobile device  900  and/or the communication dongle  1100 , in this embodiment. A compatible application  1106  automatically launches on the communication dongle  1100  on a second display of the media device  1102  based on the launch sequence, in this embodiment. A primary output display of the mobile device  900  is automatically switched from a first display physically coupled with the mobile device  900  to a second display physically coupled with the media device  1102  based on the mirror sequence, in this embodiment. The multicast message may be delivered through a multicast algorithm of the operating system  1118  that communicates a name-announce request to any media device  1102  communicatively coupled to the mobile device  900  through the local area network  904 . A characteristic of the second display may be superior to that of the first display in that the second display has an enhanced video resolution, a larger display area, a superior audio quality, and/or a superior color saturation when compared with the first display. The multicast message may be wirelessly communicated through the local area network  904 . The multicast message may be broadcast to all available media device  1102   s  communicatively coupled to the mobile device  900  through the local area network  904 . It may be determined which media device  1102   s  in the local area network  904  are listening for the multicast message through the operating system  1118 . 
     It may be determined whether the compatible application  1106  and/or the enabling application  1104  meets a criteria. A name of the compatible application  1106  and/or the enabling application  1104  received in response to the name-announce request of the operating system  1118  may be processed. A table of the operating system  1118  that lists the name and/or other names of other enabling application  1104   s  and/or other compatible application  1106   s  associated with media device  1102   s  in the local area network  904  may be processed. The name may be presented to a user of the operating system  1118 . 
     The mobile device  900  may be unaware of how many media device  1102   s  and/or communication dongle  1100   s  are presently communicatively coupled with the mobile device  900  through the local area network  904 . Nodes of the local area network  904  may replicate packets associated with the multicast message having the name-announce request to reach multiple ones of the media device  1102   s  and/or dongles when necessary. The mirror sequence may be communicated in a form of a Uniform Resource Locator (URL) code to the enabling application  1104 , so that the media device  1102  is instructed to launch the compatible application  1106  based on data communicated through a destination internet protocol (IP) address associated with the URL. 
     The name of the enabling application  1104  may be compared with a registry of names in a registry database of any one of the central server and/or the operating system  1118  to determine whether enabling application  1104  of the media device  1102  is associatiable with the operating system  1118  of the mobile device  900  and/or the browser of the mobile device  900 . A current state data and/or a bookmark data of an audio-visual data executing on the browser application  1103  on the mobile device  900  may be communicated to the compatible application  1106  on the communication dongle  1100  through the mobile device  900  and/or a central server through which the audio-visual data is streamed to the mobile device  900 . The audio-visual data may be streamed from the central server to the media device  1102  through the compatible application  1106  on the communication dongle  1100  based on the current state data and/or the bookmark data. 
     In another embodiment, a method of a mobile device  900  includes accessing a multicast capability of an operating system  1118  responsive to a user interacting with an selector  1206  on a header bar  1204  of a browser application  1103  of the mobile device  900  and/or an indicator  1202  on a menu bar  1200  of the operating system  1118  of the mobile device  900 , determining if there is an enabling application  1104  resident on a communication dongle  1100  physically coupled on a port of a media device  1102  hat is compatible with the browser application  1103  of the mobile device  900  and the operating system  1118  on the mobile device  900  when a multicast message is broadcast from the operating system  1118  to the communication dongle  1100  communicatively coupled to the mobile device  900  through a local area network  904 . 
     A launch sequence and/or a mirror sequence may be communicated from the operating system  1118  of the mobile device  900  and/or the browser application  1103  of the mobile device  900  to the communication dongle  1100  after establishing a session between the mobile device  900  and/or the communication dongle  1100 . A compatible application  1106  on the communication dongle  1100  may be automatically launched on a second display of the media device  1102  based on the launch sequence. A primary output display of the mobile device  900  may be automatically switched from a first display physically coupled with the mobile device  900  to a second display physically coupled with the media device  1102  based on the mirror sequence. 
     The multicast message may be delivered through a multicast algorithm of the operating system  1118  that communicates a name-announce request to any media device  1102  communicatively coupled to the mobile device  900  through the local area network  904 . A characteristic of the second display may be superior to that of the first display in that the second display has an enhanced video resolution, a larger display area, a superior audio quality, and/or a superior color saturation when compared with the first display. The multicast message may be communicated wirelessly through the local area network  904 . The multicast message may be communicated as a broadcast to all available media device  1102   s  communicatively coupled to the mobile device  900  through the local area network  904 . 
     It may be determined which media device  1102   s  in the local area network  904  are listening for the multicast message through the operating system  1118 . It may be determined whether the compatible application  1106  and/or the enabling application  1104  meets a criteria. A name of the compatible application  1106  and/or the enabling application  1104  received in response to the name-announce request of the operating system  1118  may be processed. A table of the operating system  1118  that lists the name and/or other names of other enabling application  1104   s  and/or other compatible application  1106   s  associated with media device  1102   s  in the local area network  904  may be populated. The name may be presented to a user of the operating system  1118 . 
     The mobile device  900  may be unaware of how many media device  1102   s  and/or communication dongle  1100   s  are presently communicatively coupled with the mobile device  900  through the local area network  904 . Nodes of the local area network  904  may replicate packets associated with the multicast message having the name-announce request to reach multiple ones of the media device  1102   s  and/or dongles when necessary. The mirror sequence may be communicated in a form of a Uniform Resource Locator (URL) code to the enabling application  1104 , so that the media device  1102  is instructed to launch the compatible application  1106  based on data communicated through a destination internet protocol (IP) address associated with the URL. 
     The name of the enabling application  1104  may be compared with a registry of names in a registry database of any one of the central server and/or the operating system  1118  to determine whether enabling application  1104  of the media device  1102  is associatiable with the operating system  1118  of the mobile device  900  and/or the browser of the mobile device  900 . A current state data and/or a bookmark data of an audio-visual data executing on the browser application  1103  on the mobile device  900  may be communicated to the compatible application  1106  on the communication dongle  1100  through the mobile device  900  and/or a central server through which the audio-visual data is streamed to the mobile device  900 . The audio-visual data may be streamed from the central server to the media device  1102  through the compatible application  1106  on the communication dongle  1100  based on the current state data and/or the bookmark data. 
     In yet another embodiment, a system includes a mobile device  900  accesses a multicast capability of an operating system  1118  responsive to a user interacting with at least one of an selector  1206  on a header bar  1204  of a browser application  1103  of the mobile device  900  and an indicator  1202  on a menu bar  1200  of the operating system  1118  of the mobile device  900 , a media device  1102 , and a communication dongle  1100  that communicatively couples the mobile device  900  with the media device  1102  through a local area network  904  that is commonly shared between the mobile device  900  and the communication dongle  1100 . The mobile device  900  determines if there is an enabling application  1104  resident on the communication dongle  1100  physically coupled on a port of the media device  1102  that is compatible with at least one of the browser application  1103  of the mobile device  900  and the operating system  1118  on the mobile device  900  when a multicast message is broadcast from the operating system  1118  to the communication dongle  1100  communicatively coupled to the mobile device  900  through the local area network  904 . 
     For example, Jane may watch a movie and/or access an application (or using a browser) through her mobile device while sitting on a couch in her living room. Jane may wish to automatically display the movie and/or application on a big screen television in front of her couch (or launch a browser, and/or use the big screen television as her primary display instead of the one in her mobile device). Jane may use a gesture to transport the browser, operating system, movie and/or application to the big screen television. For example, Jane may ‘fling’ (or flick) the screen on her mobile device in which the operating system, browser, movie and/or application is running in an upward motion, and instantly transport the movie and/or application onto her big screen television. In an alternate embodiment, the big screen television may automatically detect that Jane is playing the movie and/or running the application on her mobile device and automatically launch the movie (in its current play state) and/or run the application on the big screen television after detection (without requiring a fling or flick haptic gesture by Jane). 
     In addition, Jane may access a photo editing application through her mobile device while sitting on a couch in her living room. Jane may wish to automatically display the application on a big screen television in front of her couch (e.g., use the big screen television as her primary display instead of the one in her mobile device). Jane may use a gesture to transport whatever is being displayed on her mobile device to the big screen television. For example, Jane may press an indicator on her operating system to instantly switch her primary display from the mobile device to that of the television. 
     Although the present embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the various embodiments. For example, the various devices and modules described herein may be enabled and operated using hardware circuitry (e.g., CMOS based logic circuitry), firmware, software or any combination of hardware, firmware, and/or software (e.g., embodied in a machine readable medium). For example, the various electrical structure and methods may be embodied using transistors, logic gates, and/or electrical circuits (e.g., application specific integrated (ASIC) circuitry and/or Digital Signal Processor (DSP) circuitry). 
     In addition, it will be appreciated that the various operations, processes, and/or methods disclosed herein may be embodied in a machine-readable medium and/or a machine accessible medium compatible with a data processing system (e.g., a computer device). Accordingly, the specification and drawings are to be regarded in an illustrative in rather than a restrictive sense.