Discussions

News: Oracle 9i AppServer Release 2 Production Launched

  1. Last week, Oracle quietly began shipping the production version of Release 2 (v 9.0.2) of the 9i AppServer. The new version features partial J2EE 1.3, Web Services support (the usual WS generation tools as well as a complete UDDI registry), improved clustering capabilities, and better security features.

    A couple of interesting facts about the J2EE engine are that it's very lightweight (the download is only about 20 MB) and it's pure Java, allowing Oracle to claim support of all Java-enabled platforms (why don't other vendors with pure-java implementations claim this?).

    You can now download a free development copy from http://otn.oracle.com/software/products/ias/devuse.html.

    I had a chance to interview Rakesh Dhoopar, Senior Director, Oracle9i Application Server to learn more about this release.

    Q: Rakesh, Lets start with what are the cool things in Oracle9iAS Release 2?

    For Oracle9iAS Release 2 we primarily focused on four key areas - provide support for the latest J2EE and Web Services standards like J2EE 1.3, SOAP, WSDL, and UDDI, provide much improved integration with development and management tools, provide much improved reliability by supporting end-to-end clustering and single sign-on and finally provide a completely integrated stack.

    Q: Everyone talks about improved developer productivity, what are the key things that Oracle9iAS offers for developers?

    In the previous release, we offered developers an extremely lightweight container that helped them get started very quickly. The J2EE container allowed "hot deployment" of J2EE applications so that as developers modified their applications and re-deployed them they did not need to restart the server. In this release, we have embedded the lightweight J2EE container directly in Oracle9i JDeveloper. This enables developers to immediately test J2EE components directly within the development environment. No configuration or set up is necessary. The embedded container is available at any time during the development cycle. For developers working on EJB, JSP, and Servlet components the integrated J2EE server saves a significant amount of time during the develop, deploy, and debug cycle.

    Q: What does Oracle offer in Oracle9iAS Release 2 for web services?

    In this release, Oracle has made significant strides in supporting web services. In addition to supporting standards like SOAP, WSDL, and UDDI, we make it easy to develop and deploy web services using J2EE artifacts, and are moving toward the evolving web services standards included in the next release of J2EE (J2EE 1.4). Oracle9iAS Web Services allows application developers to implement Web Services using Java classes and J2EE components. In addition Oracle9iAS Web Services provides an HTML/XML streams processing wizard that assists developers in creating an EJB whose methods access and process XML or HTML streams.

    Oracle9iAS Web Services generate WSDL and client-side proxy stubs transparently. The stubs are generated the first time WSDL or the client-side proxy stubs are requested. After the first request, the previously generated WSDL or client-side proxy stubs are sent when requested. Oracle9iAS Web Services provides a standards-compliant UDDI registry where web services can be published and discovered. The Oracle UDDI registry supports both a private and public UDDI registry, can synchronize with other UDDI nodes and can be searched and browsed from third party tools like IBM, Microsoft .NET, and Sun's JAXR early access 1. Finally, developers can very easily convert their applications into web services. JDeveloper provides simple wizards that include the consumption of web services published in a J2EE or .NET environment, generation of client stubs and server skeletons from WSDL as well as the generation of service wrappers and WSDL from Java classes and J2EE components.

    Q: Earlier you mentioned end-to-end clustering, what does this mean?

    By end-to-end clustering I mean that you can not only cluster your J2EE components, like servlets and EJBs, you can also cluster Oracle HTTP Servers and web caches. This capability coupled with the unique clustering capabilities offered by Oracle9i Database Clusters enables end-to-end clustering of your web application environment. The different application server components are integrated with the Oracle Process Management and Notification (OPMN) system. OPMN monitors the health of the running components, detects failures, and can automatically restart the failed instances thereby providing improved reliability.

    Q: Can you describe your EJB clustering in more detail?

    Oracle9iAS already supported Web application clustering in the past. In Release 2 we support two types of EJB clustering. In addition to supporting static discovery of clusters, where JNDI addresses of all cluster nodes are specified at development or deployment time, we also support dynamic discovery of clusters where JNDI addresses of all clustered nodes are discovered during the first JNDI lookup. The state replication for clustered EJBs is highly configurable. Application developers can choose between, end-of-method call, JVM termination, or a stateful session context replication model. These different replication models offer a trade-off between application reliability and performance.

    Q: So how does one manage these clusters in the Oracle9iAS environment?

    As I mentioned earlier, management of your application environment is another area where there are significant improvements. We have significantly enhanced Oracle Enterprise Manager, the same tool that you use to manage the Oracle database, to support management, administration and monitoring of Oracle9iAS in simple deployments and in complex clustered deployments. All management tasks can be performed from a HTML browser. For large clustered deployments, Enterprise Manager allows you to easily create and destroy clusters, add/remove instances to the cluster, and last but not least - deploy J2EE applications and web services to the entire cluster as a single operation - without having to deploy it to each instance in the cluster. In addition to capturing a wealth of metrics to monitor the availability and usage of your J2EE applications and web services, Enterprise Manager enables you to configure your servers and containers, configure application services like datasources and security profiles.

    Q: What kind of security improvements can application developers expect in this release?

    The Oracle9iAS security framework is improved in two specific areas - single sign-on and fine grained security for applications using JAAS. This release introduces a new mod for the Oracle HTTP Server - Mod_OSSO. This 'mod' allows the HTTP server to become an SSO partner application. Applications running behind the Oracle HTTP server, including Oracle's J2EE containers, will be able to obtain a user's identity, as validated by SSO, from the HTTP Server. These applications can therefore enjoy the benefits of SSO without being re-written to be SSO partner applications. The SSO server can be configured to obtain the user's identity in a variety of ways including X.509 certificates.

    In addition to integrating JAAS with single sign-on, Oracle's implementation also provides developers the ability to centrally manage authorizations in either the Oracle Internet Directory or in a flat file in XML format. This enables Java applications to leverage the centralized user provisioning capabilities of Oracle Internet Directory. Java applications do not have to create their own user repository, but can use existing user and authorization definitions and roles in Oracle Internet Directory.

    Q: Finally, what does Oracle mean when they talk about a "complete integrated stack"?

    In addition to all the improvements that I described, there has been a tremendous effort in providing one integrated middleware product. Oracle9iAS not only provides J2EE and web services capabilities but also delivers a complete application server with capabilities to build portals, wireless applications, application integration, business intelligence and caching. All these solutions are tightly integrated in this release -starting from a single install, single certification stack, single runtime, single user provisioning mechanism, single authentication mechanism, single management mechanism, single clustering mechanism etc.

    Threaded Messages (29)

  2. Did I miss something here? They are supporting J2EE 1.3? I thought the server was based on OrionServer. And their website says that they support parts of the public final draft of EJB2.0, but not the full and final version... Anyone got a clue?
  3. Although based on Orion, Oracle has their own branch and they took off and ran.... so you can't say Orion == Oracle9iAS anymore :)
  4. http://otn.oracle.com/tech/java/oc4j/htdocs/oc4j_sod.html

    9iAS 2.0 supports _part_ of J2EE 1.3 now. You can download a "preview" of the new containers which supports _more_ of J2EE 1.3 now. In the summer or fall, you can download an "update" that supports _all_ J2EE features.

    To give you an idea about the current support, I guess currently 9iAS 2.0 cannot run JPS 1.3 but the "J2EE 1.3 preview" can.

    - Brian
  5. that means they're about 1 year behind the rest of the pack in terms of J2EE 1.3 and EJB 2.0 conformance. What a change from the time when Orion was always boasting to be among the first to implement new standards (but I think they stopped doing that before the Oracle acquisition).
  6. What was announced is the availability of Oracle9iAS 9.0.2 production (production is the key word here). It matches the recent JDeveloper 9i (production) and consolidates all the Oracle9iAS pieces into OC4J.

    Oracle9iAS 9.0.2 is the first production version where the Orion stack (called OC4J when you get it from us) has been integrated with the rest of the Oracle9iAS pieces. For example: the JAAS implementation is now a security manager for J2EE apps, the Portal assembly engine runs in OC4J(insted of Jserv), the management stack (web-based Enterprise Manager) runs in and manages OC4J, etc. Because all this integration takes time, the production release is based on a slightly older OC4J snapshot than the 9.0.3 Developer Preview.

    The Oracle9i AS 9.0.3 Developer Preview is what you want if you are eager to play with some J2EE 1.3 features and do not need production-level support. Get the 9.0.3 Developer Preview here.

    Hope this helps!
    Matthieu Devin
    -- Oracle
  7. Even EJB2.0 is not fully supported. I think they have partial support for CMP2.0. I do not know whether they support JSP1.2 completely or not.

    Thanks

    Vimal
  8. I think Oracle is one thing to avoid.

    I am working with OC4J-JDeveloper one year ago.
    Very bad experiences. More and more bugs...

    Oracle really sell very well, they sell their propietary framework and they want link developer with their Database. Most of their solutions are in this way.

    I think Oracle is a very good database, but in Java world they are on the past.

    Buy Oracle databases, but not 9iAS.

    Hanoiii
  9. Rick,

    OC4J is purely based on J2EE standard, developed purely in Java and the same distribution runs in all platforms. There is no Oracle proprietary thing in OC4J. OC4J is not tied to Oracle database and has been certified with all major database vendors. Similarly Jdeveloper 9i is completely rewritten in Java and has been recognized by several magazines like JDJ, JavaPro for its productivity and flexibility it provides to developers as an IDE. Can you please tell us what are the problems and bugs you have found with OC4J and Jdeveloper 9i? We will certainly take steps to fix those problems.

    regards
    Debu Panda
    Oracle
  10. Hi all ..after having made a run thru the latest release 2 's whitepapers, I'm not entirely sure that anyone would wanna give this code a chance . You folks seems to have this nasty habit of detailing in the enire roadmap ( including stuff that are not implemented ) for this product on the first get-go & then filling in the details as you go along
    : i.e.,

    According to the " Oracle 9i Application Server " ( dated Jan 2002 ) -- it states that the oc4J provides complete support for the EJB 2.0 Specifications -- with specific mention to the CMP support.

    On the other hand -- if you were to run thru the " Oracle9i Application Server -- New Feature Summary " paper ( dated March 2002 ) --

    " .. Release 2 enhances EJB support with a number of EJB 2.0 features.. "


    It looks that the only 'product' where Oracle actually provides the complete suite of support against the J2EE 1.3 specs is via the " J2EE 1.3 developer's preview " .. which is an entirely separate suite to be layered on top of the Oracle9i Release2 .

    How's anyone gonna be able to go prototyping with a 'preview' release ( let alone production ) ?


  11. In addition, the " J2EE 1.3 Developer's Preview " that our Oracle friends have cited as containing J2EE 1.3 / EJB2.0 features documents the following in its release notes :

    " .. Near complete EJB 2.0 implementaion.. "

    " .. EJBQL does not support ejbSelect methods nor the traversal of entity relationships .. "

    " .. Message-Driven beans using the lightweight JMS implementation do not get invoked when messages are put onto destination queues/topics.. "

    " .. EJB clustering does not work correctly.. "


    The Devil is truly & most definitely in the details..




  12. HK,
    As Matthieu Devin posted earlier in this thread that there would be couple of versions of Oracle9iAS Release 2. The goal for first version i.e. 9.0.2 was to integrate OC4J with other stacks of Oracle9iAS i.e. integrate Oracle HTTP Server (OHS) tightly integrate with OC4J using mod_oc4j, enhance manageability, high availability and scalability of Oracle9iAS, support web services, etc.

    The second release of Oracle9iAS 9.0.3 that will be available very soon will fully support J2EE 1.3 features. These things are clearly identified in the Oracle9iAS Release 2 (OC4J) statement of direction http://otn.oracle.com/tech/java/oc4j/htdocs/oc4j_sod.html.

    The white papers do not focus at a particular version like 9.0.2 or 9.0.3 and documents the availability of features in a major release like Oracle9iAS Release 2.

    If there is issue in our software we clearly identify in the Release Notes to keep the users community informed that's the reason we have listed these issues in the Release Notes of 9.0.3 Developer's preview. We think listing of these issues saves a lot of development hours of user communities who spend a lot of time in troubleshooting a particular issue if unknown.

    All these issues listed in the 9.0.3 Developer's preview will be resolved when we release a fully J2EE 1.3 certified OC4J very soon.

    Regards
    Debu
  13. Debu .. just a couple of comments before I sign off :

    ".. Oracle9iAS Release 2. The goal for first version i.e. 9.0.2 was to integrate OC4J with other stacks of Oracle9iAS i.e. integrate Oracle HTTP Server (OHS) tightly integrate with OC4J using mod_oc4j, enhance manageability, high availability and scalability of Oracle9iAS, support web services, etc... "

    However, in the mean time -- you folks have saw fit to release white-papers that signals support for J2EE 1.3 / EJB2.0 features that are completely non-existent within either the current 9.0.2 release or the '9.0.3 preview release' ?



    " .. The white papers do not focus at a particular version like 9.0.2 or 9.0.3 and documents the availability of features in a major release like Oracle9iAS Release 2 .. "

    In that case, I would suggest that you folks run a check thru the details documented in the Release 2 paper . It clearly details un-qualified support for J2EE 1.3 / EJB2.0 where none exist ! I don't believe that what I've mentioned is very far from the truth .. regardless of whether you are talking about 9.0.2 or the 9.0.3 preview release. For crying out loud, you folks have released a 'soon to be certified J2EE1.3 preview copy' that includes the following quality of CMP/CMR 2.0 support :

    " .. The container does not deploy beans that have both local and remote interfaces defined. An exception is thrown. As a workaround, please use either local or remote interfaces for beans but not both .. "


    Both the 9.0.2 / 9.0.3 codes that you folks have opened up to the world have been an eye opener on all counts.

    Thanks but no thanks.
  14. Oracle9iAS supports J2EE apps built with or without frameworks in the picture. Don't want a framework? No problem. Want a helping hand to get your job done faster? We and other vendors are here to compete to help you out with our J2EE frameworks. It's a separate decision you need to make.

    Whether it is Oracle's BC4J, Wakesoft, RealMethods, or other J2EE framework, the use of any J2EE framework is an investment that a customer makes to learn a 3rd-party set of classes in exchange for not having to hand-code all of the J2EE Design Patterns. In our experience -- over twenty internal Oracle Applications dev teams using our BC4J framework -- the return on investment and improvement in productivity typically ends up justifying this upfront cost.

    If the framework is done right, you can deploy to any J2EE server and use any database (as BC4J does), but of course your applications depend on your 3rd-party framework vendor's class library as an alternative to coding, maintaining, bug-fixing, and documenting your own framework. If your framework vendor will be around for the long haul, this seems like a good investment to me.
  15. Dear HK,

    1) All the J2EE 1.3 /EJB 2.0 features will be included in the next 9.0.3 release that will be J2EE certified and all features not working in 9.0.3 Developer’s preview will be fully functional in that release.

    2) Please remember that the Developer’s preview 9.0.3 in OTN is about 2 months old and all the bugs and problems mentioned in the release notes have been fixed and will be available when we release the J2EE 1.3 certified version of 9.0.3 very soon. As I mentioned above all J2EE 1.3 and EJB 2.0 (including all CMP/CMR )features mentioned in the whitepaper will be available with Oracle9iAS Release 2 Version 9.0.3. Features like EJB Clustering, MDB with Lightweight JMS are already fully functional in 9.0.2 Production.


    regards
    Debu Panda
  16. You keep talking about releasing JDeveloper 9.03 "very soon". How soon? JDeveloper started out as a nice tool, but it's really falling begind and has a lot of catch-up to do regarding J2EE 1.3.
     

  17. This thread here:

    http://www.theserverside.com/home/thread.jsp?thread_id=13288

    covers what is coming in Oracle9i JDeveloper and a sense of the timeline. The JDeveloper team is targetting a corresponding summer release to match the Oracle9iAS support of J2EE 1.3. Read down that thread for Steve Muench's, part of the development team, responses.

    Given most application servers have and are just going production with J2EE 1.3 (ourselves, WebLogic, JRun, IBM - most were preview/beta releases until recently), I am not sure it is unusual that the tools support trail slightly as they provide a value-add productivity layer that can only be built once there is a server to deploy to.

    Last time I looked (today!) for example, some of the leading *IDE* vendors are still at J2EE 1.2 support:

    * WSAD 4.0.3 from IBM is EJB 1.1 -
    http://www-3.ibm.com/software/ad/studioappdev/about/#j2eede

    * Webgain is EJB 1.1 - http://www.webgain.com/products/visual_cafe/enterprise_edition/feature_matrix.html

    * Forte (SunOne Studio) is EJB 1.1 -
    http://wwws.sun.com/software/Developer-products/ffj/detailedview.html

    * Borland is one of the few EJB 2.0 supported tool environment and they of course supported Borland's Application Server's J2EE 1.3 implementation and like everyone else are working on updating it to other application servers as the different production releases of J2EE 1.3 come out.

    * Oracle9i JDeveloper (http://otn.oracle.com/products/jdev/ falls into the same boat. Integrated J2EE 1.2 today (for Oracle9iAS, Weblogic and documented support for JBoss and Websphere) and a ton of frantic work going on to deliver full J2EE 1.3 functionality.

    Apologies to other vendors if I misrepresented their J2EE 1.3 support today - I just used their public content on their sites, corrections welcome.

    Mike Lehmann
    Oracle9i JDeveloper Team
  18. I am backing "HK Lui" 100%. I also found it very interesting that on the front page it was boasted J2EE 1.3 support, and when getting into the papers it will mention something like many or some or key features of J2EE 1.3 ..

    I mean, either you got it, or you dont, and that heading is false advertising.

    My gut tells me that these webpages(oracles) are updated by different ppl, problary under different marketing guidences as well, however, get the act together ? doesnt come off as very proffesional, even though the product may be good regardless of the PR.



  19. Hi Debu.

    I perfectly know what OC4J and JDeveloper are. Unfortunately I work with those tools everyday.

    I was working with Bea WebLogic Server, Iplanet, JBuilder and Together (UltraEdit and VI too). The only thing I can say is that OC4J and JDeveloper are tiny tools. They fail everyday. I can´t send you any bugs because the list is too large.

    I know all Oracle Products.

    BC4J: Propietary Framework. It would be good, if it could be FREE!!!!!!!!!!!

    Portal: You need an Oracle DB!!!! You can´t use a portal tool without a Oracle DB. This is why Oracle are linking people to its technology.

    ...

    Also Production versions of OC4J-JDeveloper don´t support EJB 2.0

    I believed Oracle was a good Java Platform, but I was wrong.

    Rick
  20. BC4J Source code is available in Jdev 3.2. you'll found it in a sub directory of JDeveloper 3.2
  21. Rick,
    Certainly BC4J is an Oracle proprietary framework but we do not force you to use with Oracle9iAS. Oracle introduced BC4J framework to make J2EE development easy but certainly you are not forced to use BC4J and you are open to choose your framework when deploying your apps with Oracle9iAS. However applications using BC4J can be deployed to any J2EE-certified application server.

    Have you encountered the problems you mentioned in a production version of OC4J and Jdeveloper? Can you please tell us what type of problems you see as we don't hear this type of complaints from lot of our customers and Oracle has more than 10,000 companies that use Oracle9iAS? We will certainly appreciate your feedbacks that help improve our product quality.

    There were no open standards for Portal or building portlets until recently introduced JSRs and all Portal vendors like Oracle implemented in their own way and for that reason Oracle needs a Oracle DB.

    As we mentioned earlier OC4J 9.0.3 will fully support EJB 2.0 features and this will be released very soon.

    We certainly want to work hard to make Oracle9iAS as choice of your J2EE platform. Please let us know what can we do to improve our product to make you happy.

    Regards
    Debu Panda
    Oracle
  22. Debu Pandu:

    If the past is any indication, most of us here are better off *not* even trying to do anything serious with Oracle app server. All those tall claims (3x faster, 10x customers) are laughably ridiculous! For Christ sakes, you aren't even 1.3 compliant!!!!!!!!!!!!!
  23. Debu,
     i am working on oracle java products from oas 4.0.8.2,
     9iAS 1.0.2,9iAS 1.0.2.2, seeing possibility of release 2
     and jdeveloper 3.0,3.2.2 and 9i and off course Oracle DB.
     And i really upset because of lot of claims which oracle
     do in white papers,release notes, even technical documents
     are not giving clear idea? Its very confusing...
     For example, White paper of 9iAS 1.0.2 was saying this is
     j2ee compliant and i can see oracle completely failed
     because they tried to put ejb container into databse(so
     called Jserver) which comes with oracle 9iAS 1.0.2 and
     were trying to bound people again with databse.
      
     lets talk about technical document, every where it was
     saying deployment of bc4j(working on BC4J also) as ejb on
     Oracle 8.1.7, but which oracle 8.1.7? Document should
     mention clearly that bc4j can be deployed as ejb on 8.1.7
     which comes with 9iAS and oracle database 8.1.7.
     Because of this we suffered lot.
      
     Now about jdeveloer9i, its unfortunate once i opend my
     application(which is developed in bc4j on jdevloper 3.2.2)
     in jdeveloper 9i, then i can't open it again in 3.2.2.
     
     i don't know why oracle is saying BC4J is j2ee compliant???
     partially i can see.......buy it won't mean....

     ravi


     



     
     


     



        
  24. I have just worked on Oracle9i and JDevloper. we used to use Websphere application server and eclips for developing our application.

    we faced alot of problems while we were porting our projects to OC4j:

    there is no real documentation for how to call EJB from another and how to set some jars to a certain application classpath. plus there are 4 versions of PDK released during one month.

    i didn't face this problem while working with websphere
  25. In Oracle 9iAS Release 2, there is limited support for JSP 1.2. The OC4J 9.0.3 developer's preview has almost full support for JSP 1.2.
    As already mentioned in this thread, a certified J2EE 1.3
    OC4J will be released very soon.
  26. We're in the process of evaluating Oracle 9iAS release 2 and have found what seems to be a significant issue with the JAAS implementation.

    The only sources the JAAS provider can authenticate to are an XML file or Oracle Internet Directory (Oracle's LDAP directory). There's no way to authenticate to a database or directly to any other LDAP directory, even through custom code.

    In the pre-JAAS container security, writing a custom user manager was an option. The pre-JAAS security is still supported in the current release of the container, but we've seen documentation that it will be eliminated in the next major release.

    Unless Oracle expands the options for container authentication, this is a serious drawback. If we're wrong about this, please, someone let us know. We'd really like to use 9iAS but this may be a show-stopper.

    At the very least, we'd like some official statements of direction from Oracle committing to provide a more flexible JAAS implementation.
  27. Krista,

    We are committed to providing a flexible, standards-based approach to Java/J2EE security. Oracle9iAS fully implements JAAS for both authentication and authorization, and as you point out - there are 2 repository types supported "out of the box" with our JAAS Provider: an XML file or Oracle Internet Directory (our LDAP directory). The Oracle9iAS JAAS Provider is also the default user manager, it’s integrated with the Oracle9iAS Single Sign-On mechanism, and supports role based access control and role hierarchies.

    As far as authenticating against any other LDAP directory or a database, there are several options:

    1. Oracle Internet Directory (OID), which is part of both the standard and enterprise editions of Oracle9iAS, can be synchronized with other directories using the “Directory Integration Platform” mechanism. This provides a single point of integration with other directories for all 9iAS components, including the Oracle9iAS JAAS Provider, Single Sign-On, Portal, etc..

    2. One can always create a custom LoginModule (or use a 3rd party LoginModule) that authenticates against any source. Oracle9iAS supports any LoginModule as long as it’s JAAS-compliant.

    3. One can create a "pre-JAAS" custom user manager. I believe the documentation you're referring to is specific to the JAAS Provider's support of the <user-manager> property, and should not be construed as plans for eliminating the custom user manager option. We have no such plans.


    -Lee Cooper
     Oracle

  28. Lee,

    As you mentioned earlier "synchronize Oracle Internet Directory with other directory server"... its not possible
    for us to synchronize. For example we are having a cluster
    of around 95 Novell eDirectories and each will have their region data.
     
    Could you or any one please let us know the process of building a Custom Login moudle for Oracle 9iAS JAAS implementation using the Novell eDirectory as LDAP server?

    There is a good example in Pramati App Server website for implementing the JAAS Login Moudle for LDAP Servers, but I am not too sure will that work with Oracle 9ias app server and eDirectory?

    Any insight into LDAP JAAS implementation (if possible specific to Oracle 9iAS) are welcome...

    Thank you
    Mallik H.M
  29. Krista,

    We are also in the process of evaluating Oracle 9iAS release 2. We are have the same problem of integrating the Oracle 9iAS app server JAAS module with eDirectory LDAP Server.

    Could you please provide any clue on solving this puzzle?
    What was your LDAP server or repository for the user credentials? If you can share this information that will
    be great.

    Thank you
    H.M.Mallik
  30. Does any one know about the CMP capabilities of Oracle 9i AS ? Does it handle complex relationships such as one to one, one to many, many to many, inheritance, containment, etc... If so, how easy is it to use those features ?

    Thanks
    Vivek Chaudhri