Discussions

News: Webgain announces Toplink 4.0 with EJB 2.0 support

  1. WebGain, a provider of enterprise software tools, announced the release of WebGain TopLink 4.0 which includes support for Enterprise JavaBeans (EJB) 2.0. TopLink is a powerful O/R mapping persistence product. Architecturally neutral, TopLink is compatible with all major application servers, including BEA's WebLogic Server, IBM's WebSphere, HP's Application Server, and Sun's iPlanet.

    http://www.webgain.com/products/toplink/.

    Press Release
    --------------
    SANTA CLARA, Calif., Dec. 10 /PRNewswire/ -- WebGain, Inc., a leading provider of software tools which accelerate e-business development, announces its anticipated release of WebGain TopLink(TM) 4.0 which includes support for Enterprise JavaBeans (EJB) 2.0. TopLink is a powerful persistence solution that facilitates the rapid development, deployment, and execution of enterprise Java applications that integrate with databases. Architecturally neutral, TopLink is compatible with all major application servers, including BEA's WebLogic Server, IBM's WebSphere, HP's Application Server, and Sun's iPlanet. TopLink 4.0 brings EJB 2.0 support to the two application servers that currently support the specification, BEA's WebLogic Server 6.1 and HP's Application Server 8.0.

    ''WebGain professionals have over a decade of experience with persisting objects, and are firmly committed to J2EE standards. TopLink is WebGain's first product to provide EJB 2.0 support, and since WebGain's commitment to 'standards' is stronger than ever, the support for EJB 2.0 will expand throughout our product line,'' said Joe Menard, CEO of WebGain.

    ''We've been eagerly anticipating TopLink 4.0 and its support for EJB 2.0,'' say Sean Katz, Head of Infrastructure Systems at Discovery Health Systems. ''Component-based application development has allowed Discovery Health Systems to deliver industry leading health care solutions to the South African market in a timely manner. TopLink has allowed us to rapidly build enterprise Java applications while leveraging our considerable investment in relational database technology.''

    Since its introduction to the Java community in 1997, TopLink has received numerous awards and positive recognition from those in the software industry. By providing an innovative way to bridge the gap between objects and relational databases, TopLink makes it easier and faster to create new enterprise applications, while taking advantage of existing investments in corporate and intellectual data.

    Based on open interfaces and industry standards including XML and SQL, TopLink supports a broad range of application architectures using Java Objects, Container Managed Persistence (CMP) EJBs, Bean Managed Persistence (BMP) EJBs, Servlets, JSPs, Session Beans, Message Driven Beans, and others. TopLink simplifies the development process, making it easier for developers to focus on business logic and deliver to end users the benefits of EJB architecture, such as scalability, multi-transaction capabilities, and security features. TopLink 4.0 also allows non-EJB architectures to take advantage of EJB 2.0 features such as EJBQL, the EJB query language.

    TopLink will continue to be enhanced based upon the feedback WebGain receives from customers and Java developers. ''At the same time that the latest version of TopLink is making its appearance, we are setting our sights on further innovations, including J2EE Connectors to allow integration with data sources other than relational databases,'' said Earl Stahl, WebGain's Executive VP Engineering.

    Availability

    TopLink 4.0 is scheduled for general availability by year end, and may be ordered by contacting a WebGain sales representative at 408-517-3700, an authorized WebGain distributor, or via WebGain's web site www.webgain.com.

    About WebGain, Inc.

    WebGain, Inc. accelerates the application life-cycle of enterprise-class e-business applications. WebGain Studio, the company's flagship product, defines, designs, constructs and speeds deployment of e-business applications by providing integrated development solutions across the application development lifecycle. Privately held, WebGain, Inc., is headquartered in Santa Clara, Calif., and is on the Web at www.webgain.com.

    Threaded Messages (23)

  2. Questions about TopLink 4.0[ Go to top ]

    We're trying to evaluate what to use for persistence in the next rev of our product. Currently, we're looking at the MVCSoft Persistence Manager, with JBoss, but I'm curious how TopLink 4.0 would compare to MVCSoft:

    1. The biggest concern is price. How much is it going to cost to use TopLink?

    2. Performance. Which one produces faster code?

    3. Are there features in TopLink which make it worth any additional cost?

    I couldn't find any clear answers to these questions on WebGain's web site; if anyone knows something, I'd appreciate it.

    Thanks,

    -jon
  3. I would advise you to see if you can use CMP beans (major IDEs automatically generate them for you from a schema) and if not then BMP beans. Products like Toplink pre-date EJBs and I would question their relevance today.

    I'm not familiar with MVCSoft, but application of the MVC pattern to persistenc intrigues me. I'll take a look!
  4. I have few questions regarding TopLink or any ORM software for ejb2.0.

    I understand that the very use of TOPlink and other ORM software were used for easy development of data access layer and concentrating on business logic. Also to enable portability across app servers provided the app servers provides TopLink support

    But now that each of app servers themselves come with a good CMP solution for ejb2.0. Also doing CMP ejb2.0 simplifies the process jsut like Toplink or any ORB tool and most of the operations are declarative and also the ejb2.0 specifications defines most of the process, any CMP solution should also be portable across app servers.

    What is the need for a tool like TopLink especially considering the enormous cost involved in that. Also it is an extra overhead in terms of both cost and performance as it adds another layer and compatibility. Am I missing something here that TopLink might provide which may not be achieved using CMP ejb2.0 solution
  5. "Am I missing something here that TopLink might provide which may not be achieved using CMP ejb2.0 solution"

    Yes, products like toplink and cocobase offer remote transactional access to a "natural" object model rather than having to create an ejb style seperation of logic and data into session and entity beans.

    When used "merely" as a CMP layer for entity beans the advantages are somewhat less compelling but it is however still superior to typical app server CPM mechanism and has some useful stuff like optimistic locking built in.

    Paul Campbell.

    UK based independent java consultant
  6. I have only looked at the EJB2.0 CMP stuff in the latest
    O'Reilly book on EJB.

    However, compared to a mature OR mapping framework the spec seems primitive.

    Let's say I have a Customer with relationships to Billing Address (to-one). Does EJB2.0 CMP allow me to specify optimized fetch strategies for these relationships in different scenarios? For example:

    1. A list of customer names
         fetch only Customers

    2. A list of names and addresses
         Will CMP optimize the fetch to get
         all Customers I want and fetch their
         addresses (2 SQL queries) or will it
         fetch all customers and fetch each address
         as I invoke the address relationship accessor?

    These types of considerations can have massive implications for performance and a good O-R tool will do this type of work.

    I'm sure if you want something to compare O-R tools against JDO is the one, not EJB CMP.

    Don't laugh, but if you buy WebObjects 5.0 from Apple for $699 (cheaper if you stump up the cash to join the developer program) you get EOF, now a pure Java 2 O-R
    framework. Not a bad price (a lot of guys working at Sun on JDO are ex-Next where EOF was developed).

    Mike
  7. The stuff you mention is not menat to be part of the spec. Instead, it is up to the product vendors to provide these types of optimizations/features in addition to spec conformance. Ideally this should still not limit your ability to switch to another vendors implementation (which is not always fully achievable).

    BTW, MVCSofts implementation, which was mentioned before, has its stregnths in exactly these matters. The 2 examples you mention are easily possible by configuring fetch groups (i.e. groups of attributes that should be loaded together). You can configure fetch groups for whole entities, or for particular queries only. Nice.

    regards,
    Christian
  8. Christian,
     
    If it's not part of the spec, then that's my point. EJB2.0 CMP of itself will not provide me with performance I need in real world apps without dropping down to some vendor supplied enhancement.

    My guess is that for a real world application the vendor specific part of my code/configuration will quickly outweigh the standards based portion. So which vendor?

    Do I use my J2EE container vendor's tools or do I pick an O-R framework vendor's tools?

    Mike
  9. MVCSoft Persistence Manager[ Go to top ]

    As an FYI, MVCSoft's Persistence Manager is an implementation of EJB 2.0 for various EJB containers. It does have some additions to EJB-QL (LIKE, ORDER BY), and it has many tuning parameters, but it doesn't stray from the EJB 2.0 persistence model.
  10. You should try CocoBase for EJB 2.0[ Go to top ]

    It's great to see Toplink is finally adding some EJB 2.0
    support - this is great for customers to get new choices.
    But of course since their product requires the server to
    implement EJB 2.0 before they can provide compatibility
    it's not suprising they're just releasing this.

    The CocoBase product has supported much of EJB 2.0 based
    on the draft EJB 2.0 specification for almost a year now,
    and we continue to offer customers great choices for J2EE
    in BMP, CMP & Session Bean implementations. But since we
    don't have to hack into the container to implement our CMP
    and rely fully on the EJB container for all servers
    except the actual JDBC call itself which our O/R layer
    implements it affords us increased portability and
    standards compliance...

    If you're really interested in EJB 2.0 support you should
    look at the CocoBase Enterprise product. Not only does our
    CMP 2.0 solution work with the new EJB 2.0 servers, it
    actually works with and supports most of the EJB 2.0
    features with older EJB 1.1 servers as well.

    To answer a previous commenters request of 'what value does
    an ORM tool bring to an App Server', I can certainly tell
    you what value CocoBase CMP has compared to the built in
    CMP. CocoBase is an O/R mapping layer, whereas the CMP
    solutions are what is called an 'object persistence layer'.
    The main difference is an object persistence layer is
    basically a toy layer that assumes that the RDBMS and
    object model are the same and will always be the same.

    An O/R mapping layer doesn't make this assumption and
    includes facility to bridge the impedence mismatch between
    the object model and database model. With CocoBase for
    example a DBA can normalize a database, and change the
    mapping of a CMP bean so selects are joins of multiple
    tables, inserts insert multiple rows, etc. All without
    editing, recompiling or redeploying the EJB bean. This
    is what CocoBase can do, and the built-in CMP can't.

    The CocoBase O/R mapping and CMP solution supports beans
    that span tables and dependent objects that aren't EJBs.
    Also CocoBase supports 'value' objects for CMP that can
    root not only the bean but dependent graphs of objects.
    And unlike the Local interfaces that are restricted to
    single JVM use, CocoBase can support value objects that can
    be easily distributed. Local interfaces assume that data
    will never need to be pushed back to the client, which
    may or may not be true. The value object is about as fast
    locally as Local Interfaces, but they work with client
    JVMs and Server JVMs.

    CocoBase can also allow customers to use either a builtin
    cache implementation or a custom one to do object caching
    with, BMP, CMP, Session, etc. And the cache can even be
    shared across object models, component types and
    applications in a distributed environment. This means that
    an account application without EJBs can share the same
    transaction data cache that an EJB app for order entry
    share.

    Those are just some of the value propositions that an O/R
    tool solution that was architected for servers gives you :)

    The new 4.0 release of CocoBase is days away and it also
    includes updated EJB 2.0 support that reflect the changes
    of the EJB 2.0 final release (non-draft) specification.
    And instead of supporting only one or two servers as though
    they are J2EE, CocoBase can support dozens of servers and
    is even user extensible to support additional EJB servers
    not automatically shipped...

    And now a quick note about EJBQL...

    While EJBQL is certainly a good idea to define queries,
    CocoBase supports 'generic finders' that allow a single
    finder to issue virtually any SQL statement for a given
    bean type on the fly controlled from the client. This
    design provides much better reuse than the embedded QL
    approach which restricts and limits the reusability of
    EJBs... We will support EJBQL soon, but we won't restrict
    or limit customers to its use. After all if embedded
    queries were such a good idea, why would customers ever
    use an O/R mapping layer? EJBQL is largely a conceptual
    step backwards because instead of embedding SQL the customer
    embeds a similar but new Embedded Query language... While
    we will support this feature in CocoBase for compatibility
    and ease of portability for customers, it doesn't seem
    like a very good idea IMHO...

    Have fun everyone and enjoy EJB 2.0 whatever you guys use!

    Ward Mullins
    CTO
    THOUGHT Inc.
    http://www.thoughtinc.com
  11. You should try CocoBase for EJB 2.0[ Go to top ]

    We did and never actually got it to work.
    I do believe that the code CocoBase produces is of high quality, but the UI is some of the worst I've ever seen, terrible. Secondly the batch file that started the mapping tool (cocoadmin) was to be found in the demo directory (in which case we just started executing every batch file until we found the right one). What's it doing there? The documentation was poor, so it was mostly trial and learn. CocoBase couldn't map to our datamodel in DB2 since we don't use referential integrity, so that was a no go. Then we tried with a constructed datamodel in MS SQL Server 2000, both with Microsofts beta JDBC driver and the driver from BEA. Neither worked with cocobase (it couldn't install something (I forgot what it was) into the DB), so we never really got to see what it could offer us.

    We had a look at TopLink but the pricing is so crazy that we would never make any money selling a product based on TopLink's code.

    Right now we're testing the Persistence Manager from MVCSoft, and just by looking at the documentation it looks promising and the pricing is reasonable ($199).
  12. FrontierSuite supports EJB 2.0 (final). FrontierSuite is the most mature product for EJB 2.0 and supports all the application servers which has EJB 2.0 support. FrontierSuite is a powerful JCA compliant persistence engine and a Model Driven Architecture (MDA) based platform.
    FrontierSuite has a great UI and excellent performance. Some of the highlights of FrontierSuite are:
    - Easily build new Java/J2EE applications, Reverse Engineer or incorporate our state of the art persistence engine to your existing applications.
    - Full Support for EJB 2.0.
    - BMP/CMP O-R Mapping.
    - JMS based Distributed Cache.
    - Customizable XML encoders and decoders.
    - Integrated with a host of Modeling Tools, IDE and J2EE Application Servers.
    - JCA Compliant with ability to persist data across ER’s, CRM’s, RDBM’s etc.
    - 100% Java, Standards based and compliant with Model Drive Architecture.

    Upcoming Features:

    - ToolKit to build JCA Adapters
    - JDO Support


    Thanks,
    Shirish Shetty
    WWW.ObjectFrontier.com
  13. Questions about TopLink 4.0[ Go to top ]

    TOPLink is big money. WebGain pricing model requires a dip into your revenue stream - not profit, revenue.

    I evaluated several object persistence tools late this past summer. I wasn't able to work with MVCSoft's stuff, but I did buy it and it's manual. Very good stuff, I must say.

    I intend to build a prototype with it for comparison sake. i especially like the fact that it plugs into JBoss that easily.

    Bruce
  14. Questions about TopLink 4.0[ Go to top ]

    TopLink is good, but it is expensive.

    We use it as the persistence mechanism in our product, but are having to replace because the pricing strategy changed to make it more expensive (per CPU rather than per developer).

    Our favoured approach would be to replace it with a JDO solution.
  15. Questions about TopLink 4.0[ Go to top ]

    If price is a concern, you better forget TopLink as fast as you can spell the name. I have evaluated MVCSoft, and must say that although it is in an early stage (release 1.0 pending), it is an amazingly feature-rich and solid product. It provides many performance tuning options which become relevant in a high-throughput scenario and aren't present in many other products. And it even has a GUI for specifying the mapping data.

    Pricewise, MVCSoft is hard to beat. All you spend is $200 per developer, *and* you get the source code, too!

    Of course, TopLink is not only an EJB 2.0 layer, but also provides true O/R mapping (inheritance, polymorphism and all) which is something that EJB 2.0 sadly still neglects.

    regards,
    Christian Sell
  16. Questions about TopLink 4.0[ Go to top ]

    Hi Jon,

    Im currently using Toplink for WebLogic 3.5.6, and heres answers to some of your questions;

    [1] It costs around £10k for licences for development and the mapping workbench, if I remember correctly.


    [2] I cannot comment, as I have not used the CMP engine you mentioned in JBoss.

    TopLink employs a concept of a change set to maintain the locally modified transactional state and then to optimally generate SQL to update only the modified state, which could be relatively efficient compared to some update-all type SQL being generated in some CMP engines.

    However, I have encountered few scenarios where TopLink client-server caches becomes not very useful, (esp. when RMI clients are used) where things were read/written to db more than necessary.

    [3] TopLink provides some useful features for mapping class inheritence. The GUI tool (workbench) looks cool, but sometimes a pain to use. Unfortunately hand editing the XML descriptor not a recommended option, also its DTD being withheld.

    Version 3.5.3, setting relationships betweens EJBs is also cumbersome, where the bean developer and/or EJB client app
    is responsible to maintaining BOTH the forward and back references. Hopefully this is sorted in v4.0 as it shoud properly support CMR in EJB2.0, but guess this is something you need to be particular about.

    Id be checking v4.0 out soon, and will let you know of any findings.

    I would also be interested in sharing your experience with the JBoss CMP engine, or any other CMP engines in that matter.

    cheers
    -hari
  17. Does anybody know how TopLink replace/extend particular Application server CMP? As far as I understand other ORM tools could do it through JCA to be able to work with any Application Servers (from 1.3). Does TopLink use Foundation Library through native ApplServ interfaces?
  18. Lari,
      Toplink replaces the underlying CMP mechanism with whatever vendor-specific API is exposed for the persitence management. This is why only a few app servers are supported for CMP (and more are supported for BMP, since integration with the JTA + XA data source is the only major requirement).

    Mike,
      CMP is just a spec, it allows vendors to compete on optimization. Nothing in CMP precludes the ability to do batch queries, joins, or object faulting / indirection for relationships. Ditto with JDO, which is just a spec with a reference impl. I'm a big fan of WebObjects and EOF, I think it's great, I just wish it was better integrated with J2EE. TOPLink has been the closest thing to EOF for me in terms of richness of its object model, locking abilities and query framework. So CMP 2 + TOPLink is really a decent model, if you just view CMP 2 as a way to keep your persistence model portable... if ya wanna switch to CocoBase or something.

    A lot of people seem surprised that EJB 2.0 CMP doesn't mandate a lot of these detailed features for performance optimization. Why should it? How would vendors compete if that were the case? That we have to use vendor specific features is just reality, just as how we have to use vendor-specific SQL most of the time.

    It doesn't diminish the value of CMP 2.0 that much -- we still have a portable persistence layer that, with minimal code changes, can be ported to a different CMP engine or even to a different RDBMS. This task isn't just a flip-of-the-switch, however.. it needs configuration and an understanding of the new CMP engine... because as with all complex things, CMP engines are vastly different, just as all RDBMS engines are VERY different.
  19. Hi Stu,

    How invasive is TOPLink? Does it require modification of your object model or application code, or does it replace the container's persistence mechanism, completely independently of the application code?

    All the other ORM implementations seem to require on or the other. Perhaps this would justify TOPLink's amazing price? ;-)
  20. So, if WebObjects and EOF were integrated in EOF, would you use it?

  21. Hi Lari,

    "As far as I understand other ORM tools could do it through JCA to be able to work with any Application Servers"

    Well, the JCA (connector arhitecture) does not provides a granularity rich enough for a third-party to write a CMP engine. Also the intention of JCA is quite different- it is meant to be for developing resource adapters in the same conceptual level that one would use a JDBC driver, but intending a different client API (for example, to an ERP back-end).

    -----


    "Does TopLink use Foundation Library through native ApplServ interfaces?"

    Yes, again on my understanding of TopLink's (v. 3.5.3) integration with WebLogic server 6.0 I seem to use a non-public API of WLS to hook in to the bean manager, and intercepting the invocations to beans, and a JTA based API to obtain notifications on transaction commits etc...

    WLS also provides a very modular way for third-party vendors empoly their own EJB-persistency code generation at EJB compilation time (using weblogic.ejbc) using the information in weblogic-jar.xml and persisitence.install files. TopLink employes these to create its own persistency-aware classes deriving from the EJBs, which are eventually used with their O/R project mappings when EJB life-cycle events are intercepted in the above way.

    (All my findings are based upon analysing stack traces and looking at general configuration approaches, so you may want to verify this with WebGain and/or BEA.)

    cheers,
    -hari

  22. Kind of ironic they don't mention support for JBoss, considering another one of their products, Application Composer, embeds it.
  23. ORM & ECPerf results[ Go to top ]

    Has anyone tried running the ECPerf benchmarks while using one of the various ORM products?
  24. Hi, I've used TOPLink in my consulting engagements, and here's my view:

    - TOPLink isn't a perfect product. Its GUI tool is somewhat lacking in stability, though it's getting better. Its documentation is generally good but could be organized better. The underlying product is generally rock-solid.

    - App server vendors CMP implementations are getting better, but they're still somewhat naive. That means you'll have a hard time implementing performance optimizations and/or more complex models (like those that involve interfaces or inheritance).

    - CMP 2.0 has no support for dynamically built queries

    - CMP is an excellent productivity enhancer but you need to be aware that to get real-world performance, you'll have to use a lot of vendor-specific settings and optimizations. (not necessarily code, but settings). This is just reality.

    I think a lot of people keep questioning the use of something like TOPLink in a CMP world really haven't worked extensively with object/relational mapping. TOPLink is a product with over 10 years of history. It's very mature, it generates fast SQL code, it supports bind variables for stored-procedure level performance and even allows you to generate stored procedures for many of its interactions if your DBA's restrict dynamic SQL access. TOPLink also supports non-EJB mapping.

    The only real issue with TOPLink is price, which on most sizable business systems is usually acceptable considering what you're paying for BEA WebLogic or IBM WebSphere, or [insert app server with 5 to 6 digit price tag here]. Not to mention development time (a $200/hr consultant ain't cheap) Reselling is a different story.