Oracle 9i Application Server - TopLink
TopLink Value Add Over EJB 1.1 and 2.0
Oracle9i Application Server TopLink offers a Data Integration architecture that facilitates rapid development, deployment, and execution of e-business applications with various data sources. It accelerates time-to-market for applications by providing your persistence infrastructure at the onset of development. TopLink supports any architecture including EJB (CMP and BMP), regular Java Objects, Servlets, JSP, Session Beans, Message Driven Beans, etc. With TopLink, you are not locked into any particular application design. You can make use of Java Objects, EJBs, or a combination of the two.
Oracle9i Application Server TopLink greatly improves the way you build applications, making your applications portable across databases, schema, and servers. The object-relational features described in the EJB specifications only address basic issues related to storing Entity Beans in relational databases. Solid O/R mapping and runtime features are required to build enterprise-quality applications. The tables below list some of the key features available in TopLink.
TopLink is a market proven product that reduces development and maintenance costs by facilitating application quality and reuse. Its comprehensive features have evolved from extensive use by thousands of developers with diverse architectures in various vertical markets.
|
EJB and TopLink Features and Benefits Chart
Be Free to Meet Business Needs
TopLink mapping features provide you with the flexibility to map beans and objects to a database with little impact on your ideal application design. You are free to design your application to business needs rather than forced by a particular approach to satisfy persistence needs.
|
| Mapping Options
|
EJB 1.1 Spec
|
EJB 2.0 Spec
|
TopLink
|
Description
|
| Multiple Table |
No |
No |
Yes |
Map attributes of a bean or class to more than one table |
| Map Collections |
No |
No |
Yes |
1-n and n-m relationships through a Map instead of Collection |
| Aggregate Collections |
No |
Yes |
Yes |
1-n relationship with no required back reference in object model |
| Aggregates |
No |
No |
Yes |
Map 1-1 related classes to a common table |
| Direct Collections |
No |
No |
Yes |
Map collections of basic data including Strings, Numbers, and Dates |
| Type Conversion |
No |
No |
Yes |
Convert from types between the object and the database. For example, store a String in the database but a number in the object |
| Object Type |
No |
No |
Yes |
Convert finite keys and values between object and database. For example, 'male' and 'female' in object but 'M' and 'F' in database |
| Serialization |
No |
Yes |
Yes |
Serialize objects to BLOBS and CLOBS. TopLink supports several database representations of binary data |
| Transformation |
No |
No |
Yes |
User provided rules for transformation of data between database and object |
| Object Relational |
No |
No |
Yes |
Support for advanced Oracle 8i relational structures including VArray and Nested Tables |
| Variable 1-1 |
No |
No |
Yes |
1-1 relationship through interfaces |
| Variable 1-n |
No |
No |
Yes |
1-n relationship with heterogeneous collections |
| Custom SQL |
No |
No |
Yes |
Specify your own custom SQL or let TopLink automatically generate for you |
| Indirection |
No |
Yes* |
Yes |
Fault data from database "just in time". *Indirection is optional but not required to be EJB 2.0 compliant |
Achieve Code-Free Integration
TopLink supports the same kinds of bean-to-bean and bean-to-object and object-to-object relationships as EJB 2.0. However, TopLink provides complete flexibility in the schema design and allows relationships to be supported directly in a natural fashion without the need for code generation or special classes to represent the relationships.
|
| Supported Relationships
|
EJB 1.1 Spec
|
EJB 2.0 Spec
|
TopLink
|
Description
|
| 1-1 bean-bean |
No |
Yes |
Yes |
|
| 1-n bean-bean |
No |
Yes |
Yes |
|
| NM bean-bean |
No |
Yes |
Yes |
|
| 1-1 bean-object |
No |
No |
Yes |
TopLink supports mapping and querying across beans and regular Java objects. |
| 1-n bean-object |
No |
No |
Yes |
|
| 1-1 object-object |
No |
No |
Yes |
|
| 1-n object-object |
No |
No |
Yes |
|
| NM object-object |
No |
No |
Yes |
|
| Dependent Values |
No |
Yes |
Yes |
Support for relationships to regular Java objects that are passed between client and server by value TopLink allows EJB QL queries to query across dependent values |
Cut Development Time
TopLink allows you to control how beans and objects are mapped to a schema graphically with a tool called the Mapping Workbench. When there are changes to the schema or object model, the mappings can be easily updated with tools that automatically generate a schema and map beans and objects.
|
| Persistence Manager Tools
|
EJB 1.1 Spec
|
EJB 2.0 Spec
|
TopLink
|
Description
|
| Map beans and objects using graphical mapping tool |
No |
No |
Yes |
Ability to graphically map and maintain persistence information |
| Support for importing beans |
No |
No |
Yes |
Ability to import beans into tools |
| Import Schema |
No |
No |
Yes |
Ability to import schema information from any database reachable through JDBC |
| Generate Schema |
No |
No |
Yes |
Ability to generate a schema automatically from an business model, beans and/or regular Java objects |
| Auto-map |
No |
No |
Yes |
Given a business model and schema, TopLink can automatically generate a lot of the mapping information |
Leverage Current Developer Skills
TopLink provides maximum flexibility for specifying queries. SQL and stored procedures can be used if the developer is comfortable with that technology. Java developers will find the TOP Expression framework easy to use and an object oriented alternative to specifying queries. By providing several querying options, your developers can use whichever skills they are more experienced in with no impact to performance.
|
| Finders and Queries
|
EJB 1.1 Spec
|
EJB 2.0 Spec
|
TopLink
|
|
| EJB-QL |
No |
Yes |
Yes |
TopLink supports EJBQL with Java objects and BMP, as well as CMP |
| Refreshing |
NA |
NA |
Yes |
|
| In memory queries |
No |
No |
Yes |
Run queries in memory, against the cache, rather than performing a round-trip to the database |
| TOP Expressions |
No |
No |
Yes |
Flexible and advanced OO based query language |
| SQL & Stored Proc |
No |
No |
Yes |
Call stored procedures or custom SQL instead of using EJB QL or TOP Expressions |
| Parameterized SQL |
No |
No |
Yes |
Specify SQL to take arguments at runtime |
| Dynamic Querying |
No |
No |
Yes |
Generate OO queries, ad hoc, at runtime |
Increase Performance as Much as 5000%
TopLink allows you to performance tune your application and the interaction with the relational database for maximum performance. Applications can be sped up 5000% by using TopLink to reduce the number of round trips to a database and retrieve data from cache.
|
| Optimization
|
EJB 1.1 Spec
|
EJB 2.0 Spec
|
TopLink
|
Description
|
| Cursored Streams |
No |
No |
Yes |
Ability to read large sets of data in small batches |
| Batched Reading |
No |
No |
Yes |
Read related data through joining in a single round trip to the database |
| Partial Attribute |
No |
No |
Yes |
Read only required parts of a bean or object |
| Batched Writing |
No |
No |
Yes |
Execute several update statements in a single network round-trip |
| TopLink Events |
No |
No |
Yes |
Plug into all persistence lifecycle messages for your bean or class |
| Caching Options |
No |
No |
Yes |
Six kinds of caches, controllable on a per-bean and per-class basis |
Avoid Writing Infrastructure Code
TopLink provides several locking strategies as well as sequence number management strategies. Having these features in place means you can focus on your application instead of building infrastructure. Advanced features for performance tuning, logging, distribution and support for non-CMP architectures are also available. These are all tools that can be used to avoid writing infrastructure and help write faster applications.
|
| Other Options
|
EJB 1.1 Spec
|
EJB 2.0 Spec
|
TopLink
|
Description
|
| Table Sequences |
No |
No |
Yes |
Manage sequences using a sequence table portable across any relational database |
| Native Sequences |
No |
No |
Yes |
Manage sequences using the native sequencing functionality of Oracle, Sybase, or Informix |
| Optimistic Version Locking |
No |
No |
Yes |
Optimistic locking using a timestamp or reference count in the database |
| Other Optimistic Locking |
No |
No |
Yes |
Optimistic locking using any combination of fields for a bean or object |
| Pessimistic Locking |
No |
No |
Yes |
Pessimistic locking using "SELECT FOR UPDATE
" semantics |
| Logging options |
No |
No |
Yes |
Log all lifecycle events, SQL generations, and interactions with the database to a console or file |
| Profiler |
No |
No |
Yes |
Analyze and chart performance aspects of persistence and identify sources for optimizations |
| Inheritance |
No |
No |
Yes |
Ability to organize beans and object into hierarchies with support for various schema representations |
| XML SDK |
No |
No |
Yes |
Ability to read and write XML instead of SQL |
| EIS SDK |
No |
No |
Yes |
Ability to access legacy data is currently supported through the TopLink SDK. WebGain is currently working on TopLink support for J2EE Connectors |
| Clustering - Refresh |
No |
No |
Yes |
Ability to refresh cached beans and objects between nodes of a cluster of application servers |
| Clustering - Synchronization |
No |
No |
Yes |
TopLink contains support for synchronous or asynchronous cache synchronization between nodes in a cluster |
| TopLink for Java support for non EJB deployment |
No |
No |
Yes |
Ability to use TopLink in any Java application using regular Java objects |
| Bean-managed persistence |
Yes |
Yes |
Yes |
Ability to use TopLink in any Java application using BMP Entity Beans |
|