Dave,

Thanks again for the detailed reply.

Where can I find information about the Map proxy pattern? I found Dynamic pattern but not Map Proxy?

Rgs

Vikram

 

1) We use many patterns to implement this, but I think that you are referring to the
Value Object pattern
2) The copy part of the strategy is somewhat inefficient (processor wise), but it
saves network traffic since the data is sent to the EJBs and the setters are called
within a bean method rather than from a remote client. Also, we are mostly concerned
with horizontal scalability so the extra processing time isn't as bad as the network
traffic. Doing a copy from one object to another reduces coupling since you never
explicitly call a setter method. As far as implementation inefficiency, we use another
pattern called the Map Proxy (Dynamic Proxy Class) Pattern to dynamically create the
input objects based on interfaces, so the bean implements the interface, and you
dynamically construct the value objects from the interface. You only need to create
one interface and your ejb.

3) Here is a simple example of the value object pattern in struts:

public class MyForm {

        private AddressVO address;

        // getters and setters for the AddressVO are here
}

All of the ejbs take in Value Objects (VOs) so for example:

addressHomeInterface.create(addressVO);
or
addressRemoteInterface.setAddress(addressVO);

In the jsp you simply access fields by referencing the value object stored inside:

<html:text property="addressVO.city"/>

In the Action you just extract the value object and pass it to the EJB layer.

addressHomeInterface.create(myForm.getAddressVO());

The way that we do it is much more complicated than this simple example, but this
should give you an idea of how to use value objects. We are also using a MapProxy
pattern that allows you to dynamically create classes based off of interfaces. So
instead of having an implemented addressVO we have an interface. We can dynamically
build a class based off of several interfaces which allows us to combine value objects
into one object. We are also using a Command pattern on top of that that lets you run
a large chunk of business logic on the EJB container with only two peices of network
traffic. It is kind of a batch processor for database logic. It would be a rather long
email if I explained all of them. Let me know if you want me to explain it any
further. IBM describes the command pattern in one of it's redbooks
http://publib-b.boulder.ibm.com/Redbooks.nsf/RedbookAbstracts/sg245754.html?Open

Javaworld has an article on Dynamic Proxy Classes (the base pattern for Map Proxy):
http://www.javaworld.com/javaworld/jw-11-2000/jw-1110-proxy.html

Thanks,
dave

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>


Reply via email to