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.
- Posted by: Floyd Marinescu
- Posted on: December 11 2001 14:17 EST
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.
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.
- Questions about TopLink 4.0 by Web Master on December 11 2001 20:36 EST
- Relevance of TopLink in an EJB environment by phil bradley on December 12 2001 00:36 EST
Relevance of TopLink in an EJB environment by Pri Vasu on December 12 2001 07:51 EST
- Relevance of TopLink in an EJB environment by Paul Campbell on December 12 2001 08:10 EST
- MVCSoft Persistence Manager by Web Master on December 12 2001 02:42 EST
- Relevance of TopLink in an EJB environment by Pri Vasu on December 12 2001 07:51 EST
- Questions about TopLink 4.0 by Web Master on December 12 2001 01:02 EST
- Questions about TopLink 4.0 by Craig Goldie on December 12 2001 05:24 EST
- Questions about TopLink 4.0 by Christian Sell on December 12 2001 06:31 EST
- Questions about TopLink 4.0 by Harindra Rajapakshe on January 05 2002 03:35 EST
- Relevance of TopLink in an EJB environment by phil bradley on December 12 2001 00:36 EST
- Webgain announces Toplink 4.0 with EJB 2.0 support by Lari Novic on December 12 2001 08:43 EST
- Webgain announces Toplink 4.0 with EJB 2.0 support by Stu Charlton on December 16 2001 12:05 EST
- Webgain announces Toplink 4.0 with EJB 2.0 support by Kenny MacLeod on December 16 2001 05:44 EST
- Webgain announces Toplink 4.0 with EJB 2.0 support by Mike Henderson on December 16 2001 06:01 EST
- Webgain announces Toplink 4.0 with EJB 2.0 support by Harindra Rajapakshe on January 05 2002 03:58 EST
- Webgain announces Toplink 4.0 with EJB 2.0 support by Stu Charlton on December 16 2001 12:05 EST
- Webgain announces Toplink 4.0 with EJB 2.0 support by Chip Tyler on December 12 2001 10:37 EST
- ORM & ECPerf results by Kenny MacLeod on December 16 2001 11:08 EST
- Webgain announces Toplink 4.0 with EJB 2.0 support by Stu Charlton on December 16 2001 11:52 EST
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.
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!
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
"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.
UK based independent java consultant
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).
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.
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?
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.
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
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
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!
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).
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.
- ToolKit to build JCA Adapters
- JDO Support
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.
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.
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.
Im currently using Toplink for WebLogic 3.5.6, and heres answers to some of your questions;
 It costs around £10k for licences for development and the mapping workbench, if I remember correctly.
 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.
 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.
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?
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).
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.
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? ;-)
So, if WebObjects and EOF were integrated in EOF, would you use it?
"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.)
Kind of ironic they don't mention support for JBoss, considering another one of their products, Application Composer, embeds it.
Has anyone tried running the ECPerf benchmarks while using one of the various ORM products?
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.