Recommended: Sing it, brah! 5 fabulous songs for developers
JW's Top 5
Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs
Page 3 of 5
Equally, in a truly global grid-computing environment, automatic discovery and enlistment of computing resources to solve a problem at hand is a key part of the infrastructure—it isn't in a Java EE environment where the hardware is sized up-front to meet a defined user population and performance service-level agreement.
My point is, then, that SOA means different things to different people. In this article, I am concerned with SOA from a Java EE architect's perspective. And I believe that means functionality reuse. Other advantages to SOA from a Java EE perspective include:
Let's examine the issue of software reuse in more detail by asking three specific questions:
Firstly, software reuse is a good thing for these reasons:
So we want reusability. What is the simplest way to get it? By packaging it as a set of well-defined components that meet a discrete functional requirement. Then, if another application needs the same component, it can be dropped in and used. There are other details to consider here, such as how do I configure it (Why, hello Inversion of Control, how are you?), but these details detract from the main thrust of my current point: to reuse lines of code written in any programming language, that code must have been designed as a set of discrete components or refactored to become that set.
Check out my first article for JavaWorld, "Frameworks Save the Day" (September 2000), for more details on software reuse as applied to Java EE projects.
Next, how does SOA approach the problem of software reuse? By building on the component model and by introducing an important mandatory requirement: that components communicate with each other via messages delivered on the ESB, thus ensuring loose coupling. In fact, the most widely deployed SOA implementation, Web services, can stitch together components developed in different programming languages by making the messaging layer technology neutral.
Lastly, does the promise of SOA in delivering software reuse live up to reality? No. I believe that SOA would solve the software reuse problem if it was invented in 1945, around the same time as the ENIAC (Electronic Numerical Integrator and Computer). But it wasn't, and billions of lines of code now exist that have been written between then and now—in COBOL, C, C++, Java, C#, and a myriad of other languages, some long forgotten but still in production somewhere.
Archived Discussions (Read only)