back to business
in more personal/specific news, I showed the current state of the UPS Rate Selection Service php tool that I built to the Tulsa PHP Meetup Group. they seemed pretty interested, but I still have some work to do this weekend - I re-wrote the script using classes and am adding the correct documentation to expose it as a web service using the Webservice helper tool. I'm dedicating this weekend to that, and World of Warcraft, so it should be very much done in time for Tuesday's meeting with the EDS folks.
I'll also need to put down some of the MySQL 5.0 XML features that are in the works in order to keep the lamp5 discussion related to MySQL, seeing as how Tuesday's meeting is the Tulsa MySQL Meetup Group. I'm still a huge fan of MySQL, but am just discovering that it is not very involved with the Web Services I'm interested in.
</div>
I blog corrected
the primary source of my confusion and ill-founded assumptions was my reliance on the article's summarization of the definition, rather than the definition as outlined by OSI. I therefore had an incomplete perspective of the open source definition, and lambasted a straw-man that had no real resemblance of the real Open Source Definition & Licensing body. I owe OSI an apology, although they never knew it, and I offer it, although probably only to an empty blogosphere.
with my more fully-developed perspective, in regards to my comments about OSI 'zealots' and its 'dream-world', I will withdraw the 'dream-world' accusation, in recognition of the fact that the the OSI definitions and licenses (and specific concepts therein) are not only reasonable, but beneficial and conducive to advancing commercial software.
however, I still retain my, perhaps stereotypical, slant that the majority of open-sourcerors(tm) are ordinarily highly committed to, and evangelical of, open-source for ethical, or moralistic reasons more than techincal or (especially) commercial reasons.
but rather than try to offer up my own argument for the still small, though deeply important, point of contention I have with OS at large, I'm glad I can reference the opinions of somewhat more respected and established OS advocates. Namely, Michael Tiemann:
"...the freedom to use, distribute, and modify software will prevail against any model that attempts to limit that freedom. It will prevail not for ethical reasons, but for competitive, market-driven reasons."
now, for a more productive topic of discussion, I would contend that it is impossible to license Web Services under the GPL and here's way...
GPL, 2.b:
"You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License."
Web Services are Programs that will be utilized by countless numbers of other programs, and if a Web Service is utilized by another program, that program is said to be derived from the Web Service program. So the GPL is out for commercial Web Services.
The LGPL is more attractive....LGPL, 2.d:
"If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works."
For me, and probably for other commercial firms looking to make profit from Open Source Web Services, the fuzziness of the 'reasonably considered independent works' is way too open for discussion, especially considering the very next part of the license goes on to state:
"But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License..."
There is no real way, without getting more detailed and technical in the license, to determine where a proprietary program that uses a Web Service can be considered an independent or seperate work. And if a proprietary program were to use many Web Services, all under LGPL, the nightmare of working out the boundaries that the license applies to could hinder the adoption/consumption/embrace of OS Web Services.
I think a Web Services-specific open source license needs to be made, fashioned after the LGPL, but specifically stating that programs utilizing only standardized output of the licensed program are not themselves derivative works of the program, but are considered reasonably independent, recognizing that the standardized output could be replaced by a different program with no detriment.
I hope open-sourcerors catch the Web Services bug, though there are reasons why they wouldn't, and some progress is made in this important area of WS and OS licensing. </div>
open source WS-Reliability
anyway, the open-source part of this article is the link to RM4GS, which is an open-source Java implementation of WS-Reliability, developed by the same companies that drafted the WS-Reliability specification. a thought that has been recurring in my mind is that open-source Web Services software may just be a bit redundant, or as I said before, the benefits of open-source and Web Services are not complimentary, but are mutually exclusive.
WS-Reliability is very useful to potentially everyone, regardless of programming language, because it enables distributed computing systems to be built using internet-based architecture. that's a fancy way of saying that a software program could potentially utilize any other software program on the internet.
RM4GS is very useful to a few people - Java programmers making web services that need reliable messaging. Java itself already has JMX, but RM4GS allows your Java program to reliably communicate with a .NET service and others.
But it's important to note that the .NET service will make no use of RM4GS. It will have to have its own implementation of WS-Reliability. and if the .NET service will interface with other services that do WS-ReliableMessaging, or some other standard that pops up, these advanced Web Services are starting to lose their shine of being a totally standardized, internet-based, written-once interactive systems. we will be back to having many different interfaces, and needing to code for each interface.
on the plus side, it means that programmers who understand the interfaces can pull in the dough, so that's good.
</div>
standardized WS-* (reprise)
some more info about the standards of WS-*
I enjoyed this article which pretended to be about REST vs. SOAP web services, but seemed more in the end to be about WS-* specs. it also pointed out that J2EE is dependent on CORBA! I'm surprised the .NET crew has not jumped on this factoid to hammer J2EE as a WS platform. I probably need to research it in full before I make that a marketing device of lamp5's, but since I've already gotten some good ammo against J2EE, what I really need is some argumentation against .NET, if anyone has some, other than MS-style FUD, let me know.
But the article made a good point about the WS-* specifications and their issues being more related to vendor politics than technical problems. This was supposedly to regain a point for SOAP-based WS as opposed to REST, since apparently the REST camp has used WS-* confusion as an argument against SOAP-based WS.
I also heard back from Erl about the nature of WS-* specifications and he answered in a relatively vendor-neutral way that standards orgs like W3C and OASIS take a long time to get standards approved by their committees. many companies need the functionality up and going in a certain schedule, so they write their own standards specifications, using their own resources, and make the standards "open." W3C or OASIS may come along and endorse one of these vendor standards, or it may make its own, but I think it's ultimately not a good thing to have over-lapping "standards" in the long run.
It may only happen when someone needs to develop WS that consume or provide that certain functionality, and that's not as bad as having, say, a vendor-specific XML standard, but I think it would help to settle on a standard in a shorter time frame. though competing standards for a time would make sure the good standards come out. this all may just be a political nightmare that I don't want to get involved in, and hopefully these few posts will be the last I think/discuss it.
WS-* "standards"
I also noticed on Erl's specifications.ws site that the core XML and 1G Web Services were specifications from the W3C, and that the 2G WS-* specifications are listed as being published by IBM/Microsoft! I emailed Erl about this, asking if it was wise to promote possibly vendor-specific(?) standards, but I doubt he will get back to me. Not because I think he's in the pocket of IBM or MS, even though they "officially endorsed" his book, but more because he is probably swamped with frivolous email already.
I've spent most of the holiday pouring of Erl's book, in fact. I think it's a great chance for me to get caught up on SOA and implementation/integration strategies and tactics before getting back to work to put webMethods up in our Red Man systems. the webMethods reps have me convinced enough with their committment to SOA via WS, and have offered for me to give a talk at their next integration conference, which I will probably take them up on.
if I enjoy it, maybe I'll give more talks in the future...but I don't know.
</div>