Paul, Do you mention in your book which patterns are most favored in Web Services and why? Do you give pros and cons for the patterns in Web Services? Are different patterns favored when using different programming languages to create the service? Sorry about asking so many questions.
Hi Matt (YET AGAIN)... I have "favorite patterns" in Web Services, and I have "most useful" patterns in life... I'll make this rather long since I'm too humble to sit in my own space. As for Web Services, I'm enamored with the SOA architecture (covered in CH. 3), the Architeture Adapter (an extension of the GoF Adapter...this is a favorite just because it was one of those "lights" that pops on in your head of what you have really been doing), then in SOA practice I fall out to the usefulness of the Transfer Object pattern, Physical Tiers and Business Process as a way to teach and talk about Web Services. I found that the pros/cons of a ws pattern tended to fall towards performance characteristics and careful planning around keeping to the basics and standards to avoid problems integrating with other platforms and languages. I really did try to stay away from "tuning" towards a particular language, like Java (with cautions of trying to "leverage" the Java platform in your WS interfaces). On the other hand, I did leave the book "open ended" (by specifying the "Java Edition") to sit and implement the patterns in another language as my time permits (which it rarely does ;-) As I was writing the book you really start to realize that so many patterns fall back to variants and extensions of the original GoF patterns. I was also pleasantly surprised to find that the Alur/Crupi/Malks works are very much "long lived"...GoF tends to be defining of a single system/oo mentality whereas the latter really moves towards distributed programming/component mentality. So if I were on an island with a bunch of comp sci students and could only take two books, those are the ones I would take. In practice, I think the transfer object, pub/sub (NOTE that I didn't say Observer), adapter and abstract factory are my favorite. Hopefully, that answers your question. I think you'll also see (like in the other post), that my SOA background really starts to show itself...defining a "service" and what it should do can be a tricky, tricky, thing to do (especially for beginners) so I was very careful to try to create a language (this spending so much time with Business Object, Collection, Process and Asynch Process...). What you find is that people that are new to WS tend to lean towards the BO whereas where you WANT to go with WS is the BP.
Paul B. Monday<br />Author, Web Service Patterns: Java Edition
Matt R. Hansen
Joined: Sep 05, 2001
It almost seems that the SOA pattern was designed for web services. What are some other situations where this is used?
Joined: Aug 28, 2003
Jini and Openwings come immediately to mind...this is why I decided to turn it around and into an architectural pattern.