CocoBase
features list & details  
 


CocoBase® is the award winning, market leader for O/R Mapping, shipping since early 1997. It was the first Java O/R Mapping tool and continues to lead the industry with technological innovations providing developers the most full featured and easy to use tool for managing data in Java applications.

 
 

CocoBase® Enterprise O/R - Version 4.5

 
 


Product Info Tabs
New Release Info
Product Overview
Technical Specs
Product Details

Expand Your Options for Persisting Data with CocoBase®

Types of Persistence CocoBase Enterprise O/R Development Environments Modeling Tools Application Servers

J2EE EJB Entity Beans

.. .. .. ..
CMP "Code Generation / No Persistence"

yes

yes

yes

no

CMP "Basic Persistence"

yes

no

no

yes

CMP "Advanced Persistence"

yes

no

no

no

BMP "Basic Persistence"

yes

yes

yes

no

BMP "Advanced Persistence"

yes

no

no

no

J2EE Other

.. .. .. ..
Session Bean Persistence

yes

no

no

no

Java Server Pages Persistence

yes

no

no

no

Servlets Persistence

yes

no

no

no

J2SE

.. .. .. ..
Java Classes (Applications) Persistence

yes

no

no

no

Java Classes (Applets) Persistence

yes

no

no

no



New Release Info - "Version 4.5, Service Release 4"

The new version of CocoBase Enterprise O/R offers an amazing new innovation, Sessionless Data Persistence, which greatly simplifies providing database access for web-based applications (i.e. applications that do not keep a constant connection to the database). Other features include expanded EJBQL Query abilities, full Unicode support within the tool, updated support for Eclipse / WebSphere IDE and new auto-validating between object model and database mappings. Each of these innovations continue to support the "Quick and Easy" nature of CocoBaseâ, which enables developers to cut the cost of database access development, deployment and maintenance by up to 85%.

Sessionless "Off-line Application" Data Persistence - This helps to simplify web application development for applications that are used in offline environments like a web browser. It provides the ability to have an application reconnect to the persistence layer and call up the information from the previous connection (i.e. reset the session state). The persistence layer will then automatically reconcile any changes to the object model and related data and save them with the appropriate database commands. This provides required data integrity and optimistic locking for offline environments, even when complex object models are used, greatly simplifying development of these applications.

Details of the new features in this release are; 1) Full EJBQL 2.1 Syntax supported including Scalar functions of MIN / MAX / Etc., with extensions for the ability to express Outer Join Object queries, 2) Updated development environment support for current versions of Eclipse and WebSphere IDE, 3) New diagnostic feature automatically validates Application Object Models to the Database Mappings for more accurate and error-free development, 4) Greater ease of use for developers using command line scripting oriented development approaches with simplified CocoBaseâ mapping format based on XML, 5) Extended Unicode support in CocoBaseâ Administrative GUI and Runtime tools so that developer can work in their own respective language.

 
     
 

Product Overview


Dynamic O/R Mapping™
CocoBase aids in the creation, management and maintenance of database access for Application Server / J2EE components and J2SE Java programming classes. CocoBase®
supports an unlimited styles of mapping starting with one to one / one to many / many to many relationships.

CocoBase® takes the database specific code and pre-written SQL out of the object and saves this information to the mapping layer (i.e. map). Thus decoupling the object from being hard coded to the database. The database specific code and SQL is dynamically created at runtime. This allows objects to be easily reused over and over. This dynamic layer provides a multitude of performance and scaling optimizations that are easily changed by the programmer to best fit their specific needs.

Dynamic Transparent Persistence™
CocoBase® provides transparent object persistence for both development of EJB and Java classes.
CocoBase® can persist complex data object graphs in both a local and distributed environment that can be managed with a few lines of code. This provides completely reusable components for the developer with no CocoBase code in the object required.

Sessionless "Off-line Application" Data Persistence
This helps to simplify web application development for applications that are used in off-line environments like a web browser. It provides the ability to have an application reconnect to the persistence layer and call up the information from the previous connection (i.e. reset the session state). The persistence layer will then automatically reconcile any changes to the object model and related data and save them with the appropriate database commands. This provides required data integrity and optimistic locking for off-line environments, even when complex object models are used, greatly simplifying development of these applications.

Dynamic Universal Querying™ with EJB-QL
Powerful
and easy-to-use querying system for issuing meaningful queries with EJB-QL and/or CBQuery Builder API across the J2EE, J2SE and J2ME platforms.

UML Modeling Tool Integrations
CocoBase® works side by side with the following modeling tools such as Embarcadero Describe, Rational Rose, Together Control Center and Sybase Power Designer. Simply import the model and generate the persistence code.

EJB Support
CocoBase® provides full Application Support for CMP / BMP Entity Beans, including the EJB Component Transaction model, Java Server Page compatibility for fast Internet user interface construction, and full enterprise oriented management tools designed for the entire J2EE technical requirements for database integration. This is done for all of the top EJB Servers!

Java Development Environment Integrations
CocoBase® is fully integrated with Forte for Java from Sun Microsystems®., JBuilder from Borland, and Visual Age from IBM. CocoBase® Enterprise O/R is available to easily work within your Java development environments. Simply call CocoBase® from within JDE, create database map, generate cmp/bmp/jsp, and deploy to application server.

Application Servers Integrations
CocoBase® is now tightly integrated with the top application servers providing both CMP & BMP Entity Beans that work seamlessly with the server. Supported servers include; BEA Weblogic, Borland, IBM WebSphere, JBoss, Macromedia JRun, Oracle, Orion, SunOne, Sybase EAServer and Tomcat.

Customer Service
We provide superior customer service and quickly respond to both technical and sales inquiries. We pride ourselves on top-level technical support and rapid response times. Specific services available are: 1) In-depth tra
ining, 2) Architectural Mentoring to facilitate best use of O/R Mapping and CocoBase, 3) Expert-level Sales Engineering, and 4) Rapid Response Technical Support. The combination of excellent customer service and the full range of support services strongly supports companies through to successful J2EE & J2SE applications.



Technical Specifications


Persistence Features

  • Centralized repository based mapping technology
  • XML and database repository formats
  • Relational database server independent
  • Application model independent
  • Sessionless "Offline App" Data Persistence
  • 100% non-intrusive transparent persistence
    .....* No source or byte code post-processing
    .....* No proprietary interfaces or superclasses

O/R Data Mapping

  • Direct field-to-column mapping
  • Multiple table to single object mapping
  • Multiple object to single table mapping
  • Inheritance mapping
  • Operation based SQL management
  • Single and composite key support
  • Comprehensive JOIN support
  • Supports stored procedures and functions
  • Supports proprietary SQL (i.e. dialects) on all
    operations
  • Supports any sequence generation strategy
  • Supports multiple sequence generators per map
  • Support for cartesian products & other denormalized
    resultsets
  • Supports JDBC 1.1 & 1.2 datatypes (e.g. ARRAY
    CLOB, BLOB, etc.)
  • Configurable read-only & write-only field mapping
  • Configurable optimistic & pessimistic locking
  • Support for multiple inheritance mapping strategies
    in a single class hierarchy
  • Classless mapping (no Java business class
    required)

O/R Relationship Mapping

  • Uni- & bi-directional relationships
  • 1:1, 1:M & M:M relationships
  • Cascade control (e.g. cascade deletion) on all
    operations, & in local and distributed environments
  • Local and distributed lazy loading
  • Automatic key constraint management (maintains
    referential integrity by proper ordering of database
    operations)
  • Supports recursive object graphs to any level of
    complexity
  • Out of the box relationship proxies for dynamic link
    loading and management
  • Relationship proxies for Java 1.1 & 1.2 collection
    fields
  • Relationship proxies for 1:1 field types
  • Extension framework for custom relationship
    proxy classes

Performance

  • JIT optimized runtime
  • Out of the box 200% - 300% performance advantage
    over hand coded JDBC
  • Up to 4000% performance improvement with optimal
    configuration

Persistence API

  • No SQL or JDBC required in application code
  • Persistence by reachability for all operations
  • Customizable instance factories (e.g. polymorphic
    instantiation)
  • Customizable persistence plug-ins (e.g. data
    conditioning pre & post - JDBC layer access)
  • Layered API architecture with extensive
    documentation and examples
  • High level CBFacade API for local or distributed,
    object & object graph life cycle management
  • CBFacade architecture provided as source code
  • Object oriented transactions w/ smart updates
  • Batch updates
  • Development Tools
  • UML/XMI, class & table importers render complete
    data models in seconds
  • GUI integrations for major IDEs focus on business
    application development
  • Map repository export feature allows easy porting
    from development to deployment platforms
  • Free form SQL and EJB-QL test consoles
  • Command line tools available for scripting

CocoBase Dynamic Querying

  • Built-in query by example system for field based
    queries
  • Query builder API for complex querying
  • Declarative EJB-QL API for dynamic querying
  • Abstraction allows map based queries to be
    database schema independent
  • Object based & relational based queries can be
    combined through a common base infrastructure
  • Raw SQL can be embedded within any query
  • Local and distributed scrollable cursor based
    querying
  • Supports projections and classless querying
  • Support for scalar functions (i.e. count, max, etc.)

Enterprise Highlights

  • Smart reconciliation - object identities preserved
    across serialized copies
  • 2 to N tier architectures fully supported
  • Local, shared (single server) or distributed (peer to
    peer) caching
  • Supports J2EE distributed transactions
  • Seamless CMP & BMP integrations
  • Configurable, multi-level debug & SQL listings

Compatibility

  • 100% pure Java
  • Works with any JDBC 1.1 or 1.2 compliant driver
  • Works with JDBC 1.1 & 1.2 datasources
  • J2EE Integrations with major application / EJB servers
  • GUI toolset integrations with major IDEs


..
..
Detailed Descriptions


Object to Relational Mapping

Powerful Dynamic O/R Mapping.
CocoBase® Enterprise O/R offers a flexible and sophisticated system for meeting your Object to Relational mapping needs. The tool delivers mapping that easily evolves from the simple to the complex and gets out of your way when you need it to. It offers an easy to use GUI Admin. Tool that supports features such as; maps that span across tables, 1-1 1-M M-M relationships, maps in subsets of tables, sql is created and is tunable, maps tables from classes and classes from tables, automatic mapping that speeds the process of development, dynamic querying, supports proxy objects, configurable code generation, etc.

Centrally Managed Access to cut database administration costs to almost zero.
CocoBase®, first of all, provides an easy to use Object to Relational point and click GUI mapping tool. This tool allows full control down to many to many relationships and is the only tool on the market that can handle fully table spanning select, updates, inserts, deletes, and procedure calls with out recompile of the Java application. Because reconfiguring of the database can happen on the fly without recompile or reload of every Java application, database administration costs can be cut to almost zero.

Tool is written entirely in Java.
The tool delivers wide portability as it is 100% Java and can run anywhere Java does.

VERY High Performance O/R Layer.
Offers a no-overhead mapping layer (plus or minus a few percent versus straight JDBC code). The overhead is typically not measurable and the resulting O/R code is often more efficient than hand coded JDBC code. Most O/R systems advertise around 20% overhead, CocoBase® is at most a 1-5% overhead or performance boost on most systems.

DBA's create/manage the Data Objects and the Programmers can just use them.
No need to be an expert in JDBC / Databases / Tuning SQL / etc. thus providing good separation of duties that capitalizes on each groups talents and saves time and money.

Automatically supports all types of relationships.
CocoBase® auto detects foreign keys, supports bean to bean and bean to object relationships, can auto persist a graph of objects with no changes to the classes or their relationship code which is a non-invasive architecture that simplifies development. CocoBase® support for relationships is one of the most thorough and complete in the industry which does the work for you, not just support it and still let you write all the code.

Architecturally Designed to be EXTENSIBLE Everywhere.
CocoBase® is designed to be extensible EVERYWHERE for the developer (i.e. it is NOT a closed system without scriptability or proper extensibility). CocoBase® has open APIs for every key aspect of the system, and is written completely in Java, making it more useable with standard IDEs, Modeling tools, etc. The key integrations with other products such as Caching Databases, Proxy Objects, etc. are all included as Open Source code for easy customization.

Out of the box compatibility with any JDBC supported Database.
Supports all of the most current relational databases that are support by a JDBC driver, such as Oracle, DB2, Microsoft, Sybase, etc.

Reduced Time on Development / Maintenance.
With ability to Modify Maps at runtime instead of compile-time.

No need to Recompile Application due to Database Changes.

Patented Technology protecting Future Use.
We hold the key patent on repository based O/R Mapping. We created this concept, delivered the first implementation of it in the market, and have the oldest most mature Java O/R product available.


EJB Support

Full support for both EJB 1.0 , 1.1, 2.0 including CMP / BMP Entity Beans and Session Beans. Full Support for JDBC 2.0.

Editable Template based Code Generation of CMP & BMP Entity Beans.
Dramatically reduces time spent hand coding and the errors along with it.

CMP Entity Beans that work with virtually any EJB Server.
By using our CMP Installer Tool, and developers can customize this extensible tool for their own installation and configuration requirements.

Increase speed of EJB Applications by up to 4000% / More...
Over hand coded, non pooled JDBC with our optional smart fetching. If an EJB server supports connection pooling, we're typically about 30% faster than regular hand coded JDBC due to our smart fetching. In most, if not all cases, CocoBase® is at a minimum just as fast as JDBC (i.e. no real speed degradation due to our persistence framework). We recommend that developers do performance testing in their own environments to ensure performance levels. Our plug-in allows cache databases to be used transparently from an EJB, a profound performance implication for busy corporate databases.

CocoBase® CMP that supports a bean being persisted to multiple tables from multiple databases, table joins and supports relationships!

E-Commerce Shopping Cart DEMO that shows working examples of CMP and BMP Entity Beans, Stateful and Stateless Session Beans
(request CocoBase® Enterprise O/R to retrieve this demo example).

Extremely Scalable
With support for a wide variety of platforms and databases.

Solution is Portable across standard EJB Server Vendors
Not all EJB servers are standard, so please ask your server vendor if the support the complete EJB spec. as well as Container and Bean managed persistence.

Ability to Map all your data sources to your Enterprise Java Beans.

Provides a simplified layer for persisting your Java classes with EJB.
Without requiring embedded JDBC & SQL calls in your objects.

Manage complex relationships between Entity Beans.
And between Entity Beans and non-beans (important for EJB Server performance).

Auto generates methods to Serialize Bean data.
Between client and server all at once, instead of an attribute at a time - essential for enterprise scaling!

Works with any standard JTS Service.
Works with any standard JTS service included in the EJB servers. CocoBase® doesn't require proprietary extensions to the JTS of the EJB Server in order to ensure transactional and data integrity for either Session Beans, BMP or CMP Entity Beans, and is fully compatible with any of these component types.

Ability to tightly integrate with any EJB Server.
By creating and editing a new CocoBase® Template for that server.

Widest range of Support for Databases and Application Servers in the Market.
The CocoBase® family of tools provides extensive support for the current range of databases (relational, object, mainframe, etc.), application servers (EJB), JDBC drivers, CORBA Orbs, development environments, etc. This gives our customers the most options, least risk and greatest opportunity for success.


Customer Satisfaction

Top Level Technical Support.
We are known for having one of the best support organizations in the business. Our competitors are known for saying "well you can always have our consultants come in and fix this" when their products don't deliver what they should. We by comparison, don't have a consulting arm, and therefore don't have incentive to build products that require consulting to deliver on the promises made, a seemingly all to common practice.

Ease of Doing Business.
Customers and partners who work with us have found that we are much easier to deal with than most organizations. We are clear, focused with a clear corporate and market mission. We are not a consulting company that gives away tools to get more consulting business.

FREE 30 Day Use of the Software available by Internet Download.
CocoBase® is free to use for thirty days making it easy to evaluate the tool prior to purchase. The tool is available at any time to anyone with an Internet connection simply by requesting it from the website. An email is sent to you with the download location.

Dramatic Cost Savings with NO Server Fees OR Runtime Fees !
CocoBase® Enterprise O/R is sold by the developer license and does not charge runtime or server fees. We have found this to be the lowest cost model for our customers. We hear stories of server fees or deployment fees being prohibitively expensive that makes the cost of doing business unworkable.


Technical Details

Generate all Entity Bean code needed with standard default implementations for top Application Servers.
Vendor specific descriptor files automatically generated. Compile and Jar generation scripts automatically generated. Runtime Environment and Map-Cache management files automatically generated.

Enterprise level Caching Support.
CocoBase® supports caching as a plugin with an example shipped as source code for customers. Automatic integration with Javelin from eXcelon as well as other integrations coming soon. Customers can also integrate their own caching solution into the tool.

Increased Flexibility and Reuse with Support for any Inheritance Tree.
By keeping this support available to any inheritance tree the customer desires with the same maps CocoBase® avoids the traditional trap of a rigid approach that tightly glues O/R to a narrow and specific inheritance tree. This rigid approach can severely limit the long-term usefulness of an O/R tool in reasonable sized projects or organizations.

Enterprise level Recursive Object Support.
CocoBase® offers both a Factory and a Plugin model where developers can lookup, retrieve, cache, link, etc. any sort of recursive option they desire.

Upgrade Relational Table to Object Schema.
Upgrades a relational table to a CocoBase® Object schema automatically in seconds. This creates a CocoBase® Object wrapper for the specified table and leaves the table unaffected. This is a deceptively simple tool that provides rapid jump starts for creating immediately available Internet ready SQL views of existing databases for development projects.

Generate Java Class Source Code from Schema.
Takes a CocoBase® Object schema and generates Java Class Source code. This allows you to represent the data objects defined by you as Java Class files. This saves a great deal of time in generating new Java code because the code is written it for you.

Create SQL Tables from Java Classes.
The Admin. Tool is an easy to use, point and click tool that allows to create SQL tables from CocoBase® Java classes and non-CocoBase® compatible classes. This can be accomplished using the graphical Admin. Tool or as a command-line tool with an API which can be called from your own programs. It creates a table in your database and also creates a CocoBase® object schema for you.

Enterprise Extensibility built into the tool and at each Integration Point.
The CocoBase® architecture was designed entirely with the idea of being completely extensible to the developer. Every point of integration, every built in function, every facility, even code generation is 100% customizable and extensible. CocoBase® does most of the work for you and can get out of your way when you need it to.

Broad Support for All Types of Mapping.
CocoBase® supports the broadest range of ways to map data. The mapping technology is designed for flexibility needed for development from simple to complex enterprise applications. The mapping is more generic than most other O/R tools and features the ability where a single map can support many different behaviors and relationship types simultaneously ( 1-1, 1-M, M-M, etc.). Many to One, Many to Many can be interchanged on the fly with the same map, and with no map changes! Most O/R tools have rigid, inflexible and in our opinion virtually unusable rigidity in their mapping, which tries to constrain mapping to one and only one possible use.

Extensive Querying Abilities.
Extensive Abilities to Query Across Database tables, and by extension across Object Relationships. Unlike many O/R layers that use proprietary or closed querying facilities, CocoBase® relies on the underlying SQL of the database for the most robust querying possible. The maps can include complex table spanning and nested SQL statements, as well as access to relational Stored procedures. Since each CocoBase® map can span any number of tables, CocoBase® maps are completely extensible, and will not restrict the developer on Querying functionality. With full Stored procedure support, the querying options are vast.

Full Inheritance Support.
Full Inheritance Support. Unlike many O/R tools, CocoBase® doesn't have rigid Inheritance requirements. Mappings can be used by most any inheritance structure without change. Inheritance models, and placements of attributes can change on the fly with no changes to CocoBase® Maps! The rigid mapping of most O/R tools requires a great deal of maintenance and modification for even the slightest of changes to an Object model. A Map in CocoBase® is MUCH more flexible than with other O/R tools. CocoBase® provides flexible - dynamic binding between any number of object structures and object relationships, thus reducing cost and improving time to market, increasing the viability and flexibility of large Java projects. In other words, CocoBase® by comparison to other O/R tools more loosely binds mapping, making the possibilities exponentially more flexible and easier to use.

Ease of Use for Inheritance.
Unlike other O/R tools which require attention to their arbitrary definitions of what Inheritance is, CocoBase® can support any inheritance model a developer may wish to pursue, without special mappings or changes to existing maps... CocoBase® simplifies the use of inheritance and increases the flexibility, by allowing a map to be used against any inheritance structure that may be required. CocoBase® can persist parent objects, children, proxied data, etc. all with a single map! Most other O/R tools have no such flexible concept, and thus are really designed for more simplistic and rigid prototyping instead of the 'real' enterprise world where you may wish to share a single map across multiple development projects. With CocoBase® your DB experts can define optimized maps centrally that could be shared across different objects and different hierarchies with NO modifications to the map (i.e. no need for remapping each and EVERY project which is error prone and increases maintenance).