Before moving on to the practical part of the tutorial, I think it's definitely worthwhile to take five minutes to reading about the next step in the evolution of grid standards: WSRF and GT4.
After having read all the theory behind grid services, you might be thinking: "Gee, Grid Services are really cool!" You might even be thinking: "Why would anyone want to continue using Web Services when you can use hip and cool Grid Services instead?" Well, it so turns out that OGSI was created with the hopes that it would eventually converge with Web Services standards and that, in fact, Web Services and Grid Services would become the same thing. However, however 'hip and cool' OGSI Grid Services might seem, they do in fact have several drawbacks which have blocked this convergence.
The OGSI specification is long and dense. Yes, practically all specifications are long and dense but, believe me, OGSI is specially long and dense.
OGSI does not work well with current Web Services tooling.
Too object oriented. Despite the fact that many Web Services systems have object oriented implementations, web services themselves are not supposed to be object oriented. OGSI, on the other hand, takes a lot of concepts from OO (such as statefulness, the factory/instance model, etc.)
To solve OGSI's problems once and for all, and to improve Grid Services' chances of finally converging with Web Services, a new standard was presented in January 2004 to substitute OGSI: The Web Services Resource Framework, or WSRF.
As the following diagram shows, WSRF aims to integrate itself into the family of Web Services standards, instead of simply being a 'patch over Web Services' like OGSI was. In this new scenario, OGSA will be based directly on Web Services instead of being based on OGSI Grid Services.
Notice how this new standard doesn't really affect OGSA all that much. All the high level services defined in OGSA (job management, resource management, security services, etc.) will keep having the same interfaces and specifications. The only difference is that the underlying middleware will be pure Web Services instead of OGSI Grid Services. From the standpoint of defining the standard interfaces and behavior of (for example) a job submission service, this isn't really such a big change. It will, of course, affect those who want to implement (or have already begun implemented) OGSA services.
And how exactly does WSRF intend to gain true convergence with Web Services? Well, first of all, it overcomes OGSI's drawbacks:
The OGSI specification is long and dense. The WSRF specification is divided into 5 documents, plus one complementary specification which is not strictly a part of WSRF (WS-Notification)
OGSI does not work well with current Web Services tooling. WSRF takes into account most of the objections posed by the Web Services community, making it easier for current Web Services tooling to evolve towards including WSRF support.
Too object oriented. WSRF cleanly separates the service from the state, since pure Web Services cannot have state. Support for factory/instance services also disappears, although it can still be implemented by using a design pattern.
Yes, despite the fact that what you're reading is the Globus Toolkit Three Programmer's Tutorial, there are already plans for a fourth version. This new version, in fact, will be the first available WSRF implementation. The first stable release is expected in the third quarter of 2004.
At this point, alarm bells might be ringing loudly in your head. If the next version of the Globus Toolkit is just around the corner (with a new standard), then what is the point of spending a single nanosecond on GT3 and OGSI? Well, here's the good news: WSRF and OGSI are conceptually the same thing. The main differences between OGSI and WSRF are not 'big' differences (such as a paradigm shift). They are mainly syntactical in nature: WSRF is a refactoring of OGSI, taking into account all the comments from both the Grid community and the Web Services community, resulting in a more polished and stable standard. In fact, there's even a document available in the WSRF website that shows how there's a direct mapping from OGSI features to WSRF features.
So, what's the point in learning OGSI and GT3? Because the switch from OGSI to WSRF will be very simple if you've already gotten the hang of all the fundamental concepts: service data, notifications, lifecycle management, etc. If you wait for GT4 to come out, you'll have to learn all the theory then. It's like learning to program: Once you've mastered one programming language, moving to a new language is simply a question of learning the syntax of the new language (along with any particular idiosyncrasies that language might have)
Ok, so that previous paragraph might sound like a shameless pitch to get you to read the tutorial :-) Believe me, it's not. If you learn GT3 now instead of waiting for GT4, you'll be able to laugh at those who didn't learn GT3. Like this: "Ha, ha, ha! I scoff thine minuscule knowledge of service data and notifications! Tremble upon my encyclopedic knowledge of service-oriented grid applications!"