Single PerlResponseHander for Web Application

Single PerlResponseHander for Web Application

am 19.07.2011 00:02:47 von Jerry Pereira

--bcaec52154fdddf1db04a85f28dd
Content-Type: text/plain; charset=ISO-8859-1

Hi,

I am new to mod_perl and would like to get some suggestion on my current
application design.

Following is the design:

Single PerlResponseHandler for my application, all requests will be
submitted to this handler, the handler will then dispatch the request to
appropriate sub-handlers based on the URI path.
Note: My path and handler mapping will be stored in a configuration file.

My configuration will look as follows -


SetHandler modperl
PerlResponseHandler MyPackage::MyHandler
PerlAuthenHandler MyPackage::MyAuthHandler



Psudocode in MyPackage::MyHandler:

------------------------------------

sub handler {
.....
.....

//Get the handler based on path
$sub_handler = getHandler($uripath) //e.g. /app/users
$sub_handler->handle($r, $session);
}

Please let me know of your views. I am not planning to use Catalyst or
existing frameworks as of now. I also thought of using Apache2::Dispatch,
but i believe it requires that each path has its own handler configured in
httpd.conf file (please correct me if I am wrong)

Thanks,
Jerry

--bcaec52154fdddf1db04a85f28dd
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hi,

I am new to mod_perl and=A0 would like to get some suggestion on=
my current application design.

Following is the design:

Sin=
gle PerlResponseHandler for my application, all requests will be submitted =
to this handler, the handler will then dispatch the request to appropriate =
sub-handlers based on the URI path.

Note: My path and handler mapping will be stored in a configuration file. <=
br>

My configuration will look as follows -

<Location /app> r>  =A0 SetHandler modperl
  =A0 PerlResponseHandler MyPackage::=
MyHandler
  =A0 PerlAuthenHandler MyPackage::MyAuthHandler
</L=
ocation>



Psudocode in MyPackage::MyHandler:

-------------------------=
-----------

sub handler {
  =A0 .....
  =A0 .....
<=
br>  =A0 //Get the handler based on path
  =A0 $sub_handler =3D=
getHandler($uripath) //e.g. /app/users

  =A0 $sub_handler->handle($r, $session);
}

Please let me =
know of your views. I am not planning to use Catalyst or existing framework=
s as of now. I also thought of using Apache2::Dispatch, but i believe it re=
quires that each path has its own handler configured in httpd.conf file (pl=
ease correct me if I am wrong)


Thanks,
Jerry


--bcaec52154fdddf1db04a85f28dd--

Re: Single PerlResponseHander for Web Application

am 19.07.2011 00:27:58 von Perrin Harkins

On Mon, Jul 18, 2011 at 6:02 PM, Jerry Pereira wrote:
> Single PerlResponseHandler for my application, all requests will be
> submitted to this handler, the handler will then dispatch the request to
> appropriate sub-handlers based on the URI path.

Sounds like Apache2::Dispatch to me.

> I also thought of using Apache2::Dispatch,
> but i believe it requires that each path has its own handler configured in
> httpd.conf file (please correct me if I am wrong)

You're confused about this one. Eliminating the need to add each
class to httpd.conf is the main reason that Dispatch exists.

- Perrin

Re: Single PerlResponseHander for Web Application

am 19.07.2011 11:55:44 von Dave Hodgkinson

On 18 Jul 2011, at 23:02, Jerry Pereira wrote:

> Please let me know of your views. I am not planning to use Catalyst or =
existing frameworks as of now.=20

Any reason? There are lightweight ones that play well with modern =
approaches
to plugins and multi-server environments.=

Re: Single PerlResponseHander for Web Application

am 19.07.2011 18:55:39 von Jerry Pereira

--bcaec5215ab74c7d2704a86efc2f
Content-Type: text/plain; charset=ISO-8859-1

I agree, but isn't the Handler tightly coupled to the URI? rather if i can
configure the mapping of URI and sub-handlers in a different configuration
file or database, it will be easier to handle URI changes.


On Mon, Jul 18, 2011 at 3:27 PM, Perrin Harkins wrote:

> On Mon, Jul 18, 2011 at 6:02 PM, Jerry Pereira
> wrote:
> > Single PerlResponseHandler for my application, all requests will be
> > submitted to this handler, the handler will then dispatch the request to
> > appropriate sub-handlers based on the URI path.
>
> Sounds like Apache2::Dispatch to me.
>
> > I also thought of using Apache2::Dispatch,
> > but i believe it requires that each path has its own handler configured
> in
> > httpd.conf file (please correct me if I am wrong)
>
> You're confused about this one. Eliminating the need to add each
> class to httpd.conf is the main reason that Dispatch exists.
>
> - Perrin
>



--
Your clothes may be the latest in style but you aint completely dressed
until you wear a smile!
Keep smiling : )

--bcaec5215ab74c7d2704a86efc2f
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

I agree, but isn't the Handler tightly coupled to the URI? rather if i =
can configure the mapping of URI and sub-handlers in a different configurat=
ion file or database, it will be easier to handle URI changes.



On Mon, Jul 18, 2011 at 3:27 PM, Perrin Harkins =
<perrin@elem.com >> wrote:
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
On Mon, Jul 18, 2011 at 6:02 PM, Jerry Pereira < f=3D"mailto:online.jerry@gmail.com">online.jerry@gmail.com> wrote: r>
> Single PerlResponseHandler for my application, all requests will be >
> submitted to this handler, the handler will then dispatch the request =
to

> appropriate sub-handlers based on the URI path.



Sounds like Apache2::Dispatch to me.



> I also thought of using Apache2::Dispatch,

> but i believe it requires that each path has its own handler configure=
d in

> httpd.conf file (please correct me if I am wrong)



You're confused about this one. =A0Eliminating the need to add ea=
ch

class to httpd.conf is the main reason that Dispatch exists.



- Perrin




--
Your clothes may=
be the latest in style but you aint completely dressed until you wear a sm=
ile!
Keep smiling : )


--bcaec5215ab74c7d2704a86efc2f--

Re: Single PerlResponseHander for Web Application

am 19.07.2011 19:46:21 von Perrin Harkins

On Tue, Jul 19, 2011 at 12:55 PM, Jerry Pereira wrote:
> I agree, but isn't the Handler tightly coupled to the URI?

Yes.

> rather if i can
> configure the mapping of URI and sub-handlers in a different configuration
> file or database, it will be easier to handle URI changes.

I don't see any advantage to doing it in a different config file or
database over just putting it in httpd.conf. Are you thinking you
would avoid restarts? You'd probably want to restart anyway when you
deploy new code.

- Perrin

Re: Single PerlResponseHander for Web Application

am 19.07.2011 21:21:52 von Perrin Harkins

On Tue, Jul 19, 2011 at 2:02 PM, Jerry Pereira wrote:
> Thats right, i was thinking of avoiding restarts and having single place for
> mapping URIs to classes.

You can get that to some degree if you use Apache2::Reload and avoid
doing anything too strange in your code. The thing is, your best
defense against memory bloat is copy-on-write, and that will get
crushed if you do a lot of reloading code without a restart. Maybe
not an issue for you, depending on how big your site is.

- Perrin