Internet Server Application Programming Interface
The Internet Server Application Programming Interface (ISAPI) is an
N-tierAPI of Internet Information Services(IIS), Microsoft's collection of Windows-based web server services. The most prominent application of IIS and ISAPI is Microsoft's web server.
The ISAPI has also been implemented by Apache's mod_isapi module so that server-side web applications written for Microsoft's IIS can be used with Apache, and other third-party web servers like
Zeus Web Serveroffer ISAPI interfaces.
The word "server" can refer to a computer ("box") or a piece of software (for example, "SQL Server").
Microsoft's web server application software is called Internet Information Services, which is made up of a number of "sub-applications" and is very configurable. ASP.NETis one such slice of IIS, allowing a programmer to write web applications in his or her choice of programming language (VB.NET, C#, J#) that's supported by the Microsoft .NET CLR. ISAPI is a much lower-level programming system, giving much better performance, at the expense of complexity. While Microsoft is generally credited with the creation of the ISAPI specification, it was actually co-developed by Process Software and Microsoft with input from a small number of other vendors. [ [http://wasd.vsm.com.au/ht_root/doc/scripting/scripting_0600.html ISAPI ] ] .
Major sites using ISAPI
Before switching to ASP.Net Microsoft's
MSDN-Library (msdn.Microsoft.com) was fully developed with ISAPI. eBaystill uses the "eBayISAPI.dll", although on the back-end they are using Java Technology powered by Sun. [eBay was initially developed using Microsoft technology for both the front end and back and processing (re: The Perfect Store by Adam Cohen). They later adopted a Java application server for the request processing but the web client software still uses an ISAPI application.]
Performance and compromise
The greatest disadvantage of developing web applications at ISAPI level is the increased development time over typical scripting languages like PHP and ASP. Another penalty is the lack of native support for many standard web application features such as Session handling, which are common features in technologies such as ASP and PHP. Because ISAPI extensions are normally written in unsafe languages like C, there is also an increased risk of buffer overflows and similar vulnerabilities occurring.
ISAPI for IIS 5.0 and earlier
In contrast to CGI applications, an ISAPI application is loaded into the same process space as the IIS web server. This removes the need for inter-process calls and the overhead of loading and starting a separate executable, allowing improved performance of ISAPI applications over CGI applications. However, if an ISAPI application crashes, it can cause the whole of the web server to crash along with it.
ISAPI for IIS 6.0
In IIS 6.0 it is possible to configure an IIS application to run in a separate process space created by IIS (recommended mode: "High (isolated)"). Thus, performance is maintained but if the ISAPI application crashes it will not cause the whole IIS server to crash.
ISAPI consists of two components: Extensions and Filters. These are the only two types of applications that can be developed using ISAPI. Both Filters and Extensions must be compiled into DLL files which are then registered with IIS to be run on the web server.
ISAPI applications can be written using any language which allows the export of standard C functions, for instance C, C++, Delphi. There are a couple of libraries available which help to ease the development of ISAPI applications, and in Delphi Pascal the Intraweb components for web-application development. MFC includes classes for developing ISAPI applications. Additionally, there is the
ATL Servertechnology which includes a C++ library dedicated to developing ISAPI applications.
ISAPI Extensions are true applications that run on IIS. They have access to all of the functionality provided by IIS. ISAPI extensions are implemented as DLLs that are loaded into a process that is controlled by IIS. Clients can access ISAPI extensions in the same way they access a static HTML page. Certain file extensions or a complete folder or site can be mapped to be handled by an ISAPI extension.
ISAPI filters are used to modify or enhance the functionality provided by IIS. They always run on an IIS server and filter every request until they find one they need to process. Filters can be programmed to examine and modify both incoming and outgoing streams of data. Internally programmed and externally configured priorities determine in which order filters are called.
Filters are implemented as DLL files and can be registered on an IIS server on a site level or a global level (i.e., they apply to all sites on an IIS server). Filters are initialised when the worker process is started and listens to all requests to the site on which it is installed.
Common tasks performed by ISAPI filters include:
*Changing request data (URLs or headers) sent by the client
*Controlling which physical file gets mapped to the URL
*Controlling the user name and password used with anonymous or basic authentication
*Modifying or analyzing a request after authentication is complete
*Modifying a response going back to the client
*Running custom processing on "access denied" responses
*Running processing when a request is complete
*Run processing when a connection with the client is closed
*Performing special logging or traffic analysis.
*Performing custom authentication.
*Handling encryption and compression.
Common ISAPI applications
This is a list of common ISAPI applications implemented as ISAPI extensions:
Active Server Pages(ASP), installed as standard
ASP.NET, installed as standard on IIS 6.0 onwards
* ColdFusion, later versions of ColdFusion are installable on IIS
PerlISAPI (aka Perlis), available for free to install
PHP, available for free to install.
ISAPI applications can be developed using any development tool that can generate a Win32 DLL. Wizards for generating ISAPI framework applications have been available in Microsoft development tools since Visual C++ 4.0.
Internet Information Services
* [http://www.genusa.com/isapi/ The ISAPI Developer's site]
Wikimedia Foundation. 2010.
Look at other dictionaries:
Server Application Programming Interface — Le Server Application Programming Interface (SAPI), l interface de programmation des applications serveurs, est le terme générique utilisé en informatique pour désigner les modules d interface d applications serveur web comme Apache, Internet… … Wikipédia en Français
Windows Application Programming Interface — Windows API (application programming interfaces) общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Windows и Windows NT корпорации «Майкрософт». Является самым прямым способом… … Википедия
Messaging Application Programming Interface — (MAPI) is a messaging architecture and a Component Object Model based API for Microsoft Windows. MAPI allows client programmes to become (e mail) messaging enabled, aware, or based by calling MAPI subsystem routines that interface with certain… … Wikipedia
Internet Server API — (ISAPI) ist eine Programmierschnittstelle (Application Programming Interface) von Microsoft, die im Microsoft Internet Information Services (Webserver), dem Microsoft Exchange Server und im Microsoft Internet Security and Acceleration Server… … Deutsch Wikipedia
Internet socket — In computer networking, an Internet socket or network socket is an endpoint of a bidirectional inter process communication flow across an Internet Protocol based computer network, such as the Internet. The term Internet sockets is also used as a… … Wikipedia
Application server — In n tier architecture an application server is a server that hosts an API to expose Business Logic and Business Processes for use by other applications [ [http://mediaproducts.gartner.com/reprints/microsoft/vol3/article2/article2.html Magic… … Wikipedia
Internet-Protokoll-Telefonie — IP Telefonie (kurz für Internet Protokoll Telefonie) auch Internet Telefonie oder Voice over IP (kurz VoIP) genannt, ist das Telefonieren über Computernetzwerke, welche nach Internet Standards aufgebaut sind. Dabei werden für Telefonie typische… … Deutsch Wikipedia
Internet-Telefonie — IP Telefonie (kurz für Internet Protokoll Telefonie) auch Internet Telefonie oder Voice over IP (kurz VoIP) genannt, ist das Telefonieren über Computernetzwerke, welche nach Internet Standards aufgebaut sind. Dabei werden für Telefonie typische… … Deutsch Wikipedia
Programming language — lists Alphabetical Categorical Chronological Generational A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that… … Wikipedia
Server-side scripting — is a web server technology in which a user s request is fulfilled by running a script directly on the web server to generate dynamic HTML pages. It is usually used to provide interactive web sites, that interface to databases or other data stores … Wikipedia