Skip to main content

If you don't have an IBM ID and password, register here.

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. This profile includes the first name, last name, and display name you identified when you registered with developerWorks. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

The object-data divide and EJB

When data-oriented and object-oriented worldviews collide

Scott W. Ambler, Prectice Leader, Agile Development, Rational Methods Group, IBM
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.

Summary:  The "object-data" divide is the gap in understanding between object-oriented and data-oriented developers. Read about how it came into being and how it manifests itself in this week's tip.

Date:  01 Apr 2001
Level:  Introductory

Comments:  

When a software development team uses object-oriented technology, the most effective approach to modeling is dominated by object models such as UML Class Diagrams, UML Sequence Diagrams, and UML State Charts. This makes a lot of sense. Object technology is best modeled using object models. Unfortunately, not everyone sees it this way -- particularly data professionals within your organization that are likely to have significant experience on non-object projects but little or no experience with object technology. This difference of opinion, as well as other factors, has led to the "object-data" divide -- the difficulties of object-oriented and data-oriented developers experience when working together.

History of the object-data divide

There are three main reasons why the object-data divide exists:

  1. The object revolution started by spurning the data community. Object technology was first adopted by the business community in the late 1980s and early 1990s, just when object-oriented database management systems (OODBMSs) were coming on the market. This lead to the mistaken belief that objects should only use OODBMSs to persist themselves, and therefore both relational databases and data professionals were not needed for object development.
  2. Data professionals weren't motivated to work with object developers. Already important in the traditional mainframe and client/server development worlds, data professionals found little need to work with the new object "hotheads" they found popping up everywhere. Up to this point data professionals would create their data schema and application developers would write their program code -- an approach that worked because there wasn't a lot of conceptual overlap between the two tasks. Many data professionals chose to believe that the object paradigm was another fad doomed to fail, or merely another programming technology. But time showed that object development has become the norm, and there is far more to it than just programming.
  3. Senior IT management can't tell who is right. The unfortunate reality is that you really need to understand the intimate details of object-oriented development to understand who is right. In this case, it isn't either of the two groups. In most organizations, senior management is often unaware of the problem or, if aware, they are hoping that it will somehow work itself out.

Effects of the divide on EJB projects

The object-data divide is a serious problem for most Enterprise JavaBean (EJB) development teams because EJB employs both object and data technologies. EJBs themselves are written using Java, an object-oriented language, but they are typically stored in a relational database such as Oracle or IBM DB2 -- non-object technology. The object-data divide is further compounded by technical challenges using object and relational technologies together, a problem called the "object-relational impedance mismatch." (See the recent tip Mapping objects to relational databases).

When organizations cannot successfully overcome the object-data divide, they often choose to have their object professionals and data professionals work separately in parallel instead of together as a single team. When your object modelers and your data modelers do not work together, you risk having a significant impedance mismatch between your object schema and your data schema. The greater the mismatch in your schemas, the more code you will need to write, test, and maintain to resolve it. You also have code that is likely to run slower than the simple code needed with coordinated schemas.

Another common, even worse, result of being unable to overcome the object-data divide is when the data model drives the development of the object models instead of the other way around. Object-oriented models (UML class diagrams, sequence diagrams, collaboration diagrams, and so on) that are driven by your existing data design rarely reflect what your users actually want. A basic premise of software engineering is that your requirements drive the development of your design models. That is, you don't start at design and work your way back.

Finally, organizations suffering from the object-data divide typically experience increased staff turnover due to frustration of developers because of "all of the politics." When most companies are having difficulties hiring good developers, the last thing you want is to lose someone over a preventable issue.


Resources

About the author

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.

Report abuse help

Report abuse

Thank you. This entry has been flagged for moderator attention.


Report abuse help

Report abuse

Report abuse submission failed. Please try again later.


developerWorks: Sign in

If you don't have an IBM ID and password, register here.


Forgot your IBM ID?


Forgot your password?
Change your password


By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. This profile includes the first name, last name, and display name you identified when you registered with developerWorks. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

(Must be between 3 – 31 characters.)


By clicking Submit, you agree to the developerWorks terms of use.

 


Rate this article

Comments

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=SOA and web services
ArticleID=86987
ArticleTitle=The object-data divide and EJB
publish-date=04012001
author1-email=scott_ambler@ca.ibm.com
author1-email-cc=

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

For articles in technology zones (such as Java technology, Linux, Open source, XML), Popular tags shows the top tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), Popular tags shows the top tags for just that product zone.

For articles in technology zones (such as Java technology, Linux, Open source, XML), My tags shows your tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), My tags shows your tags for just that product zone.

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).