Send comments and questions about this website to webmaster Sarwat.
Overview of ValueObjects
The need for a framework
Most web services development tools support sending messages with simple data type, such as integers and strings. Unless you are building a "Hello world" web service, chances are you will need to exchange persistent business objects. The most robust way to build business objects is to use Object-Relational Mapping frameworks such as ADF Business Components (BC4J), TopLink, Castor, Hibernate, etc. Unfortunately, objects created using these frameworks are not compatible with SOAP and web services platforms. For instance, ADF Business Components use oracle.jbo.Row and oracle.jbo.domain types; TopLink, Castor and Hibernate use Java collections. These objects can not be received or returned by web services without defining SOAP-encoding or translators. Both options require custom coding and/or complex configuration, taking the developers' time away from actual development.
ValueObjects - Business Objects for Web Services
ValueObjects is a wizard-driven Java framework developed by Zak Mandhro that implements the Value Object (also known as Data Transfer Object) pattern for Web Services. Valueobjects have the following properties:
The current release of ValueObjects supports all the above listed features.
Accelerated Service-Oriented Architecture Development
ValueObjects framework provides accelerated Service-Oriented Architecture development. This is accomplished by releasing ?wizards? for popular IDEs that analyze business objects to automatically generate code for ValueObjects. The wizards do the plumbing so developers can focus on building the business entities and business logic.
Oracle JDeveloper 10g is the first platform to have a ValueObjects wizard. Future platforms may include NetBeans and Eclipse. O-R frameworks planned for ValueObjects support include Hibernate, TopLink and Castor.
ValueObjects Extension for Oracle JDeveloper 10g
Oracle JDeveloper 10g is the first platform to benefit from a wizard for ValueObjects. I picked this platform because (1) it is what I use at work and what our client needs ? this ensures that the implementation of ValueObjects will be clean and robust, (2) because JDeveloper 10g is a highly productive visual development platform for J2EE and especially for web services.
Oracle JDeveloper 10g and the Oracle Application Development Framework (ADF) offer a highly productive development environment for building enterprise-class web applications. JDeveloper offers visual development using Model-View-Controller architecture. ADF Business Components (formerly known as BC4J) is a wizard-driven commercial O-R mapping framework from Oracle which is tightly integrated with JDeveloper.
The ValueObjects extension for JDeveloper 10g recursively generates the code for inter-dependent ValueObjects by parsing and analyzing XML mapping files.
Here is a typical use case for the extension:
See the screenshots of ValueObjects JDeveloper 10g Extension.