Abstract:
Described are techniques for facilitating automated connections between any two devices a plurality of devices—including applications—across disparate and unsecured networks including the Internet. For example, details about a device or application including its unique identity are managed through a master repository in a protocol-agnostic manner. By requiring hosts in a network to maintain communication (bi-directionally) with the repository, the repository acts as an intelligent-management bridge between different devices and sources.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims the benefit of U.S. Provisional Patent Application No. 61/724,752, entitled “Connectionless Communications” filed on Nov. 9, 2012, the contents of which are herein incorporated by reference. 
    
    
     BACKGROUND 
     When devices and applications attempt to communicate between each other securely, they usually must do so across unsecured and untrusted networks often while mobile. Because protocols used to communicate between devices have not kept pace with security and mobility management, a myriad of security and mobility systems, protocols, and devices have been invented that are often incompatible with each other. This has made establishing secure connections between devices difficult to implement—even for experts in the field. So the process of creating secure connections across the Internet is often difficult, inefficient, and expensive. 
     SUMMARY 
     Described are techniques for facilitating automated connections between any two devices—including applications—across disparate and unsecured networks including the Internet. For example, details about a device or source including its unique identity are managed through a master repository (i.e., database) in a protocol-agnostic manner. By requiring hosts in a network to maintain communication (bi-directionally) with the repository, the repository acts as an intelligent-management bridge between different devices, applications, and sources. 
     This summary is provided to introduce a select concept in a simplified form that is further described below. This summary is not necessarily intended to identify key features or essential features of the claimed subject matter, nor is it necessarily intended to be used as an aid in determining the scope of the claimed subject matter. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same reference numbers in different figures indicate similar or identical items. 
         FIG. 1  depicts an illustrative environment in which the unique identity and parameters about one or more device(s) or source(s) are managed, thereby facilitating automatic and secure peer-to-peer communications. 
         FIG. 2  is a block diagram illustrating an example computing device. 
         FIG. 3  shows a screen shot rendered on a user interface of computer and includes a unique ID, and status parameters about an example device or application. 
         FIG. 4  shows an illustrative process for facilitating connectionless communication. 
     
    
    
     DETAILED DESCRIPTION 
     Illustrative Environment 
       FIG. 1  depicts an illustrative environment  100  in which the unique identity and parameters about one or more device(s) or source(s)  102  are managed, thereby facilitating automatic and secure peer-to-peer communications between different devices  102  across network(s)  104  including portions of the Internet. As used in this description, a device may take a variety of forms including, but not limited to, a computing device, mobile phones such as smart phones, tablet, desktop, and laptop computers, media devices, or any application or source operating on a processor such as mobile-phone application or various other application(s) as would be appreciated by those skilled in the art. 
     Network(s)  104  represent any type of communication network(s), including wire-based (i.e., fiber optic, cable, etc.), wireless (i.e. cellular, WiFi, Bluetooth, etc.), or combinations thereof. 
     Hosts  106 ( 1 ),  106 ( 2 ), . . . ,  106 (N) represent any type of client or server computing device on network  104 . Each host may be configured to send and receive data. For instance, in one example, hosts  106  serve as network or IP hosts that may offer any suitable information resources, services, and applications to users or other nodes on a network. As appreciated by those skilled in the art after having the benefit of this disclosure, a host may be a dedicated server or router through which incoming or outgoing messages are routed on behalf of a client device, user, or application and use any suitable addressing protocol or layer. 
     Server  108  generally represents a name server that hosts a network service such as providing responses to queries against a directory service. In other words, server  108  may map human-readable addresses to numeric identification or addressing components such as Internet Protocol (IP) addresses, according to one or more network-service protocols. For instance, server  108  may represent a Domain Name System (DNS) server to identify and locate computer systems and resources on the Internet. 
     Hosts  106  and server  108  also represent any suitable computing device.  FIG. 2  is a block diagram illustrating such as example device  200 . In this illustrative example, device  200  includes one or more processor(s)  204  and the ability to access a computer-readable media  206 . Processor(s)  204  interact with computer-readable media  206  to execute instructions that facilitate functionality of each router or server. 
     Processor(s)  204  may be distributed in more than one computer system and over a network. Examples of computer device  200  may include, but are not limited to, a server, a personal computer, special computer, distributed-computer systems, or other computing devices having access to processor(s) and computer-readable media. Further, although not shown, any number of system busses, communication and peripheral interfaces, input/output devices, and other devices may be included in computer system  200 , as is appreciated by those skilled in the art. 
     Computer-readable media  206  may include any suitable computer-storage media including volatile and non-volatile memory, and any combination thereof. For example, computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. Computer storage media may further include, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transitory or non-transmission medium that can be used to store information for access by a computing device. 
     In other examples, the computer-readable media  206  may include communication media that may embody computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave, or other transmission mechanism. As used in this detailed description, computer-storage media does not include communication media. 
     Further, computer-readable media  206  may be local and/or offsite to computer device  200 . For instance, one or more portions of, or all of data or code stored in computer-readable media  206 , may be accessed from a computer-storage medium local to and/or remote to computer system  200 , such as from a storage medium connected to a network. 
     Resident in computer-readable media  206  may be one or more operating systems (not shown), and any number of other program applications or modules in the form of computer-executable instructions and/or logic which are executed on processor(s)  204  to enable processing of data or other functionality. Also resident in computer-readable media  206  is one or more databases. 
     For example, in one implementation database  207  includes parameters providing a status of each device at a particular time and may include unique identifiers associated with a device as will be explained in more detail. 
     Example 
     Communications Module 
     Computer device  200  (whether implemented as a server  108  or host  106 ) is configured with a communications module  208  maintained in computer-readable media  206 . In one example, communications module  208  may be implemented as code in the form of computer-readable instructions that execute on one or more processors  204 . For purposes of illustration, programs and other executable-program modules are illustrated herein as discrete blocks, although it is recognized that such programs and components may reside at various times in different storage components. Further, such code may be implemented as one or more applications or modules, or may be integrated as components within a single application. Such code stored in computer-readable media  206  may be implemented across hosts  106 , and server  108 , or one or more other hosts or servers in a cloud computing environment or on a cooperative combination of both. Thus, the following discussion does not limit the implementation of code stored in computer-readable media  206  to any particular device or environment. 
     Communications module  208  may include components contained in computer-readable media  206 . In one example, communications module  208  includes: a post-IP-address module  210 , an IP-address-determination module  212 , a post-arbitrary-data module  214 , and an arbitrary-data retrieval module  216 . 
     Example post-IP-address module  210  facilities a mode of operation in which a host (or other device/application) sends a message containing an Internet address using a unique identifier (ID) exclusively associated with the host or other device/application). The unique ID may be any number assigned to and associated to a device. For example, the unique ID may be an Ethernet MAC address such as 00-08-48-72-fd-c7. This unique ID may be coupled with other data location information with an “A” record showing the public IP address of 95.200.2.34.           
     As appreciated by those skilled in the art after having the benefit of reviewing this disclosure, the unique ID is not limited to a MAC address format, and may be any predetermined string of alphanumeric characters or other codes or values associated with a device. 
     Post-IP-address module  210  module will create an update message to be sent to a user specified configured domain (ex. iptlabs.com) using a unique device identification (e.g. Ethernet MAC address.) Posting of the unique ID and other data may occur at power up of the host, at predetermined-periodic intervals, and/or upon polling, such as from a server  108 . 
     An IP-address-determination module  212  uses the unique ID to query a database  207  to ascertain the IP-address associated with a host. Unique ID stored as in database to allow the database to find that device. 
     Post-arbitrary-data module  214  allows a device or host, from time-to-time post data to database  207 . This data may be for the device&#39;s own use, use by another device host or server, or other devices not configured with communications module  208 . The data format is arbitrary, as per the application, and is not required to be defined. 
     For example, an update message is created for arbitrary data to be sent to a user specified configured domain (ex. iptlabs.com) using a unique device identification (e.g. Ethernet MAC address.) 
     The update may contain a DNS “TXT” resource record for determined IP address. 
     Using the common and public domain DNS tool NSUPDATE, along with encryption, puts that update into the authoritative DNS server database for that domain. 
     Any generic-network device may obtain the data by querying the DNS fully qualified domain name (e.g. unique_id.iptlabs.com) with request for the TXT record.            
     Multiple lines may be posted by post-arbitrary-data module  214  for placing larger amounts of arbitrary data. 
     An example arbitrary-data retrieval module  216  allows any application to query and retrieve a TXT record with arbitrary data using a unique identifier. This may include “global” identifiers which are read by all devices or a hierarchical structured identifier set to permit addressing a specific plurality of hosts; or specific unique identifiers to address a single host. 
     Using DNS system may require the use of the resource records so that the DNS system functions properly and that the required information is available at request time. Nonetheless, as appreciated by those skilled in the art after having the benefit of reviewing this disclosure, communications module  208  and portions thereof may operate on alternative transport methods, such as http, ftp, NTP, These would need to be investigated but could use Network Time Protocol (NTP), Simple Mail Transfer Protocol (SMTP), Internet Control Message Protocol (ICMP), Hypter Text Transfer Protocol (HTTP), etc. or custom protocols could possibly be employed to provide similar communications as DNS. 
     The example communication module  208  may not require any direct access to a final messaging server, although the examples may function with direct with direct access as well. 
     Thus, communication module  208  facilitates communications without the need for direct access or direct connection between the communicating devices: 
     1) No modification of Internet DNS system or servers for communications is required. 
     2) Communication is possible anywhere in the world and thus is not prone to filtering or blockages in which other device-to-device communications methods are often rendered inoperable. 
     3) Asynchronous non-real time communications is possible. These communications may not depend on an established communication path for messaging. Commonly known as store and forward the messaging is available when the device is becomes available. 
     4) Dynamic and unlimited forward and backward communications messaging structure which is independent of the DNS system transport, servers, or services. 
     5) Deployment of private closed-systems of any size for customers which require their own suitable system/solution for their applications is adaptable. 
       FIG. 3  shows a screen shot rendered on a user interface of computer and includes a unique ID  302 , and status parameters  304  about an example device, which was retrieved from a record in database  207 . Thus, database  207  acts as a messaging server allowing other devices or applications, to understand how a specific device or application (at an unknown location) is configured, its status (such as whether operating properly and connectivity), and how to connect automatically thereto. 
     Database  207  may contain a unique ID and other data parameters in agnostic fashion across different environments, networks, layers, applications, protocols, and domains. 
     Example 
     Illustrative Process 
       FIG. 4  shows an illustrative process  400  for facilitate connectionless communication. Process  400  may be described with reference to  FIGS. 1, 2, 3 and 4 . 
     Process  400  is illustrated as a collection of blocks in a logical flow graph, which represent a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the blocks represent computer-executable instructions that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described blocks can be combined in any order and/or in parallel to implement the process. Also, one or more of the described blocks may be omitted without departing from the scope of the present disclosure. 
     At  402 , a device or application sends a message to a server. The message includes a unique ID exclusively associated with the device or application. This message may include other data parameters about the device or application, such as its status, configuration, how to connect to it, connectivity, network messaging, and other optional parameters that may be transmitted therewith. 
     At  404 , the unique ID and parameters associated with the device or application are recorded in the database. 
     At  406 , a query is received from any device or application requesting information from the device/application associated with the initial message in  402 . 
     At  408 , the database is searched for the unique ID associated with the device/application which is the subject of the query. And, data about the target device/application is transmitted back to the querying device/application. In some examples, the query may be bidirectional, allowing a self-query operation. 
     Reference herein to “example,” “embodiments” or similar formulations means that a particular feature, structure, operation or characteristic described in connection with the example, is included in at least one implementation in this description. Thus, the appearance of such phrases or formulations herein are not necessarily all referring to the same example. Further, various particular features, structures, operations, or characteristics may be combined in any suitable manner in or more examples. 
     Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as illustrative forms of implementing the claims.