The Internet today has many websites using services from external providers. The website using the service(s) puts special code on the site to show special text, icons, links, and/or other objects so an end user with a browser can use the service. The website owner has its own customers that list on the site and that may decide to use some or all of the services provided by the external providers. The problem is that a website owner may not have the resources, expertise, or incentive to maintain the changes as its customers add or remove services. The website owner may not want the additional overhead or bandwidth when providing these services. Interactive websites were previously created using Dynamic HTML, using JavaScript developed by Netscape, among others. JavaScript is a popular client-side scripting language since it is supported by both Microsoft Internet Explorer and Netscape Navigator, although there are differences in exactly how it is supported. This makes it important to test JavaScript code for cross-browser compatibility. JavaScript code may be placed within each page or in an external file called by requested pages. External modular JavaScript files may be useful for code repeated on many pages, as it potentially saves download time by programmatically inserting content into the web page. A JavaScript function is a piece of code that is defined in a program and can be invoked many times by the program. Other prior technology includes “inline frames” which are used in scripting languages and supported in most current browsers. Also in the prior technology was RSS (RDF) Site Summary. A Website that wants to “publish” some of its content, such as news headlines or stories, creates a description of the content and specifically where the content is on its site in the form of an RSS document. The publishing site then registers its RSS document with one of several existing RSS feeds from publisher(s). A user with a Web browser or a special program that can read RSS-distributed content can read periodically-provided distributions.
This invention is a unique method to allow the external third party service provider to control the features related to a particular service on the host website, that takes advantage of the relationship of the hosting website owner and the third party service provider, and allows dynamic status of what is to be controlled, without further modifications to the web content and without the third party service provider needing any access to the website. The web server does not need to contact the third party service provider for the provider to dynamically determine whether or how the specific objects are to be displayed. The website site owner still has fine control of the website, a minimal need for additional bandwidth, and does not need to give the third party service provider any access to its computers or website site content. Additionally the client (browser) can display without delay the whole page except the third party server elements even if there is a slow response or no response from the third party server.
This invention provides a solution where, once the website site owner adds non-dynamic code in specific places, third party service provider(s) can dynamically turn on or off their specific service remotely and add or change special features remotely in any or all those specific places based on up-to-date information. The website does not need to contact the third party service provider to dynamically determine whether or how the specific objects are to be displayed.
Because the third party service provider wants to provide accurate up-to-date services to another website, the third party service provider should minimally burden or rely on the primary website server's resources. This means that the provider should not require the original website to use extra server resources, require them to dynamically do decision making, require them to maintain the provider's business rules, require them to use a web service, require them to access a special database, nor require them to delay the time it takes for the client to see the website's contents.
This invention also provides a solution for the third party service provider to display its links based on its own business rules, the website owner's business rules, and the website dynamic information about an object supplied by the website and the website's customers. All the decision resources are at the third party service provider's site—the website server does not use its own computing resources to make the decision. An example in real estate is that if the status of the listing changes from “available” to “sold” by the multiple listing service website, the third party service provider should not display an icon to contact the agent to view the listing. Another parameter is the real estate agent showing the listing. This information is already used by the website when it displays the information about the listing on the page. Parameters of the listing status and agent id are embedded in the code on the downloaded page and the third party service provider uses this information as part of the decision on whether the icon is displayed, thus there is no extra database lookup, decision making, or delay at the website server.
This invention also addresses another concern that the display of the website's page at the client should not slow down due to a delay or no response by the third party service provider. This invention incorporates a solution where the page can be downloaded and displayed completely, with the third party links inserted in the proper places in the page after the page is displayed. There is essentially no increase in the bandwidth for the website, there is no need for the third party service provider to have any access to the website, and there is no need for the website owner to maintain code depending on the customer's relation with how or whether the feature is provided. Another important feature is that the website owner still has complete control on where and whether the third party service provider can provide the third party objects. This invention is very different than an RSS application where the server puts in content and links in specific places on the page based on what the client subscribes to or an e-commerce solution where an associate saves space for the advertiser to insert content and links. Placement using an RSS solution is based on prior agreement, by having the client choose ahead of time the services to be included. Until the agreement is changed the content is only what the specifically chosen providers decide to show at the moment—there is no dynamic interaction. In an e-commerce solution, again like RSS, there is space reserved for an external service. This time the website, sometimes called an associate, can decide what type of links and content is to be inserted by dynamically inserting calls to special pages of the third party service provider (advertiser), and the advertiser can decide what to insert based on the page accessed and the ID of the associate. This e-commerce solution is somewhat more dynamic but the response is only based on the page addressed and the ID of the associate, so two calls to the same page with the same ID would insert the same information. If the associate wants something different it must either use its resources to decide to choose another page address to go to or another ID. With this invention there is an added dimension of dynamic control that is very important for a relationship of a site that lists real estate properties (listings) and a third party service provider that can control its own links for each of the listings. The website owners or brokerages showing the listing may have different rules depending on the state of the listing such as status, i.e. whether it is available, under contract, or sold. In this case the website also sends dynamic parameters about the listing such as the status. Now the third party service provider uses these parameters and its resources to make the decision on whether to show or not show based on these status parameters. The website owner does not need to use its resources or take the time to make dynamic decisions. This concept can be extended for purposes other than real estate applications. Often it is the third party service provider that wants the website party to incorporate their services. To get their cooperation it is important to that there is minimal burden to the website party. This invention addresses the need to minimize any involvement in controlling the links once the process is set up.
Other objects and advantages of the invention will become more apparent upon perusal of the detailed description thereof and upon inspection of the drawings, in which:
The method of this invention allows a third party service provider to dynamically control whether it displays its own links and other objects. The third party can base its decision to display the link or object on the dynamic relationship of the third party to the website, the dynamic relationship of the third party and the website's customer that the link is connected to, and the dynamic state of the content to which the link relates. The website still has complete control of its own content and has complete control of the location, look, and content of the link that the third party chooses whether to display. It makes good business sense because many times it is not convenient, practical, or easy to stay up-to-date when the owner of a website uses its own resources to decide whether to display certain links or objects on its website. The website owner can also have the option to allow the third party freedom to decide on all or some of the content of the objects or links. Also at any time the website owner can stop control by the third party service provider without any contact with the third party. The process allows for multiple links or objects, multiple third parties, and multiple listings on the page. The website owner now can provide third party services to their customers without having to maintain the services. The method allows interaction between an end user browser 101, a website 102 to be accessed by the browser 101, a primary provider or controller server(s) 103, and at least one third party service provider server 104. The browser 101 is a program local to an end user's computer. The website 102 is accessed through the primary provider or controller server(s) 103. There may be multiple third party servers 104. In the real estate application, the third party servers may be multiple listing servers (MLS), which track the availability of real estate properties. In the real estate application, the website 103 may be an aggregate service provider that displays real estate properties and real estate related services from more than one provider on the website 102. The user of the browser 101 may be a real estate buyer, seller, or agent.
When using this method, the website maintains performance, does not have the overhead of accessing web services, and uses minimal additional bandwidth. This invention includes an additional technique that allows the client page to display the website's page without additional time waiting for data from the third party service provider, if the third party site is slow, not available, or requires downloading of a large amount of information.
As the browser renders the page, it processes the source code and decodes it as a function to send the string of IDs and parameters to the third party server. The string sent is in a format that both the third party service provider and website party have previously agreed upon (using mutually agreed standards). The specification and business rules on how to handle the data can be defined by either party or by collaboration. A relationship is important so the website party puts the information in a format that the third party service provider can parse and process with results that both parties want. See
The browser then uses the returned string array as part of code to fill in specific regions of the web page. Each element of the string array can also be concatenated, in a method, with tags to make objects such as HTML links. Each element of the string array can also be interpreted by the method to make the decision whether or not to put in the object. The browser displays the whole page except the objects to be controlled by the third party server even if there is a slow response or no response from the third party server. See
Note that to make the decisions to display or not display the links for all the multiple listings only requires one call through the network to get the information. If there are multiple third party service providers not associated with each other, a separate call to each third party service provider may be required.
The steps in
Almost as in
In
In
In another configuration to get the same results, the browser would communicate only with the controller(s), and the controller(s) would communicate with each of the third party service providers to the send the results in an array of elements back to the browser. This would appear to the website and browser to be just like the flow of
<script language>=“Javascript” src=http://www.decisionServer.com/specialpaqe?65-9187426-b15918-avail;65-9345567-b34587-contract;65-9234482-b15918-avail;65-92345512-b32165; etc.></script>
See
In
Call LocalFunction X( a[i], OBJECTc supplied by original website); this can be a unique part of an object built with constants in the Local Function 3f, g, h, l, j, k, l. The page continues to add content and links to be controlled by the third party service provider.
<script language=“JavaScript” src=http://www.decisionServer.com/specialpage?65-9187426-b15918-avail ;65-9345567-b34587-contract;”></script>
The text below defines a variable st_image which stands for the remote icon. It also defines the array f which will be the array sent back by the third party server.
The most important is the local function sa. This function takes two parameters. It builds the link with the two parameters swtch which is an element of array f sent by the third party service provider, and param2, which comes from source code at the location where each link is to be controlled. In this function if the array element is undefined or not equal to the character “1” the document.write( ) function renders nothing (a null). If the array element is the character “1” then the link is built by prefexing the text ”<A HREF=“httpThirdPartyForm.cfm?” in front of the second parameter, and concatenating the text “><img src=“‘+st_image+’” border=“0”>Click for special offer.</A>38 after the second parameter. The second parameter is the unique information needed in the link supplied by the script later. When text is combined it is a complete link including the tags and is rendered by the document.write( ) function. (Note that the st_image is just the text “httpRemotelcon.gif” which is the icon for the link).
The sets of text below are pieces of source code at each place on the page where the link is to be rendered. When the browser renders the code below it calls the function above with the element of the array corresponding to the referenced listing. (The first if f[0], the second is f[1], the third would be f[3] until f[N] for N where N is the number of listings that have links to be controlled by the third party service provider.). The text “mls=65&mlsno=9187426&brok=15918&agent=12345&status=avail” is param2 for the function above which is concatenated with a prefix and suffix to create the link and rendered at this spot by the document.writeo method of the function above.
When the browser continues rendering and gets to the second statement below it renders the next link or a null depending on the parameter f[1].
FIG.8 is the output if the elements f[0]=1 and f[1]=0 were sent back by the third party service provider, only the links with the element=1 would be displayed, therefore only the first link would be displayed. The icon and text “Click to make an appointment t” is on the page for the first listing but not for the second listing because the third party controlled whether to display each of the links. The third party dynamically controls whether the object shows as the page is built. In this case the third party only wanted the object to show for the first listing.
The local function can do a final check. The website owner may want to make some final checks that the third party service provider does not distort the website's page. Many final checks can be incorporated in the local function. For example if the website wants to make sure the link descriptions are not too long it could put a clause in the local function specifying that if the text length of the array element is greater than N characters to cut it off to N characters.
This section explains the more general aspects of this invention. It should be noted that when the previous sections mention JavaScript, they could be substituted to other scripts such as VB script and other languages that can reside and run in a client. When a browser is mentioned, it could be substituted by a client, a smart client, or anything that displays information sent to it. When the Internet is mentioned it could be substituted by a network or any median that information can travel through. When a link is mentioned it can be a more complicated web object that can reside in a browser or a client. The technique of iframes can be substituted with any concept of specified locations in a client that can be rendered asynchronously with the rest of the text of the client. This can be extended from a real estate application to any application where a third party wants to control its links.
As described above, the method of remote management of the look and functionality of a website by a third party service provider with the aid of scripting technology of this invention provide a number of advantages, some of which have been described above and others of which are inherent in the invention. Also modifications may be proposed to the method of remote management of the look and functionality of a website by a third party service provider with the aid of scripting technology without departing from the teachings herein.
This patent issues from a non-provisional patent application claiming the priority of provisional patent applications Ser. No. 60/723,772, filed Oct. 5, 2005.
Number | Date | Country | |
---|---|---|---|
60723772 | Oct 2005 | US |