July 11, 2003
spout
The Killer App for Web Services
After watching Amazon’s amazing presentation at the Dev.Conf., it hit me that
Amazon.com is the killer app for web services. Not only are they technically
cool, but they have two business models for themselves and their associates
built right in:
- I can build a business on their back-end data,
selling targeted stuff to my customers, using their services to do all the
hard stuff on the back end
- I can use their front-end to sell my own
products
Amazon has turned the infrastructure on which they
build their own business into a major revenue generator for not only themselves,
but for associates. And, if they wanted to take it further, Amazon could provide
all of their payment, distribution and storing/querying data as web services for
things that weren’t even available for sale on Amazon.com, e.g. medical supplies
or porn, removing the need to build all of these services yourself. In fact,
they’re already planning on doing this for payment services.
*That’s* what
web services are supposed to enable. *Wow*.
July 11, 2003
conference
Applied XML DevCon Trip Report
Dave Winer’s Keynote:
- Users care about you software working, not
*how* it works
- Users don’t want to be controlled
- As
developers, “we’re very impressed with the complexity that we can
understand”
Don Box:
- “No one that gets laid
actually replaces the CPU in their computers anymore. And, since they don’t
get laid, they can’t reproduce and natural selection will take it’s toll.
Likewise, objects are not meant for field replacement.”
- Building on
abstractions means that the abstraction needs to be kept constant
-
the wire is god. schemas are relative to your needs. the same XML instance
doc can be many different schemas in a pipeline
- I missed why the
abstractions in a service-oriented architecture are somehow better than
those in an object-oriented architecture, except that maybe SOA abstractions
are courser grained, but that can be true of OOA, too, can’t it?
Brian Jepson:
- WAP is just another XML format to product that exposes
your data to WAP-enabled devices, e.g. phones
- Very cool to watch
Brian control his presentation via his cell phone (nothing to do with XML,
but very cool never the less). He was using a Mac and didn’t know if a niche
OS like Windows had apps that did such things (although he did find
this that might work)
Don “XML”:
- In NJ, they
teach middle school kids HTML, XML and PowerPoint (holy cow!)
- Lots
of folks asking questions, evidently interested in SVG and/or
declarative-based UI models
Patrick Logan:
- Patrick
gave his talk sitting down, which didn’t help him keep the audience’s
attention
Ted Neward:
- EJB 2.1 for web services
looks pretty easy
- “Swing sucks. People are using WinForms to access
J2EE web services.”
- “Sun has drunk very deeply of the idea that web
services are just CORBA.Next” aka Sun views web services as just another RPC,
which means that they use rcp/encoded instead of doc/literal
David Ing:
- Don’t take “rules” from speakers at conferences. You can
be entertained by such talks, but you need to make your own decisions
KeithBa:
- Keith starts right where I love — in the code. What better
way to show the new programming model and features of WSE 2.0 than to jump
right to the code? Fabulous
- And not only did he do a fabulous job
writing code to demo WSE 2.0, he did it by building a heckle application
that the audience loved (and took full advantage of : ). You are a master,
Keith
- And! His application is a great example of the need for the
flexible model that WSE 2.0 provides and he brings it right back around how
his amusing, seemingly trivial app is really not suited for an RPC-style
(which we should eschew anyway). Nice
- And then Dave Winer jumps in
to accuse him of saying that there is no such thing as asynch; there is only
polling. Keith is way over the top nice about it and the audience disagrees
with Dave pretty much as a whole
Speaker Panel:
-
tons of controversy; end result is that XML solves a huge number of problems
and there’s no reason to do “this vs. that” because XML allows everyone to
co-exist and interop (although programming may be needed to gain the latter)
Ken Levy:
- First time showing these plans in public (off of a 2am
build)
- Showed off cool new XML editor integrated into VS.NET:
-
showed red squiggles and helpful error messages about invalid XML
-
can select text and have it wrapped in XML comments, CDATA blocks, etc.
-
showed integration of errors using DTD files, i.e. checking elements that
don’t have appropriate attributes as defined by the DTD, etc.
- will
reformat your XML
- may provide outline view for drilling into
large XML docs
- lots of intellisense based on XML/DTD/XSD tools
-
can create schema from a DTD inside of VS.NET
- can infer schema from
an XML instance
- will enable custom mappings of XML namespaces to
corresponding visual editors, e.g. showed an example of editing SVG: first
view is the rendering of SVG; second view was code. If you change the code
while you’re also looking at the SVG view, the SVG view is updated on the
fly
- showed interactive XSLT debugger
- will be releasing
these tools on the XML Tools page for use w/ VS.NET 2003 in the fall
(tentatively)
- send Ken Levy
the things that you’d like to see in the XML tools space
Jeff
Barr
- Amazon is able to turn around small features very quickly and
that’s the corporate culture
- they spent $300M on distribution
centers and $900M on technology
- when folks were scraping the web,
Amazon could have broken those apps, but realized that the folks doing the
scraping were building legitimate apps with that data that was good for
Amazon, so instead of crushing those folks, they tried to not change the
format of the pages w/o a good reason (in spite of the added cost of
supporting robot traffic)
- to support the largest number of
customers, they support rich SOAP interface and a REST interface
-
return “light” and “heavy” data, depending on how much info developers want
-
business model for users seems to be picking an unused domain, setting up a
site selling something specific, e.g. power tools, then building the whole
site using the data and purchasing/shipping services of the Amazon web
services. Wow
- the associate program is hugely successful for Amazon
in terms of revenue generation
- the protocol is loose so that
developers have a wide range of choices of what they want to do with it,
e.g. if Amazon doesn’t have all of the information being requested, they
return what they have instead of failing, letting the developer decide if
they want to use the info that Amazon provides or fail on their own
-
Amazon versioning: new versions get new URLs. Old versions use new code
internally, but return same old data format from same old URL
- for
keeping their own data up to date, Amazon also publishes a set of services
for sellers to update their data and will soon be exposing a service for
sellers to create new ASINs (Amazon product IDs) for their own products
-
80% of the requests are for raw XML/REST (with or without transformation)
-
as things get more complex, SOAP will take over
Steve Loughran:
-
bottom line: SOAP is ready for use in embedded systems (although things can
get better and likely will)
Tarlochan Cheema:
- the
motivation for the sets of web services that microsoft.com is about to
expose is for better communication with partners, e.g. avoiding shipping
CD-ROMs around, as well as providing real programmatic interfaces for folks
that are scraping data from microsoft.com, e.g. top downloads
- the
way that MS stayed at lots of 9s of reliability is with writing good code,
of course, but mostly with heavy use of caching
Tim Ewald:
-
XML schema shouldn’t be used for nominal typing; it should be used for
structural typing
- different parts of an XML pipeline can have
different XML schemas to check different things
Chris Dix:
-
“Everywhere is walking distance if you have the time. Steven Wright”
-
Since you can embed non-SVG data and script into SVG, these are the elements
needed for stand-alone, cross-platform “intelligent” data that can provide
it’s own UI
Aaron Skonnard:
- “Scott (my code monkey)
and I are still in the running for the $1M playing DevelopMentor Survivor.
We kicked Don off the island first because he was the strongest and Tim
second because he was the smartest.”
- XSD isn’t enough to check real
business rules
- XPath is more flexible
- Can write a .NET
SoapExtension like this:
[WebService]
[AssertNamespaceBinding(“t”,“urn:geometry/“)]
public
class Geometry {
[WebMethod]
[Assert(“//t:length > //t:width”,
“Length must be greater than width”)]
[Assert(“(//t:length div //t:width)
= 2”, “Length must be double the width”)]
public double CalcArea(double
length, double width){
return length * width;
}
}
Even cooler, because the constraints are part of the .NET metadata of the
method, when the docs and the WSDL is generated from the Geometry web
service, the constraints can be pushed in as well, making the constraints
available to the developer
July 10, 2003
.net
Quake II.NET in Managed C++
Here. These guys demonstrate not only a cool application of Managed C++, but also what a fabulous bridge that MC++ is between the unmanaged and managed worlds. Folks that haven't moved to VS.NET because they're doing C++ are *really* missing out.
July 10, 2003
Forgetting the pain of childbirth
Apparently, as excruciating as giving birth is, women quickly forget it when they've got the baby in their arms. I say “apparently,” because having watched my wife give birth to my first son, I can’t imagine that she’d have agreed to the other if she had clear memories of what it was like.
That’s what happens to me at each DevCon. Every time I run one, folks say nice things about it, which means that I completely forget what it’s like during the actual conference. The pain can be excruciating. As each person gives their talk, I’m giving it right along with them, willing them to do well and being pained when, inevitably, sometimes, they don’t. When something goes wrong, it pains me as much as if it was happening to me directly.
And yet, this is “SellsCon” IV (as Don calls it) and I keep doing them. Luckily, I tend to forget the pain once I have the baby in my arms, which will be sometime on Friday after 5:45pm.