I may be a tree-hugging, new-age, liberal, United Methodist, but when it comes to computer programming I’m a hard-core, right-wing fundamentalist…or at least I used to be. It really all goes back to my early days of little league baseball. My dad was the coach and his coaching model put a heavy emphasis on the fundamentals of the game: throwing, catching, and hitting. Everyone played and everyone had fun. We were never the best and we were never the worst. While other teams recruited talent, played talent, threw curve balls, and benched liabilities, we were getting a thorough schooling in the fundamentals of the game. These values really informed my approach to learning java. I’ve taken 4 courses on the fundamentals of java and I would take another if I had the chance. My experience is that the “advanced” stuff comes easier if you have a strong foundation to build on.
So, why have I become such a backslider these days? As I’ve mentioned, Netbeans has really made things easy. Netbeans has become my new tech religion. Why should I trudge through the ‘Old Testament’ of java when the Messiah has come with the ‘Good News’ of wizards, debuggers, code editors, and powerful drag-and-drop graphical abstractions? I’m SAVED! Praise Netbeans! Hallelujah! But like with any religion, some unprecedented issue comes up, and it is no longer clear which way to turn. We have to go back to the source to find the answers.
And so, I’m grateful to Mark Hansen for reminding me to get back to the fundamentals when it comes to JWS Development models.
He presents three models:
- Start from Java – “assumes that you create a Web service by starting with the development of a Java class”
- Start from WSDL – “you take a preexisting WSDL and use a WSDL compiler…to generate a set of Java program elements that implement the WSDL”
- Start from WSDL and Java -”you reference a preexisting WSDL from the @WebService annotation on the Java class intended to implement it. The annotations on this class must map the class to the referenced WSDL.”
Does one of these three options seem a little (or a lot) more complicated than the others? If you chose #3, then your with me, and Mr. Hansen. But let’s face it, folks, life is complicated. So much of what we do as programmers involves integrating existing systems. We spent the last 10 years developing all these great systems, and now we’re expected to get them to talk to each other. The promise of SOA is that our existing systems can benefit from other existing systems by consuming their web services. How often, practically speaking, will we get to write the WSDL for someone else’s system, and how often will they be able to fully anticipate the data models for our system? #3 is about the real-world work of mapping data models from one system to the data models of another system. Hansen contends that there is no silver bullet yet for doing this. The current tools do not do this work for you. No special compilers or generators. You have to really understand WSDL mapping fundamentals to make #3 work. He writes,
“Precisely because of the difficulties it presents to the JWS tools, I feel strongly that the best way to understand Web Services development and deployment is to assume that you have existing WSDL and Java artifacts to work with. As a developer, if you learn to solve “Start with WSDL and Java” problems, the other two development modes are much easier to deal with.”
I’d been attempting the “Starting with Java” approach because it seemed like I wouldn’t have to learn all this WSDL junk. Netbeans w some success, but when problems arose, I found that I was ill-equipped to solve them. So….it’s back to the fundamentals for me!