Discussions

News: Tech Talk with Ted Farrell on J2EE Development Tools

  1. In this interview, Ted looks at trends in J2EE development, tools in the Java and UML space and comments on reasons behind IBM's acquisition of Rational and Borland's acquisition of Togethersoft. He discusses the benefits of frameworks and looks at the Eclipse initiative, the philosophy behind it, and emphasizes the need for standards such as JSR 198, a standard extension API for IDEs.

    Watch Ted Farrell's Interview on J2EE Development

    Threaded Messages (11)

  2. I don't get it:
    <quote>You're managing your validation once. It might get deployed to the EJB tier as EJB entity bean might do a validation before Post.
    </quote>

    Huh?

    <quote>It might get deployed to the Web tier as some servlet code that actually checks it so it doesn't have to go back to the server </quote>

    What?

    <quote>and it can even get deployed to the actual browser in Javascript that does some kind of simple data validation in the Web tier itself.</quote>
    Hm ...

    Call me stupid, but what does he mean by Post in the context of an entity bean? If validation is done in the servlet, that's on the server, right? And is JavaScript that runs in the browser part of the Web tier?

    Thoroughly confused,
    Stefan
  3. Clarification[ Go to top ]

    Hi Stefan,

    Sorry for the confusion. The idea I was trying to get
    across is that using a framework, you can define your
    validation once and then choose how to deploy it. If
    you want the validation to happen in the EJB, the framework
    can do that before the data is committed. If you don't
    want to have to go all the way to the container for validation,
    you can have it done in a servlet on the web server or in
    the browser itself. The user wouldn't have to manage the
    different types of validation manually. The framework
    could handle that.

    Ted Farrell
    Oracle Corporation
  4. Clarification[ Go to top ]

    Ted,

    Thanks for the clarification. I think I know what you intended to say, it was just the wording that irritated me. But then again, I only read the transcript, which might not be exact.

    Being able to handle validation at different places in the system surely makes a lot of sense. One question: How do you handle mapping validation rules to such different technologies as Java and JavaScript? Are rules specifified in a language-neutral way and then mapped to the underlying technology at deployment time?

    Stefan
  5. Clarification[ Go to top ]

    For an example of how a validation framework can be useful, have a look at the Struts validator.

    Validation rules are defined in an external XML file. The framework will turn this into a set of server-side rules, and, optionally, client-side javascript to avoid a server round-trip. So the same XML definition forms the basis of both sets of validation.

    You can set up things like conditional dependencies between rules, formatting masks, page-by-page validation of multiple page forms, and so on.
  6. Types of validation[ Go to top ]

    Stefan,

    We break down validation into two types. First is the type of validation users can code. We have well-defined extension points in the framework where users can add any type of validation that they want via Java code. This method would obviously be much harder to manage across different tiers of the architecture per my previous description.

    The second type of validation is metadata. In one of our current frameworks (BC4J) we provide both some canned validation rules as well as let users define their own. They are stored in XML. These types of validations are usually more well defined, like RangeValidator (make sure a number is withing a range), ListValidator (compare the value to a list of values), ComparitorValidator (compare the value to another value), etc.

    With these, more well-defined types of validation it is easier for the framework to take the metadata describing the validation rule and implement the different mechanisms across the architecture. Any one validation rule could be implemented in Java, EJB, Javascript, etc. That is up to the framework. The data itself is separate from the implementation.

    Ted Farrell
    Oracle Corporation
  7. Re: Types of validation[ Go to top ]

    Hi Ted,

    > RangeValidator (make sure a number is withing a range),
    > ListValidator (compare the value to a list of values),
    > ComparitorValidator (compare the value to another value), etc.

    So, let's say I have "Address" as one of my business objects. In one of the sub systems, I want to constrain the "address line #1" to 40 character and in another sub system to 50 character. Would I be able to deploy my "Address" business object and set 2 different constraints on one of its fields within the same system?

    Thanks,
  8. Re: Types of validation[ Go to top ]

    Hi Yagiz,

    > So, let's say I have "Address" as one of my
    > business objects. In one of the sub systems,
    > I want to constrain the "address line #1" to
    > 40 character and in another sub system to 50
    > character. Would I be able to deploy my "Address"
    > business object and set 2 different constraints
    > on one of its fields within the same system?

    Sure. This is really up to the framework. You
    should be able to define different instances of
    validation, including multiple validations on a single
    business object attribute and then decide how each of
    those validations gets deployed.

    The BC4J framework allows you to add multiple validations
    to a single attribute and we are continuing to add different
    deployment mechanisms as implementation choices.

    Ted Farrell
    Oracle Corporation
  9. BC4J Framework?[ Go to top ]

    Where can we find out more about BC4J? Anything better then this link, http://otn.oracle.com/products/jdev/htdocs/j2ee_bc4j.html

    Thanks

    Kris Thompson
  10. RE: BC4J Framework?[ Go to top ]

    Another good place to see the power of BC4J is the new "Building a Web Store with Struts & BC4J Frameworks" paper and demo at http://otn.oracle.com/sample_code/products/jdev/bc4jtoystore/readme.html
    (see: http://www.theserverside.com/home/thread.jsp?thread_id=19071&article_count=7 )

    More demos at: http://otn.oracle.com/products/jdev/viewlets/viewlet.html#J2EE
    And more howtos at: http://otn.oracle.com/products/jdev/howtos/content.html

    If you want to see what customers are doing with BC4J check out:
    http://www.oracle.com/customers/?search.jsp?p_action=1&p_keywords=bc4j
  11. Borland acquired TogetherSoft[ Go to top ]

    I think that Borland just wanted to kill a strong competitor of JBuilder - Together CC. They both were "high end" (according to price) development tools.


    Maris Orbidans
  12. Borland acquired TogetherSoft[ Go to top ]

    I have to agree. We were supposed to have version 6.5 last summer. At this point Control Center is so far behind the current generation of IDEs (in terms of the Web tier and java editor not UML) I can't imagine how they could catch up. My prediction is the integration of the UML side of Control Center with JBuilder will become the Control Center product.

    It's a shame. I've been using Togethersoft's products since version 1, and have been accustomed too three or four stable releases a year.