Friday, February 10, 2006
I you would like to understand better what Sun Microsystems is doing in the context of Web Services interoperability, particularly with Microsoft's upcoming Windows Communication Foundataion (formerly Codename Indigo), please take a look at Harold's article.
 
 
He has a very good graphic up there:
 
 
Friday, February 10, 2006 12:34:53 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
Monday, February 06, 2006
The paper and the slidedeck for the XML 2005 conference are now (already for some time) publicly available. Please find my paper and my slides on GSS-SAML on the conference web site.
Monday, February 06, 2006 12:24:48 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
Well, this is actually already old news, but I really feel that I should write at least a few paragraphs about this.
 
I have been using NetBeans 5.0 since its earlierst public EA/Beta releases, simply because its new and added feature set (see here) makes it so compelling. While other Java IDEs like e.g. Eclipse offer sometime similar features, it is often enough quite cumbersome to install these features as ad(d)-ons (ever tried to make Eclipse produce a useful web service?). Also, web service consumption in NetBeans becomes as trivial, as it is in Visual Studio.
 
I have been a very long-time and dedicated fan of Microsoft's Visual Studio product family. I would also argue that it is still the best general purpose product on the market. However, NetBeans 5.0 is coming very close and the incremental benefit from moving from NetBeans 4.1 to 5.0 was significantly higher than moving from the (stable) Visual Studio 2003 to the (frequently crashing) Visual Studio 2005.
 
Continuing:

I just wanted to add that NetBeans 5.0 is - in fact - the first beta/EA product that I used to write some production software. I was working outlining some web application for a baby stitting coop: the idea is that mothers sit their children for each other not for money, but collect 'points' they can use against future sits. With 30+ members of such a coop, accounting can get quite .. hmm .. interesting. My little web application is based on the open source Ozone OO database and uses servelets and JSPs.

Writing this software from scratch in NB 5 was quite easy and straightforward. It does not use web services (yet), but a future version will. If you are interested in the code, please let me know.

Technorati Tags : , ,
Monday, February 06, 2006 11:26:55 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
Wednesday, January 11, 2006


Well, I am finally back.

No, I did not take an extended Christmas/Hannukah/Holiday vacation, but had to dubious pleasure to undergo some neck surgery on December 21. Surgery, hospital, and pain by itself do not create a lot of good feelings with me, but neck surgery is really quite bad: you cannot turn your head, you have severe problems swallowing, you have to sleep upright ... the list goes on and on.

For the past couple of days I have been able to walk around all day and most of the incoveniencing limitations put on me post-OR are now lifted. Stay tuned ...
Wednesday, January 11, 2006 2:49:48 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
Thursday, December 15, 2005

Interoperability is probably one of the most misused terms in the IT industry in these days. In a former job, I was confronted with actually defining Interoperability or finding an established definition for it. If you search for definitions for Interoperability (e.g. in Google, you will probably run into the IEEE definition). While this definition is useful as a starter, it certainly does not take you all the way of capturing what Interoperability really is.

A better and more complete definition of Interoperability can be found in the NATO Handbook and the U.S. Federal Standard 1037C. In these definitions (which are the same), there are essentially four levels of interoperability, namely:

  • compatibility: 1.Capability of two or more items or components of equipment or material to exist or function in the same system or environment without mutual interference. [JP1] (188) 2. In computing, the ability to execute a given program on different types of computers without modification of the program or the computers. 3. The capability that allows the substitution of one subsystem (storage facility), or of one functional unit (e.g. , hardware , software), for the originally designated system or functional unit in a relatively transparent manner, without loss of information and without the introduction of errors.

  • interoperability: 1. The ability of systems, units, or forces to provide services to and accept services from other systems, units or forces and to use the services so exchanged to enable them to operate effectively together. [JP1] 2. The condition achieved among communications-electronics systems or items of communications-electronics equipment when information or services can be exchanged directly and satisfactorily between them and/or their users. The degree of interoperability should be defined when referring to specific cases. [JP1] (188)

  • interchangeability: A condition which exists when two or more items possess such functional and physical characteristics as to be equivalent in performance and durability, and are capable of being exchanged one for the other without alteration of the items themselves, or of adjoining items, except for adjustment, and without selection for fit and performance. [JP1]

  • commonality: 1. A quality that applies to materiel or systems: (a) possessing like and interchangeable characteristics enabling each to be utilized, or operated and maintained by personnel trained on the others without additional specialized training; (b) having interchangeable repair parts and/or components; (c) applying to consumable items interchangeably equivalent without adjustment. 2. Pertaining to equipment or systems that have the quality of one entity possessing like and interchangeable parts with another equipment or system entity. (188) 3. Pertaining to system design in which a given part can be used in more than one place in the system, i.e., subsystems and components have parts in common. Note: Examples of commonality include the use of a firing pin that fits in many different weapons and the use of a light source that fits in many different types of fiber optic transmitters. 

Now, on different layers in the network and application stack there are typically different levels of Interoperability: 

  • Ethernet has - by now, for all practical purposes - achieved commonality.
  • The TCP/UDP/IP stack is - at the least - highly interchangable, if not better.
  • Application protocols, such as NFS or HTTP, are at the least highly interoperable, if not interchangeable.
  • HTML is probably mostly interoperable, but there are definitively areas where we do not get past compatibility.

There is a tendency to achieve lower levels of interoperability the higher you go up in the network and application stack. The question of why this general rule applies is quite interesting. I personally think that creating a two-dimensional matrix of levels of interoperability and layers in the network stack are quite helpful when trying to improve interoperability at higher levels.

When looking at higher level protocols, one has to recognize that they typically carry a lot more semantics than lower level ones. Protocols - as they are currently created - are quite capable of capturing syntax, but not quite so much semantics. E.g., there is virtually no semantics in the header of an Ethernet or even an IP packet, but there is a lot of semantics in how to interpret HTML tags. There is however a tendency that - eventually - the level of interoperability on a given level increases, as time passes by the different implementation of a syntax-centric protocol converge.

It would be quite interesting to develop an approach that would allow to speed up the settling on semantic terms.

Thursday, December 15, 2005 2:20:53 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
Monday, December 12, 2005

My quest for getting offline files to behave in the way I would like them to behave continues. Now that I have my laptop back, I dumped the old one and started to use the real system again [1]. One thing I did during the time I was running on backup was to add new files into a folder that is marked for offline synchronization. Now, when replicating again with the new system, I recieved an error message for each of those files, telling me that the respective file was not available. Yet, on the server it is available. Strange.

If you know what causes this behavior and/or have a solution, PLEASE drop me a note at work@beuchelt.com. Thanks!

[1] BTW: the Toshiba warranty repair was outstanding. They had a turnaround time of 5 work days (including shipping) and they did not reinstall the system.

Monday, December 12, 2005 12:09:56 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
Wednesday, December 07, 2005
Just as a heads up: the IETF 64 proceedings can be found here. Since I did not formally present at any session, you will not find any references to GSS-SAML. However, Sam Hartman's presentation on 'Questioning Kerberos Assumptions' is available (it was actually prepared for IETF 63). He essentially calls for what Nico and I tagged as decoration approach.
Wednesday, December 07, 2005 9:34:50 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 

Threads are cool. You can do a lot of things at the same time: you can calcuate a response, paint a screen, or even block a resource so that all other threads have to wait -- and all at the same time ...

Seriously, a well threaded application should in these days be the norm. At least that's my point of view, and therefore it is not hard for me to point you to Sun's recent CoolThreads technology (formerly codenamed "Niagra"). The hardware folks put 8 cores on a single die, each being able to run 4 threads at the same time. That's threading - in hardware.

Wednesday, December 07, 2005 8:38:02 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
Tuesday, December 06, 2005

In a recent discussion a colleague mentioned that my self-coined terminology in the security stack article was somewhat confusing. While I intentionally did this to make sure that the security stack was being treated as an entity in itself, I agree that the new terminology might actually do more harm than good.

Therefore, please find a 'map' from my terms to the ones that are more common in the network protocol stack. The first phrase is my new term, then follows a mapping to more common terms:

  1. physical network security - Link Layer (layer 2), not to be confused with the actual physical layer 1
  2. network transport security - Layer 3 and 4 in the seven layer OSI/ISO stack
  3. platform security - Session security
  4. application transport security - Also session security, but I think it would be important to make a distinction here between the platform session and the application session
  5. application security - Same. 

I hope that this clarifies the original intent a little and makes it more readable. Thanks to Nico Williams for pointing this out.  

Tuesday, December 06, 2005 5:07:54 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 

Interesting timing: just as ATOM 1.0 is finally becoming an IETF/W3C standard, Microsoft publishes her extension to RSS 2.0 here. While the Microsoft extensions are licensed under the Creative Commons ShareAlike license and Microsoft also seems to pledge to not apply royalties to implementors, RSS 2.0 is still under copyright from Harvard and cannot be changed at this point.

It will be interesting what Sam Ruby and Tim Bray will have to say about this. Meanwhile, you can take a look at Sam's RSS to ATOM comparison.

Tuesday, December 06, 2005 4:49:25 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 

Once more, I am toying with the idea of using an offline editor to edit my blog entries. There are currently two contenders: WB Editor and RocketPost. While I do like the RocketPost interface better (so far), they do not seem to support non-standard TCP ports. Since my blog lives on port 8080 (for a variety of historical reasons), this could be a show stopper.

As for WB Editor, I am quite pleasantly surprised how far offline blogging has come since the early days of w.bloggar. A really nice feature is that it utilizes the IE URL history, making it ridicously easy to add hyper links. I will probably continue to use this tool, at least during the trial, and then make a decision afterwards.

 
Tuesday, December 06, 2005 1:41:20 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 

A useful tip for installing JES on Windows:

JES requires the domain name to be set on the Windows machine. It is not sufficient to simply set the domain name in the %Systemroot%\system32\drivers\etc\host file. Instead you need to change it in the System Control Panel. See here for details.

Tuesday, December 06, 2005 10:26:02 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
Friday, December 02, 2005

It seems that Microsoft Office Activation is more sensitive to hardware changes than Windows: after restoring my desktop from one laptop to the other (see below), Windows worked out of the box. However, Office complained about the need to re-activate. This is quite interesting, particularly in the context of where Microsoft gets their profits from ...

Friday, December 02, 2005 12:50:39 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 

While this might sound quite boring for most of you, but I am rather relieved that NTBackup works .. I just had to send in my laptop, since it developed a nasty vertical bar (2 inches - 5 cm, in the middle of the screen). Now with out a laptop, I do feel rather nacked in the web world, so I decided to revive an older system I still had. Just re-installing was no option, since by the time I would have had it properly configured, the old laptop will hopefully be back.

So, the only possible solution boiled down to the equivalent of a haert transplantation: restoring the backup from my broken laptop to the interim one. First of all, I discovered that I could not restore from a UNC path. Since I didn't have a 120+ GB 2.5" drive, an external HDD was the only option. I decided to pickup a 300GB drive and put it into a CompUSA aluminum case with IEE1394 and USB2. Now, FireWire cables are really expensive: a 4-6 pin cable was at $45, which I personally consider either extortion or at least price gouging.

But I digress. At the end of the day, NTBackup worked quite nicely, the only major issues being the drivers (that was obviously) and the need to re-initialize offline files (sigh ... again).

So here is my recipe:

  1. Backup your laptop using NTBackup. Be sure to select the SystemRoot drive (usually C:) and SystemState.
  2. Copy the resulting .bkf file to a local disk on the new system.
  3. Install the OS on the new system.
  4. Run NTBackup in restore mode.
  5. Install any new drivers.
  6. Check your offline files.

One more caveat (but that should be obvious): if you have special software hooked to one of the system devices, you must re-configure your new devices. For me this was Proxyfier, which is a universal HTTP proxy client, that hooks into the protocol stack of the network interfaces.

Friday, December 02, 2005 12:28:50 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 

Copyright by Gerald Beuchelt.