Re: Is there a BEA Tuxedo equivalence in Java?



In article <1113278593.977188.31680@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>, "frebe" <fredrik_bertilsson@xxxxxxxxxxx> wrote:
>> If you are competing with a Tuxedo based product, I think you need a
>framework
>> that scales well and handles hi volume transactions. You probably
>need a
>> product that is reasonably fault tolerant. Yes, I think you need EJB.
>
>
>What has EJB to do this scalability, hi volumes transactions and fault
>tolerance? Please explain. If you talk about J2EE (and not EJB), the
>only scalability features is connection pooling and clustering.
>Connection pooling could be done in a much simpler way and clustering
>(if you really need it), can be done by the webserver if you are using
>web services. If you need a cluster of application server, the most
>simple way is to use a load-balancing router. Clustering inside J2EE is
>just expensive and comlicated.
>
>Fredrik Bertilsson
>http://butler.sourceforge.net

A lot depends on the type of messaging you need. I agree that load balancing
gets you most of the way there and that clustering is expensive and
complicated. If all your messages are stateless, load balancing works fine. If
you need to maintain state, I think EJB are a better solution. Do you need a
reply from your "service"? If not, message driven beans are very powerful and
scalable. Great for integrating systems.

this is a good link:

http://www.javaworld.com/javaworld/jw-02-2001/jw-0223-extremescale.html

There is nothing you can do in EJB that you can't do with POJO - EJBs are
implemented using POJOs. Personally I'd rather code the business logic and let
the container handle the threading. I'd rather change a config setting and
allow more beans in the pool than worry about synchronization and deadlock.

I think web services are pretty neat but there is a lot of overhead. The
problem I have with web services is 1) In general, you don't have reliable
messages. Not if you are using http. 2) If your transaction involves multiple
service calls you're screwed. How do you rollback a service without a global
transaction. 3) You are not using OO. You're sending a struct wrapped in XML.

In my opinion, EJB has received a bad reputation it doesn't deserve. It gives
you a lot of flexibility - and with that flexibility you can shoot yourself in
the foot. But with stateful, stateless, synchronous and asynchronous
messaging, and global transactions, you have a lot of options to architect a
system.

But I think we agree to disagree. ;-)

Eric
.



Relevant Pages

  • Re: j2ee architecture advice needed
    ... MySQL tables are not transactional. ... transactions. ... You might want to look at the upcomming EJB 2.1 Web Services, ... > utilize stateless session beans, ...
    (comp.lang.java.programmer)
  • Container-managed Transactions scope
    ... Updates and Deletes are inside an EJB method. ... the Container-managed Transactions be extended to the DAOs automatically. ... If container do keep track of transactions like that then how many nested ...
    (comp.lang.java.programmer)
  • Re: Container-managed Transactions scope
    ... Updates and Deletes are inside an EJB method. ... > the Container-managed Transactions be extended to the DAOs automatically. ... > If container do keep track of transactions like that then how many nested ...
    (comp.lang.java.programmer)
  • Re: When to use EJB?
    ... What are the most important things to consider when determining if EJB ... with other applications and their databases, use EJB - that's its job. ... affect one database only or the transactions do not span multiple databases, ... both available to participate in local transactions as well as distributed ...
    (comp.lang.java.programmer)
  • AppServer / WebServices / Half-object pattern questions
    ... I have some experience with Tomcat and JBoss and now I have to make a new ... straight-forward servlet or EJB application. ... Can web services be used in conjunction with application servers like JBoss ...
    (comp.lang.java.programmer)