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)
For the past six months we've looked in detail at the nuts and bolts of XML
protocols, Web services, and XML data encoding. These are the foundation
technologies of next-generation Internet distributed applications. In the
next several months, I'll focus on another, no less important area -
higher-level description, discovery, and integration services.
These technologies are catalysts for the adoption of Web services. Without
them, businesses will never be able to leverage Web services to their true
potential.
The Need for Higher-Level Interoperability Services
Even the simplest ... (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)
In my last XML in Transit column (XML-J, Vol. 2, issue 5) we looked in detail
at the technical aspects of the service description layer of the Web Service
interoperability stack (see Figure 1). In fact, the topic of our discussion -
Web Services Description Language - has now been submitted to the W3C for
review.
In this column I originally planned to go a step higher and start to map out
the space of Web Services advertising and discovery. Instead, I decided to
bring the subject of service discovery and advertising within the context of
a framework for using Web Services.
The ... (more)