You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by Pae Choi <pa...@earthlink.net> on 2003/04/20 10:05:36 UTC

How Loosely Coupled or Clearly Seperated

First of all, my appologies if this has been asked before and discussed before.

I do clearly see the MVC pattern in the Struts framework, and I have no
problem to seperate the Web(e.g., JSP, ActionServlet, et. al.), Business
Service(e.g., Action -- The WHAT part), and Business Logic(e.g., JavaBeans
which takes care about the detail of HOW part) tiers on a single host.

Then, is Struts also capable to separate all above three tiers on three
separate machines. If not, is it capable to separate on two different
machines, e.g., Web tier on a machine and the Bus. Service and Bus.
Logic tiers on the other machine. But the machine running the either Bus.
Service or Bus. Logic tier or both tiers MUST not running the Web server
nor app. server.

Any comments?

Regards,


Pae


Re: How Loosely Coupled or Clearly Seperated

Posted by Pae Choi <pa...@earthlink.net>.
> Ask on user list.

This is more related to the design issue. Why would you think
this has to post the user list.


> Struts does not itself support distributed processing.

That's what I kinda expected.

> In general, this is a bad idea.

I wonder what determined you that the physical loosely-coupled model
is so bad about.

Thanks for your comment.


Pae

>
> .V
>
> Pae Choi wrote:
> > First of all, my appologies if this has been asked before and discussed
before.
> >
> > I do clearly see the MVC pattern in the Struts framework, and I have no
> > problem to seperate the Web(e.g., JSP, ActionServlet, et. al.), Business
> > Service(e.g., Action -- The WHAT part), and Business Logic(e.g.,
JavaBeans
> > which takes care about the detail of HOW part) tiers on a single host.
> >
> > Then, is Struts also capable to separate all above three tiers on three
> > separate machines. If not, is it capable to separate on two different
> > machines, e.g., Web tier on a machine and the Bus. Service and Bus.
> > Logic tiers on the other machine. But the machine running the either
Bus.
> > Service or Bus. Logic tier or both tiers MUST not running the Web server
> > nor app. server.
> >
> > Any comments?
> >
> > Regards,
> >
> >
> > Pae
> >
> >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: struts-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: struts-dev-help@jakarta.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: struts-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-dev-help@jakarta.apache.org


Re: How Loosely Coupled or Clearly Seperated

Posted by Vic Cekvenich <vc...@basebeans.com>.
Ask on user list.
Struts does not itself support distributed processing.
In general, this is a bad idea.

.V

Pae Choi wrote:
> First of all, my appologies if this has been asked before and discussed before.
> 
> I do clearly see the MVC pattern in the Struts framework, and I have no
> problem to seperate the Web(e.g., JSP, ActionServlet, et. al.), Business
> Service(e.g., Action -- The WHAT part), and Business Logic(e.g., JavaBeans
> which takes care about the detail of HOW part) tiers on a single host.
> 
> Then, is Struts also capable to separate all above three tiers on three
> separate machines. If not, is it capable to separate on two different
> machines, e.g., Web tier on a machine and the Bus. Service and Bus.
> Logic tiers on the other machine. But the machine running the either Bus.
> Service or Bus. Logic tier or both tiers MUST not running the Web server
> nor app. server.
> 
> Any comments?
> 
> Regards,
> 
> 
> Pae
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: struts-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-dev-help@jakarta.apache.org


Re: How Loosely Coupled or Clearly Seperated

Posted by Phil Steitz <ph...@steitz.com>.
Pae,

This is really a question for struts-user, so I am forwarding your 
question and my response there.  Don't know if this is the kosher thing 
to do; but this discussion does not belong on struts-dev.

Pae Choi wrote:
> First of all, my appologies if this has been asked before and discussed before.
> 
> I do clearly see the MVC pattern in the Struts framework, and I have no
> problem to seperate the Web(e.g., JSP, ActionServlet, et. al.), Business
> Service(e.g., Action -- The WHAT part), and Business Logic(e.g., JavaBeans
> which takes care about the detail of HOW part) tiers on a single host.
> 
> Then, is Struts also capable to separate all above three tiers on three
> separate machines. If not, is it capable to separate on two different
> machines, e.g., Web tier on a machine and the Bus. Service and Bus.
> Logic tiers on the other machine. But the machine running the either Bus.
> Service or Bus. Logic tier or both tiers MUST not running the Web server
> nor app. server.
> 
> Any comments?
> 

To be used in the standard way, at least the struts actions and 
controller have to be colocated. If the jsps are part of the same web 
app, these need to be on the same box as well.  What *can* be remoted is 
the implementation of the business logic.  Struts actions can invoke 
remote EJBs, web services, RMI servers or anything else that they need.

You need to think carefully about doing this, however, and ask yourself 
why you need to.  Generally speaking, there are two kinds of reasons 
that people give for splitting multi-tier distributed apps across 
physical machines:

1) Security.  More physical tiers => more places to insert firewalls and 
to enforce ever more stringent access control. A "high-security" 
multi-tier app using struts could use a pure HTTP server on the front, 
separated by an internal firewall from the box that runs the servlet 
engine hosting the struts controller, jsps and actions.  Yet another 
firewall could protect an EJB container running on another physical 
tier. Even more protection might exist between the EJB container and the 
enterprise data stores. Using |'s to represent firewalls, the setup 
might look like this:

HTTP | Servlet/JSP (struts runs here) | EJB | EAI/database

This is an expensive setup in terms of hardware, configuration 
management and performance (remote access is always slower).

2) Independent scaling and systems management.  In high-volume settings 
or large organizations where EJBs are heavily reused, it can be useful 
to be able to manage the business tier independently from the web tier. 
The setup above (maybe minus one or more of the firewalls) would allow 
this as well.

So...bottom line is that struts will not limit you from physically 
splitting your application across multiple machines; but you should 
think carefully about how much "separation" you really need, since this 
can be expensive.

-Phil

> Regards,
> 
> 
> Pae
> 
> 




---------------------------------------------------------------------
To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-user-help@jakarta.apache.org