The shift to OO was supposed to, in part, place the functionality in the same place as the data it acted on. You would make requests of an object instead of operating directly on the data.
Today in Projects and Communities, Frank Sommers points out in the latest java.net Jini Community newsletter, "Because many programs rely on access to persistently stored data, a large amount of application code deals explicitly with access to data stores." He goes on to point to the emerging "preference to view data increasingly as objects, not merely as sets of primitive data elements or relations."
Frank suggests that we move beyond this notion of data as objects. He writes that
The next step in improving developer productivity is to expose data not merely as objects, but as network-based services. Such services allow a developer, or an application, to discover and retrieve an instance of an object that implements a given service interface. Since a service interface can represent a simple interface to data, network-based services can provide a simple data access layer. Because Jini directly supports mobile objects, building a data access layer with Jini not only exposes data as objects on the network, but also automates the retrieval of data objects into a client's address space.
This shift to data as services is, in some ways, as great a step as moving from procedural programming to OOP. In many ways, Frank assures us, we're already there. He provides an example of defining an interface for a warehouse inventory data. Then the implementation of the interface shields us from dealing directly with the database. We make calls such as
getItemsInStock() which in turn does the lower level access for us.
Also today, we feature the JavaPedia page on ClassPaths. Classpaths is one of the many topics that is confusing to newbies. Think back to what gave you problems when you were first learning Java and add your thoughts to the page.
How do you organize your Java projects? Dave Walend's Weblog entry Design for Reuse: Source Directory Structures for Java Projects, presents two main alternatives. In the "All in one" approach all of the source code is put under a common source root. In the "Many Subprojects" approach each subproject has "its own build file that builds a single .jar file of library code." In the feedback, mccallister points out that in either case the test code can be broken out into its own source tree.
In Also in Java Today we link to the latest in David Geary's JavaWorld series on Design Patterns. In Adopt Adapter he explains that "Adapters are necessary because dissimilar elements need to interoperate." His first example uses a tree node adapter to adapt a dynamic tree structure to a
JTree. We also link to Samudra Gupta's article where you Learn to Read and Write Microsoft Excel Documents with Jakarta's POI. He provides a high level look at the Excel format and then creates an Excel Worksheet using POI and then reads an existing worksheet using POI.
In today's java.net News Headlines :
- IBM, JBoss Deny Java Connection
- Onno Kluyt on the JCP
- JaxMe 2 and XMLBean Join Apache Incubator
- Java IDE CodeGuide 6.1 Released
Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review by news director Steve Mallet before being posted to the site. You can also subscribe to the java.net News RSS feed.
Current and upcoming Java Events:
- Sep. 30 Java Live Chat: Java Technology Fundamentals
- Oct. 4 - 5 Abaporu
- Oct. 7 Cocoon GetTogether
- 10/13 - 10/15 ITU Telecom World 2003
This blog is delivered weekdays as the Java Today RSS feed. Once this page is no longer featured as the front page of
href="http://today.java.net"> Java Today it will be archived at
http://today.java.net/today/archive/index_09262003.html. You can
access other past issues in the java.net Archive.