.gif) |
Rapid Web Development Using Libraries
CODE:NEO represents a significant step forward for the C/C++
developer in terms of ease of use and speed of deployment in the
Web services arena. Currently, C/C++ is very rarely the language
of choice for developing dynamic web sites, even though the underlying
operating system, Web server, and libraries are all themselves
usually written in C/C++. This is because it has traditionally
been very difficult to write scaleable applications in C/C++ that
take advantage of the Webs inherent distributed nature.
Any programmer who developed such an application would typically be forced to develop large libraries
of frequently used routines that is, they would spend as
much (or more) time developing the webrelated routines as they
would actually developing the application they were building.
Additionally, most web servers and applications are not C/C++
friendly they do not provide the programmer with the support
services needed to quickly and efficiently develop in C/C++. However,
most companies have a large investment made in C/C++; thus, web
enabling applications is difficult and costly, as companies frequently
have to port software to another platform, costing time,
additional resources, and money.
CODE:NEO provides a solution to this problem. By allowing the
programmer to directly embed traditional C/C++ code (including
library calls and object instantiation) directly into HTML pages,
web-enabling an application in C/C++
becomes a very quick and easy task, with a cleaner separation
of the presentation layer and the business logic.
The CODE:NEO system operates in an analogous way to JSP and Java
in that the pages are preprocessed and converted into a machine-readable
format before execution. However, unlike JSP and Java, the code
is written entirely in C/C++, allowing companies to leverage their
existing code bases, saving both time and money. Additionally,
as code is often reused from existing and tested libraries, CODE:NEO
can allow application development with fewer errors, because less
recoding is required in order to web-enable an application. Finally,
code can execute over ten times more quickly under CODE:NEO as
the code is compiled,
not interpreted.
To create a CODE:NEO-based web solution, a programmer needs to
create instructions for the processor to handle an incoming request.
This is accomplished by directly embedding C/C++ code into an
HTML page. Once this HTML/C++ page (which we call a Rivet) is
translated into pure C++, it may be compiled and linked against
developer libraries, third party libraries, system libraries and
the CODE:NEO library. Through this linkage CODE:NEO can accomplish
significant cost savings by reusing existing software for web
development.
After this CODE:NEO binary object is created, it can be placed
on a CODE:NEO enabled web server. When such a file is requested (for example, by an
HTTP GET statement) the web server passes control to CODE:NEO Application Server,
which performs the function of interfacing CODE:NEO applications to the web server. This server is offered
in two basic forms: as an ISAPI extension for Microsoft IIS (or
any other ISAPI compliant server) and as a module for Apache web
server. The application server also provides other service functionality,
such as logging and debugs systems, in order to aid development
and increase product quality.
The call to the application server occurs very quickly within
the web server. Once execution is within the binary file (known
as the Joint) the programmer is free to call any C++
or inline assembler instructions they wish, even printf, which
will have the effect or printing to the console. If the programmer
wishes, he can output data back to the web browser with the simple
interface swritef, which uses the familiar ANSI C format string
specification.
|