I’ve been around software for 20 years now. Looking back, I have mixed
feelings about the progress we’ve made. The end results have been amazing
but the process of building software hasn’t fundamentally changed since the
80s. In fact, I see us make some of the same mistakes over and over again.
One of the common anti-patterns is over-relying on tools and frameworks
instead of inventing new programming models.
Layers of abstraction are fundamental to software. Some layers are defined
through programming models, e.g., machine language, assembly language, 3GLs,
JSP. Others are defined through a combination of tools and frameworks, e.g.,
MFC and Visual Studio on top of C++. There is a limit to how high we can
raise a level of abstraction through tools and frameworks alone. At some
point, a new programming model is the best way forward.
Here are some examples: CASE tools ... (more)
I just came back from the first face-to-face meeting of the W3C working group
on XML Protocol (is it just me, or is the name somewhat odd-sounding?), and
I'm wondering what topics to exclude from this column. Yes, that's right -
exclude. Encoding data in XML is a difficult topic for many reasons. First,
it's one of those technical subjects in which you need to look at lots of XML
instance/schema/DTD snippets. Second, the devil is very much in the details
and there are lots of them. Last but not least, there are as many ways to
encode data in XML as there are data encoding needs. ... (more)
I wanted to kick off this new column on XML protocols with an introduction to
the hot newcomer in this arena - Simple Object Access Protocol (SOAP).
Trouble is, there are too many ways to go about the topic. The first version
I wrote was a technical introduction to SOAP laced with references to some of
the important ongoing debates on XML protocols and XML distributed computing.
When I finished I found that the two threads - detailed technical information
and higher-level issues - interfered with each other. So I decided to focus
on the technology in the next issue and devote thi... (more)
The last edition of the XML in Transit column (XML-J, Vol. 1, issue 4)
introduced the Simple Object Access Protocol (SOAP). Instead of dwelling on
technical issues, it focused on the driving forces behind the technology.
To put SOAP into context we looked at its history, parsed the
buzzword-compliant phrase ubiquitous XML distributed computing infrastructure
and scoped the SOAP specification within the broader set of standards likely
to emerge in this area. One possible layering of SOAP and related
specifications is shown in Figure 1. The areas already covered by SOAP are
grayed... (more)
It's time to look at the details of the Web Services Description Language
(WSDL) specification and, in particular, how abstract information about Web
services is represented in XML and which extensibility mechanisms enable the
binding of abstract specifications to concrete implementations. We start with
a quick review of the WSDL information model.
In the last XML in Transit (XML-J, Vol. 2, issue 2), we derived an
information hierarchy for describing Web services by asking what, how, and
where questions. The what question points us to the abstract specification of
a Web service.... (more)