stas        02/05/19 01:16:52

  Modified:    src/outstanding/success_stories adultad.pod
                        allakhazam.com.pod bsat.pod
                        calmaeth.maths.uwa.edu.au.pod colbychem.pod
                        dslreports.com.pod iagore.com.pod idl-net.pod
                        imdb.com.pod make.pl openscape.org.pod presto.pod
                        rent.com.pod seds.org.pod singlesheaven.com.pod
                        sms_server.pod tamu.pod tgix.pod
                        winamillion.msn.com.pod wmboerse.pod
                        www.afp-direct.com.pod www.bivio.com.pod
                        www.lind-waldock.com.pod www.mobile.de.pod
  Log:
  - DocSet now handles the split of very long pre sections, so no need to do 
that here
  - adjust the docs
  
  Revision  Changes    Path
  1.3       +28 -31    modperl-docs/src/outstanding/success_stories/adultad.pod
  
  Index: adultad.pod
  ===================================================================
  RCS file: /home/cvs/modperl-docs/src/outstanding/success_stories/adultad.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- adultad.pod       14 Apr 2002 06:40:13 -0000      1.2
  +++ adultad.pod       19 May 2002 08:16:52 -0000      1.3
  @@ -21,37 +21,34 @@
   
   =back
   
  - Lincoln Stein wrote:
  - >
  - > Hi All,
  - >
  - > I'm looking for more mod_perl success stories like the one that Jeff
  - > posted the other day.  They will be used for vignettes in an
  - > introductory chapter of the book that Doug and I are writing.  If you
  - > have a story you'd like to share (particularly one in which mod_perl
  - > "defeats" one of its competitors) could you mail it to me or post it
  - > to the list?  For the vignettes we need some sort of identifying
  - > information, either along the lines of "a major Southwestern
  - > University" or "Kulturbox company of Berlin, Germany".
  - >
  - > Jeff, do you mind us using your story and identifying Texas A&M
  - > directly?
  - >
  - > Lincoln
  - 
  -
  - You may not want to touch this one, but adultad.com contracted me to fix
  - their adult banner exchange to where it could throw more than 1.5
  - banners a second.  I put it under mod_perl, and it now tops out at
  - slightly over 20 banners per second.  It is now throwing approximately
  - 10 Million banners a week solid without a problem.  The banner exchange
  - (both banner throwing/logging and click-thru redirection/logging) is
  - running 100% under mod_perl.
  - 
  -
  - Marshall
  - 
  -
  +  Lincoln Stein wrote:
  +  >
  +  > Hi All,
  +  >
  +  > I'm looking for more mod_perl success stories like the one that Jeff
  +  > posted the other day.  They will be used for vignettes in an
  +  > introductory chapter of the book that Doug and I are writing.  If you
  +  > have a story you'd like to share (particularly one in which mod_perl
  +  > "defeats" one of its competitors) could you mail it to me or post it
  +  > to the list?  For the vignettes we need some sort of identifying
  +  > information, either along the lines of "a major Southwestern
  +  > University" or "Kulturbox company of Berlin, Germany".
  +  >
  +  > Jeff, do you mind us using your story and identifying Texas A&M
  +  > directly?
  +  >
  +  > Lincoln
  +  
  +  You may not want to touch this one, but adultad.com contracted me to fix
  +  their adult banner exchange to where it could throw more than 1.5
  +  banners a second.  I put it under mod_perl, and it now tops out at
  +  slightly over 20 banners per second.  It is now throwing approximately
  +  10 Million banners a week solid without a problem.  The banner exchange
  +  (both banner throwing/logging and click-thru redirection/logging) is
  +  running 100% under mod_perl.
  +  
  +  Marshall
  +  
   
   
   =cut
  
  
  
  1.4       +46 -53    
modperl-docs/src/outstanding/success_stories/allakhazam.com.pod
  
  Index: allakhazam.com.pod
  ===================================================================
  RCS file: 
/home/cvs/modperl-docs/src/outstanding/success_stories/allakhazam.com.pod,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- allakhazam.com.pod        21 Apr 2002 14:31:04 -0000      1.3
  +++ allakhazam.com.pod        19 May 2002 08:16:52 -0000      1.4
  @@ -29,59 +29,52 @@
   
   =back
   
  - Almost everything on the site runs in mod_perl.  We have 4 systems
  - running the site, one static server (PIII 450, Linux,
  - Apache/mod_proxy).  Two database servers (Dual P800, FreeBSD, Mysql)
  - which are replicated, and the one mod_perl server (PIII 800, FreeBSD,
  - Apache/mod_perl).  The idea to use the proxy server to intercept any
  - requests for text or images which was not dynamic came directly from
  - the mod_perl guide (http://perl.apache.org/docs/1.0/guide/).
  - 
  -
  - It's been a rough ride sometimes, as I've been in the process of
  - learning the guts of Apache and more about perl than I ever thought
  - I'd need to know.  Since the site first started, I've migrated from a
  - Module based system, to Apache::Registry (I wasn't writing good enough
  - perl for the module based system to work well), and more recently have
  - been migrating high volume scripts back to the Module/Handler based
  - system.
  - 
  -
  - That's been the true benefit of mod_perl in developing this site.
  - It's been a learning process as we roll out a new application or area
  - of the site, watching our hit load go up and up, and then spending
  - hours looking for performance bottlenecks in code which was never
  - intended to run as often as it does.
  - 
  -
  - mod_perl gives us an incredibly fast development time.  Sometimes, the
  - speed of development does mean than lower quality code creeps into the
  - production environment, but it allows us (me) to get things done which
  - would take much much longer in another application environment.  Perls
  - "there are many ways to do it" extends into mod_perl, meaning that I
  - can try something new quickly, and come back later to optimize it.
  - 
  -
  - Amoung the features we have on the site:
  - 
  -
  - Application layer security, based on a custom written Session tracking
  - system.  A recursively threaded forum system on every page, this
  - system accounts for the bulk of the page views.  It's also real time
  - in tems of both comments being added, and ratings to the messages
  - propigating through.  User uploaded data through out the site, we
  - allow players to track their characters, add meta information to
  - database entries.  Detailed web based administration system based on
  - the Application security layer.
  - 
  -
  - The speed of development of perl, coupled with the rich resources of
  - CPAN, and the incredible power of mod_perl have made this site
  - possible.
  - 
  -
  - Running the same site in other technologies would have been possible,
  - but would either require more hardware, or more time to develop.
  +  Almost everything on the site runs in mod_perl.  We have 4 systems
  +  running the site, one static server (PIII 450, Linux,
  +  Apache/mod_proxy).  Two database servers (Dual P800, FreeBSD, Mysql)
  +  which are replicated, and the one mod_perl server (PIII 800, FreeBSD,
  +  Apache/mod_perl).  The idea to use the proxy server to intercept any
  +  requests for text or images which was not dynamic came directly from
  +  the mod_perl guide (http://perl.apache.org/docs/1.0/guide/).
  +  
  +  It's been a rough ride sometimes, as I've been in the process of
  +  learning the guts of Apache and more about perl than I ever thought
  +  I'd need to know.  Since the site first started, I've migrated from a
  +  Module based system, to Apache::Registry (I wasn't writing good enough
  +  perl for the module based system to work well), and more recently have
  +  been migrating high volume scripts back to the Module/Handler based
  +  system.
  +  
  +  That's been the true benefit of mod_perl in developing this site.
  +  It's been a learning process as we roll out a new application or area
  +  of the site, watching our hit load go up and up, and then spending
  +  hours looking for performance bottlenecks in code which was never
  +  intended to run as often as it does.
  +  
  +  mod_perl gives us an incredibly fast development time.  Sometimes, the
  +  speed of development does mean than lower quality code creeps into the
  +  production environment, but it allows us (me) to get things done which
  +  would take much much longer in another application environment.  Perls
  +  "there are many ways to do it" extends into mod_perl, meaning that I
  +  can try something new quickly, and come back later to optimize it.
  +  
  +  Amoung the features we have on the site:
  +  
  +  Application layer security, based on a custom written Session tracking
  +  system.  A recursively threaded forum system on every page, this
  +  system accounts for the bulk of the page views.  It's also real time
  +  in tems of both comments being added, and ratings to the messages
  +  propigating through.  User uploaded data through out the site, we
  +  allow players to track their characters, add meta information to
  +  database entries.  Detailed web based administration system based on
  +  the Application security layer.
  +  
  +  The speed of development of perl, coupled with the rich resources of
  +  CPAN, and the incredible power of mod_perl have made this site
  +  possible.
  +  
  +  Running the same site in other technologies would have been possible,
  +  but would either require more hardware, or more time to develop.
   
   
   =cut
  
  
  
  1.3       +8 -8      modperl-docs/src/outstanding/success_stories/bsat.pod
  
  Index: bsat.pod
  ===================================================================
  RCS file: /home/cvs/modperl-docs/src/outstanding/success_stories/bsat.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- bsat.pod  14 Apr 2002 06:40:13 -0000      1.2
  +++ bsat.pod  19 May 2002 08:16:52 -0000      1.3
  @@ -21,14 +21,14 @@
   
   =back
   
  -         At my former employer (Aaaahh . . . Sorry, just feels good
  - to say that :), I rewrote a commercial interface to a defect tracking
  - system.  The original product was a bunch of Bourne shell scripts
  - that all sourced one humoungus configuration script.  It took on the
  - order of 10-12 seconds to return some pages (and some of those weren't
  - even excuting any queries against the defect database) on a mostly
  - idle SS20.  Under mod_perl, that dropped to approximately 2-4 seconds
  - for everything but really large queries (i.e. everything in the db).
  +          At my former employer (Aaaahh . . . Sorry, just feels good
  +  to say that :), I rewrote a commercial interface to a defect tracking
  +  system.  The original product was a bunch of Bourne shell scripts
  +  that all sourced one humoungus configuration script.  It took on the
  +  order of 10-12 seconds to return some pages (and some of those weren't
  +  even excuting any queries against the defect database) on a mostly
  +  idle SS20.  Under mod_perl, that dropped to approximately 2-4 seconds
  +  for everything but really large queries (i.e. everything in the db).
   
   
   =cut
  
  
  
  1.3       +17 -21    
modperl-docs/src/outstanding/success_stories/calmaeth.maths.uwa.edu.au.pod
  
  Index: calmaeth.maths.uwa.edu.au.pod
  ===================================================================
  RCS file: 
/home/cvs/modperl-docs/src/outstanding/success_stories/calmaeth.maths.uwa.edu.au.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- calmaeth.maths.uwa.edu.au.pod     14 Apr 2002 06:40:13 -0000      1.2
  +++ calmaeth.maths.uwa.edu.au.pod     19 May 2002 08:16:52 -0000      1.3
  @@ -21,27 +21,23 @@
   
   =back
   
  - At the Mathematics Department at the University of Western Australia I
  - have a web-based computer aided teaching system using mod_perl. The
  - students have individual weekly assignments in calculus, statistics,
  - linear algebra with diagnostics and assessment built in. The system
  - relieves academic staff of the burden of assignment marking and provides
  - more personal interaction with students. The system requires database
  - management and connection to a computer algebra engine. The transfer from
  - a slow/unreliable/Macintosh/Hypercard/Mathematica system to a
  - fast/reliable/web system took a couple of months and I had never
  - programmed in perl before. The whole excersize was amazingly painless and
  - it was entirely mod_perl's doing.
  - 
  -
  - http://CalMaeth.maths.uwa.edu.au
  - 
  -
  - 
  -
  - Kevin
  - 
  -
  +  At the Mathematics Department at the University of Western Australia I
  +  have a web-based computer aided teaching system using mod_perl. The
  +  students have individual weekly assignments in calculus, statistics,
  +  linear algebra with diagnostics and assessment built in. The system
  +  relieves academic staff of the burden of assignment marking and provides
  +  more personal interaction with students. The system requires database
  +  management and connection to a computer algebra engine. The transfer from
  +  a slow/unreliable/Macintosh/Hypercard/Mathematica system to a
  +  fast/reliable/web system took a couple of months and I had never
  +  programmed in perl before. The whole excersize was amazingly painless and
  +  it was entirely mod_perl's doing.
  +  
  +  http://CalMaeth.maths.uwa.edu.au
  +  
  +  
  +  Kevin
  +  
   
   
   =cut
  
  
  
  1.3       +98 -114   
modperl-docs/src/outstanding/success_stories/colbychem.pod
  
  Index: colbychem.pod
  ===================================================================
  RCS file: 
/home/cvs/modperl-docs/src/outstanding/success_stories/colbychem.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- colbychem.pod     14 Apr 2002 06:40:13 -0000      1.2
  +++ colbychem.pod     19 May 2002 08:16:52 -0000      1.3
  @@ -21,120 +21,104 @@
   
   =back
   
  - Dear mod_perl gang,
  - 
  -
  - The following is somewhat late in the "success story" thread of a few months
  - ago, but I think there might be some interest for the database crowd. Below 
is
  - a brief summary of a talk that I gave at a meeting in Philadelphia last 
week.
  - Sponsored by Molecular Designs Limited (MDL), the meeting was attended by
  - several hundred representatives of industry and government, and was 
concerned
  - with the problems related to large molecular and reaction databases, and 
their
  - use in combinatorial chemistry, drug discovery, etc.  (These are databases
  - consisting of molecular structures and their models, and reactions. A 
database
  - user can pose an sql in the language of chemistry - molecular structures
  - drawn with ISIS/Draw or ChemDraw - to find data that have substructure
  - similarity, conformationally flexible similarity, reaction similarity,
  - and much more. The structures, models, and reactions are displayed using
  - MDL's chime plugin, itself based on RASMOL, which renders 'live' 3-D 
drawings
  - that can be rotated and displayed in a number of ways from within the web 
page.)
  - 
  -
  - 
*******************************************************************************
  - 
  -
  - 
  -
  - 
  -
  - Last November, Dr. Shattuck proposed that we build a reaction database of
  - reaction mechanisms studied by Dr. Mundy and his colleagues, using MDL's
  - reaction database software. Furthermore, it was his idea that we make
  - this a web project open to all. Our first idea was to buy a license for 
MDL's
  - ChemScape server, which links NetScape Enterprise server to MDL's database
  - library. Unfortunately, the upgrade from our current MDL license to include
  - ChemScape server was too expensive, not to mention NetScape Enterprise 
server.
  - 
  -
  - I started working on a web server based on Apache and mod_perl that would 
act
  - as a gateway to MDL's database software.
  - 
  -
  - Although MDL's database server protocol is not public, they do provide a
  - command line interface called hostcli, which has most of the functionality
  - of the proprietary server. The use of hostcli is restricted to one machine,
  - but within that machine one may run any number of hostcli processes.
  - 
  -
  - ColbyChem, the project that I presented at the meeting, makes use of hostcli
  - by opening it on a pseudoterminal for each database user. The novel aspect
  - of ColbyChem is its use of the integrated Apache/perl server running in
  - single user (-X) mode for each database user.
  - 
  -
  - Because perl is embedded in Apache, dynamic variables are retained between
  - calls to the server children. Certain Apache packages use this to open a
  - persistent database connection to industry standard databases such as 
Oracle,
  - but this is not an option with proprietary interfaces, such as MDL's.
  - 
  -
  - In order to adapt this to the idea of opening hostcli on a pty for each 
user,
  - I run a dedicated Apache/perl daemon for each user, in single-mode (-X), on 
a
  - separate port.  That way, each Apache daemon caches the perl program and
  - retains dynamic variables between calls. In essence, it becomes a new
  - application, composed of Apache and perl, running under my program. The
  - effect is similar to an X client. The browser is like the X server.
  - 
  -
  - Entrance to ColbyChem is through a dedicated login daemon running on port 
9000.
  - Upon receiving a valid login name, the daemon forks an Apache/perl daemon on
  - a port specified in a password-like file, and transfers the browser to this
  - new port. Authentication, which is very important here, is carried out 
entirely
  - on this new daemon. The user supplies a password. ColbyChem encrypts it
  - and compares with the encrypted password assigned to the user. If 
successful,
  - ColbyChem forks and execs hostcli on the pty. It then records the IP number
  - and sends back a cookie for secondary authentication upon browser reconnect.
  - The cookie is different for each session, is not based only on an easily 
guessed
  - system parameters like time or checksums, and does not reveal, to within the
  - limitations of crypt(), the original or encrypted password. My solution for
  - the cookie is to take the password, which is secret, and permute it using
  - rand() seeded by time. The permuted cleartext password is then encrypted and
  - sent back as the cookie. Thus, even if one knew the permutation order and
  - cookie, it would still be impossible to recover the original password.
  - 
  -
  - ColbyChem presents side-by-side frames. The left frame contains a query
  - builder and controls for hit-list logic and display. The right frame 
displays
  - the data indented in the natural hierarchy of the database. Models, 
structures,
  - and reactions are displayed using MDL's chime plugin.
  - 
  -
  - Essentially, ColbyChem is nothing more than a graphical front-end for 
hostcli,
  - written in 1200 lines of perl. The heart of ColbyChem is two routines, each
  - a page of code. The first routine, rd2perl, translates an export file from
  - hostcli into a perl data structure that has the hierarchy of the original
  - database, i.e. it imports the database into perl. The second routine
  - recursively descends the branches of this structure until it reaches the
  - tips, whereupon it prints out the data indented to reflect the database
  - hierarchy.
  - 
  -
  - MDL has just delivered an Oracle interface to its molecular and reaction
  - databases. This opens the possibility of using established packages for
  - persistent database connnections that offer the flexibility of ChemScape
  - server from within Apache/perl, without the novel hack of running dedicated
  - daemons on separate ports for each user.
  - 
  -
  - John Kuehne, Ph.D.
  - Information Technology Services
  - Colby College
  - 4200 Mayflower Hill Drive
  - Waterville ME  04901
  - 
  -
  - [EMAIL PROTECTED]
  - 207-872-3652
  +  Dear mod_perl gang,
  +  
  +  The following is somewhat late in the "success story" thread of a few 
months
  +  ago, but I think there might be some interest for the database crowd. 
Below is
  +  a brief summary of a talk that I gave at a meeting in Philadelphia last 
week.
  +  Sponsored by Molecular Designs Limited (MDL), the meeting was attended by
  +  several hundred representatives of industry and government, and was 
concerned
  +  with the problems related to large molecular and reaction databases, and 
their
  +  use in combinatorial chemistry, drug discovery, etc.  (These are databases
  +  consisting of molecular structures and their models, and reactions. A 
database
  +  user can pose an sql in the language of chemistry - molecular structures
  +  drawn with ISIS/Draw or ChemDraw - to find data that have substructure
  +  similarity, conformationally flexible similarity, reaction similarity,
  +  and much more. The structures, models, and reactions are displayed using
  +  MDL's chime plugin, itself based on RASMOL, which renders 'live' 3-D 
drawings
  +  that can be rotated and displayed in a number of ways from within the web 
page.)
  +  
  +  
*******************************************************************************
  +  
  +  
  +  
  +  Last November, Dr. Shattuck proposed that we build a reaction database of
  +  reaction mechanisms studied by Dr. Mundy and his colleagues, using MDL's
  +  reaction database software. Furthermore, it was his idea that we make
  +  this a web project open to all. Our first idea was to buy a license for 
MDL's
  +  ChemScape server, which links NetScape Enterprise server to MDL's database
  +  library. Unfortunately, the upgrade from our current MDL license to include
  +  ChemScape server was too expensive, not to mention NetScape Enterprise 
server.
  +  
  +  I started working on a web server based on Apache and mod_perl that would 
act
  +  as a gateway to MDL's database software.
  +  
  +  Although MDL's database server protocol is not public, they do provide a
  +  command line interface called hostcli, which has most of the functionality
  +  of the proprietary server. The use of hostcli is restricted to one machine,
  +  but within that machine one may run any number of hostcli processes.
  +  
  +  ColbyChem, the project that I presented at the meeting, makes use of 
hostcli
  +  by opening it on a pseudoterminal for each database user. The novel aspect
  +  of ColbyChem is its use of the integrated Apache/perl server running in
  +  single user (-X) mode for each database user.
  +  
  +  Because perl is embedded in Apache, dynamic variables are retained between
  +  calls to the server children. Certain Apache packages use this to open a
  +  persistent database connection to industry standard databases such as 
Oracle,
  +  but this is not an option with proprietary interfaces, such as MDL's.
  +  
  +  In order to adapt this to the idea of opening hostcli on a pty for each 
user,
  +  I run a dedicated Apache/perl daemon for each user, in single-mode (-X), 
on a
  +  separate port.  That way, each Apache daemon caches the perl program and
  +  retains dynamic variables between calls. In essence, it becomes a new
  +  application, composed of Apache and perl, running under my program. The
  +  effect is similar to an X client. The browser is like the X server.
  +  
  +  Entrance to ColbyChem is through a dedicated login daemon running on port 
9000.
  +  Upon receiving a valid login name, the daemon forks an Apache/perl daemon 
on
  +  a port specified in a password-like file, and transfers the browser to this
  +  new port. Authentication, which is very important here, is carried out 
entirely
  +  on this new daemon. The user supplies a password. ColbyChem encrypts it
  +  and compares with the encrypted password assigned to the user. If 
successful,
  +  ColbyChem forks and execs hostcli on the pty. It then records the IP number
  +  and sends back a cookie for secondary authentication upon browser 
reconnect.
  +  The cookie is different for each session, is not based only on an easily 
guessed
  +  system parameters like time or checksums, and does not reveal, to within 
the
  +  limitations of crypt(), the original or encrypted password. My solution for
  +  the cookie is to take the password, which is secret, and permute it using
  +  rand() seeded by time. The permuted cleartext password is then encrypted 
and
  +  sent back as the cookie. Thus, even if one knew the permutation order and
  +  cookie, it would still be impossible to recover the original password.
  +  
  +  ColbyChem presents side-by-side frames. The left frame contains a query
  +  builder and controls for hit-list logic and display. The right frame 
displays
  +  the data indented in the natural hierarchy of the database. Models, 
structures,
  +  and reactions are displayed using MDL's chime plugin.
  +  
  +  Essentially, ColbyChem is nothing more than a graphical front-end for 
hostcli,
  +  written in 1200 lines of perl. The heart of ColbyChem is two routines, each
  +  a page of code. The first routine, rd2perl, translates an export file from
  +  hostcli into a perl data structure that has the hierarchy of the original
  +  database, i.e. it imports the database into perl. The second routine
  +  recursively descends the branches of this structure until it reaches the
  +  tips, whereupon it prints out the data indented to reflect the database
  +  hierarchy.
  +  
  +  MDL has just delivered an Oracle interface to its molecular and reaction
  +  databases. This opens the possibility of using established packages for
  +  persistent database connnections that offer the flexibility of ChemScape
  +  server from within Apache/perl, without the novel hack of running dedicated
  +  daemons on separate ports for each user.
  +  
  +  John Kuehne, Ph.D.
  +  Information Technology Services
  +  Colby College
  +  4200 Mayflower Hill Drive
  +  Waterville ME  04901
  +  
  +  [EMAIL PROTECTED]
  +  207-872-3652
   
   
   =cut
  
  
  
  1.2       +19 -22    
modperl-docs/src/outstanding/success_stories/dslreports.com.pod
  
  Index: dslreports.com.pod
  ===================================================================
  RCS file: 
/home/cvs/modperl-docs/src/outstanding/success_stories/dslreports.com.pod,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- dslreports.com.pod        28 Apr 2002 15:10:42 -0000      1.1
  +++ dslreports.com.pod        19 May 2002 08:16:52 -0000      1.2
  @@ -29,28 +29,25 @@
   
   =back
   
  - http://dslreports.com pages are entirely modperl, I do almost a
  - million pageviews per day, and each page is from 20 to 200 sql
  - statements.. and entirely produced by modperl, not templates or
  - anything. most pages are produced in less than 200ms.. all the 150
  - internal forums as well (10000 posted messages per day and over 2
  - million messages online and searchable) are modperl. Everything is
  - modperl :)
  - 
  -
  - I use two modperl servers, one sql server, and one frontend (mod
  - proxy) server.. all of them are dual cpu 500-1mhz cpus and from 1-4gig
  - of memory..
  - 
  -
  - This is all coded and administered now by me, part-time, while I do
  - other stuff (like run the business).. I doubt it could be produced by
  - any other tool, at least not without way more support staff and
  - equipment.
  - 
  -
  - regards
  - -Justin
  +  http://dslreports.com pages are entirely modperl, I do almost a
  +  million pageviews per day, and each page is from 20 to 200 sql
  +  statements.. and entirely produced by modperl, not templates or
  +  anything. most pages are produced in less than 200ms.. all the 150
  +  internal forums as well (10000 posted messages per day and over 2
  +  million messages online and searchable) are modperl. Everything is
  +  modperl :)
  +  
  +  I use two modperl servers, one sql server, and one frontend (mod
  +  proxy) server.. all of them are dual cpu 500-1mhz cpus and from 1-4gig
  +  of memory..
  +  
  +  This is all coded and administered now by me, part-time, while I do
  +  other stuff (like run the business).. I doubt it could be produced by
  +  any other tool, at least not without way more support staff and
  +  equipment.
  +  
  +  regards
  +  -Justin
   
   
   =cut
  
  
  
  1.3       +48 -62    
modperl-docs/src/outstanding/success_stories/iagore.com.pod
  
  Index: iagore.com.pod
  ===================================================================
  RCS file: 
/home/cvs/modperl-docs/src/outstanding/success_stories/iagore.com.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- iagore.com.pod    14 Apr 2002 06:40:13 -0000      1.2
  +++ iagore.com.pod    19 May 2002 08:16:52 -0000      1.3
  @@ -29,68 +29,54 @@
   
   =back
   
  - iAgora was started in mid-1998, as a community site for
  - internationally minded people.  After investigating the major
  - existing web development systems, we chose to go with Linux, Apache
  - and mod_perl.  Three years later, we're very happy with this choice.  
  - 
  -
  - At iAgora we are constantly adding features and sections to our
  - site, and refining the ones we have.  For us it was very important
  - to have a flexible platform, that would give us complete freedom in
  - organizing our code, and customizing how the pages are generated.
  - 
  -
  - We have found the combination of Linux, Apache and mod_perl to be:
  - 
  -
  - * cost-effective
  - 
  -
  - There are no software licences to pay, the programs are easy enough
  - to install and configure, and many free support and middleware
  - modules can be obtained from CPAN.  
  - 
  -
  - * stable
  - 
  -
  - The running servers have had very few crashes, and generally not
  - needed much maintenance.  We have also found it very useful to be
  - able to administer the servers remotely.
  - 
  -
  - * flexible
  - 
  -
  - Since mod_perl lets perl access low-level hooks within Apache, it is
  - possible to have complete control over any aspect of its operation.
  - 
  -
  - For instance, we found it easy and convenient to create virtual
  - URLs, where some path elements were matched to database queries
  - rather than directories on disk, while still basically serving an
  - HTML file.
  - 
  -
  - * adapted for large site creation
  - 
  -
  - Mod_perl gives us complete control over how HTML and perl code
  - interface to each other.  By using a templating to the fullest
  - extent, we minimize the amount of duplication both in HTML and perl.
  - This also lets us have common navigation and design accross the
  - whole site, while separately maintaining the various form-based
  - applications that make the site.
  - 
  -
  - Contact Person: 
  - 
  -
  - * Technical: Roger Espel Llima <[EMAIL PROTECTED]> 
  - * Business:  Philippe Negre <[EMAIL PROTECTED]>
  - 
  -
  +  iAgora was started in mid-1998, as a community site for
  +  internationally minded people.  After investigating the major
  +  existing web development systems, we chose to go with Linux, Apache
  +  and mod_perl.  Three years later, we're very happy with this choice.  
  +  
  +  At iAgora we are constantly adding features and sections to our
  +  site, and refining the ones we have.  For us it was very important
  +  to have a flexible platform, that would give us complete freedom in
  +  organizing our code, and customizing how the pages are generated.
  +  
  +  We have found the combination of Linux, Apache and mod_perl to be:
  +  
  +  * cost-effective
  +  
  +  There are no software licences to pay, the programs are easy enough
  +  to install and configure, and many free support and middleware
  +  modules can be obtained from CPAN.  
  +  
  +  * stable
  +  
  +  The running servers have had very few crashes, and generally not
  +  needed much maintenance.  We have also found it very useful to be
  +  able to administer the servers remotely.
  +  
  +  * flexible
  +  
  +  Since mod_perl lets perl access low-level hooks within Apache, it is
  +  possible to have complete control over any aspect of its operation.
  +  
  +  For instance, we found it easy and convenient to create virtual
  +  URLs, where some path elements were matched to database queries
  +  rather than directories on disk, while still basically serving an
  +  HTML file.
  +  
  +  * adapted for large site creation
  +  
  +  Mod_perl gives us complete control over how HTML and perl code
  +  interface to each other.  By using a templating to the fullest
  +  extent, we minimize the amount of duplication both in HTML and perl.
  +  This also lets us have common navigation and design accross the
  +  whole site, while separately maintaining the various form-based
  +  applications that make the site.
  +  
  +  Contact Person: 
  +  
  +  * Technical: Roger Espel Llima <[EMAIL PROTECTED]> 
  +  * Business:  Philippe Negre <[EMAIL PROTECTED]>
  +  
   
   
   =cut
  
  
  
  1.3       +46 -56    modperl-docs/src/outstanding/success_stories/idl-net.pod
  
  Index: idl-net.pod
  ===================================================================
  RCS file: /home/cvs/modperl-docs/src/outstanding/success_stories/idl-net.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- idl-net.pod       14 Apr 2002 06:40:13 -0000      1.2
  +++ idl-net.pod       19 May 2002 08:16:52 -0000      1.3
  @@ -21,62 +21,52 @@
   
   =back
   
  - Hi,
  - 
  -
  -         I saw that there were requests for success stories, so here is ours.
  - We had to create 21 websites that basically had the same textual content
  - (but different ads+clickthroughs, different designs, different acces rights,
  - etc...), that needed to sometimes remain unseen and act as gateways to other
  - sites, and sometimes show up, with changing content and links according to
  - user rights. Also, it had to answer search engine bots with different
  - content using yet another database of robot user agents, as well as (coupled
  - with LWP stuff) try to relate automatic posting to search engine databases
  - to bots that came visiting (I know this isn't really good, but then, food is
  - sometimes more important, :-( ) and to optimise meta tags, resubmission,
  - etc...
  - 
  -
  -         It's all done in mod_perl, and in three days time it served a bit
  - more than 4 million mod_perl hits, and submitted 180.000 forms to search
  - engines. Everything's running on a 300mhz x86, with 128megs of ram. As a
  - comparison, the early development tests were done using CGI on the same PC,
  - and ASP on a more powerful one running IIS. We also tried using java
  - servlets but the results were so desperate that I will not mention them here
  - in respect for those people that use them. Given the time it took either for
  - the CGI to be finished, or for the ASP to connect to it's SQL Server 6.5 to
  - yield the right results or send the right page, we had been planning to buy
  - 5 other PCs to get the job done with those solutions. Our benchmarks run
  - with about 15.000 iterations of a series of calls to the servers that were
  - under no other load show that ASP is hardly faster than CGI when database
  - access is used (and then you have to take into account the fact that the ASP
  - PC was fairly stronger, (I don't remember the CPU but it had 512megs of
  - ram), but that mod_perl induces a performance increase of around 1100% !!!
  - Also, it seems to be using less ressources (though I haven't tested that
  - fully), or using them for so short time lapses that one doesn't even notice.
  - 
  -
  -         The mod_perl development of the whole project was done by one person
  - in less than three weeks (stress-testing included) , and it is running
  - flawlessly.
  - 
  -
  - 
  -
  - I am looking for something stronger, but all that comes to mind is a deeply
  - heart-felt "Thanks !".
  - 
  -
  - 
  -
  - 
  -
  - Abigaël Duesberg
  - ASP - Lotus - LiveWire - Perl - Java
  - 
  -
  - 
  -
  +  Hi,
  +  
  +          I saw that there were requests for success stories, so here is 
ours.
  +  We had to create 21 websites that basically had the same textual content
  +  (but different ads+clickthroughs, different designs, different acces 
rights,
  +  etc...), that needed to sometimes remain unseen and act as gateways to 
other
  +  sites, and sometimes show up, with changing content and links according to
  +  user rights. Also, it had to answer search engine bots with different
  +  content using yet another database of robot user agents, as well as 
(coupled
  +  with LWP stuff) try to relate automatic posting to search engine databases
  +  to bots that came visiting (I know this isn't really good, but then, food 
is
  +  sometimes more important, :-( ) and to optimise meta tags, resubmission,
  +  etc...
  +  
  +          It's all done in mod_perl, and in three days time it served a bit
  +  more than 4 million mod_perl hits, and submitted 180.000 forms to search
  +  engines. Everything's running on a 300mhz x86, with 128megs of ram. As a
  +  comparison, the early development tests were done using CGI on the same PC,
  +  and ASP on a more powerful one running IIS. We also tried using java
  +  servlets but the results were so desperate that I will not mention them 
here
  +  in respect for those people that use them. Given the time it took either 
for
  +  the CGI to be finished, or for the ASP to connect to it's SQL Server 6.5 to
  +  yield the right results or send the right page, we had been planning to buy
  +  5 other PCs to get the job done with those solutions. Our benchmarks run
  +  with about 15.000 iterations of a series of calls to the servers that were
  +  under no other load show that ASP is hardly faster than CGI when database
  +  access is used (and then you have to take into account the fact that the 
ASP
  +  PC was fairly stronger, (I don't remember the CPU but it had 512megs of
  +  ram), but that mod_perl induces a performance increase of around 1100% !!!
  +  Also, it seems to be using less ressources (though I haven't tested that
  +  fully), or using them for so short time lapses that one doesn't even 
notice.
  +  
  +          The mod_perl development of the whole project was done by one 
person
  +  in less than three weeks (stress-testing included) , and it is running
  +  flawlessly.
  +  
  +  
  +  I am looking for something stronger, but all that comes to mind is a deeply
  +  heart-felt "Thanks !".
  +  
  +  
  +  
  +  Abigaël Duesberg
  +  ASP - Lotus - LiveWire - Perl - Java
  +  
  +  
   
   
   =cut
  
  
  
  1.3       +28 -34    modperl-docs/src/outstanding/success_stories/imdb.com.pod
  
  Index: imdb.com.pod
  ===================================================================
  RCS file: 
/home/cvs/modperl-docs/src/outstanding/success_stories/imdb.com.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- imdb.com.pod      14 Apr 2002 06:40:13 -0000      1.2
  +++ imdb.com.pod      19 May 2002 08:16:52 -0000      1.3
  @@ -21,40 +21,34 @@
   
   =back
   
  - On Fri, 6 Mar 1998, Lincoln Stein wrote:
  - 
  -
  - > Hi All,
  - >
  - > I'm looking for more mod_perl success stories like the one that Jeff
  - > posted the other day.  They will be used for vignettes in an
  - > introductory chapter of the book that Doug and I are writing.  If you
  - > have a story you'd like to share (particularly one in which mod_perl
  - > "defeats" one of its competitors) could you mail it to me or post it
  - > to the list?  For the vignettes we need some sort of identifying
  - > information, either along the lines of "a major Southwestern
  - > University" or "Kulturbox company of Berlin, Germany".
  - 
  -
  - We use mod_perl for just about everything and then some too; serving
  - around 1.25 million pageviews per day. All database lookups are handled
  - inside Apache via mod_perl. Each request also goes through several
  - mod_perl handlers and is then reformated on the fly with mod_perl SSI
  - to embed advertising banners and give different views of the site depending
  - on the hostname used.
  - 
  -
  - --
  - Rob Hartill                              Internet Movie Database (Ltd)
  - http://www.moviedatabase.com/   .. a site for sore eyes.
  - 
  -
  - The Internet Movie Database (as we all know, a mod_perl driven site) won a
  - 1997 Webby as the best Film site on the web.
  - 
  -
  - 
  -
  +  On Fri, 6 Mar 1998, Lincoln Stein wrote:
  +  
  +  > Hi All,
  +  >
  +  > I'm looking for more mod_perl success stories like the one that Jeff
  +  > posted the other day.  They will be used for vignettes in an
  +  > introductory chapter of the book that Doug and I are writing.  If you
  +  > have a story you'd like to share (particularly one in which mod_perl
  +  > "defeats" one of its competitors) could you mail it to me or post it
  +  > to the list?  For the vignettes we need some sort of identifying
  +  > information, either along the lines of "a major Southwestern
  +  > University" or "Kulturbox company of Berlin, Germany".
  +  
  +  We use mod_perl for just about everything and then some too; serving
  +  around 1.25 million pageviews per day. All database lookups are handled
  +  inside Apache via mod_perl. Each request also goes through several
  +  mod_perl handlers and is then reformated on the fly with mod_perl SSI
  +  to embed advertising banners and give different views of the site depending
  +  on the hostname used.
  +  
  +  --
  +  Rob Hartill                              Internet Movie Database (Ltd)
  +  http://www.moviedatabase.com/   .. a site for sore eyes.
  +  
  +  The Internet Movie Database (as we all know, a mod_perl driven site) won a
  +  1997 Webby as the best Film site on the web.
  +  
  +  
   
   
   =cut
  
  
  
  1.3       +2 -3      modperl-docs/src/outstanding/success_stories/make.pl
  
  Index: make.pl
  ===================================================================
  RCS file: /home/cvs/modperl-docs/src/outstanding/success_stories/make.pl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- make.pl   14 Apr 2002 06:40:13 -0000      1.2
  +++ make.pl   19 May 2002 08:16:52 -0000      1.3
  @@ -71,9 +71,8 @@
       # cleanup for pod
       _encode(\%data);
   
  -    # keep the body as is (though break the paras or ps2pdf chokes on
  -    # huge <pre> sections within a table cell)
  -    $body =~ s/^(.?)/$1 ? " $1" : " \n"/emg;
  +    # keep the body as is
  +    $body =~ s/^/  /mg;
       $data{body} = $body;
   
       return \%data;
  
  
  
  1.3       +59 -75    
modperl-docs/src/outstanding/success_stories/openscape.org.pod
  
  Index: openscape.org.pod
  ===================================================================
  RCS file: 
/home/cvs/modperl-docs/src/outstanding/success_stories/openscape.org.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- openscape.org.pod 14 Apr 2002 06:40:13 -0000      1.2
  +++ openscape.org.pod 19 May 2002 08:16:52 -0000      1.3
  @@ -21,81 +21,65 @@
   
   =back
   
  - I have put up a site that's a true testament to mod perl's power. (He
  - said humbly).
  - 
  -
  - http://openscape.org now contains the new site that I've been writing
  - over the last 2 weeks.
  - 
  -
  - The site is generated 100% dynamically by my module Obelisk.pm. Apache
  - 1.2.6 and mod_perl 1.10 are used, and the module is inserted to run on
  - <Location />. MySQL and DBD::MySQL provide the back end object store.
  - 
  -
  - I keep all text, news items, and the like in the SQL database. at
  - request time, the module takes the following steps.
  - 
  -
  - $method = $r->method;
  - $loc = $r->uri;
  - 
  -
  - $loc is then parsed out. Depending on the "page" requested the module
  - generates a page based on several SQL calls, and prints the result
  - back out. I pass args on to the subrequests this way too, such as
  - http://openscape.org/rnews/12  will read news item 12. It's all
  - handled in the URL parsing. For the forms handling when you post a
  - news item, I use CGI_Lite to grab things off POST. (If $method is
  - POST), since Apache:: cant grab POST by default. I plan to implement
  - my own POST handler, I just havent gotten around to it.
  - 
  -
  - You can post comments on news items, and those will be generated
  - dynamically too. (a-la slashdot.org if you're familiar).
  - 
  -
  - The amazing part of all this is twofold. First, it's all done in 427
  - lines of perl and 6 SQL tables. Slashdot is 2500 lines of code.
  - Second, while I dont have any definitive numbers, this looks like it's
  - going to scale very large. I've thrown a few large parallel requests
  - at it (just simple LWP gets, in many parallel processes) and it doesnt
  - seem to slow down. This box is just a P5/166 with 64megs RAM and Linux
  - 2.0.31.
  - 
  -
  - This all occurs with no CGI.pm, no Apache::Registry, no on disk
  - content but the Obelisk.pm. I am so spoiled by this method that I dont
  - think I can go back. I'm writing a Doc on the process and I'll have it
  - up soon. I know I'm not the first person to do this, but the process
  - doesnt seem to be exceedingly documented. Oh, and Obelisk will be
  - GPL'ed as soon as I gather it into a form that's fit for human
  - consumption.
  - 
  -
  - Thanks Doug and crew for mod_perl.
  - 
  -
  - -Chris
  - 
  -
  - 
  -
  - 
  -
  - ===
  - ------------------------------------------------------------
  - Chris Thompson    |I do not wish it to be misconstrued that
  - [EMAIL PROTECTED]         |     at no time was I not in total
  - [EMAIL PROTECTED]  |      Disagreement   --Anonymous
  - ------------------------------------------------------------
  - 
  -
  - 
  -
  - 
  -
  +  I have put up a site that's a true testament to mod perl's power. (He
  +  said humbly).
  +  
  +  http://openscape.org now contains the new site that I've been writing
  +  over the last 2 weeks.
  +  
  +  The site is generated 100% dynamically by my module Obelisk.pm. Apache
  +  1.2.6 and mod_perl 1.10 are used, and the module is inserted to run on
  +  <Location />. MySQL and DBD::MySQL provide the back end object store.
  +  
  +  I keep all text, news items, and the like in the SQL database. at
  +  request time, the module takes the following steps.
  +  
  +  $method = $r->method;
  +  $loc = $r->uri;
  +  
  +  $loc is then parsed out. Depending on the "page" requested the module
  +  generates a page based on several SQL calls, and prints the result
  +  back out. I pass args on to the subrequests this way too, such as
  +  http://openscape.org/rnews/12  will read news item 12. It's all
  +  handled in the URL parsing. For the forms handling when you post a
  +  news item, I use CGI_Lite to grab things off POST. (If $method is
  +  POST), since Apache:: cant grab POST by default. I plan to implement
  +  my own POST handler, I just havent gotten around to it.
  +  
  +  You can post comments on news items, and those will be generated
  +  dynamically too. (a-la slashdot.org if you're familiar).
  +  
  +  The amazing part of all this is twofold. First, it's all done in 427
  +  lines of perl and 6 SQL tables. Slashdot is 2500 lines of code.
  +  Second, while I dont have any definitive numbers, this looks like it's
  +  going to scale very large. I've thrown a few large parallel requests
  +  at it (just simple LWP gets, in many parallel processes) and it doesnt
  +  seem to slow down. This box is just a P5/166 with 64megs RAM and Linux
  +  2.0.31.
  +  
  +  This all occurs with no CGI.pm, no Apache::Registry, no on disk
  +  content but the Obelisk.pm. I am so spoiled by this method that I dont
  +  think I can go back. I'm writing a Doc on the process and I'll have it
  +  up soon. I know I'm not the first person to do this, but the process
  +  doesnt seem to be exceedingly documented. Oh, and Obelisk will be
  +  GPL'ed as soon as I gather it into a form that's fit for human
  +  consumption.
  +  
  +  Thanks Doug and crew for mod_perl.
  +  
  +  -Chris
  +  
  +  
  +  
  +  ===
  +  ------------------------------------------------------------
  +  Chris Thompson    |I do not wish it to be misconstrued that
  +  [EMAIL PROTECTED]         |     at no time was I not in total
  +  [EMAIL PROTECTED]  |      Disagreement   --Anonymous
  +  ------------------------------------------------------------
  +  
  +  
  +  
   
   
   =cut
  
  
  
  1.3       +25 -28    modperl-docs/src/outstanding/success_stories/presto.pod
  
  Index: presto.pod
  ===================================================================
  RCS file: /home/cvs/modperl-docs/src/outstanding/success_stories/presto.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- presto.pod        14 Apr 2002 06:40:13 -0000      1.2
  +++ presto.pod        19 May 2002 08:16:52 -0000      1.3
  @@ -21,34 +21,31 @@
   
   =back
   
  - At the risk of this becoming a giant mod_perl lovefest, I'll second that.
  - I've learned more about perl & apache in my dozen months or so of mod_perl
  - than in my many years of work with apache & perl.  mod_perl has definately
  - forced me to improve the quality of my perl coding manyfold & taught me more
  - than I ever thought I wanted to know about Apache.
  - 
  -
  - On Fri, Mar 06, 1998 at 06:53:36PM +0100, Eric Cholet wrote:
  - > We've a mod_perl web site that allows subscribers to view news stories and
  - > news photographs from a major news agency. All content is received via a
  - > satellite link and users can view it in real time, as well as search
  - > through a huge archive database.
  - >
  - > What I like about mod_perl is its "double" reward: not only is it fast and
  - > efficient, but it has been an enlightening experience working with such an
  - > elegant tool and reading this list.
  - >
  - > ----
  - > Eric CHOLET - LOGILUNE
  - > email: [EMAIL PROTECTED]
  - > I am Pentium of Borg. Division is Futile. You will be approximated.
  - 
  -
  - --
  - Patrick Michael Kane
  - <[EMAIL PROTECTED]>
  - 
  -
  +  At the risk of this becoming a giant mod_perl lovefest, I'll second that.
  +  I've learned more about perl & apache in my dozen months or so of mod_perl
  +  than in my many years of work with apache & perl.  mod_perl has definately
  +  forced me to improve the quality of my perl coding manyfold & taught me 
more
  +  than I ever thought I wanted to know about Apache.
  +  
  +  On Fri, Mar 06, 1998 at 06:53:36PM +0100, Eric Cholet wrote:
  +  > We've a mod_perl web site that allows subscribers to view news stories 
and
  +  > news photographs from a major news agency. All content is received via a
  +  > satellite link and users can view it in real time, as well as search
  +  > through a huge archive database.
  +  >
  +  > What I like about mod_perl is its "double" reward: not only is it fast 
and
  +  > efficient, but it has been an enlightening experience working with such 
an
  +  > elegant tool and reading this list.
  +  >
  +  > ----
  +  > Eric CHOLET - LOGILUNE
  +  > email: [EMAIL PROTECTED]
  +  > I am Pentium of Borg. Division is Futile. You will be approximated.
  +  
  +  --
  +  Patrick Michael Kane
  +  <[EMAIL PROTECTED]>
  +  
   
   
   =cut
  
  
  
  1.3       +5 -6      modperl-docs/src/outstanding/success_stories/rent.com.pod
  
  Index: rent.com.pod
  ===================================================================
  RCS file: 
/home/cvs/modperl-docs/src/outstanding/success_stories/rent.com.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- rent.com.pod      14 Apr 2002 06:40:13 -0000      1.2
  +++ rent.com.pod      19 May 2002 08:16:52 -0000      1.3
  @@ -21,12 +21,11 @@
   
   =back
   
  - http://www.rent.com/
  - 
  -
  - Rent.com is a dynamic, database driven web site built on mod_perl.
  - Initial development took 3 months to replace an NT/IIS/ASP
  - implementation.
  +  http://www.rent.com/
  +  
  +  Rent.com is a dynamic, database driven web site built on mod_perl.
  +  Initial development took 3 months to replace an NT/IIS/ASP
  +  implementation.
   
   
   =cut
  
  
  
  1.3       +16 -18    modperl-docs/src/outstanding/success_stories/seds.org.pod
  
  Index: seds.org.pod
  ===================================================================
  RCS file: 
/home/cvs/modperl-docs/src/outstanding/success_stories/seds.org.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- seds.org.pod      14 Apr 2002 06:40:13 -0000      1.2
  +++ seds.org.pod      19 May 2002 08:16:52 -0000      1.3
  @@ -21,24 +21,22 @@
   
   =back
   
  - I run a web site for approximately 1200 students of introductory astronomy
  - here at the U of Arizona. The server is an old Sun Sparc 1 and we use
  - lots of perl CGI's to connect to a database on the backend and create
  - custom pages. Before mod_perl, the site was unacceptable slow. Now, with
  - the scripts re-written to use mod_perl, the dynamically created pages load
  - faster than regular HTML files.
  - 
  -
  - Mr. Guy Smiley
  - --
  - e-mail:  ( smiley at seds dot org )
  - website: ( double u double u double u dot seds dot org slash tilde smiley )
  - phone:   ( five two zero three two one one nine six four )
  - --
  - "I root for a big comet or asteroid as a way of cleansing the planet."
  -  George Carlin
  - 
  -
  +  I run a web site for approximately 1200 students of introductory astronomy
  +  here at the U of Arizona. The server is an old Sun Sparc 1 and we use
  +  lots of perl CGI's to connect to a database on the backend and create
  +  custom pages. Before mod_perl, the site was unacceptable slow. Now, with
  +  the scripts re-written to use mod_perl, the dynamically created pages load
  +  faster than regular HTML files.
  +  
  +  Mr. Guy Smiley
  +  --
  +  e-mail:  ( smiley at seds dot org )
  +  website: ( double u double u double u dot seds dot org slash tilde smiley )
  +  phone:   ( five two zero three two one one nine six four )
  +  --
  +  "I root for a big comet or asteroid as a way of cleansing the planet."
  +   George Carlin
  +  
   
   
   =cut
  
  
  
  1.4       +14 -17    
modperl-docs/src/outstanding/success_stories/singlesheaven.com.pod
  
  Index: singlesheaven.com.pod
  ===================================================================
  RCS file: 
/home/cvs/modperl-docs/src/outstanding/success_stories/singlesheaven.com.pod,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- singlesheaven.com.pod     17 Apr 2002 03:21:45 -0000      1.3
  +++ singlesheaven.com.pod     19 May 2002 08:16:52 -0000      1.4
  @@ -21,23 +21,20 @@
   
   =back
   
  - Singles Heaven - http://singlesheaven.com is a Match Maker site with
  - 34,000+ members and growing. The site is driven by mod_perl, DBI,
  - Apache::DBI (which provides a persistence to DB connections) and mysql.
  - The speed is enormous, chatting with mod_perl is a pleasure of experience.
  - Every page is being generated by about 10 SQL queries, for it does many
  - dynamic checks every time - like checking for new emails, watching the
  - users who registered in their watchdog and many more. You don't feel these
  - queries are actually happen, the speed is of the ``Hello World'' script.
  - 
  -
  - Development path was very short, I have converted plain CGI scripts to run
  - under mod_perl (Apache::Registry) almost in no time!!! If you are into a
  - database driven service, give mod_perl a try !!!
  - 
  -
  - 
  -
  +  Singles Heaven - http://singlesheaven.com is a Match Maker site with
  +  34,000+ members and growing. The site is driven by mod_perl, DBI,
  +  Apache::DBI (which provides a persistence to DB connections) and mysql.
  +  The speed is enormous, chatting with mod_perl is a pleasure of experience.
  +  Every page is being generated by about 10 SQL queries, for it does many
  +  dynamic checks every time - like checking for new emails, watching the
  +  users who registered in their watchdog and many more. You don't feel these
  +  queries are actually happen, the speed is of the ``Hello World'' script.
  +  
  +  Development path was very short, I have converted plain CGI scripts to run
  +  under mod_perl (Apache::Registry) almost in no time!!! If you are into a
  +  database driven service, give mod_perl a try !!!
  +  
  +  
   
   
   =cut
  
  
  
  1.3       +248 -311  
modperl-docs/src/outstanding/success_stories/sms_server.pod
  
  Index: sms_server.pod
  ===================================================================
  RCS file: 
/home/cvs/modperl-docs/src/outstanding/success_stories/sms_server.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- sms_server.pod    14 Apr 2002 06:40:13 -0000      1.2
  +++ sms_server.pod    19 May 2002 08:16:52 -0000      1.3
  @@ -21,317 +21,254 @@
   
   =back
   
  - Preface
  - 
  -
  - This is a story about how about I've used a combination of perl,
  - Apache and mod_perl to create a component-based service architecture
  - that implements a platform for building SMS applications. By reusing
  - capabilities offered by Apache/mod_perl I saved a lot of time
  - developing the system. The strong OO features of perl that I used
  - enabled me to build a very flexible system as well to cope with future
  - requirements. We had the platform in place in about 6 weeks, starting
  - with absolutely nothing: no hardware, no development environment, no
  - technology choices made beforehand.
  - 
  -
  - Introduction
  - 
  -
  - The purpose of the system to be developed was to provide a server
  - platform on top of which arbitrary SMS (Short Message Service)
  - applications can be developed quickly. It should be built using a
  - stable and scalable architecture with room for future enhancements
  - such as integrated billing and reporting options.
  - 
  -
  - An SMS application can be characterized by subscribers sending
  - text-based commands to the platform and have the platform dispatch to
  - the right application instance. The application instance handles the
  - command, executing whatever application-logic defined by that
  - particular application, and usually generate one or more responses. It
  - should also be possible that the platform initiates messages to
  - subscribers as a result of a request sent by another subscriber as
  - well as be able to generate messages based on timers
  - 
  -
  - There also was a requirement to have the framework publish
  - application-specific data in XML to allow customers to display this
  - data on other media channels such as a website.
  - 
  -
  - Connecting the platform to external entities for the transmission and
  - reception of SMS messages such as SMSC's (SMS Centers distribute SMS
  - messages to and from mobile subscribers) and SMS Gateways (smart
  - front-end to one or more SMSC's unifying the method to reach
  - subscribers from multiple telecom operators) should be flexible enough
  - to be able to "plug-in" different protocols such as
  - HTTP/SMTP/CIMD/SMPP as needed.
  - 
  -
  - Component architecture 
  - 
  -
  - Early on in the project I decided to go for a distributed component
  - architecture. Individual components should be deployable on multiple
  - physical machines. This offers the required scalability and the
  - ability to define a convenient security scheme by running components
  - on segments of a network with differing outside visibility
  - requirements.
  - 
  -
  - As I started modelling this "world", I ended up with the following
  - components:
  - 
  -
  - 1. Application server
  - 
  -
  - Within this application server, multiple instances of multiple SMS
  - application instances should be running. The actual application-logic
  - is running within this component. This component provides two external
  - services:
  - 
  -
  - - handleMessage(CommandRequest)
  - 
  -
  - This service takes an instance of a CommandRequest object and runs the
  - command in the appropriate application instance.
  - 
  -
  - - handleTimer(Timer)
  - 
  -
  - This services handles expiry of a timer set by the application-logic
  - of an SMS application.
  - 
  -
  - - getView
  - 
  -
  - This service allows a client to retrieve application-defined views in
  - XML.
  - 
  -
  - 
  -
  - 2. Timer service
  - 
  -
  - A persistent service that maintains timers set by application
  - instances within the game application server and invokes the
  - handleTimer service of the game application services upon expiry of a
  - timer.
  - 
  -
  - External service offered:
  - 
  -
  - - setTimer(Timer)
  - 
  -
  - 
  -
  - 3. Virtual SMS gateway (VSMSC)
  - 
  -
  - This component handles communication with the outside world (the
  - external entities such as SMSC's and SMS gateways). This component is
  - split up in 2 subcomponents, one that handles input from mobile
  - subscribers and one that handles output to mobile subscribers. Each
  - subcomponent provides one service:
  - 
  -
  - - handleMessage(Message)
  - 
  -
  - The input component receives requests from the outside world using
  - pluggable subcomponents that handle protocol details, the output
  - component transmits requests to the outside world using pluggable
  - subcomponents that handle protocol details.
  - 
  -
  - 
  -
  - 4. XML Views service
  - 
  -
  - This component offers an HTTP interface to retrieve
  - application-specific views in XML. It uses customer-specific XSLT
  - stylesheets to transform the XML data. This component is largely based
  - on Matt Sergeant's AxKit. AxKit allow the source of your "document" to
  - be delivered by your own provider class by subclassing off of
  - AxKit::Provider. My provider class talks to the application server's
  - getView service while AxKit performs its miracles with all kinds of
  - transformation options.
  - 
  -
  - 
  -
  - 
  -
  - Components Figure 1 System components
  - 
  -
  - 
  -
  - Apache/mod_perl as a component container
  - 
  -
  - When thinking about how to implement all this I was tempted to look
  - into doing it with some J2EE-thingy. However, there was this
  - time-constraint as well as a constraint on available programmer-hands:
  - I had one freelance programmer for 20 days and I had to arrange the
  - whole physical part (get the hardware, a co-location site etc.). Then
  - it struck me that this application server really looked like a vanilla
  - regular mod_perl web application: receive request from user, process,
  - send back reply. No html though, but Message objects that could be
  - serialized/deserialized from text strings. There were of course some
  - differences: the reply is not sent back inline (i.e. upon reception of
  - a request via SMS, you can't "reply"; you have to create a new message
  - and send that to the originator of the request) and there also was the
  - timer service: I can't make Apache/mod_perl do work without having it
  - received a user-initiated request.
  - 
  -
  - The good thing was I've been doing Apache/mod_perl for some years now
  - so I knew beforehand I could create a schedule acceptable from the
  - business point of view that was also feasible based on experience with
  - the technology.
  - 
  -
  - So, for each component except the timer service, I defined separate
  - Apache/mod_perl instances, one for the application server, one for the
  - SMS output component, one for the SMS input component and one for the
  - XML Views component.
  - 
  -
  - Each instance defines a URL for each service that the component
  - running in the instance provides.
  - 
  -
  - Component communication 
  - 
  -
  - I took a shortcut here. I wanted to go for SOAP here as it seems a
  - natural fit. It will allow me to move components to other languages
  - (management and marketing still seems hung up on java) fairly easy. My
  - personal experiences with SOAP on earlier projects weren't too good
  - and I just couldn't fit playing with SOAP into my schedule. So I took
  - my old friends LWP::UserAgent, HTTP::Request and Storable to handle
  - this part (perl object instance -> Storable freeze -> HTTP post ->
  - Storable thaw -> perl object instance).
  - 
  -
  - The good thing is that this actually is a minor part of the whole
  - system and I know I can put SOAP in easily when the need arises.
  - 
  -
  - "Breaking the chain"
  - 
  -
  - I did make one mistake in the beginning: all service calls were
  - synchronous. The initial HTTP request would not return until after the
  - whole chain of execution was done. With possibly long running actions
  - in the server component, this was not good. I had to find a way to
  - execute the actual code *after* closing the connection to the
  - client. Luckily, Apache/mod_perl came to the rescue. It allows you to
  - set a callback that executes after the HTTP responses are sent back to
  - the client and after it closes the TCP/IP connection.
  - 
  -
  - Result
  - 
  -
  - We had the platform in place in about 6 weeks, starting with
  - absolutely nothing: no hardware, no development environment, no
  - technology choices made beforehand. Based on former experience, the
  - decision to go with a LAMP architecture (Linux, Apache, MySQL, Perl)
  - running on fairly cheap intel boxen was made quickly. MySQL was, and
  - is, not on my wishlist, but the whole battle of moving Oracle in would
  - have been both a time as well as a money killer, either of which we
  - didn't have a lot of at the time.
  - 
  -
  - Aside from having one production SMS application (a mobile SMS game),
  - I've done a prototype SMS application on this platform to check if it
  - really is easy to create new apps. It took me about 4 hours to
  - implement a "SMS unix commandline" application: I can login to the
  - application server using SMS, send Unix commands with my mobile phone
  - and receive their output (make sure your command doesn't generate more
  - than 160 characters though). The application also maintains state such
  - as the working directory I'm in at any given time.
  - 
  -
  - Performance is 'good enough' with the platform running on 2 fairly
  - cheap Intel boxen, it handles 40 to 60 incoming request per second. As
  - I haven't spent one second on optimization yet (anyone know the
  - command to create an index in MySQL?), that number is fine for me. I
  - did put 1 gigabyte in each machine though as the Apache child
  - processes eat up quite some memory.
  - 
  -
  - 
  -
  - Future enhancements and considerations
  - SOAP
  - 
  -
  - I really want SOAP. It just seems to make sense to do so: it was
  - invented for doing stuff like this and I like the concept of WSDL. It
  - allows you to define the interface in an XML file so clients "know"
  - what type of parameters the service needs as well as the return
  - parameter types.
  - 
  -
  - SOAP will also allow new components that are not perl. SOAP is
  - available in a lot of languages and integration of the various SOAP
  - implementations is getting better every day (see here ).
  - 
  -
  - 
  -
  - Framework for service-based architecture
  - 
  -
  - I'd like to extract the code that handles the communication between
  - the components in the current system and create a generic framework
  - that allows one to easily create an Apache/mod_perl-based components
  - container. The available services would be registered in httpd.conf
  - and there shoud be a service-discovery mechanism. On the client side,
  - I'm thinking about something that makes it easy to create client-side
  - stubs. Stay tuned...
  - 
  -
  - 
  -
  - Apache/mod_perl 2.0
  - 
  -
  - This looks very promising to create generic components containers. It
  - is very easy to create non-HTTP based services with Apache 2.0 with
  - mod_perl's 2.0 support for writing protocol modules in perl. Also, the
  - various multi-process models (most notably threading) available in
  - Apache 2.0 should result in better performance or at least more
  - choices as far as the process model is concerned.
  - 
  -
  - 
  -
  - Lamp
  - 
  -
  - I'm still a little unsure about LAMP. Can we move to relatively cheap
  - hardware and a free OS when we were used to (very) expensive HP, Sun
  - or IBM hardware and get away with it? Personal experience and what
  - I've read from others seems to indicate we can. Experience will tell,
  - and if it breaks, moving the platform to either of the above three
  - should be a no-brainer. We live in interesting times.
  - 
  -
  - 
  -
  +  Preface
  +  
  +  This is a story about how about I've used a combination of perl,
  +  Apache and mod_perl to create a component-based service architecture
  +  that implements a platform for building SMS applications. By reusing
  +  capabilities offered by Apache/mod_perl I saved a lot of time
  +  developing the system. The strong OO features of perl that I used
  +  enabled me to build a very flexible system as well to cope with future
  +  requirements. We had the platform in place in about 6 weeks, starting
  +  with absolutely nothing: no hardware, no development environment, no
  +  technology choices made beforehand.
  +  
  +  Introduction
  +  
  +  The purpose of the system to be developed was to provide a server
  +  platform on top of which arbitrary SMS (Short Message Service)
  +  applications can be developed quickly. It should be built using a
  +  stable and scalable architecture with room for future enhancements
  +  such as integrated billing and reporting options.
  +  
  +  An SMS application can be characterized by subscribers sending
  +  text-based commands to the platform and have the platform dispatch to
  +  the right application instance. The application instance handles the
  +  command, executing whatever application-logic defined by that
  +  particular application, and usually generate one or more responses. It
  +  should also be possible that the platform initiates messages to
  +  subscribers as a result of a request sent by another subscriber as
  +  well as be able to generate messages based on timers
  +  
  +  There also was a requirement to have the framework publish
  +  application-specific data in XML to allow customers to display this
  +  data on other media channels such as a website.
  +  
  +  Connecting the platform to external entities for the transmission and
  +  reception of SMS messages such as SMSC's (SMS Centers distribute SMS
  +  messages to and from mobile subscribers) and SMS Gateways (smart
  +  front-end to one or more SMSC's unifying the method to reach
  +  subscribers from multiple telecom operators) should be flexible enough
  +  to be able to "plug-in" different protocols such as
  +  HTTP/SMTP/CIMD/SMPP as needed.
  +  
  +  Component architecture 
  +  
  +  Early on in the project I decided to go for a distributed component
  +  architecture. Individual components should be deployable on multiple
  +  physical machines. This offers the required scalability and the
  +  ability to define a convenient security scheme by running components
  +  on segments of a network with differing outside visibility
  +  requirements.
  +  
  +  As I started modelling this "world", I ended up with the following
  +  components:
  +  
  +  1. Application server
  +  
  +  Within this application server, multiple instances of multiple SMS
  +  application instances should be running. The actual application-logic
  +  is running within this component. This component provides two external
  +  services:
  +  
  +  - handleMessage(CommandRequest)
  +  
  +  This service takes an instance of a CommandRequest object and runs the
  +  command in the appropriate application instance.
  +  
  +  - handleTimer(Timer)
  +  
  +  This services handles expiry of a timer set by the application-logic
  +  of an SMS application.
  +  
  +  - getView
  +  
  +  This service allows a client to retrieve application-defined views in
  +  XML.
  +  
  +  
  +  2. Timer service
  +  
  +  A persistent service that maintains timers set by application
  +  instances within the game application server and invokes the
  +  handleTimer service of the game application services upon expiry of a
  +  timer.
  +  
  +  External service offered:
  +  
  +  - setTimer(Timer)
  +  
  +  
  +  3. Virtual SMS gateway (VSMSC)
  +  
  +  This component handles communication with the outside world (the
  +  external entities such as SMSC's and SMS gateways). This component is
  +  split up in 2 subcomponents, one that handles input from mobile
  +  subscribers and one that handles output to mobile subscribers. Each
  +  subcomponent provides one service:
  +  
  +  - handleMessage(Message)
  +  
  +  The input component receives requests from the outside world using
  +  pluggable subcomponents that handle protocol details, the output
  +  component transmits requests to the outside world using pluggable
  +  subcomponents that handle protocol details.
  +  
  +  
  +  4. XML Views service
  +  
  +  This component offers an HTTP interface to retrieve
  +  application-specific views in XML. It uses customer-specific XSLT
  +  stylesheets to transform the XML data. This component is largely based
  +  on Matt Sergeant's AxKit. AxKit allow the source of your "document" to
  +  be delivered by your own provider class by subclassing off of
  +  AxKit::Provider. My provider class talks to the application server's
  +  getView service while AxKit performs its miracles with all kinds of
  +  transformation options.
  +  
  +  
  +  
  +  Components Figure 1 System components
  +  
  +  
  +  Apache/mod_perl as a component container
  +  
  +  When thinking about how to implement all this I was tempted to look
  +  into doing it with some J2EE-thingy. However, there was this
  +  time-constraint as well as a constraint on available programmer-hands:
  +  I had one freelance programmer for 20 days and I had to arrange the
  +  whole physical part (get the hardware, a co-location site etc.). Then
  +  it struck me that this application server really looked like a vanilla
  +  regular mod_perl web application: receive request from user, process,
  +  send back reply. No html though, but Message objects that could be
  +  serialized/deserialized from text strings. There were of course some
  +  differences: the reply is not sent back inline (i.e. upon reception of
  +  a request via SMS, you can't "reply"; you have to create a new message
  +  and send that to the originator of the request) and there also was the
  +  timer service: I can't make Apache/mod_perl do work without having it
  +  received a user-initiated request.
  +  
  +  The good thing was I've been doing Apache/mod_perl for some years now
  +  so I knew beforehand I could create a schedule acceptable from the
  +  business point of view that was also feasible based on experience with
  +  the technology.
  +  
  +  So, for each component except the timer service, I defined separate
  +  Apache/mod_perl instances, one for the application server, one for the
  +  SMS output component, one for the SMS input component and one for the
  +  XML Views component.
  +  
  +  Each instance defines a URL for each service that the component
  +  running in the instance provides.
  +  
  +  Component communication 
  +  
  +  I took a shortcut here. I wanted to go for SOAP here as it seems a
  +  natural fit. It will allow me to move components to other languages
  +  (management and marketing still seems hung up on java) fairly easy. My
  +  personal experiences with SOAP on earlier projects weren't too good
  +  and I just couldn't fit playing with SOAP into my schedule. So I took
  +  my old friends LWP::UserAgent, HTTP::Request and Storable to handle
  +  this part (perl object instance -> Storable freeze -> HTTP post ->
  +  Storable thaw -> perl object instance).
  +  
  +  The good thing is that this actually is a minor part of the whole
  +  system and I know I can put SOAP in easily when the need arises.
  +  
  +  "Breaking the chain"
  +  
  +  I did make one mistake in the beginning: all service calls were
  +  synchronous. The initial HTTP request would not return until after the
  +  whole chain of execution was done. With possibly long running actions
  +  in the server component, this was not good. I had to find a way to
  +  execute the actual code *after* closing the connection to the
  +  client. Luckily, Apache/mod_perl came to the rescue. It allows you to
  +  set a callback that executes after the HTTP responses are sent back to
  +  the client and after it closes the TCP/IP connection.
  +  
  +  Result
  +  
  +  We had the platform in place in about 6 weeks, starting with
  +  absolutely nothing: no hardware, no development environment, no
  +  technology choices made beforehand. Based on former experience, the
  +  decision to go with a LAMP architecture (Linux, Apache, MySQL, Perl)
  +  running on fairly cheap intel boxen was made quickly. MySQL was, and
  +  is, not on my wishlist, but the whole battle of moving Oracle in would
  +  have been both a time as well as a money killer, either of which we
  +  didn't have a lot of at the time.
  +  
  +  Aside from having one production SMS application (a mobile SMS game),
  +  I've done a prototype SMS application on this platform to check if it
  +  really is easy to create new apps. It took me about 4 hours to
  +  implement a "SMS unix commandline" application: I can login to the
  +  application server using SMS, send Unix commands with my mobile phone
  +  and receive their output (make sure your command doesn't generate more
  +  than 160 characters though). The application also maintains state such
  +  as the working directory I'm in at any given time.
  +  
  +  Performance is 'good enough' with the platform running on 2 fairly
  +  cheap Intel boxen, it handles 40 to 60 incoming request per second. As
  +  I haven't spent one second on optimization yet (anyone know the
  +  command to create an index in MySQL?), that number is fine for me. I
  +  did put 1 gigabyte in each machine though as the Apache child
  +  processes eat up quite some memory.
  +  
  +  
  +  Future enhancements and considerations
  +  SOAP
  +  
  +  I really want SOAP. It just seems to make sense to do so: it was
  +  invented for doing stuff like this and I like the concept of WSDL. It
  +  allows you to define the interface in an XML file so clients "know"
  +  what type of parameters the service needs as well as the return
  +  parameter types.
  +  
  +  SOAP will also allow new components that are not perl. SOAP is
  +  available in a lot of languages and integration of the various SOAP
  +  implementations is getting better every day (see here ).
  +  
  +  
  +  Framework for service-based architecture
  +  
  +  I'd like to extract the code that handles the communication between
  +  the components in the current system and create a generic framework
  +  that allows one to easily create an Apache/mod_perl-based components
  +  container. The available services would be registered in httpd.conf
  +  and there shoud be a service-discovery mechanism. On the client side,
  +  I'm thinking about something that makes it easy to create client-side
  +  stubs. Stay tuned...
  +  
  +  
  +  Apache/mod_perl 2.0
  +  
  +  This looks very promising to create generic components containers. It
  +  is very easy to create non-HTTP based services with Apache 2.0 with
  +  mod_perl's 2.0 support for writing protocol modules in perl. Also, the
  +  various multi-process models (most notably threading) available in
  +  Apache 2.0 should result in better performance or at least more
  +  choices as far as the process model is concerned.
  +  
  +  
  +  Lamp
  +  
  +  I'm still a little unsure about LAMP. Can we move to relatively cheap
  +  hardware and a free OS when we were used to (very) expensive HP, Sun
  +  or IBM hardware and get away with it? Personal experience and what
  +  I've read from others seems to indicate we can. Experience will tell,
  +  and if it breaks, moving the platform to either of the above three
  +  should be a no-brainer. We live in interesting times.
  +  
  +  
   
   
   =cut
  
  
  
  1.3       +23 -27    modperl-docs/src/outstanding/success_stories/tamu.pod
  
  Index: tamu.pod
  ===================================================================
  RCS file: /home/cvs/modperl-docs/src/outstanding/success_stories/tamu.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- tamu.pod  14 Apr 2002 06:40:13 -0000      1.2
  +++ tamu.pod  19 May 2002 08:16:52 -0000      1.3
  @@ -21,33 +21,29 @@
   
   =back
   
  - I'd like to share my recent success story.  Over the last four days,
  - students living on campus here at Texas A&M University have had to go
  - through what is called "contract renewal," where they indicate whether
  - or not they will continue to live on campus in the coming academic
  - year.  In the past, this has all been done very tedioulsy with
  - scantron forms and human-eye error correction.  This year, the system
  - was moved to the web.  The code was user-proofed to prevent the usual
  - mistakes, with the addition of some fancy authentication and session
  - tracking mechanisms. 
  - 
  -
  - The system was originally written using ActiveWare PerlScript on IIS
  - 4.0, but when I was done, it was glaringly obvious that it was far too
  - slow.  In only 14 days, we ported the code to Apache and mod_perl,
  - with the same NT platform underneath.  The performance
  - (transactions/sec) was more than 60 times better!!!
  - 
  -
  - The system went online Friday night, and in the course of its 4-day run,
  - it served 400,000 documents, the bulk of which were generated on the
  - fly. Ten thousand people used the system, and all went without a hitch.
  - 
  -
  - Here's to mod_perl!
  - Jeffrey
  - 
  -
  +  I'd like to share my recent success story.  Over the last four days,
  +  students living on campus here at Texas A&M University have had to go
  +  through what is called "contract renewal," where they indicate whether
  +  or not they will continue to live on campus in the coming academic
  +  year.  In the past, this has all been done very tedioulsy with
  +  scantron forms and human-eye error correction.  This year, the system
  +  was moved to the web.  The code was user-proofed to prevent the usual
  +  mistakes, with the addition of some fancy authentication and session
  +  tracking mechanisms. 
  +  
  +  The system was originally written using ActiveWare PerlScript on IIS
  +  4.0, but when I was done, it was glaringly obvious that it was far too
  +  slow.  In only 14 days, we ported the code to Apache and mod_perl,
  +  with the same NT platform underneath.  The performance
  +  (transactions/sec) was more than 60 times better!!!
  +  
  +  The system went online Friday night, and in the course of its 4-day run,
  +  it served 400,000 documents, the bulk of which were generated on the
  +  fly. Ten thousand people used the system, and all went without a hitch.
  +  
  +  Here's to mod_perl!
  +  Jeffrey
  +  
   
   
   =cut
  
  
  
  1.3       +30 -39    modperl-docs/src/outstanding/success_stories/tgix.pod
  
  Index: tgix.pod
  ===================================================================
  RCS file: /home/cvs/modperl-docs/src/outstanding/success_stories/tgix.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- tgix.pod  14 Apr 2002 06:40:13 -0000      1.2
  +++ tgix.pod  19 May 2002 08:16:52 -0000      1.3
  @@ -21,45 +21,36 @@
   
   =back
   
  - I have 2 success stories to share:
  - 
  -
  - 1. I'm finishing a web-based mod_perl/javascript (client side) contact
  - management system with heavy Apache::DBI and Registry use. This system
  - is for a "fortune-500 pharmaceudical (sp?) giant". It is replacing an
  - unmanageable (their description) Lotus Domino application.
  - 
  -
  - 2. It production, a mod_perl server for gathering web traffic statistics
  - for an up and coming web traffic reporting company. The mod_perl
  - enhanced server gathers data from thousands of client and server based
  - proxies around the world. Data is stored in Oracle using Apache::DBI.
  - This replaced a poorly designed PHP server (poor choice using php in
  - this scenario imho).
  - 
  -
  - 
  -
  - Rick
  - 
  -
  - 
  -
  - 
  -
  - --
  - _______________________________________________________________
  - 
  -
  - Rick Mangi                                  Tel: (212) 972-2030
  - Thaumaturgix, Inc.                          Fax: (212) 972-2003
  - 317 Madison Avenue, Suite 1615              [EMAIL PROTECTED]
  - New York, NY 10017                          http://www.tgix.com
  -           thau'ma-tur-gy, n. the working of miracles
  -   "Perl is a state of mind as much as it is a language grammar"
  - _______________________________________________________________
  - 
  -
  +  I have 2 success stories to share:
  +  
  +  1. I'm finishing a web-based mod_perl/javascript (client side) contact
  +  management system with heavy Apache::DBI and Registry use. This system
  +  is for a "fortune-500 pharmaceudical (sp?) giant". It is replacing an
  +  unmanageable (their description) Lotus Domino application.
  +  
  +  2. It production, a mod_perl server for gathering web traffic statistics
  +  for an up and coming web traffic reporting company. The mod_perl
  +  enhanced server gathers data from thousands of client and server based
  +  proxies around the world. Data is stored in Oracle using Apache::DBI.
  +  This replaced a poorly designed PHP server (poor choice using php in
  +  this scenario imho).
  +  
  +  
  +  Rick
  +  
  +  
  +  
  +  --
  +  _______________________________________________________________
  +  
  +  Rick Mangi                                  Tel: (212) 972-2030
  +  Thaumaturgix, Inc.                          Fax: (212) 972-2003
  +  317 Madison Avenue, Suite 1615              [EMAIL PROTECTED]
  +  New York, NY 10017                          http://www.tgix.com
  +            thau'ma-tur-gy, n. the working of miracles
  +    "Perl is a state of mind as much as it is a language grammar"
  +  _______________________________________________________________
  +  
   
   
   =cut
  
  
  
  1.3       +29 -38    
modperl-docs/src/outstanding/success_stories/winamillion.msn.com.pod
  
  Index: winamillion.msn.com.pod
  ===================================================================
  RCS file: 
/home/cvs/modperl-docs/src/outstanding/success_stories/winamillion.msn.com.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- winamillion.msn.com.pod   14 Apr 2002 06:40:13 -0000      1.2
  +++ winamillion.msn.com.pod   19 May 2002 08:16:52 -0000      1.3
  @@ -21,44 +21,35 @@
   
   =back
   
  - >>>>> "LS" == Lincoln Stein <[EMAIL PROTECTED]> writes:
  - 
  -
  - LS> I'm looking for more mod_perl success stories like the one that Jeff
  - LS> posted the other day.  They will be used for vignettes in an
  - 
  -
  - 
  -
  - The Microsoft Network promotion running to increase subscribership
  - located at http://winamillion.msn.com/ is run on mod_perl.  The
  - contest ends at the end of the month, so check it out before then ;-)
  - 
  -
  - Anyhow, the system is currently pounding nearly 10 million hits per
  - week to the web pages, of which about 1 million go through mod_perl.
  - Each of those accesses runs through on averate 3 SQL queries to a
  - MySQL database and 2 references to DB_File databases.
  - 
  -
  - There is no way in heck it would have run without mod_perl.  By the
  - way, this is using Squid in accelerator mode, as I described in the
  - tuning docs.  Squid handles about 93% of the content (the static and
  - mostly static stuff).
  - 
  -
  -                                                                 v.
  - 
  -
  - --
  - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  - Vivek Khera, Ph.D.                Khera Communications, Inc.
  - Internet: khera@kciLink.com       Rockville, MD       +1-301-258-8292
  - PGP/MIME spoken here              http://www.kciLink.com/home/khera/
  - 
  -
  - 
  -
  +  >>>>> "LS" == Lincoln Stein <[EMAIL PROTECTED]> writes:
  +  
  +  LS> I'm looking for more mod_perl success stories like the one that Jeff
  +  LS> posted the other day.  They will be used for vignettes in an
  +  
  +  
  +  The Microsoft Network promotion running to increase subscribership
  +  located at http://winamillion.msn.com/ is run on mod_perl.  The
  +  contest ends at the end of the month, so check it out before then ;-)
  +  
  +  Anyhow, the system is currently pounding nearly 10 million hits per
  +  week to the web pages, of which about 1 million go through mod_perl.
  +  Each of those accesses runs through on averate 3 SQL queries to a
  +  MySQL database and 2 references to DB_File databases.
  +  
  +  There is no way in heck it would have run without mod_perl.  By the
  +  way, this is using Squid in accelerator mode, as I described in the
  +  tuning docs.  Squid handles about 93% of the content (the static and
  +  mostly static stuff).
  +  
  +                                                                  v.
  +  
  +  --
  +  =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  +  Vivek Khera, Ph.D.                Khera Communications, Inc.
  +  Internet: khera@kciLink.com       Rockville, MD       +1-301-258-8292
  +  PGP/MIME spoken here              http://www.kciLink.com/home/khera/
  +  
  +  
   
   
   =cut
  
  
  
  1.3       +40 -50    modperl-docs/src/outstanding/success_stories/wmboerse.pod
  
  Index: wmboerse.pod
  ===================================================================
  RCS file: 
/home/cvs/modperl-docs/src/outstanding/success_stories/wmboerse.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- wmboerse.pod      14 Apr 2002 06:40:13 -0000      1.2
  +++ wmboerse.pod      19 May 2002 08:16:52 -0000      1.3
  @@ -21,56 +21,46 @@
   
   =back
   
  - Hello,
  - 
  -
  - another mod_perl success story:
  - 
  -
  - Have a look at www.wmboerse.de - it's a german real-time 
  - stock exchange simulation game for the soccer world championship.
  - Participation is free and there are some nice prices to be won.
  - 
  -
  - The technology used is Apache, mod_perl, DBI and DB::Adabas. The
  - project is sponsored by Sun Microsystems (they are supplying
  - a Sun Ultra Enterprise 450 with 3 CPUs @ 300Mhz and 1GByte RAM at 
  - the moment), UUNET Germany (bandwidth) and Software AG 
  - (Adabas-D database).
  - 
  -
  - The server is a real beast. It's amazingly fast. The game is running
  - since Sunday. At the moment, there are 2344 players, 183 of them
  - have been active in the last 10 minutes. We are expecting a large
  - increase in players as soon as national television reports about
  - the game.
  - 
  -
  - The load is at 0.80, there are 123 processes, still 400MB RAM free
  - (we plugged in 512 MB today, previously the box had 512MB).
  - We will increase the maximum number of child processes if we get 
  - close to the current limit (100).
  - 
  -
  - Here's some data from the Apache status page:
  - Server uptime: 4 hours 10 minutes 58 seconds
  - Total accesses: 254671 - Total Traffic: 902.9 MB (!)
  - CPU Usage: u27.68 s10.98 cu2.03 cs.63 - .274% CPU load
  - 16.9 requests/sec - 61.4 kB/second - 3717 B/request
  - 18 requests currently being processed, 14 idle servers 
  - 
  -
  - Anyway, grab a browser and have a look. The project is a great success
  - so far, and it couldn't have been done this easily and quickly without 
  - mod_perl and the other great free software out there.
  - 
  -
  - Thanks and enjoy!
  - 
  -
  - -Sven Neuhaus
  - 
  -
  +  Hello,
  +  
  +  another mod_perl success story:
  +  
  +  Have a look at www.wmboerse.de - it's a german real-time 
  +  stock exchange simulation game for the soccer world championship.
  +  Participation is free and there are some nice prices to be won.
  +  
  +  The technology used is Apache, mod_perl, DBI and DB::Adabas. The
  +  project is sponsored by Sun Microsystems (they are supplying
  +  a Sun Ultra Enterprise 450 with 3 CPUs @ 300Mhz and 1GByte RAM at 
  +  the moment), UUNET Germany (bandwidth) and Software AG 
  +  (Adabas-D database).
  +  
  +  The server is a real beast. It's amazingly fast. The game is running
  +  since Sunday. At the moment, there are 2344 players, 183 of them
  +  have been active in the last 10 minutes. We are expecting a large
  +  increase in players as soon as national television reports about
  +  the game.
  +  
  +  The load is at 0.80, there are 123 processes, still 400MB RAM free
  +  (we plugged in 512 MB today, previously the box had 512MB).
  +  We will increase the maximum number of child processes if we get 
  +  close to the current limit (100).
  +  
  +  Here's some data from the Apache status page:
  +  Server uptime: 4 hours 10 minutes 58 seconds
  +  Total accesses: 254671 - Total Traffic: 902.9 MB (!)
  +  CPU Usage: u27.68 s10.98 cu2.03 cs.63 - .274% CPU load
  +  16.9 requests/sec - 61.4 kB/second - 3717 B/request
  +  18 requests currently being processed, 14 idle servers 
  +  
  +  Anyway, grab a browser and have a look. The project is a great success
  +  so far, and it couldn't have been done this easily and quickly without 
  +  mod_perl and the other great free software out there.
  +  
  +  Thanks and enjoy!
  +  
  +  -Sven Neuhaus
  +  
   
   
   =cut
  
  
  
  1.3       +8 -9      
modperl-docs/src/outstanding/success_stories/www.afp-direct.com.pod
  
  Index: www.afp-direct.com.pod
  ===================================================================
  RCS file: 
/home/cvs/modperl-docs/src/outstanding/success_stories/www.afp-direct.com.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- www.afp-direct.com.pod    14 Apr 2002 06:40:13 -0000      1.2
  +++ www.afp-direct.com.pod    19 May 2002 08:16:52 -0000      1.3
  @@ -21,15 +21,14 @@
   
   =back
   
  - http://www.afp-direct.com hosts the Agence France-Presse's online
  - database of news stories and photographs. Agence France-Presse is the
  - world's third largest news agency. The online database, available
  - through subscription, contains over 6.5 million stories and
  - photographs in a full-text searchable database. The web site makes the
  - most of mod_perl and its array of modules such as persistent
  - connections to back-end servers and custom authentication.
  - 
  -
  +  http://www.afp-direct.com hosts the Agence France-Presse's online
  +  database of news stories and photographs. Agence France-Presse is the
  +  world's third largest news agency. The online database, available
  +  through subscription, contains over 6.5 million stories and
  +  photographs in a full-text searchable database. The web site makes the
  +  most of mod_perl and its array of modules such as persistent
  +  connections to back-end servers and custom authentication.
  +  
   
   
   =cut
  
  
  
  1.3       +10 -11    
modperl-docs/src/outstanding/success_stories/www.bivio.com.pod
  
  Index: www.bivio.com.pod
  ===================================================================
  RCS file: 
/home/cvs/modperl-docs/src/outstanding/success_stories/www.bivio.com.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- www.bivio.com.pod 14 Apr 2002 06:40:13 -0000      1.2
  +++ www.bivio.com.pod 19 May 2002 08:16:52 -0000      1.3
  @@ -29,17 +29,16 @@
   
   =back
   
  - bivio.com is a web-delivered application written entirely in perl
  - which provides complete accounting, tax preparation, automatic
  - downloads of broker transactions, message boards, file sharing, email
  - aliases, and more.  Apache/mod_perl on Linux has functioned incredibly
  - reliably with +99% uptime.
  - 
  -
  - Our declarative MVCF application framework (250 perl classes) is
  - available under the Artistic License from http://www.bivio.net
  - This includes a demo application http://petshop.bivio.net which
  - is a more concise implementation of J2EE's Blueprint Architecture.
  +  bivio.com is a web-delivered application written entirely in perl
  +  which provides complete accounting, tax preparation, automatic
  +  downloads of broker transactions, message boards, file sharing, email
  +  aliases, and more.  Apache/mod_perl on Linux has functioned incredibly
  +  reliably with +99% uptime.
  +  
  +  Our declarative MVCF application framework (250 perl classes) is
  +  available under the Artistic License from http://www.bivio.net
  +  This includes a demo application http://petshop.bivio.net which
  +  is a more concise implementation of J2EE's Blueprint Architecture.
   
   
   =cut
  
  
  
  1.3       +50 -58    
modperl-docs/src/outstanding/success_stories/www.lind-waldock.com.pod
  
  Index: www.lind-waldock.com.pod
  ===================================================================
  RCS file: 
/home/cvs/modperl-docs/src/outstanding/success_stories/www.lind-waldock.com.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- www.lind-waldock.com.pod  14 Apr 2002 06:40:13 -0000      1.2
  +++ www.lind-waldock.com.pod  19 May 2002 08:16:52 -0000      1.3
  @@ -21,64 +21,56 @@
   
   =back
   
  - 30000 customers looking at live quotes, dynamic charts and news.
  - "[...] More importantly, mod_perl allowed us to work the webserver and
  - code around our design--not the other way around."
  - 
  -
  - > I'm looking for more mod_perl success stories like the one that Jeff
  - > posted the other day.  They will be used for vignettes in an
  - > introductory chapter of the book that Doug and I are writing.  If you
  - > have a story you'd like to share (particularly one in which mod_perl
  - > "defeats" one of its competitors) could you mail it to me or post it
  - > to the list?  For the vignettes we need some sort of identifying
  - > information, either along the lines of "a major Southwestern
  - > University" or "Kulturbox company of Berlin, Germany".
  - 
  -
  - We just completed a website for Lind-Waldock & Co.
  - (http://www.lind-waldock.com/), the world's largest discount commodities
  - trading firm. The site is to be used by their customers (>30,000) for
  - live and delayed quotes, dynamic charts, and news pertaining to the
  - futures industry, as well as access to their online order entry
  - system. The site will take quite a beating once all of their customers
  - transition to it from Lind's previous Windows application--plenty of live 
and
  - delayed data is auto-refreshed.
  - 
  -
  - Scenario: Client needed to develop a website that could authenticate
  - off their existing customer database, and many links needed to be
  - dynamically generated to reflect the level of service that the
  - customer subscribed to (this info also kept in the database). The
  - customer area had to be SSL enabled, fast, and support a slew of Perl
  - scripts that the quote vendor had already written. And of course, they
  - needed the whole thing yesterday.
  - 
  -
  - They already had Netscape Enterprise Server and we investigated some NSAPI
  - solutions but were terribly disappointed with what Netscape had to
  - offer. We did some tests and decided to run with Stronghold and
  - mod_perl. We wrote less than 10 lines of code to get the site
  - authenticating off the database using Apache_DBI and just a few more
  - to handle the dynamic URL generation.
  - 
  -
  - We began analysis on Dec 1, and delivered the completed site on Mar
  - 4--with 2 weeks off for Christmas, no less! Two days after release,
  - the site is averaging about 3 requests a second--and that is certain
  - to grow exponentially as more customers make the switch from the old
  - Windows application.
  - 
  -
  - More importantly, mod_perl allowed us to work the webserver and code
  - around our design--not the other way around.
  - 
  -
  - -Fitz
  - ___________________________________________________________________________
  - Brian W. Fitzpatrick        [EMAIL PROTECTED]        http://www.onShore.com/
  - 
  -
  +  30000 customers looking at live quotes, dynamic charts and news.
  +  "[...] More importantly, mod_perl allowed us to work the webserver and
  +  code around our design--not the other way around."
  +  
  +  > I'm looking for more mod_perl success stories like the one that Jeff
  +  > posted the other day.  They will be used for vignettes in an
  +  > introductory chapter of the book that Doug and I are writing.  If you
  +  > have a story you'd like to share (particularly one in which mod_perl
  +  > "defeats" one of its competitors) could you mail it to me or post it
  +  > to the list?  For the vignettes we need some sort of identifying
  +  > information, either along the lines of "a major Southwestern
  +  > University" or "Kulturbox company of Berlin, Germany".
  +  
  +  We just completed a website for Lind-Waldock & Co.
  +  (http://www.lind-waldock.com/), the world's largest discount commodities
  +  trading firm. The site is to be used by their customers (>30,000) for
  +  live and delayed quotes, dynamic charts, and news pertaining to the
  +  futures industry, as well as access to their online order entry
  +  system. The site will take quite a beating once all of their customers
  +  transition to it from Lind's previous Windows application--plenty of live 
and
  +  delayed data is auto-refreshed.
  +  
  +  Scenario: Client needed to develop a website that could authenticate
  +  off their existing customer database, and many links needed to be
  +  dynamically generated to reflect the level of service that the
  +  customer subscribed to (this info also kept in the database). The
  +  customer area had to be SSL enabled, fast, and support a slew of Perl
  +  scripts that the quote vendor had already written. And of course, they
  +  needed the whole thing yesterday.
  +  
  +  They already had Netscape Enterprise Server and we investigated some NSAPI
  +  solutions but were terribly disappointed with what Netscape had to
  +  offer. We did some tests and decided to run with Stronghold and
  +  mod_perl. We wrote less than 10 lines of code to get the site
  +  authenticating off the database using Apache_DBI and just a few more
  +  to handle the dynamic URL generation.
  +  
  +  We began analysis on Dec 1, and delivered the completed site on Mar
  +  4--with 2 weeks off for Christmas, no less! Two days after release,
  +  the site is averaging about 3 requests a second--and that is certain
  +  to grow exponentially as more customers make the switch from the old
  +  Windows application.
  +  
  +  More importantly, mod_perl allowed us to work the webserver and code
  +  around our design--not the other way around.
  +  
  +  -Fitz
  +  ___________________________________________________________________________
  +  Brian W. Fitzpatrick        [EMAIL PROTECTED]        
http://www.onShore.com/
  +  
   
   
   =cut
  
  
  
  1.3       +15 -18    
modperl-docs/src/outstanding/success_stories/www.mobile.de.pod
  
  Index: www.mobile.de.pod
  ===================================================================
  RCS file: 
/home/cvs/modperl-docs/src/outstanding/success_stories/www.mobile.de.pod,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- www.mobile.de.pod 14 Apr 2002 06:40:13 -0000      1.2
  +++ www.mobile.de.pod 19 May 2002 08:16:52 -0000      1.3
  @@ -25,24 +25,21 @@
   
   =back
   
  - All pages are dynamically created by a Linux cluster running Apache
  - with mod_perl from a MySQL database (even though some pages look
  - static).
  - 
  -
  - 151 Mio banner ads served from a small Linux cluster with Apache +
  - mod_perl connecting to a MySQL database
  - 
  -
  - mobile.de is one of the biggest online carmarkets in Germany. Its
  - services are aimed at both professional car dealers and private buyers
  - and sellers. Under the company's URL - www.mobile.de - individuals can
  - offer and search for cars free of charge. Professional dealers pay a
  - fee of EUR 101.24 per month. The fee entitles each dealer to list up
  - to 250 vehicles in the database.
  - 
  -
  - --Jan
  +  All pages are dynamically created by a Linux cluster running Apache
  +  with mod_perl from a MySQL database (even though some pages look
  +  static).
  +  
  +  151 Mio banner ads served from a small Linux cluster with Apache +
  +  mod_perl connecting to a MySQL database
  +  
  +  mobile.de is one of the biggest online carmarkets in Germany. Its
  +  services are aimed at both professional car dealers and private buyers
  +  and sellers. Under the company's URL - www.mobile.de - individuals can
  +  offer and search for cars free of charge. Professional dealers pay a
  +  fee of EUR 101.24 per month. The fee entitles each dealer to list up
  +  to 250 vehicles in the database.
  +  
  +  --Jan
   
   =cut
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to