A Logical Progression

I have developed an initial service description ontology based on OWL-S. It is an initial version partly because it will doubtless evolve as I learn more from my research, but also because there are some missing pieces. Perhaps the most obvious of these, as I discussed in my presentation last week, is Quality of Service. Part of the reason QoS is missing is because it’s going to be complex to define and I’m not quite sure how to go about it.

I had planned to tackle QoS as the next part of my research; thinking that if I got something in there, no matter how basic, it would be progress. But the other day a thought occurred to me: Measuring and accounting for QoS in service selection is an optimization step — it is not fundamental to being able to compose services together.

So after thinking it over, I decided to take a more logical progression:

  1. Determine how to relate a process model to a service description
  2. Build a capability to do the service selection & matching and then execute the process
  3. Define how to capture quality of service in the service description
  4. Figure out how to optimize service selection with QoS as a factor in the selection

This will give me a chance to get some code running to prove that the basic idea is possible, and it will give me a chance to start generating some results I can use for comparison as I progress.

Now I just need to figure out how to relate a process description to service descriptions. I think I’ll be helped in this by the fact that OWL-S represents a service as a process. This might allow me to assert a certain equivalence between the idea of a service and the idea of a process. I’ll need to work on that.

Two Down

Yesterday afternoon (7/13/11; for some reason this didn’t post when I hit the publish button) I delivered my presentation at the 3rd Annual DoD SOA & Semantic Technology Symposium. I’m certainly in no position to objectively judge, but it seemed to me that it went very well. I had several questions that seemed like they were genuinely curious about the subject.

More importantly, from a purely mercenary point of view, is that this counted as my second publication on the road to completing my dissertation. Two down, and two or three more to go!

Now I need to get to work on the rest of my research. The first thing I need to focus on is probably some measure of Quality of Service. It certainly won’t be fully fleshed out, but I at least need a placeholder. But for now, a good night’s sleep would do me a world of good.

One Step Back, One Step Forward

The paper I had been working on went a little off the rails. I got into a groove and was cooking with gas, but in the process of writing I went off on a tangent to my original topic and the result just wasn’t right. I’m not happy about it, but the process did help me think through some of the details of the work I need to do, so I think I’ll be able to reuse some of the content or concepts at a later time. And the conference I was targeting was a bit of a long shot anyway, so I guess it’s just as well.

But I got some excellent news this week. My boss asked me to submit an abstract when we got a call for submissions from a SOA symposium sponsored by The Association for Enterprise Information (AFEI). I was pleasantly surprised that my submission was accepted, and I’ll be speaking at the 3rd Annual DoD SOA & Semantic Technology Symposium.

Now comes the hard part — get my research into good enough shape to present to that audience. But I’m glad to do it; nothing focuses the mind like a deadline.

Another Paper

I’m working on a paper for the 10th International Conference on Modeling and Applied Simulation. the overall topic of the conference is a little outside my area of research, but one of their topic areas is business process re-engineering. They also have some other related areas that could be a decent fit. And even if it’s not a good fit and gets rejected, I’ve at least got a draft of a paper that may work for another conference.

So I finally finished it and sent the complete first draft to my advisor for review. Hopefully he’ll get back to me in a day or two and I can make any needed changes. At any rate, it’s done and I can relax for a day or two. Well, a day, anyway. I’m planning on taking almost all of Tuesday off to devote tow working on my research. If I can do that just one day each month I should be able to make a lot more progress on my work than I have been up until now.

I can’t take credit for the one-day-per month idea; I have a friend to thank for that. For some reason, ideas like that never occur to me.

WSDL and Java and NOAA, Oh My!

I’ve spent most of this weekend trying to build a simple JADE agent that will invoke a web service and return the results. I finally succeeded this morning, after a fashion. And it was not pretty.

I began trying a simple stock quote service, as I thought this would be useful and easy to incorporate into several demonstration workflows. I was able to find some public services available, so I set to work. I decided to use WSDL2Java utility to generate an interface I could easily call. The utility worked simply enough, although the code it generates is less than intuitive. Searching through several forums and tutorials weren’t much help; its interface is apparently sufficiently quirky that Axis2 didn’t much like it. Most other stock quote services are subscription-only, and I’m not going to be using this enough to make that worth my while.

So I decided to switch to a weather service; that’s always a good standby for a workflow. and the National Oceanic and Atmospheric Administration (NOAA) has a publicly available weather service I for a class project several years ago. It’s the National Digital Forecast Database (NDFD), and it makes all manner of weather information available.

After 8 or 10 different attempts to generate code from the WSDL, using both the Axis2 utility, the MyEclipse utility of the same name, and a couple of others, I found myself in the same state as I was with the stock quote service. The one major difference is that there is some chatter on various web sites and forums discussing the NDFD service, and apparently it’s not very well-behaved when code is generated from it. The general opinion of the user community seems to be that it’s a poorly designed service; I’m not enough of a programmer to offer a meaningful opinion.

I did finally get the NDFD service to work. It’s not pretty, but it works. I’m manually generating the SOAP request, building the message, and submitting it to the service. And as painful as that sounds, it’s no worse than dealing with the mess that is Axis2. I’m sure the authors mean well, but they seem focused on service providers and not consumers. Surely there must be a more straightforward way to write code for invoking a web service. It’s no wonder web service adoption has been much less rapid than originally anticipated.

Describing Business Services

I am working on the development of a descriptive framework that is usable for all services, including electronic and business services. Electronic services can be described (however imperfectly) using the Web Services Description Language (WSDL). while not perfect, WSDL does have the advantage of being widely adopted for SOAP-based web services. When carefully assembled, web services can be chained together into an executable workflow to perform some useful task.

There no analogous way to assemble a workflow from business services.  While a business process can be described using BPMN, there is no way to automatically screen business service providers to determine whether they are suitable for performing a particular task within a given workflow. What is lacking is a WSDL for business services.

We need a machine-processable description of the services offered by a business. This description should include the tasks performed by the service (i.g., its effects), the inputs required to engage the service, the outputs that will be produced by the service, and any preconditions that must be satisfied before engaging the service. To the maximum extent practical, this description should be compatible with existing WSDLs — there is no logical reason electronic services cannot be combined with other services to form a complete workflow, so the descriptions of both services types should be compatible.

I’ve spent some time lately working on just such a service description, and over the weekend I turned my notes into a detailed class model that I exported into an XML schema. Next i need to do a detailed comparison with the WSDL schema to ensure I have accounted for all elements of the WSDL. After making any necessary refinements I will try some practical applications to see how it handles.

As best I can determine, nothing of this type has been developed to date. I had planned to call it a “Business Service Definition Language,” but I discovered that name was already taken by several researchers from the University of Wollongong who have published an interesting paper on the subject. Luckily for me, their research is in a different direction from mine even though they arrived at the same terminology. Universal Service Description Language is already taken. I considered General or Generic Service Description Language, but those seem too… generic.

So for now, it’s back to thinking of an appropriate name for my creation.

Of Services Science

I met with my advisor last Thursday to discuss refinements to my research topic. During our previous meeting, he had tossed out the topic of “service science” along with a couple of papers from an issue of the IBM Systems Journal devoted to the topic. That threw a bit of a monkey wrench into my plan, as this was all new to me; in all of my research on web service composition I had not heard of this.

The good news is that after reading some of the articles and doing additional research into the topic, “service science” as used by the authors of the articles in the IBM Systems Journal is different from what I have been looking into. Those authors, along with other practitioners such as Services Science Global, Service Science, and the Service Research and Innovation Institute (among others) use service science in a way that refers to improving how service-based businesses improve their offerings. The best analogy that I can draw is to the industrial process improvements pioneered by W. Edwards Deming. Service science, in this context, refers to the study of how businesses measure the effectiveness and efficiency of services they provide to their customers. At least as of now, this does not seem to encompass the study of how to define their service offerings in a way that facilitates the composition of sservices from different providers.

All of which leads me to the output of this latest meeting, which was very productive. My advisor generally liked what I had put together as a way forward; now I need to refine it a little more and get buy-in from my committee. He also mentioned that we need to look for some more opportunities to publish on this topic. The good news is that there is very little in the services science arena that deals with my topic, so this should be a rich field to mine.

Slowly But Surely

Skype is a wonderful tool. I used to use it to keep in touch with a buddy who was stationed in Japan, and it was amazing. On Thursday I used it to meet with my advisor to discuss refinements to my research. It worked out very well, as my schedule was being whipsawed by a proposal I’m working on at the office. And sitting at my kitchen table certainly beat having to drive home from Fairfax during rush hour.

An even better part of the meeting is that my advisor seemed pleased with my ideas on moving forward. We refined them a little, and now I have to get them arranged into a logical story that we can present to my committee. I have to get it done this weekend to we can meet again next week.

Thankfully, the proposal is almost over, so I might get a chance to finish up this research refinement in the coming week.

Narrowing… I Think

Per the instructions from my committee at my proposal defense, I have been working to narrow and focus my topic. While I initially expected that to be relatively easy, I haven’t made a whole lot of progress to date. Working 12+ hour days on a proposal at work hasn’t made it any easier.

I met with my advisor just over a week ago, and it seems my exercise in narrowing has morphed into something of an expansion. Clearly, the least-researched area within my proposed topic is the generation and assignment of semantic metadata to services interfaces such as WSDLs. Almost all the work on semantic description has assumed manual metadata generation.

On the direction of my advisor, I am taking this small area (generating and assigning semantic metadata to WSDLs with sufficient detail to compose web services into executable processes) and generalizing it to address any type of service. By “any type of service” I mean quite literallyany type of service: web services, doctors’ services, shipping services, anything at all.

So I’ve been working on capturing 10 or so questions that cover that area. I’ve almost got enough to send to my advisor. Hopefully I’ll be done and have a draft to him tomorrow.

Advancement!

Yesterday afternoon I passed my comprehensive exam and successfully defended my dissertation proposal. Which means I am now officially a PhD candidate. The immediate effect of this is that I can register for dissertation hours; rack up 12 of them and I’m done. I’m beginning to see the light at the end of the tunnel.

The more immediate effect is that I need to refine my research topic over the next 6 weeks and then come to agreement with my committee on exactly what my research will focus on. I’ve heard the dissertation proposal described as “what you think you will do your research on.” Apparently I’m living that very early in the process. An issue I’ve been struggling with for several years now is how to scope the research — how much is too much vs. how much is too little? I guess I still haven’t figured that part out.

But for the next couple of days that just doesn’t matter. For now, I’m going to relax and enjoy the fact that I passed.