RE: [PHP] Best external app from php
| From: | Michael Sims | Date: | Wed, 30 Jun 2004 05:07:02 +0000 |
| Subject: | RE: [PHP] Best external app from php | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-189271@lists.php.net to get a copy of this message | ||
C.F. Scheidecker Antunes wrote:
> Hello all,
>
> I need to have a web application to call an external app that needs to
> execute on the background. (It is an *NIX server)
[...]
> My question is this:
>
> Is it better to write the external app in PHP or Java?
Assuming that you (or the developer(s) if not you) are just as
familiar/comfortable developing in Java as they are PHP, I would think the
most important factor would be code reuse. Is there now or will there ever
be a need to share business logic between this external application and the
web interface itself? If the answer is yes, or it's even possible that the
answer MAY be yes, I would highly suggest that you code both the web
interface and the external application in the same language, so you can
reference any business logic classes/functions created for one in the other.
A while back I developed a program that consisted of a traditional web
interface and a standalone command line script that gathered data from my
database, formatted it, and emailed it to subscribers based on their
pre-selected criteria. I used PHP for the web application but at the time I
decided that Perl was better suited for the command line script than PHP
was. *BIG* mistake. I ended up recoding a lot of already-developed
business logic for the command line script. Now maintenance on this program
is a nightmare. Anytime anything significant changes in the business logic
I have to basically implement the change twice. You may want to keep this
in mind, since it will be difficult if not impossible to share logic/code
between a PHP web app and an external Java program.
> If I write in PHP then I have to have a way to make the PHP not bound
> to time limitations as the operation might take a while.
That's easily accomplished. You can create a separate php-cli.ini file for
the standalone PHP binary and configure different limits for
max_execution_time and memory_limit.
> Which one would put a higher load to the processor, a PHP app or a
> Java one?
> Which one will take longer?
I'll leave these questions to someone else, as I have almost no Java
experience...
> Also, there might be more than 20 of these threads running on the
> server at the same time, hence my concern on which language the app
> should be writen.
Since these processes can be launched by the end user at will (from the
sound of your description), you may have a lot more than just 20 of them
running. It's very difficult to predict how end users will (ab)use your
program. Some people like to click refresh a lot, for example. :)
Depending on how many people have access to your application, you may want
to put a mechanism into place to impose a hard limit on the number of these
processes that can be active at any time, or you may open your server up to
an increased possibility of DoS attack. Just a thought...
HTH