You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by "Roy T. Fielding" <fi...@avron.ICS.UCI.EDU> on 1995/12/09 04:47:32 UTC

ISAPI "standard"

In case anyone is just dying for yet-another-thing-to-do:

------- Forwarded Message

 Process Software announces ISAPI standard

Process Software Corp., Framingham, Mass., announced a standard called the  
Internet Server Application Programming Interface (ISAPI) for add-ons to Web  
servers, and said it's already shipping with the company's Purveyor  
WebServers. A version of the program was also released for the Digital  
Equipment Corp. OpenVMS platform, which includes a TCP/IP stack making those  
computers Web-friendly.

ISAPI was developed via a collaboration with Microsoft Corp., and other Web  
vendors. Lee Levitt, manager of business development for Process, told  
Interactive Age Daily all the major Web server players, with one exception,  
either have endorsed it already or will endorse it soon. "Netscape will be the  
main hold-out, and they seem bent on creating their own standards, whether  
it's HTML, security, or application interfaces," he said.

What's the standard mean, then? For people who are running WebServers, it  
basically allows them two things -- it allows a broad number of applications  
that will be plug and play compatible with their Web Server to be created --  
whether it's Purveyor, the coming Microsoft Web Server, or others endorsing  
the platform. The second thing is it allows the Webmaster to write his own  
application to the ISAPI specification and get significantly greater  
performance than with Common Gateway Interface (CGI)" scripts.

The ISAPI specifications are available on Process' Web homepage at   
http://www.process.com/news/spec.htp . 


------- End of Forwarded Message


Re: ISAPI "standard"

Posted by Matthew Gray <mk...@netgen.com>.
> ISAPI was developed via a collaboration with Microsoft Corp., and other Web  
> vendors. Lee Levitt, manager of business development for Process, told  
> Interactive Age Daily all the major Web server players, with one exception,  
> either have endorsed it already or will endorse it soon. "Netscape will be the  
> main hold-out, and they seem bent on creating their own standards, whether  
> it's HTML, security, or application interfaces," he said.

I was at Microsoft in September when they were just going to alpha with 
their server and were figuring out the details of ISAPI.  I was there 
to meet with J. Allard, Scott Hensen, Lee Fisher and other members of 
Microsofts Internet BSD (Business Systems Development) team.

Their original API design had some substantial flaws in it (not to say that 
it doesn't still), and I talked to them a lot about Apache and its API.  
A number of the suggestions I made ended up making it into the final API, 
so indirectly the Apache group has affected the development of this 
"standard". :-)

If anyone is thinking of pursuing adding ISAPI support to Apache, I would 
be interested in talking as I may pursue this myself and I can call J. and 
see what sort of assistance we might get from them.

Overall, it shouldn't be too hard to incorporate.

Matthew Gray ---------------------------- voice: (617) 577-9800 x240
net.Genesis                                      fax: (617) 577-9850
68 Rogers St.                                      mkgray@netgen.com 
Cambridge, MA 02142-1119 ------------- http://www.netgen.com/~mkgray



Re: ISAPI "standard"

Posted by Matthew Gray <mk...@netgen.com>.
On Mon, 11 Dec 1995, Brian Behlendorf wrote:
> Worth looking at, at any rate.  it'd be cool if it could be encapsulated 
> within an apache module.

I've been fairly seriously looking at doing this and would welcome some 
input.  In order to do so without forcing anyone to grovel through MS 
Help files, I'll summarize:

At the basic level, ISAPI doesn't offer much beyond what CGI already 
offers, but does so without forking an extra process.  Essentially, you 
have a DLL which is your ISAPI application.  This DLL is required to have 
two entry points GetExtensionVersion() and HttpExtensionProc().  
GetExtensionVersion() makes sure that your server and ISAPI app's version 
line up.  HttpExtensionProc is analagous the 'main' of the cgi script.  
HttpExtensionProc is passed an EXTENSION_CONTROL_BLOCK structure which 
contains information for most of the CGI environment variables and those 
that aren't included can be accessed with a server callback 
GetServerVariable().  There's another server callback, 
ServerSupportFunction() which lets you do things like send redirections 
and such.  So, that's all of ISAPI.  ISAPI app's are then invoked as 
http://servername/foo.dll

So, in order to do this with an apache module, the problem of the entry 
points all being the same has to be solved.  I don't know enough about 
the dld module to know whether or not this allows us to do a load and 
link to the HttpExtensionProc on a per call basis, but a cursory glance 
made me think no.  I've been considering some other alternatives and 
would welcome suggestions especially if I'm skipping something obvious.

Well, back to work...

						...Mk

Re: ISAPI "standard"

Posted by Brian Behlendorf <br...@organic.com>.
On Fri, 8 Dec 1995, Roy T. Fielding wrote:
> Process Software Corp., Framingham, Mass., announced a standard called the  

Gee, I'd like to be able to just get up and announce a standard some 
day.  Cool!

Worth looking at, at any rate.  it'd be cool if it could be encapsulated 
within an apache module.

	Brian


--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--
brian@organic.com  brian@hyperreal.com  http://www.[hyperreal,organic].com/