This content has been marked as final. Show 1 reply
One of my favourite books about computing is still "Algorithms + Data Structures = Programs", my Nicklaus Wirth. The very title conveys a lot about how we look at computing, even in the more modern era of object-orientation.
Computer programs are the fusion of algorithms and data structures. Algorithms are essentially instructions designed to perform a well-defined task. Data structures represent the particulars the problem at hand, in a form that facilitates the execution of the algorithm. For example, a tree is useful for keeping data values sorted.
Modern programming languages (like Java) embrace object-orientation, which means, among other things, that hiding the details of the data structure and algorithms is encouraged. Despite this opacity (which is a good), the Wirth's old formula still applies: we still have data structures and algorithms.
Programming languages have all kinds of elaborate constructs meant to help the programming create data structures. The problem is that that those data structures are entwined with the programming language used. That's where XML comes in -- it is a programming language-neutral way of representing many (but not all) data structures. This makes it quite easy to pass complex data from, say, Java to COBOL.
XML is useful for data exchange between dissimilar programming languages, or where programs written in the same language are running on dissimilar machines (some machines can't even agree on how to represent fundemental things like the value "0.0" or the letter 'A').
As for the relationships between Java, XML, BEA, and WL: Java is a programming language, XML is a structured data representation which can be read and written by Java programs. BEA is one of many entities that provides a Java-based program execution environment known as an application server; their's is called WebLogic. In the Java world, an application server provides a standardized set of technologies to facilitate the execution of business applications, known as J2EE (Java 2 Enterprise Edition). (In the further, the "2" will be dropped).
Does that help at all?