Google Answers Logo
View Question
 
Q: PHP prior art for invalidating patent ( Answered,   1 Comment )
Question  
Subject: PHP prior art for invalidating patent
Category: Computers > Internet
Asked by: com2004-ga
List Price: $120.00
Posted: 26 Jul 2004 16:12 PDT
Expires: 25 Aug 2004 16:12 PDT
Question ID: 379393
My question is as follows:

Background: 
PHP is a two-tier, client-side and server-side scripting language. A
coded document includes both, HTML script and PHP script. When a
client browser requests a coded PHP document from a web page server,
the server first parses only the PHP code (and ignores the HTML code)
and replaces the PHP code with additional HTML code. The expanded
document is then transmitted to the client browser, which parses the
HTML code and displays the web page at the client browser. Thus, PHP
is a two-tier scripting language, which requires the scripting of the
coded information at both the server and the client.

Question:
What I?m looking for is a prior art reference for invalidating patents
related to such two-tier scripting languages. The reference needs to
be prior to November 1995. PHP Tools version 1 was released in
mid-1995. However, I?m unsure as to whether PHP 1 was actually a
two-tier scripting language.  It?s possible that PHP 1 was simply a
set of macro tools written in CGI. For example, CGI links (tags) are
embedded in the web page, but are not parsed at the server end. Rather
after downloading a web page with CGI tags, the browser invokes the
execution of the CGI macros. I?m unsure as to how PHP 1 worked. This
is a link to an announcement of PHP Tools version 1.

http://groups.google.com/groups?q=%22Personal+Home+Page+Tools%22&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=12&as_minm=5&as_miny=1981&as_maxd=26&as_maxm=7&as_maxy=1996&selm=3r7pgp%24aa1%40ionews.io.org&rnum=1

The reference I need may either be information about PHP 1, which
would show that PHP 1 was indeed a two-tier scripting language, which
was parsed at the server prior to delivering the page to the client
browser. Or it may be references to other scripting languages, or of
other versions of PHP, but prior to November of 1995.
Answer  
Subject: Re: PHP prior art for invalidating patent
Answered By: wildeeo-ga on 26 Jul 2004 20:09 PDT
 
Hi, com2004. Thanks for your question.

I have found two examples that this server-parsed HTML document
technology existed before November 1995.

The first example is PHP. The usenet post you referenced does contain
a link, however, this is long-dead. However, from what I have
discovered, PHP 1 (Or PHP/FI as it was called, from Personal Home Page
/ Form Interpreter) appears to have been a two-tier language.

It was originally a perl script, which, when called with the path of a
phtml file, parsed the PHP tags. A brief history is available from
http://uk.php.net//manual/phpfi2.php#history.

In addition, PHP.net also hosts the source of version 1.99s (but sadly
no version earlier). This source is available from
http://museum.php.net/php2/php-1.99s.tar.gz.

This distribution comes with several examples. One of them - which
connects to a mSQL database and iterates through various records
returned, is as follows:

<?
        msqlsethost("localhost");
        $name = "bob";  
        $result = msql($database,"select * from table where firstname='$name'");
        $num = msql_numrows($result);
        echo "$num records found!&ltp>";
        $i=0;
        while($i<$num);
                echo msql_result($result,$i,"fullname");
                echo "&ltbr>";
                echo msql_result($result,$i,"address");
                echo "&ltbr>";
                $i++;
        endwhile;
>

It has a similar syntax to perl (and to modern day PHP).

The changelog included with that distribution goes back to Sept. 1995,
and mentions the tags ('<?') a few times. It does not mention the
introduction of these tags, making it clear they were a part of the
language. It also mentions the 'force loading of either index.html or
Overview.html if the given path is a directory', showing it was
designed to parse HTML documents with additional tags.

Additionally, I have found a newsgroup posting from the beginning of
Nov. 1995 by Rasmus Lerdorf, the author of PHP, describing how to use
his software to display data from a database in a parsed document.
This post is available at
http://www.hughes.com.au/hypermail/msql-list/199511/0214.html. It
shows that this version of PHP was a two-tier language; it shows a mix
of PHP and HTML, the PHP enclosed with <?...> tags.

This posting obviously does not pre-date November, but it does
demonstrate that PHP 1.9x was a two-tier language.

The second possibility is the webserver itself, Apache. There is a
module which comes as standard with Apache called mod_include. This
module was used a lot more before PHP became popular, since it allowed
a webmaster to insert tags in a file with an .shtml suffix which would
then be parsed by the webserver.

These tags take the form of 
<!--#a_command variable="value" [variable_2="bla"]-->.
They are evaluated by the webserver, and are parsed before the HTML
page reaches the viewer; neither they, nor their client software ever
see them. A brief summary is available from
http://httpd.apache.org/docs/mod/mod_include.html.

The earliest released version of Apache I can find was version 0.6.5,
which, according to http://www.webhistory.org/www.lists/www-talk.1995q3/0304.html,
was released on the 7th of August, 1995. Since this project has always
been open-source, the source code is available. There is an old
archive of the complete source for this version available at
http://ftp3.ru.freebsd.org/pub/WWW/servers/ncsa_httpd/Unix/apache_httpd/apache_0.6.5.tar.gz
.

Inside this distribution, the file we're interested in is the
apache_0.6.5/src/http_include.c file. This file is the original
version of the mod_include functionality present in the modern
releases of apache.

This functionality was developed by Rob McCool, who worked at NCSA.
Links on his homepage (which has been archived and is still accessible
at http://archive.ncsa.uiuc.edu/SDG/People/robm/sg.html) point to
another page at NCSA, http://hoohoo.ncsa.uiuc.edu/docs/.

This is the reference for the NCSA HTTPd program, the precursor to
Apache (and what Apache is based on). The documentation for the SSI
functionality is available from
http://hoohoo.ncsa.uiuc.edu/docs/tutorials/includes.html.

Basically, it allowed the following commands to be inserted into an shtml document:

'config': this command would allow some aspect of the environment to
be changed at runtime (specifically, time formats, file size formats,
and error messages).

'include': this would include a text file (without parsing it if it
even if it was executable)

'echo': output a specified variable (available variables were the
document's name, address, query string, date, and the date the
document was last modified).

'fsize': output the file size

'flastmod': output the last modified date

And, crucially, 'exec', which would execute a script or command.

The exec command would allow similar functionality to a (simple) PHP
script by executing a shell command, or more advanced functionality by
including the results of any CGI script, the path of which would
follow the command.

I hope this information was of use to you. If you have any questions
or additional information is required, please do not hesitate to
request a clarification.

--wildeeo
Comments  
Subject: Re: PHP prior art for invalidating patent
From: mbkirk-ga on 31 Jul 2004 07:08 PDT
 
What about a slightly different approach -- for example, in the
printer world Postscript has existed for a very long time (20 years?)
and is typically processed by either a printer with Postscript or a
driver on the host machine.

Here's an overview of LaTeX 2, which was out in the late 1980s.  It is
a 20+ year old scripting language (macros for TeX) developed by Leslie
Lamport, and it supports embedding "encapsulated postscript".

So here's the relationship...

Scripting language 

Yours:  PHP, processed by the server, generates HTML
Document preparation language:  LaTeX, processed by the host, generates PS

Embedded language

Yours:  HTTP, processed by the client
Old printer language:  Encapsulated PostScript, processed by the
printer or printer driver.

Obviously, if you want to follow this path you'll need to look more
into exactly how Encapsulated PostScript and LaTeX worked.  I'm going
from ancient memories and what I can find of a historical nature on
the web here.

Good luck

Important Disclaimer: Answers and comments provided on Google Answers are general information, and are not intended to substitute for informed professional medical, psychiatric, psychological, tax, legal, investment, accounting, or other professional advice. Google does not endorse, and expressly disclaims liability for any product, manufacturer, distributor, service or service provider mentioned or any opinion expressed in answers or comments. Please read carefully the Google Answers Terms of Service.

If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you.
Search Google Answers for
Google Answers  


Google Home - Answers FAQ - Terms of Service - Privacy Policy