Published March 2003
c-BiZZ Piper is a reverse proxy & cache that improves the performance of websites coming from an application server. Piper boosts your performance, because it adds a cache component to your webserver & application server. Rather than slowly generating the pages again and again on the application server, Piper will cache the pages from your application server, will deliver these pre-generated pages and will generate the pages in the background, when they become out-dated.
The main idea is, rather than letting someone access your slow application server to get a web page he will access the fast Piper. The more users are accessing your web pages and the more powerful your application logic is, the more effective Piper will be. It will speed up your website and it will decrease your resource consumption.
Piper is a 100% Java application, the administration front end runs in a browser. The complete piper software is packed in a small ZIP file. Unpack the ZIP file and follow the few installation instructions. Once unpacked, no further installation is required. (Assuming, you have a Java runtime environment, which is easy to install, too). You can instantly start the unpacked Piper and it will immediately work.
Because Piper works in front of your application server it has a built-in HTTP server. Therefore, when Piper is started, its administration front end is instantly running as well and can be accessed by a browser. Setting up Piper is done in minutes. (Setting up useful rules to effectively cache your websites may be more time consuming).
If you want to remove Piper, just delete the files. There is no uninstall required. Piper does not change any settings of your system or write into files other than its own files.
Most people use Piper together with servlet engines running JSPs, which access a complex database. Typically, News-Sites or Support-Sites do this. Of course, most Websites using a Web Content Management system are perfect candidates for a Piper tuning. Here is a typical example that really benefits from Piper:
You use a Content Management System and store text and images in a database rather than a file system.
Your website uses JSPs. The JSPs run in a Java Application Server, let's say Resin or Tomcat. The JSPs accesses the database by JDBC. You do this, because your database will often change and this shall lead to a different web page delivered by the same URL.
This is a pretty common approach, because you always deliver the up-to-date data from your database on your web pages. But, it is not very efficient, because you generate exactly the same page for the same URL again and again although nothing relevant may have changed in your database.
This is an excellent situation for a Piper cache, because your application software remains completely unaffected. You define the caching rules outside your application but still on a very detailed level. This is, what every administrator really wants to have.
What are your options?
Typical caches or reverse proxy solutions are not very effective, because they hardly allow you to define different caching rules for the different URLs or they force you to implement rules in your application server logic.
Yes and no.
Yes, because technically, Piper is a caching webserver and you need nothing more. You can set up a very effective dynamic website just with an application server, e.g. Resin, the httpd service in Resin and a Piper in front (plus at least a firewall...). Sometimes, this easy and straightforward installation is perfect.
No, because Piper does not have the functionality of these other great tools. But Piper is the better tool to configure your URLs, configure and redirect your websites and to cache your URLs. Many large sites use both: An application server generating the pages, an Apache or Squid as a very stable and powerful reverse proxy / external webserver and a Piper in between.
Squid is a caching proxy, not a caching reverse proxy. Apache is a Webserver, not a caching reverse proxy. Piper is a caching reverse proxy.
Here are some typical examples of Piper rules. Note, that we do not list all parameters of a rule. These examples are just here to explain the basic idea:
This rule will cache all incoming URLs on 127.0.0.1 regardless of the path (regular expression ^\\/$) for 5 minutes and will get these pages from appserv.resin.de, the path remains unchanged. This means "cache all pages on the website".
Now, let's add a more detailed rule:
This rule will overwrite the rule above and will cache all incoming URLs on 127.0.0.1 beginning with path /index.jsp/menuid/6043 for 10 minutes and will get these pages from appserv.resin.de, the path remains unchanged.
Now, let's redirect something:
This rule will redirect 'www.example.com/sport' to 'appserv.example.com/index.jsp/men/contentengine/restheme/news'. Nothing will be cached (expiration=0).
Sometimes... Piper was developed for the professional Web Content Management System c-BiZZ. Therefore, it is professional, supported, guaranteed and ... not free. But hobbyists, students and non-profit organizations may use it for free. Download, testing and development is free, as well. Furthermore,
Piper is cheaper than one day of your work!
No, not yet. But if you really want to do this, ask us.