Software Reality
Programming with
a dose of satire.

Site Map Search


Agile Development
 
Extreme Programming
 
Code Generation


Articles
Lifecycle
Design
Programming
Soapbox
Reviews
Cthulhu

Java Swing
Swing's greatest threat isn't SWT, it's Flash
Swing Survival Guide


 
Check out our ageing Reviews Section


Use Case Driven
Use Case Driven Object Modeling with UML: Theory and Practice
Get from use cases to working, maintainable source code. Examples use Spring Framework, JUnit and Enterprise Architect

Agile UML
Agile Development with ICONIX Process
A practical subset of agile development techniques, illustrated by example

Get Controversial!
Extreme Programming Refactored
Extreme Programming with a dose of satire
Available now:



Programming

Component-Oriented Thinking (Page 2)

<< Page 1 (Introduction & Message Forum)


Component-Oriented Thinking

So why should component oriented programming be taken seriously?

Component oriented thinking has been gaining acceptance in the literature over the last 5 years. A look at the OOPSLA conferences shows that the number of papers being presented on the subject has now overtaken object orientation. Another reason why component oriented thinking should be accepted is that standards like Web Services have embraced the new idea. Web Services provide a language neutral means of remotely invoking a service.

Web Services lie somewhere between RPC and ORBs in their nature. RPCs are similar to Web Services because they expose functions that can pass data and structures to and from services. ORBs are similar to Web Services because each service has a collection of behaviours. In Web Services, you cannot pass behaviour with the data or structures and you cannot pass a service as a structure. Data and architecture are separate. The next big thing being hyped by the large vendors is not object oriented - it is component oriented.

Apart from web services there are several other important architectural components that have become more component oriented. Looking at the development of Java persistence shows Java very gradually becoming more component oriented. From EJB 1.0 to EJB 2.0 there has been an acceptance that remote and local beans are necessary. The introduction of JDO shows an acceptance that a general set of interfaces can be used to persist objects without specifying the implementation; as EJB does.

Part 2 of this series outlined Java's chequered history of persistence and display and concluded that it followed no clear strategy. It was suggested that a better way to have developed the multiple persistence API's would have been to extend the beans specification to include a set of data and architectural interfaces.

Frustratingly, the history of the Beans APIs is that they were jumped (or pushed) into supporting the integrated development environment (with Bean Context) rather than being extended into component oriented design.

This diversion led to EJB being developed, the limitations of which are now becoming apparent from the readiness to embrace JDO as a simpler alternative. The recently redeployment of the JDO implementation effort to develop web services raises serious questions over Sun's commitment to developing a simple Java persistence layer.


>> Page 3 (Data Binding)

 

<< Back to Programming

<< Back to Software Reality

All trademarks and copyrights on this page are owned by their respective owners.
Stories and articles are owned by the original author.
All the rest Copyright © 1998-2008 Matt Stephens. ALL RIGHTS RESERVED.