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]