RE: Is Strut too primitive for really useful Controller function?

2003-04-02 Thread Edgar Dollin
If I understand what your are saying is that there is a action scripting
language built into Exadel.  I guess then there is some kind of 'terminal'
action which decides the output or is the output built along the way.

Interesting

Edgar

 -Original Message-
 From: Igor Shabalov [mailto:[EMAIL PROTECTED] 
 Sent: Tuesday, April 01, 2003 4:31 PM
 To: 'Struts Users Mailing List'
 Subject: Re: Is Strut too primitive for really useful 
 Controller function?
 
 
 
   I can not find original post from Thorin - but I'm 100% 
 agree with his 
 point.
   Moreover - I have real experience with system that 
 allows me to implement 
 what Thorin is talking about. We implements almost all 
 business logic in 
 controller layer, moreover - we have two sub-layer inside 
 controller - 
 presentation controller, which handles all page flow and input 
 validations, and business controller - where actual 
 business logic where 
 implemented on high level.
   All this because of using our own implementation of MVC 
 framework - 
 Exadel.
   I'm not here to convince you to switch from Struts to 
 Exadel, but I can 
 tell you that Struts controller component is too primitive 
 compared to 
 Exadel.
   We used widely concept of module. In Exadel you can 
 define module (we call 
 it process) with process context and actually use it like 
 function 
 calls. You even can use recursion. That gives us ability to 
 split system 
 to modules using vertical (by functional areas) and 
 horizontal (by 
 architecture layer) approach. And we design system in a way 
 where we have 
 two horizontal layers - one (top) designed to handle page 
 flow and all 
 interface relater issues. And second (bottom) layer was 
 dedicated to 
 business functions.
 
   I feel that there is something good in such design, the 
 only problem - 
 Strut do not really helps here.
   
 
 Best,
 Igor.
 http://www.exadel.com http://www.exadel.com/products_strutsstudio.htm
 
 On Tue, 1 Apr 2003 12:08:09 -0800, Thorin Linderholm 
 [EMAIL PROTECTED] wrote:
 
  Filters are one of the design/imp choices I've considered under the 
  'parallel system' heading, though I hadn't thought of trying to use 
  the web.xml for this.  I'd have to look into these more.
 
  I take it you recomending that a second, parallel system of 
 specifying 
  functionality on a per-page or per-page-set basis is the way to go?
 
  What reasons would you have for this design choice, as opposed to
  extending
  struts to contain this functionality?
 
  Have you (or others,) implemented something similar to this?
 
  (This port is going to be a large chunk of time and I'm 
 just trying to
  find
  out if other people have already thought through and 
 implemented this 
  type
  of functionality before I just pick something, run with it, 
 and end up 
  with
  some kind of maintenance or design nightmare :-)
 
  -Original Message-
  From: David Graham [mailto:[EMAIL PROTECTED]
  Sent: Tuesday, April 01, 2003 11:52 AM
  To: [EMAIL PROTECTED]
  Subject: Re: design question about action chaining
 
 
  I think Filters would be a good choice for your needs.  You 
 can define 
  a
  filter for each piece of logic and then configure them in 
 web.xml for 
  groups
 
  of pages.  You'll need to put related pages in the same 
 path scheme so
  that you can map a filter to the group instead of each page.
 
  David
 
 
 
  From: Thorin Linderholm [EMAIL PROTECTED]
  Reply-To: Struts Users Mailing List 
  [EMAIL PROTECTED]
  To: '[EMAIL PROTECTED]' 
 [EMAIL PROTECTED]
  Subject: design question about action chaining
  Date: Tue, 1 Apr 2003 11:30:39 -0800
 
 
  I have been tasked with porting an existing web 
 application with it's
  own
  proprietary controller architecture to using Struts.
 
  As they are both web controller architectures, they have many
  similarities,
  but I'm running into one difference in overall 
 architecture that I'm 
  having
  difficulty resolving.
 
  This difficulty is most closely related to the 'action chaining' 
  posts
  I've
  been able to find in the mailing list archives.
 
  Specifically, I have over 400 pages mapped to various actions (our 
  controller calls them that, and they're roughly synonymous with 
  struts
  actions.)  However, our controller allows specifying a 
 list of actions 
  to
  execute on a per-page, and per-page-set basis.  In other 
 words, we can
  assign an action like 'Ensure Session initialization has been
  completed/Initialize session' to every page in the site 
 with a single
  mapping (assuming you've already listed all the pages.)  
 Or you can 
  assign
  it to 90% of your pages if you happen to desire.  We have 
 approximatly 
  ten
  actions that happen on between 60-99% of the pages on our 
 site.  If we 
  were
  to directly translate this to the struts mapping system we 
 would end up
  having to re-specify those ten actions on most of those 
 400+ pages, 
  creating
  long action chains

RE: Is Strut too primitive for really useful Controller function?

2003-04-02 Thread David Graham
IMO, implementing business logic in the controller violates MVC principles.  
The Struts controller handles page flow by calling Actions.  Your actions 
invoke methods on your business layer.  By putting business logic in the 
controller you can't reuse it outside of that framework.  If I were 
interested in writing non-reusable code I'd use Perl ;-).

David



From: Edgar Dollin [EMAIL PROTECTED]
Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
To: 'Igor Shabalov' [EMAIL PROTECTED], 'Struts Users Mailing List' 
[EMAIL PROTECTED]
Subject: RE: Is Strut too primitive for really useful Controller function?
Date: Wed, 2 Apr 2003 06:52:21 -0500

If I understand what your are saying is that there is a action scripting
language built into Exadel.  I guess then there is some kind of 'terminal'
action which decides the output or is the output built along the way.
Interesting

Edgar

 -Original Message-
 From: Igor Shabalov [mailto:[EMAIL PROTECTED]
 Sent: Tuesday, April 01, 2003 4:31 PM
 To: 'Struts Users Mailing List'
 Subject: Re: Is Strut too primitive for really useful
 Controller function?



I can not find original post from Thorin - but I'm 100%
 agree with his
 point.
Moreover - I have real experience with system that
 allows me to implement
 what Thorin is talking about. We implements almost all
 business logic in
 controller layer, moreover - we have two sub-layer inside
 controller -
 presentation controller, which handles all page flow and input
 validations, and business controller - where actual
 business logic where
 implemented on high level.
All this because of using our own implementation of MVC
 framework -
 Exadel.
I'm not here to convince you to switch from Struts to
 Exadel, but I can
 tell you that Struts controller component is too primitive
 compared to
 Exadel.
We used widely concept of module. In Exadel you can
 define module (we call
 it process) with process context and actually use it like
 function
 calls. You even can use recursion. That gives us ability to
 split system
 to modules using vertical (by functional areas) and
 horizontal (by
 architecture layer) approach. And we design system in a way
 where we have
 two horizontal layers - one (top) designed to handle page
 flow and all
 interface relater issues. And second (bottom) layer was
 dedicated to
 business functions.

I feel that there is something good in such design, the
 only problem -
 Strut do not really helps here.


 Best,
 Igor.
 http://www.exadel.com http://www.exadel.com/products_strutsstudio.htm

 On Tue, 1 Apr 2003 12:08:09 -0800, Thorin Linderholm
 [EMAIL PROTECTED] wrote:

  Filters are one of the design/imp choices I've considered under the
  'parallel system' heading, though I hadn't thought of trying to use
  the web.xml for this.  I'd have to look into these more.
 
  I take it you recomending that a second, parallel system of
 specifying
  functionality on a per-page or per-page-set basis is the way to go?
 
  What reasons would you have for this design choice, as opposed to
  extending
  struts to contain this functionality?
 
  Have you (or others,) implemented something similar to this?
 
  (This port is going to be a large chunk of time and I'm
 just trying to
  find
  out if other people have already thought through and
 implemented this
  type
  of functionality before I just pick something, run with it,
 and end up
  with
  some kind of maintenance or design nightmare :-)
 
  -Original Message-
  From: David Graham [mailto:[EMAIL PROTECTED]
  Sent: Tuesday, April 01, 2003 11:52 AM
  To: [EMAIL PROTECTED]
  Subject: Re: design question about action chaining
 
 
  I think Filters would be a good choice for your needs.  You
 can define
  a
  filter for each piece of logic and then configure them in
 web.xml for
  groups
 
  of pages.  You'll need to put related pages in the same
 path scheme so
  that you can map a filter to the group instead of each page.
 
  David
 
 
 
  From: Thorin Linderholm [EMAIL PROTECTED]
  Reply-To: Struts Users Mailing List
  [EMAIL PROTECTED]
  To: '[EMAIL PROTECTED]'
 [EMAIL PROTECTED]
  Subject: design question about action chaining
  Date: Tue, 1 Apr 2003 11:30:39 -0800
 
 
  I have been tasked with porting an existing web
 application with it's
  own
  proprietary controller architecture to using Struts.
 
  As they are both web controller architectures, they have many
  similarities,
  but I'm running into one difference in overall
 architecture that I'm
  having
  difficulty resolving.
 
  This difficulty is most closely related to the 'action chaining'
  posts
  I've
  been able to find in the mailing list archives.
 
  Specifically, I have over 400 pages mapped to various actions (our
  controller calls them that, and they're roughly synonymous with
  struts
  actions.)  However, our controller allows specifying a
 list of actions
  to
  execute on a per-page, and per-page-set basis.  In other
 words, we can
  assign

Re: Is Strut too primitive for really useful Controller function?

2003-04-02 Thread Igor Shabalov
	The scripting language in Exadel is Java. In general, we use similar 
technique to JSP. We generate code on-the-fly, compile and execute it. That 
gives really nice feeling, when you work with Exadel  it feels like VB. 
Developers begin to use typical VB scenario  write something, try it, fix 
it, try more etc. 	If anybody has some interest in our ideas  feel free to 
download trial version of Exadel from here:
http://www.exadel.com/products_webflowengine.htm
You can try to get this feeling, and this is NOT commercial! I really think 
that some ideas from Exadel can be incorporated into Struts and Struts will 
benefit from it!
	I can put my dream list here:
	-well defined sub-modules, module context to store module-local data, 
explicit definitions of module interfaces. (all this exists in Exadel)
	-abstract software interface to modules, free from binding to web, ability 
to reuse modules from outside  using WSDL and Java interfaces (exists in 
Exadel)
	-use compile-on-the-fly technique for action definitions (exists in 
Exadel)
	-debugger interface, step-by-step execution on action-page level, data 
introspection in contexts, introspection of data goes to/from pages and 
actions (exists in Exadel)
	-GUI tool to support all this  otherwise all this does not make a lot of 
cense.
	
	Once again, do not treat this like commercial, I do not have an intention 
to offend anybody, I just put there my dream list based on my previous 
experience, what can help me a lot with my next project.

	BTW, Im talking about 4 version of Exadel. And there was 1-st, 2-nd and 
3-rd. We actually had Java Script and XSL scripting languages in previous 
version of Exadel, but we decide to drop it  because nobody needs it.

Best regards,
Igor.
On Wed, 2 Apr 2003 06:52:21 -0500, Edgar Dollin [EMAIL PROTECTED] 
wrote:

If I understand what your are saying is that there is a action scripting
language built into Exadel.  I guess then there is some kind of 
'terminal'
action which decides the output or is the output built along the way.

Interesting

Edgar

-Original Message-
From: Igor Shabalov [mailto:[EMAIL PROTECTED] Sent: Tuesday, 
April 01, 2003 4:31 PM
To: 'Struts Users Mailing List'
Subject: Re: Is Strut too primitive for really useful Controller 
function?



	I can not find original post from Thorin - but I'm 100% agree with his 
point.
	Moreover - I have real experience with system that allows me to 
implement what Thorin is talking about. We implements almost all 
business logic in controller layer, moreover - we have two sub-layer 
inside controller - presentation controller, which handles all page 
flow and input validations, and business controller - where actual 
business logic where implemented on high level.
	All this because of using our own implementation of MVC framework - 
Exadel.
	I'm not here to convince you to switch from Struts to Exadel, but I can 
tell you that Struts controller component is too primitive compared to 
Exadel.
	We used widely concept of module. In Exadel you can define module (we 
call it process) with process context and actually use it like 
function calls. You even can use recursion. That gives us ability to 
split system to modules using vertical (by functional areas) and 
horizontal (by architecture layer) approach. And we design system in a 
way where we have two horizontal layers - one (top) designed to handle 
page flow and all interface relater issues. And second (bottom) layer 
was dedicated to business functions.

	I feel that there is something good in such design, the only problem - 
Strut do not really helps here.
	

Best,
Igor.
http://www.exadel.com http://www.exadel.com/products_strutsstudio.htm
On Tue, 1 Apr 2003 12:08:09 -0800, Thorin Linderholm 
[EMAIL PROTECTED] wrote:

 Filters are one of the design/imp choices I've considered under the  
'parallel system' heading, though I hadn't thought of trying to use  
the web.xml for this.  I'd have to look into these more.

 I take it you recomending that a second, parallel system of specifying 
 functionality on a per-page or per-page-set basis is the way to go?

 What reasons would you have for this design choice, as opposed to
 extending
 struts to contain this functionality?

 Have you (or others,) implemented something similar to this?

 (This port is going to be a large chunk of time and I'm just trying to
 find
 out if other people have already thought through and implemented this 
 type
 of functionality before I just pick something, run with it, and end up 
 with
 some kind of maintenance or design nightmare :-)

 -Original Message-
 From: David Graham [mailto:[EMAIL PROTECTED]
 Sent: Tuesday, April 01, 2003 11:52 AM
 To: [EMAIL PROTECTED]
 Subject: Re: design question about action chaining


 I think Filters would be a good choice for your needs.  You can define 
 a
 filter for each piece of logic and then configure them in web.xml for 
 groups

 of pages.  You'll need to put related

Re: Is Strut too primitive for really useful Controller function?

2003-04-02 Thread Igor Shabalov
	When we did it we also think only about our project goals. I realize, that 
we actually use multi-layer controller architecture after we did it. It 
comes naturally to the following:

[web layer] - nothing special, just JSP with some custom tags, web 
developer
|
|
[web controller layer] - used to implement all page flow logic, validations 
and data transformations, calls modules from business controller layer, web 
developer
|
|
[business controller layer] - used to implement coarse business 
functions, like put bid on the sit etc., uses same flow engine, like web 
controller, calls business object layer, business developer
|
|
[business objects layer]  used to implement business objects and fine 
grained functions, like create record in history or set company address 
etc, use Java and JDO for implementation, business developer.

This is simplistic, but close to reality picture. You see, there is two 
controller layers between JSP (view) and Java (model). It provides normal 
controller function  data transformation and functional calls 
aggregation. Business controller layer used to define business 
meaningful functions by combining elements of calls to model layer and 
some peaces of code; it is also responsible for transaction handling.
We have two developers in team  I call them web developer and business 
developer and such division is very natural for our team.

Best regards,
Igor.
http://www.exadel.com
http://www.exadel.com/products_strutsstudio.htm
On Wed, 2 Apr 2003 17:29:29 +0530, Navjot Singh [EMAIL PROTECTED] 
wrote:

hi igor and list,

This is little bit off the Struts but now it seems to framework 
discussion
so i can put in my 2 cents

the *process context* in exadel reminds me that i had built exactly 
similar
stuff  (2-3 years ago in PERL ;-)
where i have the similar sub layers in controller
+ presentation ( rendering and validation )  (could be plain wml / html /
any other ML using xslt )
+ business ( with support to work over n/w as well using calls to 
daemons)

but i didn't know that i can call them controller / models or blah blah 
...
:-)

but here we talk about Java where Struts is not bad and surely will 
improve
day by day

-navjot

- Original Message -
From: Edgar Dollin [EMAIL PROTECTED]
To: 'Igor Shabalov' [EMAIL PROTECTED]; 'Struts Users Mailing
List' [EMAIL PROTECTED]
Sent: Wednesday, April 02, 2003 5:22 PM
Subject: RE: Is Strut too primitive for really useful Controller 
function?

| If I understand what your are saying is that there is a action 
scripting
| language built into Exadel.  I guess then there is some kind of 
'terminal'
| action which decides the output or is the output built along the way.
|
| Interesting
|
| Edgar
|
|  -Original Message-
|  From: Igor Shabalov [mailto:[EMAIL PROTECTED]
|  Sent: Tuesday, April 01, 2003 4:31 PM
|  To: 'Struts Users Mailing List'
|  Subject: Re: Is Strut too primitive for really useful
|  Controller function?
| 
| 
| 
|  I can not find original post from Thorin - but I'm 100%
|  agree with his
|  point.
|  Moreover - I have real experience with system that
|  allows me to implement
|  what Thorin is talking about. We implements almost all
|  business logic in
|  controller layer, moreover - we have two sub-layer inside
|  controller -
|  presentation controller, which handles all page flow and input
|  validations, and business controller - where actual
|  business logic where
|  implemented on high level.
|  All this because of using our own implementation of MVC
|  framework -
|  Exadel.
|  I'm not here to convince you to switch from Struts to
|  Exadel, but I can
|  tell you that Struts controller component is too primitive
|  compared to
|  Exadel.
|  We used widely concept of module. In Exadel you can
|  define module (we call
|  it process) with process context and actually use it like
|  function
|  calls. You even can use recursion. That gives us ability to
|  split system
|  to modules using vertical (by functional areas) and
|  horizontal (by
|  architecture layer) approach. And we design system in a way
|  where we have
|  two horizontal layers - one (top) designed to handle page
|  flow and all
|  interface relater issues. And second (bottom) layer was
|  dedicated to
|  business functions.
| 
|  I feel that there is something good in such design, the
|  only problem -
|  Strut do not really helps here.
| 
| 
|  Best,
|  Igor.
|  http://www.exadel.com http://www.exadel.com/products_strutsstudio.htm
| 
|  On Tue, 1 Apr 2003 12:08:09 -0800, Thorin Linderholm
|  [EMAIL PROTECTED] wrote:
| 
|   Filters are one of the design/imp choices I've considered under the
|   'parallel system' heading, though I hadn't thought of trying to use
|   the web.xml for this.  I'd have to look into these more.
|  
|   I take it you recomending that a second, parallel system of
|  specifying
|   functionality on a per-page or per-page-set basis is the way to go?
|  
|   What reasons would

Re: Is Strut too primitive for really useful Controller function?

2003-04-02 Thread Igor Shabalov
	No, it is not violating MVC design. This is some sort of MVCC design with 
two layers of controller  one to implement complex View-specific functions 
(page flow, data validation, data transformation) and another one to 
implement Model-specific functions (data flow, transactions handling, 
function aggregation). 	That gives you more flexibility in both sides. That 
gives you ability to reuse business functions on more coarse level.
	In general, your implementation technology does not matter from 
architectural point of view. But whole point of my original post was  yes, 
Struts is not suitable for such design, because it is too much coupled to 
web and Servlet container. I was talking about another controller 
framework  Exadel.

Best regards,
Igor.
http://www.exadel.com
http://www.exadel.com/products_strutsstudio.htm
On Wed, 02 Apr 2003 07:57:50 -0700, David Graham [EMAIL PROTECTED] 
wrote:

IMO, implementing business logic in the controller violates MVC 
principles.  The Struts controller handles page flow by calling Actions.  
Your actions invoke methods on your business layer.  By putting business 
logic in the controller you can't reuse it outside of that framework.  If 
I were interested in writing non-reusable code I'd use Perl ;-).

David



From: Edgar Dollin [EMAIL PROTECTED]
Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
To: 'Igor Shabalov' [EMAIL PROTECTED], 'Struts Users Mailing 
List' [EMAIL PROTECTED]
Subject: RE: Is Strut too primitive for really useful Controller 
function?
Date: Wed, 2 Apr 2003 06:52:21 -0500

If I understand what your are saying is that there is a action scripting
language built into Exadel.  I guess then there is some kind of 
'terminal'
action which decides the output or is the output built along the way.

Interesting

Edgar

 -Original Message-
 From: Igor Shabalov [mailto:[EMAIL PROTECTED]
 Sent: Tuesday, April 01, 2003 4:31 PM
 To: 'Struts Users Mailing List'
 Subject: Re: Is Strut too primitive for really useful
 Controller function?



I can not find original post from Thorin - but I'm 100%
 agree with his
 point.
Moreover - I have real experience with system that
 allows me to implement
 what Thorin is talking about. We implements almost all
 business logic in
 controller layer, moreover - we have two sub-layer inside
 controller -
 presentation controller, which handles all page flow and input
 validations, and business controller - where actual
 business logic where
 implemented on high level.
All this because of using our own implementation of MVC
 framework -
 Exadel.
I'm not here to convince you to switch from Struts to
 Exadel, but I can
 tell you that Struts controller component is too primitive
 compared to
 Exadel.
We used widely concept of module. In Exadel you can
 define module (we call
 it process) with process context and actually use it like
 function
 calls. You even can use recursion. That gives us ability to
 split system
 to modules using vertical (by functional areas) and
 horizontal (by
 architecture layer) approach. And we design system in a way
 where we have
 two horizontal layers - one (top) designed to handle page
 flow and all
 interface relater issues. And second (bottom) layer was
 dedicated to
 business functions.

I feel that there is something good in such design, the
 only problem -
 Strut do not really helps here.


 Best,
 Igor.
 http://www.exadel.com http://www.exadel.com/products_strutsstudio.htm

 On Tue, 1 Apr 2003 12:08:09 -0800, Thorin Linderholm
 [EMAIL PROTECTED] wrote:

  Filters are one of the design/imp choices I've considered under the
  'parallel system' heading, though I hadn't thought of trying to use
  the web.xml for this.  I'd have to look into these more.
 
  I take it you recomending that a second, parallel system of
 specifying
  functionality on a per-page or per-page-set basis is the way to go?
 
  What reasons would you have for this design choice, as opposed to
  extending
  struts to contain this functionality?
 
  Have you (or others,) implemented something similar to this?
 
  (This port is going to be a large chunk of time and I'm
 just trying to
  find
  out if other people have already thought through and
 implemented this
  type
  of functionality before I just pick something, run with it,
 and end up
  with
  some kind of maintenance or design nightmare :-)
 
  -Original Message-
  From: David Graham [mailto:[EMAIL PROTECTED]
  Sent: Tuesday, April 01, 2003 11:52 AM
  To: [EMAIL PROTECTED]
  Subject: Re: design question about action chaining
 
 
  I think Filters would be a good choice for your needs.  You
 can define
  a
  filter for each piece of logic and then configure them in
 web.xml for
  groups
 
  of pages.  You'll need to put related pages in the same
 path scheme so
  that you can map a filter to the group instead of each page.
 
  David
 
 
 
  From: Thorin Linderholm [EMAIL PROTECTED]
  Reply-To: Struts

Re: Is Strut too primitive for really useful Controller function?

2003-04-02 Thread David Graham
You're extra C is more commonly referred to as a Session Facade or 
Business Delegate.
http://developer.java.sun.com/developer/restricted/patterns/J2EEPatternsAtAGlance.html

Saying, [Struts] is too much coupled to web and Servlet container implies 
a criticism.  Struts is a *web* tier MVC framework and makes no apologies 
about being tied to the Servlet API.  Your business controller sits behind 
Struts' Actions and handles business logic so the frameworks should be 
complementary.



David


From: Igor Shabalov [EMAIL PROTECTED]
Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
To: Struts Users Mailing List [EMAIL PROTECTED]
Subject: Re: Is Strut too primitive for really useful Controller function?
Date: Wed, 02 Apr 2003 10:54:43 -0800
	No, it is not violating MVC design. This is some sort of MVCC design with 
two layers of controller â?? one to implement complex View-specific 
functions (page flow, data validation, data transformation) and another one 
to implement Model-specific functions (data flow, transactions handling, 
function aggregation). 	That gives you more flexibility in both sides. That 
gives you ability to reuse â??business functionsâ?? on more â??coarseâ?? 
level.
	In general, your implementation technology does not matter from 
architectural point of view. But whole point of my original post was â?? 
yes, Struts is not suitable for such design, because it is too much coupled 
to web and Servlet container. I was talking about another â??controller 
frameworkâ?? â?? Exadel.

Best regards,
Igor.
http://www.exadel.com
http://www.exadel.com/products_strutsstudio.htm
On Wed, 02 Apr 2003 07:57:50 -0700, David Graham [EMAIL PROTECTED] 
wrote:

IMO, implementing business logic in the controller violates MVC 
principles.  The Struts controller handles page flow by calling Actions.  
Your actions invoke methods on your business layer.  By putting business 
logic in the controller you can't reuse it outside of that framework.  If 
I were interested in writing non-reusable code I'd use Perl ;-).

David



From: Edgar Dollin [EMAIL PROTECTED]
Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
To: 'Igor Shabalov' [EMAIL PROTECTED], 'Struts Users Mailing 
List' [EMAIL PROTECTED]
Subject: RE: Is Strut too primitive for really useful Controller 
function?
Date: Wed, 2 Apr 2003 06:52:21 -0500

If I understand what your are saying is that there is a action scripting
language built into Exadel.  I guess then there is some kind of 
'terminal'
action which decides the output or is the output built along the way.

Interesting

Edgar

 -Original Message-
 From: Igor Shabalov [mailto:[EMAIL PROTECTED]
 Sent: Tuesday, April 01, 2003 4:31 PM
 To: 'Struts Users Mailing List'
 Subject: Re: Is Strut too primitive for really useful
 Controller function?



I can not find original post from Thorin - but I'm 100%
 agree with his
 point.
Moreover - I have real experience with system that
 allows me to implement
 what Thorin is talking about. We implements almost all
 business logic in
 controller layer, moreover - we have two sub-layer inside
 controller -
 presentation controller, which handles all page flow and input
 validations, and business controller - where actual
 business logic where
 implemented on high level.
All this because of using our own implementation of MVC
 framework -
 Exadel.
I'm not here to convince you to switch from Struts to
 Exadel, but I can
 tell you that Struts controller component is too primitive
 compared to
 Exadel.
We used widely concept of module. In Exadel you can
 define module (we call
 it process) with process context and actually use it like
 function
 calls. You even can use recursion. That gives us ability to
 split system
 to modules using vertical (by functional areas) and
 horizontal (by
 architecture layer) approach. And we design system in a way
 where we have
 two horizontal layers - one (top) designed to handle page
 flow and all
 interface relater issues. And second (bottom) layer was
 dedicated to
 business functions.

I feel that there is something good in such design, the
 only problem -
 Strut do not really helps here.


 Best,
 Igor.
 http://www.exadel.com http://www.exadel.com/products_strutsstudio.htm

 On Tue, 1 Apr 2003 12:08:09 -0800, Thorin Linderholm
 [EMAIL PROTECTED] wrote:

  Filters are one of the design/imp choices I've considered under the
  'parallel system' heading, though I hadn't thought of trying to use
  the web.xml for this.  I'd have to look into these more.
 
  I take it you recomending that a second, parallel system of
 specifying
  functionality on a per-page or per-page-set basis is the way to go?
 
  What reasons would you have for this design choice, as opposed to
  extending
  struts to contain this functionality?
 
  Have you (or others,) implemented something similar to this?
 
  (This port is going to be a large chunk of time and I'm
 just trying to
  find
  out

Re: Is Strut too primitive for really useful Controller function?

2003-04-02 Thread Igor Shabalov
	You 100% rights, David.
	Once again, I do not pretend that I invent this approach. It was born 
naturally in a process of development. 	I try to look wider to development 
process. I like an idea of assembling application from blocks. I just try 
to explain how useful ca be universal controller framework.

Best regards,
Igor.
http://www.exadel.com
http://www.exadel.com/products_strutsstudio.htm
On Wed, 02 Apr 2003 12:34:35 -0700, David Graham [EMAIL PROTECTED] 
wrote:

You're extra C is more commonly referred to as a Session Facade or 
Business Delegate.
http://developer.java.sun.com/developer/restricted/patterns/J2EEPatternsAtAGlance.html

Saying, [Struts] is too much coupled to web and Servlet container 
implies a criticism.  Struts is a *web* tier MVC framework and makes no 
apologies about being tied to the Servlet API.  Your business 
controller sits behind Struts' Actions and handles business logic so the 
frameworks should be complementary.



David


From: Igor Shabalov [EMAIL PROTECTED]
Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
To: Struts Users Mailing List [EMAIL PROTECTED]
Subject: Re: Is Strut too primitive for really useful Controller 
function?
Date: Wed, 02 Apr 2003 10:54:43 -0800

	No, it is not violating MVC design. This is some sort of MVCC design 
with two layers of controller ?? one to implement complex View-specific 
functions (page flow, data validation, data transformation) and another 
one to implement Model-specific functions (data flow, transactions 
handling, function aggregation). 	That gives you more flexibility in 
both sides. That gives you ability to reuse ??business functions?? on 
more ??coarse?? level.
	In general, your implementation technology does not matter from 
architectural point of view. But whole point of my original post was ?? 
yes, Struts is not suitable for such design, because it is too much 
coupled to web and Servlet container. I was talking about another 
??controller framework?? ?? Exadel.

Best regards,
Igor.
http://www.exadel.com
http://www.exadel.com/products_strutsstudio.htm
On Wed, 02 Apr 2003 07:57:50 -0700, David Graham 
[EMAIL PROTECTED] wrote:

IMO, implementing business logic in the controller violates MVC 
principles.  The Struts controller handles page flow by calling 
Actions.  Your actions invoke methods on your business layer.  By 
putting business logic in the controller you can't reuse it outside of 
that framework.  If I were interested in writing non-reusable code I'd 
use Perl ;-).

David



From: Edgar Dollin [EMAIL PROTECTED]
Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
To: 'Igor Shabalov' [EMAIL PROTECTED], 'Struts Users Mailing 
List' [EMAIL PROTECTED]
Subject: RE: Is Strut too primitive for really useful Controller 
function?
Date: Wed, 2 Apr 2003 06:52:21 -0500

If I understand what your are saying is that there is a action 
scripting
language built into Exadel.  I guess then there is some kind of 
'terminal'
action which decides the output or is the output built along the way.

Interesting

Edgar

 -Original Message-
 From: Igor Shabalov [mailto:[EMAIL PROTECTED]
 Sent: Tuesday, April 01, 2003 4:31 PM
 To: 'Struts Users Mailing List'
 Subject: Re: Is Strut too primitive for really useful
 Controller function?



 	I can not find original post from Thorin - but I'm 100%
 agree with his
 point.
 	Moreover - I have real experience with system that
 allows me to implement
 what Thorin is talking about. We implements almost all
 business logic in
 controller layer, moreover - we have two sub-layer inside
 controller -
 presentation controller, which handles all page flow and input
 validations, and business controller - where actual
 business logic where
 implemented on high level.
 	All this because of using our own implementation of MVC
 framework -
 Exadel.
 	I'm not here to convince you to switch from Struts to
 Exadel, but I can
 tell you that Struts controller component is too primitive
 compared to
 Exadel.
 	We used widely concept of module. In Exadel you can
 define module (we call
 it process) with process context and actually use it like
 function
 calls. You even can use recursion. That gives us ability to
 split system
 to modules using vertical (by functional areas) and
 horizontal (by
 architecture layer) approach. And we design system in a way
 where we have
 two horizontal layers - one (top) designed to handle page
 flow and all
 interface relater issues. And second (bottom) layer was
 dedicated to
 business functions.

 	I feel that there is something good in such design, the
 only problem -
 Strut do not really helps here.


 Best,
 Igor.
 http://www.exadel.com 
http://www.exadel.com/products_strutsstudio.htm

 On Tue, 1 Apr 2003 12:08:09 -0800, Thorin Linderholm
 [EMAIL PROTECTED] wrote:

  Filters are one of the design/imp choices I've considered under 
the
  'parallel system' heading, though I hadn't thought of trying

Re: Is Strut too primitive for really useful Controller function?

2003-04-01 Thread Igor Shabalov
	I can not find original post from Thorin - but I'm 100% agree with his 
point.
	Moreover  I have real experience with system that allows me to implement 
what Thorin is talking about. We implements almost all business logic in 
controller layer, moreover  we have two sub-layer inside controller  
presentation controller, which handles all page flow and input 
validations, and business controller  where actual business logic where 
implemented on high level.
	All this because of using our own implementation of MVC framework  
Exadel.
	Im not here to convince you to switch from Struts to Exadel, but I can 
tell you that Struts controller component is too primitive compared to 
Exadel.
	We used widely concept of module. In Exadel you can define module (we call 
it process) with process context and actually use it like function 
calls. You even can use recursion. That gives us ability to split system 
to modules using vertical (by functional areas) and horizontal (by 
architecture layer) approach. And we design system in a way where we have 
two horizontal layers  one (top) designed to handle page flow and all 
interface relater issues. And second (bottom) layer was dedicated to 
business functions.

	I feel that there is something good in such design, the only problem  
Strut do not really helps here.
	

Best,
Igor.
http://www.exadel.com
http://www.exadel.com/products_strutsstudio.htm
On Tue, 1 Apr 2003 12:08:09 -0800, Thorin Linderholm 
[EMAIL PROTECTED] wrote:

Filters are one of the design/imp choices I've considered under the
'parallel system' heading, though I hadn't thought of trying to use the
web.xml for this.  I'd have to look into these more.
I take it you recomending that a second, parallel system of specifying
functionality on a per-page or per-page-set basis is the way to go?
What reasons would you have for this design choice, as opposed to 
extending
struts to contain this functionality?

Have you (or others,) implemented something similar to this?

(This port is going to be a large chunk of time and I'm just trying to 
find
out if other people have already thought through and implemented this 
type
of functionality before I just pick something, run with it, and end up 
with
some kind of maintenance or design nightmare :-)

-Original Message-
From: David Graham [mailto:[EMAIL PROTECTED]
Sent: Tuesday, April 01, 2003 11:52 AM
To: [EMAIL PROTECTED]
Subject: Re: design question about action chaining
I think Filters would be a good choice for your needs.  You can define a 
filter for each piece of logic and then configure them in web.xml for 
groups

of pages.  You'll need to put related pages in the same path scheme so 
that you can map a filter to the group instead of each page.

David



From: Thorin Linderholm [EMAIL PROTECTED]
Reply-To: Struts Users Mailing List [EMAIL PROTECTED]
To: '[EMAIL PROTECTED]' [EMAIL PROTECTED]
Subject: design question about action chaining
Date: Tue, 1 Apr 2003 11:30:39 -0800
I have been tasked with porting an existing web application with it's 
own
proprietary controller architecture to using Struts.

As they are both web controller architectures, they have many 
similarities,
but I'm running into one difference in overall architecture that I'm 
having
difficulty resolving.

This difficulty is most closely related to the 'action chaining' posts 
I've
been able to find in the mailing list archives.

Specifically, I have over 400 pages mapped to various actions (our
controller calls them that, and they're roughly synonymous with struts
actions.)  However, our controller allows specifying a list of actions 
to
execute on a per-page, and per-page-set basis.  In other words, we can
assign an action like 'Ensure Session initialization has been
completed/Initialize session' to every page in the site with a single
mapping (assuming you've already listed all the pages.)  Or you can 
assign
it to 90% of your pages if you happen to desire.  We have approximatly 
ten
actions that happen on between 60-99% of the pages on our site.  If we 
were
to directly translate this to the struts mapping system we would end up
having to re-specify those ten actions on most of those 400+ pages, 
creating
long action chains for each page (a whole lot of duplication: hard to
maintain, easy to get wrong, etc.)

So, conceptually, I want to be able to apply a few different bits of 
logic
to whole sets of pages.  Some of those 'bits of logic' (actions if you
will,) interrupt the process and forward to a different page (page 
access
rules for instance.)

There are several possible solutions that I've come up with, but so far 
all
of them involve either hacks, extending struts (which happens to 
partialy
eliminate the reason I'm being required to move to Struts, and so isn't 
very
favored by my supperiors,) some complicated java inheritance hierarchy 
where
I inherit non-related functionality in those ten actions into a set of
compound actions, each inheriting in the set of functionality we