Tuesday, May 8, 2007

Second Edition of SOAP 1.2 is a W3C Recommendation

pencil icon, that"s clickable to start editing the post

Browsing the news over at W3C I discovered the news about the second edition of SOAP 1.2:

For one I haven't even got over to SOAP 1.2, though Axis2 makes it possible for me. Secondly what is a second edition of the same version? Is this like going from 1.2.0 to 1.2.1? The answer is given there:

The second edition incorporates corrections for the known errata in the first edition

Uhmm, so it's just a write up of all the errors in the first edition. There are also multiple editions of other W3C standards like the Extensible Markup Language (XML) 1.0 that's in the fourth Edition and XML Inclusions (XInclude) Version 1.0 that's also a second edition. How often do they make these editions and on what grounds? I've search the site and didn't find anything on it, so I guess the groups make it up for them selfs when they feels it's time for a write up.

Read more

I no longer have to wait for Joost to come out of beta

pencil icon, that"s clickable to start editing the post

I my home we don't have a TV, so when one of my girls wants to watch the children's program from The Danish Broadcasting Corporation (Danmarks Radio - DR) we use the streaming service that they offer. The problem with this service (the chosen format aside) is that it's way to often overloaded with the result that we're thrown off or i hangs for long periods (restart of streaming somehow seems to help, but is really annoying to do ex. every 5 minute).

Some time ago I saw that DR are working together with Joost to give greater availability. Back then I went to the Joost website to find that it's still in beta, and that you can't just try it out, you'll have to be invited, sigh. One evening I saw that the most popular search on Technorati was for joost invite and saw just how fast people commented to get an invite. Last weekend I was lucky enough to meet someone who could invite me. Since i looked last they removed the 5 invite per user limit, but anyway I still needed the invite. Last night I tried it out, and it turns out that only a few programs from DR are featured, so it'll not help getting a better signal for DR children programs. If I had the time I could probably waste some time on the sci-fi channel, but i do not have that much time :-). The stream quality in general seemed good, and hopefully I'll find some more time to check it out. Also it'll be interesting to see just how annoying the adds will be, since I didn't see any when I tried it out.

Read more

WS-TX has made version 1.1 an OASIS standard

pencil icon, that"s clickable to start editing the post

The X-members of the shinning WS-star just keeps producing new standards. Now it's WS-Transaction version 1.1 that's become an OASIS standard. It's also one more of these standards to consist of multiple specifications, here the three (from the OASIS standards list):

  • Web Services Coordination (WS-Coordination) v1.1
  • Web Services Atomic Transaction (WS-AtomicTransaction) v1.1
  • Web Services Business Activity (WS-BusinessActivity) v1.1

I'm not sure what happened to version 1.0, if there ever was one cause I can't find it on the WS-TX TC homepage. Judging from the list of companies that has participated in this standard, it looks much more promising than when I looked at WS-Context (maybe they are more related that i know of, but doesn't really change my view on it). Since I'll probably never have time to look into this standard I'll take the version short description of the specifications from the press release:

WS-Coordination enables an application service to create the context necessary for propagating an activity to other services.
WS-AtomicTransaction defines agreement protocols for short-lived activities having the all-or-nothing property.
WS-BusinessActivity defines protocols for long-running transactions that require compensation-based agreement.
Working together, these specifications enable existing transaction processing, workflow, and other systems to hide their proprietary protocols and operate in a heterogeneous environment

Read more

Sunday, April 29, 2007

The WS-Star is still growing - new standards for Context and Notification

pencil icon, that"s clickable to start editing the post

Happy days - yet another WS-* standard has come out of the Oasis Standard Factory.

In a press release from the 25. april the happy news is that WS-Context has become an Oasis standard. Uhmm, well I haven't heard of it before, but I guess it's better with standards than drafts. The work has been done in the OASIS Web Services Composite Application Framework (WS-CAF) TC, but what is it there doing, let's see the charter. The top piecs is:

The purpose of the OASIS Web Services Composite Application Framework TC is to define a generic and open framework for applications that contain multiple services used in combination (composite applications).

Multiple web services combined in composite applications require interoperable mechanisms to set the boundaries of an activity (such as start/end, or success/failure), to create, access and manage context information, and to inform participants of changes to an activity. Composite applications might also need to work with a range of transaction models, including simple activity scoping, single and two phase commit ACID transactions, and recoverable long running activities.

Yuep, real nice, real abstract and sounds like something similar in other specs - do these Oasis Comittees really coordinate? Following the charter they should:

Interoperability, ease of implementation, and ease of use will be fundamental characteristics for WS-CAF. The TC's work should build upon similar, existing standards wherever possible and to align where appropriate with other relevant standards. Alignment means any of the following: feature reuse, bindings, guidelines on how to jointly use the specification with other related ones, or addressing requirements from other related standards.

It's not all that clear how they feel about work in progress and close to final work versus final standards, but I'll hope. As for the need I'm not near clever enough to evaluate that. But I can see that if things haven't changed since the charter was written, there are more WS-* spec's on it's way:

List of Deliverables

  • A revised WS-Context specification. Draft due within 6 months of first meeting.
  • A revised WS-Coordination Framework specification. Draft Due within 10 months of first meeting.
  • A revised WS-Transaction Management specification. Draft due within 14 months of first meeting.
  • A primer introducing the above specifications, including use cases and scenarios as appropriate.

Of all these artifacts I'm longing for the primer the most. The initial drafts were contributed by: Arjuna, Fujitsu, Iona, Oracle, and Sun Microsystems. I'm missing IBM and Microsoft, and doesn't this have a resemblance with what happened to the original WSRM ( I believe that Oracle and Sun were on that first TC). This could mean that either they think:

  • that these guys will do it right without involvement
  • that the area of work is not important
  • that they have something similar going that they'll fight over later on

Time will tell, but any ways the approved standard for WS-Context is fairly small but that's all I know for now. A quick look at the Apache Web Services project does not show any projects working on WS-Context, which I'll take as a sign that it's not that important and for sure that I'll no be able to use it with the Apache stack for some time.

Read more

Thursday, April 26, 2007

Second look at the NBII DREFT web service

pencil icon, that"s clickable to start editing the post

After my first post about the NBII DREFT web service I yesteday had a second look at it. I decided to refactor the JSP sample client source code for Demo 1 to JSPX/JSTL, beacuse I figured out that redoing the presentation would be an easy way into how data model was. That was a good idea, but not as easy as I thought. The Concept construct was relatively clear to me, but what about Concept Relatives? all ready here I was totally blank. The JSP example is sort of classes MODEL 1 web architecture with the same page both containing the form, receiving the submitted data and doing the presentation. That's not my preferred way of doing it, and neither best practice would I think, som I'll split it up with a very simple Front Controller doing the web servcice call and dispatching to XML style JSP pages, JSPX - hey man, I dig those angle brackets :-). Using JSTL I'm able to do scriptless pages, which are much easier to read/maintain.

In the JSP example there is a comment and some constants are defined like:

the following declarations are to get the associated terms off the conceptResult object. They are stored in the following order. So use the following variables or their values to retrieve the right associated group of terms
  int BROADER = 0;
  int NARROWER = 1;
  int RELATED = 2;
  int SUBJECT = 3;
  int USEFOR = 4;

I sort of didn't understand it right, because when i saw this in the code:

....
//display synonyms for a particular Term Category
if(conceptRelatives != null)
{
  if(displayAll||termGroupList.contains(BT))
  {
    //broader terms          
    ConceptRelatives btConRel = conceptRelatives[BROADER];   
    ....

I was really surprised, because it's almost like voodoo to have that kind of meaning into a sequence (the order), and what puzzled me even more was that these were not even always present, as my example showed me in the Betwixt dump of the object model. What did the schema say:

...
   95       <complexType name="ConceptResult">
   96         <sequence>
   97           <element
   98             name="conceptRelatives"
   99             nillable="true"
  100             type="impl:ArrayOf_tns1_ConceptRelatives" />
  101           <element
  102             name="concept"
  103             nillable="true"
  104             type="tns1:Concept" />
  105         </sequence>
  106       </complexType>
...
...
...
  112       <complexType name="ArrayOf_tns1_ConceptRelatives">
  113         <complexContent>
  114           <restriction base="soapenc:Array">
  115             <attribute
  116               ref="soapenc:arrayType"
  117               wsdl:arrayType="tns1:ConceptRelatives[]" />
  118           </restriction>
  119         </complexContent>
  120       </complexType>

Nothing here. This was very strange and I used quite some time figuring out what was wrong. It turned out that I has sort of fooled my self. I then ran the example and it seemed to work right, which was an even greater puzzle to me. I went back and looked at the encoded response message and found:

   19     <multiRef
   20       id="id0"
   21       soapenc:root="0"
   22       soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
   23       xsi:type="ns3:ConceptResult"
   24       xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
   25       xmlns:ns3="http://www.w3.org/2001/sw/Europe/skos/namespace">
   26       <conceptRelatives
   27         xsi:type="soapenc:Array"
   28         soapenc:arrayType="ns3:ConceptRelatives[5]">
   29         <item href="#id2" />
   30         <item xsi:nil="true" />
   31         <item href="#id3" />
   32         <item href="#id4" />
   33         <item xsi:nil="true" />
   34       </conceptRelatives>
   35       <concept href="#id5" />
   36     </multiRef>

Those darn xsi:nil they were in the response and therefore in the object model, but Betwixt (and the J2SE XMLEncoder) didn't serialize them since they were null.

So what did I learn from that? That I vulnerable when I know almost zip about the subject, and that i oversaw the fact that they were there and that in fact there is always 5 entires in the ConceptRelatives array. Of couse it's just wated time and there is no one to blame, but it could have been avoided if the creator of the service/WSDL had been explicit about with a minOccurs="5" maxOccurs="5"> as a minimum, but to be really god the diffent semantics of the entries in the array should have been explicit and not kept in an generic type, so like <NarrowerTermCollection>. If I don't give up on this thing I'll try and make a doc/lit WSDL to the best of my knowledge later on, but with the progress rate I'm at right know that's not very likely.

Now that's one thing, another is the indicated Relations in //relation/label is always http://www.w3.org/2004/02/skos/core#useFor which most be an error.

Read more