<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d8907963\x26blogName\x3dWS-Comments\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLUE\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttp://ws-comments.blogspot.com/search\x26blogLocale\x3den_US\x26v\x3d2\x26homepageUrl\x3dhttp://ws-comments.blogspot.com/\x26vt\x3d-792153501087690591', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>


perspectives on open-source and web services

Wednesday, December 29, 2004

great OS read

I've only been able to find it in hard-copy from Infoworld, but if someone can find it on the web somewhere, the article is called "Opening up the Code," and it's in the 12.04.2004 issue. Good quotes there from Bruce Perens :

"It [Open Source] is only good for nondifferentiating software, just as buying from Microsoft is only good for nondifferentiating software, because everybody can get either one of those things. Your competitor can have the same stuff as you."

This one hit like a revelation. I've been focused on an open-source project that will primarly be used by developers, and so I've found it hard to see benefits in opening up/giving away the labor (or lack thereof) I put into making development tools so that other developers can make money. But when looking at it from the proper perspective - the customer's, Perens has hit on what I now see has been the biggest power behind the open-source movement. He sums it up nicely with:

"...they [companies] can spend less in a cost center for nondifferentiating software than they otherwise would, and then they can take some of their software budget and move it over to the differentiators..."

I've also heard the phrase, "commoditization of the software stack." and that struck with me while reading this article. it really does make all the sense in the world for customers to use open-source software where they can. and the most valuable services will be those of analyzing a companies systems and advising when to apply OS, when to do in-house, and when to buy proprietary.

in developing for developers, as I'd like to do, it's hard to be compensated for your work by developers who are used to getting their tools for free. from what I can tell, the common approaches to this are either dual-licensing strategies (MySQL), where you make the development tool, offer it under GPL, and under a more commercial-friendly paid license that will be paid by commercial production-level developers, or keeping it completely GPL and getting the OS community to support the development of the tool, making it much less expensive to develop.

I'd prefer the latter approach, but no-one else seems all that interested in php web services. if you or someone you love is suffering from lack of things to do, contact me immediately.

Monday, December 27, 2004

catching up

okay, the newly acquired Xbox and Halo 2, mixed with World of Warcraft, work, project s, and school have left me without a blog post in almost 10 days! so to catch up, here are a lot of articles in rapid succession.

Web Services AND open-source are positioned to drive packaged software prices down for the first time in a decade, according to META Group.

this article really applies to all projects, not just open-source ones, and I may at some point write a post describing my disagreements with the first benefit it lists, bypassing WSDL, but it does a good job discussing XML benefits for developers.

more evidence that web services are expected to grow.

XInclude is recommended to be a new standard. new standards are almost always good in my eyes, and especially ones published by the W3C.

that's all for now. I'll try to get back to managing my time well enough to make posts every day or two. it might all depend on how long it takes me to beat Halo 2 campaign on legendary difficulty.

Sunday, December 19, 2004

real world "Open Services" battles

I remember mentioning Amazon and how I was a big fan of them and their business model. On that subject, most people have compared eBay to them as well, but after I read this article alluding to this post at Alex Graveley's blog, I think eBay's a better example of the need for a compatible Open Source Web Services model (which Amazon may be on!).

Jeffrey McManus, eBay Web Services evangelist said, in response to an accusation that eBay's Web Services were not 'Linux-friendly': "If our API somehow didn’t work with Linux, that would be one thing, but, hello, this is XML we’re talking about."

to which Jeff Licquia responded quite reasonably: "I suppose we in the free software world aren’t used to the idea that we have to pay money for the privilege to access an otherwise free site."

at the risk, or inevitability, of rousing the slumbering OS debating giant that is my brother, this particular example demonstrates some of the misunderstanding of (or unacceptance toward) non-OS business models that I think the majority in the OS community has. Both of the contrasting points are true and to me just signify the importance of getting the Holy Grail of an Open Source Web Services licensing, business, and development model.

Since I completely agree with Licquia's response to McManus, and the debate went in a different direction afterwards, I'll have to go ahead an extend that original topic on my own.

Although Licquia ultimately concludes that it should at least be easier to sign up users into the eBay API program, and I agree with that, I do not agree with a conclusion that eBay is now charging a fee for information which is otherwise free.

The data may be the same, but as we all learned in Information Systems 101, data != information. Data is just raw data, like this:
and information is more like this:
Readers of Luke's blog last week, by day, in linear order are (0,1,2,1,0,0,0)

Now, the reason that's relevant here is that the way data is presented is what makes it information. So the same data could be used to convey different information to different people, and that is exactly what eBay is doing with their Web Services vs. their website.

When they use their data on their website, they massage the data all up with their site's features, including a listing of advertisers' logos and links, who no doubt paid money for it. Whereas their Web Services is a more raw form of the data, expressed in a much more generic information set as XML. And that's great for others to work with, but it also means they lose the features of their site, like the paying advertisement links. And eBay is very much different from Amazon in the respect that they do not actually sell products, but rather they sell the services of their site. If they offer a means by which these services could be replicated by anyone else, they are essentially removing the need for themselves. Their value then is only in their data, and to stay solvent, they must recover their costs+ (economic costs, which include profit)

Whether their products, services, and/or prices are reasonable is up to the market to decide, including all the open-source and proprietary developers that will use their product. In this sense, eBay has made their model and is asking the market to figure out how to make it work. If the market can't, then their web services API is doomed. If only the proprietary market can make it work, it will survive in that market.

To make it work for open-sourcerors, a reseller license, or an end-user registration API, or many other things could be tried.

For open-source and web services, it is imperative to find a correct balance of the ease of distribution that open-source carries as its main strength, while still accurately compensating service providers to keep their services active. The freedom of distribution makes it extremely hard to comine the two requirements. There will be many attempts, and it may just be that the models will be as unique as the applications they are applied to. Everyone may need their own.

Monday, December 13, 2004

I'm not surprised

this article states that industry 'analysts' were surprised at the backlash to the growing complexities of the WS-* standards. I'm not surprised by it at all, though I don't share the same inhibitions about using complicated WS standards. I actually think the complicated nature of WS is unavoidable if WS-based systems are going to be used in major enterprise-class software.

it does mention another area I think lamp5 work could be directed in:

"Forrester's Gilpin said he has seen a backlash as well, although he sees a different type of trend emerging to solve it. He said there will be an increasing number of tools that will hide the complexity from developers, so they can more easily build Web services."

I could eventually see a lamp5 Eclipse plugin, similar to the WebSphere WS plugin I mentioned from IBM. it would, of course, depend on a properly configured lamp5 server, but then could allow a more visual approach to building the php5 web services, allowing to set WS-Coordination and WS-Context attributes/settings via a nice dialogue or pop-up of some kind. the plugin then creates the proper php code and the lamp5 server uses the code to generate the WSDL's and all its goodness.

I really wish I had a more complex Web Service to build that used the advanced WS-* standards. especially BPEL4WS....anyone got one?

Saturday, December 11, 2004

php-based J2EE approach?

I was a little puzzled by this, after reading and getting excited about the direction of ActiveGrid, and the concept of lamp5 and Web Services in general. apparently, Simian is attempting to create a J2EE-like server based on php.

the phpBeans (similar to EJB's - Enterprise Java Beans), the phpBeans Object Server, and phpBeans Client API allow php objects to be encapsulated in such a way that they may invoke one another on remote machines and all that jazz.

what I find particularly puzzling is that Web Services enable the same kind of thing. you wrap up your php classes and expose them with WSDL's, and I use SOAP clients to invoke them from anywhere else in the world. but the use of a phpBean and phpBean Object Server takes that cool concept OFF of standardized protocols like SOAP, HTTP, etc and puts it into a client API.

but exposing your php classes/objects as web services means ANY program on ANY platform can use them. exposing your php classes by making them phpBeans and putting them on a phpBeans Object Server means only other php classes that use the phpBeans Client API can use them.

though both ActiveGrid and phpBeans are in their infancy (though they are more mature than lamp5!), I would like to see developers embrace the ActiveGrid approach more than the phpBeans approach. I think web services are being adopted by enterprises in place of approaches like J2EE and CORBA and other language-oriented integration methods.

double up

I didn't actually read this entire thing, but it came in thru my Google alerts and I wanted to comment on Amazon.

the article states that it is counterintuitive for Amazon to benefit from opening up its system via web services (lowercased by me on purpose, since they were originally doing XML over POSTs, GETs, and other, non-SOAP methods...but now they do it all!).

I've always thought exposing their catalogue and shopping cart to others would be an easy way to let others re-market Amazon products. Amazon has their own computer books and computer equipment, but what if a site dedicated to Web Services pulled in plenty of traffic from WS-oriented people. if that site could put its own face on Amazon's storefront, market WS-oriented products more fully, and Amazon could be getting business it would not have gotten otherwise!

I've liked Amazon's web services approach ever since I heard about their reseller program. I like the Google AdSense program for similar reasons. I think the access to information in all kinds of flavors is going to create a lot of extra business for more generic companies.

oh yeah...even my favorite gaming company, Blizzard, has caught onto XML.

Thursday, December 09, 2004

'encouragement' to MySQL

given the sparse knowledge we know about XML support in MySQL, it may be too early to be "criticizing" MySQL, but to me it seems like XML just keeps getting more and more attention, and now here are some links confirming that database vendors are taking notice. if IBM and Microsoft have plans for XML in their databases, I think it should be a good indication to the open-source vendors that enterprises are looking for XML features. I know we are, but given my track record, I won't hold it against anyone to write off any opinion I have on my own.

here's some lovely marketing garbage about Microsoft .NET...and the winning quote-of-interest goes to:
"By leveraging the power of Microsoft's® .Net™ with XML Web services technology, all of the CSTA programs...can communicate...to the BackOffice database server...via its XML Web services"
Yeah, okay...but all these programs are written with MS technologies anyway, so really they're using Web Services to fix some MS 'spaghetti-code' inside platforms that should talk to each other anyway! What should really happen with Web Services is allowing Microsoft .NET applications speak to other applications...J2EE, PHP, etc. The only interoperability/integration issues this CSTA group has solved are issues that are caused by MS itself. But good for them.

Since I only skimmed this interview, and I remember how badly it goes for me to offer lengthy opinions on shallow research, I'll just say that BPEL is really quite interesting to me. Now that I've sunk my teeth into some real live WSDL and SOAP, I think BPEL is the most interesting of the 2nd generation WS standards, and I want to find some project where I can apply and learn it.

Tuesday, December 07, 2004

a couple more news items

this is a case where crappy software patents hits close to home. the now-bankrupt CommerceOne auctioned off some software patents relating to Web Services technologies. there's another great description of this madness which points out "...Commerce One patented a method for using standardized electronic documents to automate the sale of goods and services over the Internet." stuff like this makes it very easy to agree with tearing out all software patent law. in all fairness, I should say I don't view CommerceOne as all that evil. they filed some ridiculous patents, sure...but they also gave away a lot of their 'IP' to the open-source community. I'm more afraid of this JGR Acquisitions group who paid $15.5 million and will be looking to make a profit, most likely from IP lawsuits.

in some good news, IBM created a cool Eclipse plugin for Web Services which supposedly allows a developer to more easily visualize and debug web service transactions, or at least, web services hosted on WebSphere! I've thought this would be an awesome feature for Zend Studio or for the php Eclipse plugin, but that's further down the road when apache/php are extended (by us?) to be very powerful web servicers.

today at the MySQL meetup, I presented the php5 code I wrote along with the webservice helper that created/published/hosted the WSDL enabling the code to be re-used anywhere with SOAP capabilities. I think it went over pretty well, but I still need to enhance the service by adding more couriers and consolidating the results into a single XML response. then I'll hopefully get a chance to show that to Mike G. from EDS, as he couldn't be at today's meetup.

nothing else.

Monday, December 06, 2004

my very first web service

okay, a little nuts-and-bolts post today. I've finished my first web service, though it is really just a web service wrapper to a tool already offered online by UPS. I guess the service I'm offering is a free implementation of their tool using WSDL and being able to hit UPS using the account I created. I guess I better say that by using my service, you agree to the terms that UPS has put on their service. and don't go around using this in production or commercial programs, as I think it's not allowed without your own account, and my IP address will more than likely change soon, breaking the WSDL URL.

here's the description as generated by webservice helper. here's the WSDL for you to use.

what I've done is used cURL in PHP to make an HTTP post to UPS. I made a class that creates the correctly formed UPS access XML and request XML strings, then made another class and function that takes the inputs (as described in the WSDL) and returns an XML string. then I just added the proper documentation in the class (for ws-helper), and dropped that class into ws-helper's designated directory, and voila. it generated the WSDL and accepts the soap requests.

the code to consume this service in PHP 5 is pretty easy too, if you have configured PHP with --enable-soap, that is.

$lukeUPSRateService = SoapClient('');
$returnXML = $lukeUPSRateService->performUPSRateRequest($fromZip, $height, $length, $toZip, $weight, $width);

then you could do whatever you want with the XML...like, say...
(un-tested code follows)

$upsXMLObject = simplexml_load_string($returnXML);
$cheapestRate = 100000;
for($i=0; i<$upsXMLObject->RatedShipment.length; $i++){
if($upsXMLObject->RatedShipment[i]->TotalCharges->MonetaryValue < $cheapestRate){ $cheapestRate = $upsXMLObject->RatedShipment[i]->TotalCharges->MonetaryValue;

Sunday, December 05, 2004

Random news items

isn't this basically what a blog is supposed to be about?

if T. Erl is still reading this blog, he would have a good deal to say about this, maybe. while I think it's beneficial for code-cruncher types, the idea of being able to properly implement web services after supposedly only 24 hours of research is pretty crazy. and as Erl would agree, it would no doubt miss out on the full potential of what a Web Services platform can do. but quick-and-dirty IT projects are the bread and butter of some developers, and some successful businesses, too!

(as an aside, I have read that book, and it was very good as a starter. but please, please, if you read it, don't consider the single 20-page chapter on 'Typical Web Services Designs' as a good grounds for architecting an SOA with Web Services. it demonstrates only the typical hub-and-spoke integration approach, and Erl's book is far superior.

it looks like we bought our Altova XML Enterprise Suite a little too early up at the office. I've signed up for that ridiculous www.freeipods.com site, because my geeky nature demands I have an iPod, but my wallet demands I don't spend money on it. Altova wanted to give me an iPod all along!

just 2 news items, it seems. I guess it's typical blog-fashion, even if it is somewhat lacking in depth.

Friday, December 03, 2004

2 posts in a day!

a minor effort to get some of the very justified and well-founded pressure off of my own back, and onto someone else's....

Erl responded to my open-source inquiry. I don't know if he spoke for himself, or if he really did just speak for 'some' others...

"That's not an area I'm really involved with, so I'm probably not
the best person to ask. I believe that some think open source
implementations may undermine the standardized interoperability that the
WS-* platform promotes."

in a bit of blog-magic, I will magically turn the former 'Anonymous' commentor into MATT CROUCH and hopefully get him to sink his very shrewd fangs into Erl's statements.

back to business

so, back to business of web services, after some lengthy, though productive, discussion of open-source licensing. along with more support for the anticipated growth in the Web Service industry, this article acts as a nice Web Services Chapter 0. it talks about the building blocks, and the current, already large, web service landscape - of course using eBay and Amazon as the prime examples. it contains many good links on its points (I especially liked the article about BPM/BPEL).

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.

Wednesday, December 01, 2004

I blog corrected

the astute (and probably solitary) reader who corrected my erroneous assumptions regarding the Open Source Definition sent me on a much deeper research tangent that is very much vital to the subject of open source web services. but I will first address and correct my statements.

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.