 |
Thursday, October 10, 2002 |
Scott Seely, Software Design Engineer from Microsoft, talking about
Inheritance in a Web Service with Apache/AXIS and ASP.NET at Web Services DevCon,
Day 1
This is the time of day when my energy starts to run low, and I'm having
trouble following along in any sort of blogworthy way. Hopefully, I'll get
into the groove soon enough (maybe I need more coffee). So far, he's been
showing base and derived classes in .NET, and how they are represented in
XML schema.
A voice drifts in from another room: "Got a Bud Light? A Bud Light?" Who is
drinking a Bud Light at 3 in the afternoon? My attention is really
wandering...
|
Scott accidentally typed instanceof instead of is,
and his boss
caught him :-) We gotta cut the guy some slack, since he is running Tomcat
and IIS on the same demo machine!
Now I'm back from getting coffee. He's compiling a bunch of Java with a
VBScript WSH script, which strikes me as deliciously perverse.
That's it—I'm a goner until I get some beer, food, and then a good night's sleep!
10:05:24 PM
|
|
Noah Mendelsohn speaking on W3C XML Schema Web Services DevCon,
Day 1
A tour through bits of Schema that may not be widely known.
I wandered out for a bit, and when I came back, he was making the
distinction between an XML schema document (document that
has definitions and declarations for one namespace) and a schema (all the
components needed for validation). Component==single declaration or
definition.
This is interesting... PSVI: Post-schema validation infoset:
- which parts of a doc are valid?
- per which types?
- default values
- and more: careful cataloging and naming of all that you can know after
a validation.
xsi:type is available to you, and you can use it right in your
document: <e xsi:type="xsd:integer">123</e>
All this talk about schema reminds me of my long-neglected JSyntax project. I
can't neglect it for long, though—it's tied to an independent study
that I need to finish by the end of next semester. Noah mentioned a couple
things I should look at: http://www.eclipse.org/xsd and Henry Thompson's
XSV. Two things I could use in JSyntax is a deeper understanding of schema,
and APIs for querying a schema.
3:06:00 PM
|
|
Steve Loughran at Web Services DevCon,
Day 1
Steve is from HP Laboratories, and he's speaking on "When Web Services Go
Bad."
- He's describing an images storage and SVG rendering XML-RPC web service. It
needed to be fast, and have high availability.
- What worked?
- The overall web service model
- Ant for build and deployment
- JUnit for unit tests
- incremental development
- All server-side problems could be replicated (no more "works for
me!")
- What didn't work?
- Turning an existing web site into a web service (web sites not as
rigorously tested nor as stable as a web service)
- race conditions
- thread safety
- resource leaks
- DoS attacks through freaky URLs ("URL of death")
- time synchronization between servers
- human error, hardware failure
- The system was complex, many points of failure, and they ended up
spending all their time fighting fires.
- His suggestions:
- No waterfall between R&D and deployment
- Operations tasks should be described as use cases or XP stories:
"update live server", "backup/restore system", etc. (create tests that
correspond to these use cases)
- Track operations issues as defects, make them easy to search; avoid
3am phone calls
- Deploy early and often; offer regular builds to operations;
continuous integration (he mentions CruiseControl, an Ant-based
integration/deployment tool available from sourceforge).
- add instrumentation (JMX in Java; WMI in .NET)
- On the current project, he's using:
- JMX
- operations use cases and tests
- interop tests
- Ideas for server-side components:
- instrumentation
- unified config
- unit tests
- common logging API
Some of his writings: http://iseran.com/Steve/papers.html,
http://manning.com/antbook.
1:52:56 PM
|
|
Peter Drayton's REST & SOAP session from Web Services DevCon,
Day 1
Peter's an O'Reilly author and DevelopMentor instructor who I've been
working with for a while. He tells us he's neither a REST nor a SOAP guy.
- How did we get here? Two circles: HTML & OO/RPC. No overlap.
- Two more circles; REST & SOAP, with some overlap (a question mark, a
friction point, where the pain comes from: RESTful SOAP)
- REST is an architectural style (the style embodied by web apps), not a
standard:
- network of web pages as a state machine
- progression by following links
- next page==next state
- Web is not REST; Web is REST-style
- Peter gives an example of REST and the HTML web:
- View list of books (resources)
- View book details
- Order book
- REST offers generic operations (CRUD: PUT, GET, POST, DELETE)
- RESTful SOAP guidelines:
- Model your system as a set of resources
- Assign logical URIs to resources
- Define schemas for resource representations
- Enable discoverability of resources
- Provide appropriate operations to manipulate resources
Lots of lively discussion between Peter and the audience.
11:53:34 AM
|
|
Glen Daniels' Apache Axis session from Web Services DevCon,
Day 1
Glen hails from Macromedia and has been working with Apache Axis from the
beginning of the project:
- So far, he's talked about the history of Axis and provided an overview of
its architecture.
- He's talking about deployment: JWS instant deployment sounds kind of cool. It lets you write a Java source file, save as JWS, and deploy it to your
web site. WSDD is an alternative that is more configurable than JWS.
- Why Open Source? Why do peoples' employers pay them to work on stuff like
this?
- Commoditize the plumbing
- Support interop
- Companies can pool resources
- Fixes can happen fast.
- How well does Open Source work?
- IRC is a big help (high-bandwidth chat)
- Some issues are addressed faster than in closed source development, but
some aren't
- Without a critical mass, you'll go nowhere
- Having an active user community is way cool
10:43:10 AM
|
|
My general thoughts on the DevCon: there are a lot of smart folks here (this is clear from listening to the speakers and the questions from the audience). It looks like there will be a lot of information packed into these couple of days, and I'm going to learn a lot while I'm here.
10:38:14 AM
|
|
I upstreamed my last post using rsync. It sent 18106 bytes, and received 84925 bytes. I was online for 2
minutes, 10 seconds (not all of this time was spent doing the rsync, though). Here's the output of rsync:
rsync: building file list...
rsync: 170 files to consider.
2002/10/10.html
index.html
rss.xml
./
2002/10/
wrote 9383 bytes read 1178 bytes 242.78 bytes/sec
total size is 4347350 speedup is 411.64
BTW, I checked the web site using lynx to make
sure it looked good—got 2.3 to 4.6 KB/sec—that's probably where most of the downstream bandwidth came from. If I use my phone's WAP browser, I can probably knock that down to a small fraction. I'm happy to report that this rsync approach is going to work :-)
10:18:17 AM
|
|
Sam Ruby's keynote from Web Services DevCon,
Day 1
Sam's presentation application looks like Mozilla. Perly goodness: the
URL showing is http://localhost/scripts/devcon.pl. His talk is
Interop is All:
- Sam asks how we learned HTML: From the spec? From a
class? A book? Or View Source? (most of us viewed
source).
- He shows an example SOAP request that is human-readable in a View
Source kind of way.
- How he's showing the same in XML-RPC; the only slide with a scroll bar.
He calls it "produced by a program for a program" (not human-readable).
- Sam and Mark Pilgrim are working on an RSS validator in Python with a
SOAP front-end. It should be available Monday.
- He offers a thought experiment: what would a wall outlet look like if
it had been designed the same way WSDL was?
- Use SOAP if you don't control both ends of the wire. If you do
control both ends of the wire, Sam suggests looking at alternatives to
SOAP.
- He's asking us to not program inside out: decide what goes over the
wire first, and then build the internals of your application.
- He lists some things missing from schema: Array, Graph, Map
(hashtable/dictionary), DataSet (ADO, recordset, diffgram) He's like to see
these things added to SOAP or schema.
- Until this is fixed, Sam says "Just say no to ADO". I've had the
same concern; I'd like to see a way to exchange datasets
between .NET and other environments, and adding DataSet would be a good way
to do it. I've had people look at me kind of funny when I've suggested it.
- Sam refers us to Metacrap.
and rules for
evolvable systems.
D'ohhh! He's over time--there have been a lot of questions. As I found at the Mac OS X Conference, 45 minutes is too short for
a technical talk.
9:52:55 AM
|
|
MacCentral: Quake 3 Arena 1.32 Test available for OS X
7:38:40 AM
|
|
© Copyright 2002 Brian Jepson.
|
|
|