Abstract:
A system, method, and computer-readable medium, is described that enables a domain name registrant the ability to exchange their existing domain in favor of a new domain without incurring additional domain registration fees and without affecting the other data fields of the existing domain. Once the domain exchange service is added to the domain registration, the registrant can exchange the domain name as often as it likes in accordance with the business rules of the registry until the domain exchange service expires.

Description:
TECHNICAL FIELD 
       [0001]    This disclosure relates to improvements in the reserving of domain names. 
       BACKGROUND 
       [0002]    The domain name system (DNS) and domain name registration system have become an integral part of how consumers and businesses conduct activity on the Internet. 
         [0003]    One advantage of DNS is that it allows a person to visit a website by typing into a browser a “domain name”, that is, a familiar word or group of words, rather than the numeric IP address of the computer on which the website resides. For example, a person desiring to visit the VeriSign website could do so by entering in their web browser the domain name “verisign.com” instead of an IP address, such as “10.10.1.100.” Although, the user could enter either the domain name or the IP address, the moniker “verisign.com” is easier to remember than a string of digits. A domain name is an example of a “provisioned object,” that is, an object that is assigned or released through an interface. 
         [0004]    The DNS system also allows multiple websites to share one IP address when multiple domain names all resolve to (that is, are associated with) the same IP address. A webserver that has been assigned a specific IP address receives, as part of the request for web content, the domain name requested and can then deliver the desired content to the requesting computer. This multiple-website feature is important because there are a finite number of IP addresses of the form 10.10.1.100, so called “IPv4 addresses.” Without this ability for multiple websites to share an IP address, the possible IPv4 address space would likely have already been exhausted. 
         [0005]    Furthermore, the next version of IP address space, so called “IPv6,” includes an even more complicated numeric format. Whereas IPv4 is only 32 bits in binary length, IPv6 is 128 bits. A typical hexadecimal representation of an IPv6 address is 2001:0db8:85a3:0000:0000:8a2e:0370:7334. Because of the increased length of IP address in this format, there are approximately 5×10 28  theoretical addresses available for each one of the 6.8 billion people alive. Although IP address exhaustion will no longer be a concern under the new addressing scheme, the DNS system remains important so that people can use familiar domain names rather than long strings of hexadecimal digits to visit websites or access machines on the Internet. 
         [0006]    Domain name registration is the process by which a registrant can reserve or lease the use of a domain name for a specified period of time from the date of registration. The domain name registration system consists of various top level domains (TLDs), such as the traditional .com, .net, .org, .edu, and .gov, as well as the newer .biz, .info, and .name. The domain name registration system has also evolved to incorporate various country code TLDs (ccTLDs), each one reserved for use by a particular country, such as, .ca, .cn, .tv, and .us, associated with Canada, China, Tuvalu, and the United States, respectively. The domain name system and domain name registration system have also evolved to allow the use of alternative character sets to accommodate foreign languages. 
         [0007]    A domain name is reserved by a domain name “registrant.” The registrant may reserve the domain name for at least one year but may reserve the domain name for up to ten years. Domain names are reserved through domain “registrars.” Registrars are entities having business relationships with domain “registries” that control the domain names for a particular TLD. Thus, the registrar provides the interface to the registrant to reserve the domain name from a registry. The registry manages the reserved names and available names for a particular TLD and makes available the information to the registrar through the Extensible Provisioning Protocol (EPP). Registrars that are authorized by the registry have the ability to make reservations and check the state of domain names through the EPP. The registry provides the EPP as a communications gateway to registrars for such purposes. 
         [0008]    In a typical domain name registration example, a registrant may want to reserve the domain name “example.com.” The registrant would contact a registrar that has a business relationship with the registry that operates the .com TLD. The registrant would query the registrar as to the availability of the domain name “example” in the .com namespace. The registrar in turn would query the proper registry through the EPP, then return the results to the registrant. The registrant may then obtain a registration of the domain name by paying a registration fee and providing information required by the registry and registrar. The registry charges the registrar for the domain name registration and the registrar collects the registration fee from the registrant. 
         [0009]    To maintain a domain name in accordance with current regulations, the registry responsible for a TLD is required to keep a certain minimum amount of information with the domain name to ensure proper identification, security features, and operability associated with the domain name. For example, all domain registrants are required to make available to the registry, current administrative contact information. Also, in order for a domain name to work correctly, the registry must have nameserver information for the domain to load into its TLD DNS system to refer outside DNS requests to the proper authoritative DNS servers. Also, to prevent accidental changes to the domain name settings, certain status codes are available to put various levels of protection on the domain name. This information will be discussed below in more detail. 
         [0010]    One problem with having the registry system as described is that it does not easily accommodate some registrants with alternative business models for domain registration. Thus, some potential registrants may limit their purchase of domain name registrations. For example, suppose a web hosting service provider would like to provide an option for a web hosting contract with its customer that includes the use of a domain name without charge to the customer. In reality, the web hosting service provider is hoping to recover the cost of the fees it pays for domain registration through web hosting fees it will charge to the customer over a period of time. Under the traditional domain registration schemes described above, if the customer prematurely ceases paying its web hosting fees, then the web hosting service provider may fail to recover the fees it paid to the registrar for registration of the domain name. Therefore a method is needed to allow the web hosting provider to exchange the domain name registered for the early-termination customer in favor of a different domain name that it can offer to its next customer. 
         [0011]    Another example where such a method would be desirable is when a domain registrant&#39;s interest is not in selling products or services per se under a brand associated with the domain name, but rather reserving domain names that Internet users might enter accidently, by exploiting typographical errors entered in web site addresses. For example, suppose a registrant wanted to commandeer web traffic intended to go to “example.com,” but was not sure which variant of “example” would be most effective. The registrant might register, “example,” “exampple,” and “exampel” to see which was most effective, and place targeted advertising on the most effective variant. Under the traditional domain registration schemes described above, the registrant would lose the value of the domain names that did not produce many visits. In anticipation of this loss leader, the registrant may try small batches of reservations. If the registrant could exchange the unfruitful domain names for others, however, then the registrant might reserve many more initially, knowing that an unfruitful domain name could be exchanged for a domain name consistent with the registrant&#39;s next project. Therefore, a method of exchanging an existing domain name in favor of a new domain name is needed to encourage more registrations from this type of registrant. 
       SUMMARY 
       [0012]    A computer-implemented method of processing a domain name includes receiving a new domain name and exchanging an existing domain name for a new domain name. The method includes updating a domain name server with the new domain name and processing the existing domain name to make the existing domain name available for registration by a new registrant. 
         [0013]    It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed. 
         [0014]    The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate one (several) embodiment(s) of the invention and together with the description, serve to explain the principles of the invention. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0015]      FIG. 1  is an illustration of the interaction between the Domain Registrant, Domain Registrar, and Domain Registry; 
           [0016]      FIG. 2  is an illustration of a typical domain registration process; 
           [0017]      FIG. 3  is an illustration of a Domain Registry Server with supporting Registration Programs, including an exemplary registry domain record; 
           [0018]      FIG. 4  is an illustration of a Domain Registrar Server with supporting Registration Programs, including an exemplary registrar domain record; 
           [0019]      FIG. 5  is an illustration of the Domain Exchange process; 
           [0020]      FIG. 6  is an illustration of one step of the Domain Exchange process as found in  FIG. 5 ; 
           [0021]      FIG. 7  is an illustration of another step of the Domain Exchange process as found in  FIG. 5 ; 
           [0022]      FIG. 8  is an illustration of the available server Status Codes and exemplary Status Set definitions; 
           [0023]      FIG. 9  is an illustration of a process to add a Status Set to a domain; 
           [0024]      FIG. 10  is an illustration of a process to remove a Status Set from a domain; 
           [0025]      FIG. 11  is an illustration of a Registry Server with supporting Registration programs, including an exemplary registry status set record; and 
           [0026]      FIG. 12  is an illustration of a process that manages the status codes when a status set is added or removed. 
       
    
    
     DETAILED DESCRIPTION 
       [0027]    Reference will now be made in detail to the exemplary embodiments. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts. 
         [0028]      FIG. 1  illustrates the data flow and relationship definition of the three primary parties involved in a domain registration. The registrant  110  is typically an end user of the domain, but in some cases, may resell the domain to either another registrant in a domain transfer transaction or may retain ownership of the domain but let a third party use it, as when the registrant is a web hosting provider and the third party is a customer of the registrant. Moreover, some registrants never intend to use a domain in a traditional fashion. Some registrants hope to reserve desirable domain names that they can sell for a profit and some registrants reserve names that are slight variations of popular websites, hoping to receive Internet traffic from people mistyping the URL of the popular website. Registrants constantly find new ways to use the domain name system other than for the traditional use of hosting websites associated with the domain name that directs a user to a website. 
         [0029]    Registrants  110  reserve domain names from registrars  120 . Thus, the registrant&#39;s  110  relationship is primarily with the registrar  120 . The registrar, however, maintains a relationship with one or more registries  130  that control the TLD for which registration is desired. Typically, large registrars have multiple relationships with many registries to assure they can provide registrants with many TLD domain options when reserving their domains. 
         [0030]    Registries  130  control the assignment of domain names. A registry is responsible for assuring that domain information is accurate and up to date. Further, the registry is responsible for providing first level DNS support for the TLD. For example, the registry that manages the .org TLD must provide (or otherwise make available) a DNS server containing nameserver information for a domain name registered through the registry so that when a website is requested via the domain name in a URL, the proper nameserver will eventually respond to the request, by providing a fully resolved domain name (that is, resolved to the IP address of the machine designated as responsible to respond for the domain name). Registrar  120  and registry  130  each comprise one or more computers to implement the functions described herein, and may correspond to functions and structures disclosed below. 
         [0031]    A typical domain registration process is illustrated in  FIG. 2 . The process begins when the potential registrant accesses a registrar&#39;s domain registration interface  205 . The registrant searches for a domain name to reserve  210 . The registrar  120 , in turn, must query the registry  130  for current registration and availability information on the requested domain  215 . The results are returned to the potential registrant  110 . If the domain name is available, the potential registrant can proceed with registration from the registrar  220 . Finally, if the registrant  110  continues with registration, the domain will be reserved to the registrant for a minimum period of one year from the date of registration and up to a maximum period of ten years. 
         [0032]      FIG. 3  and  FIG. 4  contrast the typical kind of data stored by each of the registry  130  and registrar  120 . Also, as can be seen in the types of programs,  318  and  418 , run in each, the registry  130  and registrar  120  must perform similar functions, but with different scopes and purposes. For example, whereas the registry  130  implements the Extensible Provisioning Protocol (EPP) so that registrars can make queries of the domain reservation system, the registrar  120  implements a web server to present products and application interfaces to registrants. However, because the two serve fundamentally different purposes, the registry  130  does not need some information used by the registrar and the registrar  120  does not need some information used by the registry. For example, whereas the registry  130  may not require any contact information for the registrant  110  of the domain name, the registrar  120  needs to maintain contact and billing information for the registrant  110 . And for example, whereas the registrar  120  may not require information regarding the server status codes applied by the registry, the registry  130  maintains this information to determine what operations are allowed for a domain name by the registrar. 
       Domain Name Exchange 
       [0033]    In one embodiment, a service is provided that allows a registrant to exchange a current domain name for a new domain name. In contrast to the typical domain registration process of  FIG. 2 , the domain name exchange service allows the registrant to change domain names without incurring any additional registration fees. In one embodiment, upon activation of the domain name exchange service, the registrant has until the next anniversary date of the domain name registration to make as many domain name exchanges as possible in accordance with domain name exchange business rules. 
         [0034]    In one embodiment, the business rules may specify that a domain name may only be exchanged at least 30 days after a previous domain name exchange and at least 30 days after the initial domain name registration. In another embodiment, the business rules may allow any number of days between exchanges and any number of days before a first exchange can be made. The business rules may be changed as the needs and goals of the business determine. In another embodiment, the business rules may allow a registrant to purchase a domain name exchange per exchange request for a fee in a transaction that somewhat resembles a domain registration, but that is less than a new domain name registration and retains the data in the existing domain name record, such as the expiration date and nameserver information. 
         [0035]      FIGS. 5 through 7  illustrate the domain name exchange process  500  of one embodiment. The registrant accesses a domain name exchange service (step  505 ) provided through their registrar. The registrant selects a new domain name using registrar-provided domain search tools, and requests that the new domain name replace the existing domain name (step  510 ). The registry will verify that the existing domain name is eligible for domain name exchange (step  515 ). If the domain name exchange service  520  is already enabled for the domain name record  330 , then the domain name exchange (step  535 ) takes place, otherwise, a fee for the service is charged (step  525 ) to the registrar and the domain name exchange service is enabled for that domain record identifier  530 ,  330 , and then the domain name exchange takes place (step  535 ). 
         [0036]      FIG. 6  illustrates step  515  from  FIG. 5  in greater detail. In particular,  FIG. 6  illustrates the steps of a process to determine whether an existing domain name will be allowed to be exchanged for a new domain name. The particular number of days reflected in the following steps may be adjusted or omitted according to the business rules of the entity implementing such a system. 
         [0037]    The registry verifies that the new domain name is available for registration (step  605 ), and that any domain name status codes that would prevent changes to the domain name are not active (step  610 ). In one embodiment, the business rules specify that registrants are allowed to exchange a domain name only after 30 days and then only every 30 days after that, as in steps  615  and  620 . 
         [0038]      FIG. 7  illustrates the steps of a process  700  to perform the domain exchange by the registry and is a detailed breakdown of step  535  from  FIG. 5 . The domain name is replaced in the domain registration records of the registry (step  705 ). Referring again to  FIG. 3 , the Registry Domain Record  330  is updated with the new domain name, and the domain record identifier, as found in  330 , remains the same. The replacement is recorded for tracking and reporting purposes (step  710 ). Replacement entries into the registry&#39;s DNS for the TLD are generated (step  715 ). If the domain name utilizes DNS Security protocols (DNSSEC), then new DNSSEC information is received and also incorporated into replacement entries into the registry&#39;s DNS for the TLD, including the Delegation Signer (DS) Resource Record associated with DNSSEC. The changes are pushed to the DNS servers operated by the registry for the TLD associated with the domain name (step  720 ). Finally, the existing domain name is processed to make available to future registrants (step  725 ). For example, the domain name could be released into the pool of available domain names for immediate registration, the domain name could be released into the pool of available domain names according to a schedule, or the domain name could be held for a time period before being released for open-registration while being made available for registration in an auction-type setting. 
         [0039]    In one embodiment, the records of the domain name exchange that are recorded in  710  can be accessed by a user through a search function in which the registry receives a search request based either on the domain record identifier or on one of the domain names in the exchange history of the domain record identifier. The registry, in response to the request, sends information regarding the domain name history associated with the domain record identifier or domain name. 
         [0040]    It will be apparent to those skilled in the art that many of the preceding steps can be performed in a different order to achieve the same end result, and therefore none of the preceding steps should be construed to be required to be performed in the order as presented. 
       Setting Registry Service Status 
       [0041]    Domain names are assigned, released, and managed using the Extensible Provisioning Protocol (EPP). The EPP is a flexible protocol designed for allocating objects within registries over the Internet. Other objects currently provisioned using EPP are host names and contact information. The motivation for the creation of EPP was to provide a flexible communication protocol between registrars and registries. Although EPP is widely adopted by many registries, the term “provisioned objects,” as that term is used herein, should be understood to include the provisioned objects as described in the standards that define EPP. Examples of standard “provisioning objects” include domain names in RFC 5731, host names in RFC 5732, and contacts in in RFC 5733. A “provisioning object” includes the standard EPP objects as existing or yet-to-be-developed objects following the EPP standard. 
         [0042]    Domain names, as provisioned objects, have status codes associated with them. Status codes are designations that can be assigned and removed by the registry to define what operations are allowed for a domain name by the registrar and to define whether a domain name should resolve in DNS. Status codes may also provide security for a domain name to prevent, for example, the domain name from being accidently transferred or deleted. The available status codes that can be returned by the EPP system for domain name provisioning are defined as “status values” in the standards described in RFC5731 and RFC5732, respectively (collectively, “the standards”). Some of these status codes are shown in  FIG. 8  at  810 . 
         [0043]    However, for internal use, some registries may implement status codes in addition to those specified in the standards. For example, a registry could apply a status code called “AccountDecredited” to a domain name, serviced by a registrar, that is in arrears. The status code “AccountDecredited” would be returned whenever the registry itself checks the status of that domain name. However, to remain compliant with the standards as mentioned above (or future standards of a similar nature), the registry may respond to an EPP status query for a domain name from an outside entity, such as from a registrar, by returning a status code of similar or related meaning, which is specified in the applicable standard. 
         [0044]    Although most status codes defined in the standards can be applied only by the registry, some status codes can be applied by a registrar. For example, the server status codes listed in  810  that have counterparts prefixed with “client” instead of “server” may be applied by the registrar (or even by a registrant through an interface provided by the registrar). Therefore, the embodiments described herein may be adapted for use by registrars, registrants, or any entity needing to establish status management capabilities consistent with the claims. 
         [0045]    In one embodiment, a tool is provided to help registries manage server status codes. This tool can also be adapted for use by registrars to manage client status codes. This tool can be further adapted by other entities performing similar management techniques on other provisioned objects. 
         [0046]    In one embodiment, the server status codes  810  can be logically grouped into functional status sets  820 . For example, the “Court Order Hold” status set  825  includes the status codes serverUpdateProhibited  811 , serverDeleteProhibited  812 , serverTransferProhibited  813 , and serverHold  815 . In one embodiment, server status sets may also be grouped in logical opposite pairs, such as with “Registry Lock”  830  and “Registry Unlock.” These status sets, as pairs, may be defined as mutually exclusive, such that one is prohibited from assignment to a domain name while the other is also assigned  920 . 
         [0047]      FIG. 9  illustrates an exemplary process  900  for assigning a status set to a domain name. This process can be adapted to also apply to a host name or other provisioned object. A domain name is entered for which the status set will be assigned (step  905 ). The status set is added to a database along with a service reason number, and a note with further detailed information may optionally be entered (step  910 ). In the case of the “Court Order Hold” status set  825 , for example, the jurisdiction and related case information of the court issuing the “Hold Order” may be recorded, along with information specifying the length of time during which the “Hold Order” is effective. 
         [0048]    In one embodiment, upon attempting to add the status set, the system determines that the status set has not already been added (step  915 ) and, if so, will not add the status set (step  930 ). The system also determines whether a status set pair corresponding to the currently added status set has already been added (step  920 ), such as discussed above with respect to mutually exclusive status sets. If one part of a status set pair is already active, then the status set will not be added (steps  920  &amp;  930 ); otherwise the status set will be added (step  925 ). 
         [0049]      FIG. 10  illustrates an exemplary process  1000  for removing a status set from a domain name. This process can be adapted to also apply to a host name or other provisioned object. A domain name is entered specifying the domain name for which the status set will be removed (step  1005 ). The status set to be removed is also specified, along with a service reason number (step  1010 ). The operator may also enter a note containing specific information surrounding the removal request. In one embodiment, the system checks that the specified status set is actually assigned (step  1015 ), and, if not, the status set is not removed (step  1030 ). Otherwise, the system determines whether a valid removal reason was supplied by the operator (step  1020 ). If so, the status set is not removed (step  1025 ). If not, the status set is removed (step  1030 ). 
         [0050]    In one embodiment, the processes of  900  and  1000  can be adapted to accommodate activating and deactivating an assigned status set, rather than adding and removing the status set. For example, the “Registry Lock”  830  might normally be assigned to a domain name. However, if the registrar through which the domain name was registered were to go out of business, the domain name may need to be transferred to another registrar. Temporarily setting the “Registry Lock” to inactive, for the purposes of the transfer, would preserve the settings and notes as originally applied, yet still allow the transfer. 
         [0051]      FIG. 11  illustrates for one embodiment, some of the possible data fields  1130  associated with the implementation of a status set as applied to a domain name. 
         [0052]      FIG. 12  illustrates an exemplary process  1200  by which status codes may be managed when a status set is added or removed. When a status set is added to a domain, the process determines which status codes are already enabled (step  1210 ) and which status codes still need to be enabled (step  1230 ). The process then specifies only the status codes that need to be enabled (step  1240 ). Likewise, when a status set is removed, the process determines which status codes should be retained (step  1250 ) (perhaps because they are part of another active status set) and only removes the status codes that may safely be removed (step  1260 ). 
         [0053]    In one embodiment, a custom status set may be added to the available status sets comprising any combination of available status codes. The status codes may consist of designations specified by the entity implementing them. For example, the entity may want to use the status set functionality to add and remove other account locking features. For example, if a web hosting provider&#39;s customer was delinquent in paying a bill, a status set managed by the web hosting provider could be added that controls a suspension of web hosting services, a client status lock on the domain (applied through the registrar), and automatic email generation regarding the state of the customer&#39;s account. 
         [0054]    In one embodiment, a status set may specify a self-expiration time after which the status set would automatically be removed, or would automatically be changed from active to inactive or vice versa. 
         [0055]    In one embodiment, the method, as it is applied to “provisioning objects,” can also be applied to other resources or objects that have permission characteristics associated with rules. For instance, one embodiment may provide a method of selectively applying the most restrictive of a plurality of rules. A data structure may be provided that includes indicators of permissible or prohibited operations. The data structure represents a logical grouping of such permissible or prohibited operations. The method performs logical operations among a group of one or more data structures to form a resulting set of operational limitations based on the indicators associated with the data structures. The method applies the operational limitations to operations capabilities or permission characteristics associated with a resource or object in accordance with the group of one or more data structures that are associated with the resource or object. Such logical operations include the redefining of the permission characteristics or operations capabilities of the object or resource as data structures are added, removed, suspended, or reinstated. Thus, records of all current permission characteristics or operations capabilities associated with a resource or object are maintained through data structures that group indicators of permissible or prohibited operations, as well as the proper realized permission characteristics and operational capabilities as defined by the most restrictive set of rules defined by the data structures associated with the object or resource. 
         [0056]    Other embodiments of the invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the invention being indicated by the following claims.