The object-data divide refers to the difficulties of object-oriented and data-oriented developers experience when working together (see The object-data divide and EJB for details). This is a serious problem for most EJB development teams because they are typically using both technologies: EJB is object-oriented, but often uses relational databases on the back end to store information. How can you cross the object-data divide? You need to recognize that:
- The problem exists and you need to overcome it EJB developers are often more perceptive of the object-data divide because it is very clear that they need to use relational database technology. Data professionals are often reticent regarding this issue: Being in a position of power within many organizations, they are seldom motivated to consider new approaches that reduce their political standing. In fact, it is quite common to see organizations with senior data professionals that rabidly insist that their data models should be used to drive the development of object-oriented models even though they have little or no experience with object techniques and often cannot even describe what those techniques are (or even how to apply them). The data community must accept that modern techniques and technologies such as the Unified Modeling Language (UML), patterns, EJB/J2EE, Java, and Enterprise Application Integration (EAI) require development approaches that are different from those that grew from the needs of 1970s and 1980s technologies.
- Software should be based on actual requirements EJB projects are typically focused on the development of new applications. To be successful you need to start at requirements and then develop models based on those requirements. Modeling new applications requires a myriad of techniques, such as use cases, sequence diagrams, class models, and user interface models. Persistence/data models are an important part of the picture but they are only one small part. Therefore professionals focused solely on data modeling are likely not what you need.
- Data professionals can add significant value EJB development teams require database administrators (DBAs) who understand the intricacies of the database technology, particularly DBAs who can work with the modelers to create the physical persistence/data models. Furthermore, any EJB project that needs to access legacy systems will require people that specialize in legacy system analysis, a large part of which is data analysis.
The reality is that modern development uses both object and relational technology together: Witness the fact that a large portion of the EJB 2.0 specification focuses on persistence-related issues such as bean managed persistence (BMP), container managed persistence (CMP), and transaction control. You have no choice but to overcome the object-data divide.
- Mapping objects to relational databases: What you need to know and why, by Scott Ambler, on developerWorks (July 2000)
- Crossing the Object-Data Divide Part 1, by Scott Ambler, on Software Development Online (March 2000)
- Crossing the Object-Data Divide Part 2, by Scott Ambler, on Software
Development Online (April 2000)
- Is EJB technology for you?, by Scott Ambler, on developerWorks (November 2000)
- The Object Primer 2nd Edition, by Ambler, S.W. New York: Cambridge University Press, 2001.
- The Unified Modeling Language Reference Manual, by James Rumbaugh, Grady Booch, and Ivar Jacobson. Reading, MA: Addison-Wesley Longman, Inc., 1999.
- Why are use cases so painful?
- EJB specification at http://java.sun.com
Scott W. Ambler is a Practice Leader for Agile Development within the IBM Methods group. He develops process materials, speaks at conferences, and works with IBM clients worldwide to help improve their software processes. Scott is author of several books, listed on his Web site at www.ambysoft.com. Scott is also a recognized Ratonal Thought Leader, whose homepage may be viewed here.
