Active C PagesTechnicalFAQDownloads

Home

ACP

Contact

Projects


Active C Pages - FAQ

Active C Pages - FAQ

1. WHAT ARE ACTIVE C PAGES?
2. WHAT CAN IT DO?
3. WHAT CAN'T IT DO?
4. I'M A BUSINESS MAN... WHAT DOES THIS MEAN?
5. HEARD IT ALL BEFORE.. YET ANOTHER PROPRIETARY INTERFACE...
6. WHAT ABOUT THE COMPETITION?
7. WHAT IS THE LICENSING ISSUE?
8. I'M A DEVELOPER ... CAN I HELP?
9. CURIOUSITY... WHY DID YOU DO THIS???
10. IT'S A STUPID NAME...
11. NOW HOW ABOUT ACTIVE C++, COBOL, FORTRAN OR EVEN ASSEMBLY?
12. WHY THE LONG DELAY BETWEEN DEVELOPING AND RELEASING?

1. WHAT ARE ACTIVE C PAGES?

Active C Pages are tools that you write for the creation of web oriented data.

With ACP you can create all your web content dynamically. In theory it should be able to produce output as diverse as html documents, pictures, mp3 audio streams... anything in fact that your server is geared to produce and your users are prepared to receive. And all through at the web server! ACP is browser friendly.

2. WHAT CAN IT DO?

From a single ACP page, every component on your server, network or even on the web can be utilised to produce information that is correct and up to date.

The major limiting factor is your imagination :-).

3. WHAT CAN'T IT DO?

There are lots of similar projects on the market, ranging from CGI, JSP/Servlet, PHP, Cold Fusion and various mods for many web servers. Most of these also have the same failings that ACP has:

  • Fragility - a serious crash in one module can bring down the server;
  • Reduced Security - Since the acp files call shared objects/dlls on the system it is running in there is no way of guarateeing their validity without reviewing everything posted
In the kind of environments this product is aimed at, neither should cause much of a problem though.

4. I'M A BUSINESS MAN... WHAT DOES THIS MEAN?

From a business perspective, the various existing solutions have the following inherent problems:

  • Proprietary & Inhibiting languages - often forcing retraining on an untrained work force;
  • Loss of existing skills and application knowledge - each forced reskilling or rehiring means that fewer people retain their existing skills (very important in environments with legacy systems - not every company is a starter company after all...)
  • Reskilling doesn't always work - for those that want it, training is great, for others it can be a nightmare...
For example, many good functional programmers have difficulty grasping Object Orientation as a result, a perfectly good programmer may take a lot longer to grasp the strengths of a new language. But time is not something that is allowed... in many cases the reskilling can lead to bad code, an unhappy work force and a huge problem on your hands...

These latter reasons are crucial to the design of the ACP system. It is designed to reduce the gap between the web and your legacy systems.

In short ACP reduces the workload, produces results, uses your existing skills, keeps the work force happy and will improve the performance of your web server and applications.

:->

(yeah, right ...)

5. HEARD IT ALL BEFORE.. YET ANOTHER PROPRIETARY INTERFACE...

Nope, not this time. ACP uses open tools which are available for almost all web servers. The only prerequisites currently required, are:

  • You must have a Java servlet engine installed;
  • You must have the GNU C compiler (or other) installed on the server.
The latter is only necessary if you plan to use the compile on demand facilities built into this product. Otherwise, shared object or dll files can be deposited and hot loaded into your web server and no compilation is necessary.

It is envisioned to support tools other than the GNU C Compiler.. see below for more details...

6. WHAT ABOUT THE COMPETITION?

While other systems provide similar facilities (CGI, PHP, Code Fusion, ASP, JSP/Servlet), they all have some or all of the following technical problems:

  • Slow load/execution times - many systems load and run each script on each call, sometimes even creating a new process for each execution;
  • Difficulty in coordinating state information;
  • Proprietry and ill-formed/incomplete languages;
  • Varying implementations;
  • Inflexible/inefficient parsing/execution of scripts.
ACP suffers from none of these issues.

7. WHAT IS THE LICENSING ISSUE?

It's released under the GPL - normal rules apply.

8. I'M A DEVELOPER ... CAN I HELP?

If anyone feels the urge to join me, I would be more than willing to recieve a hand. Right now, I would be grateful for anyone with the following to let themselves known:

  • mods for Apache, IIS or other server
  • any and all languages
  • knowledge of specific APIs

9. CURIOUSITY... WHY DID YOU DO THIS???

There are basically two reasons why I implemented this.

Firstly, I'd been considering writing a servlet module to provide support for servlets in my Java Web Server [this server was basically my training ground for learning Java... while the development was reasonably rapid, I would not vouch for it being well written...]. The protracted time scales involved in such a venture were not encouraging and the 'competition' was very tough (especially from the orion web server).

Secondly, I'd been looking for an excuse to exercise my C skills after a protracted bout of mainly Java development.

This culminated in 'overhearing' a conversation in the IRCNET #Java channel where the concept of Active C Pages was mentioned as a kind off-hand joke... And to teek, I say, thank you once again :-).

10. IT'S A STUPID NAME...

Yep, no argument there.

11. NOW HOW ABOUT ACTIVE C++, COBOL, FORTRAN OR EVEN ASSEMBLY?

Yeah. Why not?

The concepts behind Active C Pages are in theory applicable to any language that is compilable to a shared object/DLL. The parser/compiler of the HTML/C hybrid file to C is decoupled from the ACP module.

So as a developer you can write your own parsers which:

  • Produce any number of intemediary files in any language;
  • Have your own customised server side tags;
  • etc.

12. WHY THE LONG DELAY BETWEEN DEVELOPING AND RELEASING?

None really - other than finding the time... Also, at the time of development I found few people that were really interested - recent discussions have brought it up again and so I decided to release it now. To be honest, not much has much changed between the original (2 month) development period and now (but it has been getting a lot of use on my intranet...).