Skip to Content
Author's profile photo Former Member

WODL – The Web Object Description Language

In earlier blog entries, we discussed about our vision on Web Object Oriented programming. We already Web Object Oriented Programming, as well as how it could be Internet of Services + Internet of Things? Internet of Objects!. In this entry, we want to take you further into the details, by making available our technical paper detailing the rationales for our work, and most important our Web Object Description Language itself (WODL), plus some sample code. We cover both the design and run time aspects, giving insights as well to a tentative architecture. Sample codes are spread out in the document for illustrating the content. This paper in its integratility can be found here.

 

As a reminder, Web Object Orientation is a concept where everything is an object, programmatically speaking. In case the object is of low computing power, it will only expose attributes, and at the other end, it can be an active participant, exposing also methods. We leverage REST and Web Services by mixing them into a common approach.

 

We hope you’ll appreciate the ideas of this paper, and we welcome comments or feedbacks.

Assigned Tags

      6 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Stephane DUPIN
      Stephane DUPIN
      Interesting and innovative project ! Im looking forward seeing its evolution !
      Author's profile photo Former Member
      Former Member
      Some not so much sorted thoughts:
      - WSDL did not get the sort of traction everybody expected it, when it was invented. Including REST as a protocol (which I did not try out personally), may have supported it). There is still (too) much complexity involved in consuming/publish WSDL based webservices, and the interesting question is, whether another *DL dialect will get more traction. (just as some kind of market feedback: no one of the startups I've recently seen offers a WSDL interface, they all go with REST, because it is simpler)

      - Standardizing on a object description language can support technical interoperability, but what I miss is content-wise or smenantic interoperability.

      As an example: In your example you define a 'Person', but for any developer involved in coding a mashup application, it is needed to look into the detail of the object, because the 'Person' of every enterprise may look different. (which limits interoperability and causes longer project times & higher efforts)

      My idea (looking to the world of semantic technologies) would be to reference a set standard for describing a Person  - e.g. as defined by http://www.foaf-project.org/ - and to extend it according to the needed scenario.

      There may be a mapping possible between RDF-like object descriptions and the WebObjects you are describing.

      - Regarding technologies I see currently a strong move to standard internet technologies, which are known to a bigger number of developers/consultants: this would mean to prefer REST over SOAP, usage of OAuth etc. --> a growing number of CIOs see simplicity as an asset. This would reduce the position of more complex standards like CORBA etc.

      - I see in your paper the idea of having unique URIs per Object --> this sounds like adherence to LinkedData principles. (Content negotiation is also a popular principle there )

      So as s summary: good idea, I propose to lend some input from semantic web standards/technologies/principles: as the complex way of describing interactions from e.g. WSDL has not helped the standard to be very widely used.

      Author's profile photo Tobias Trapp
      Tobias Trapp
      Hi Daniel,

      I think you are adressing the right aspects. A "web object" has lots of interfaces. Let me give an exmaple: A Web Object "SAP Consultant" with a certain URI has a "professional" interface - perhaps it can generate ABAP Code or answer SAP related questions. But the same Web Object offers other interfaces which will be exposed only special people like his family, his partner etc.

      This is similar to the concept of subject orientations in computer science: some interfaces (i.e. sets of methodes) or visible to a group of other objects.

      And I agree with you that semantic operability is missing. At the moment WODL seems to me like "IDL goes XML". But is it useful? According to this concept I think the web could fragment to lots of different objects with different method-interfaces.

      In my opinion the next step would be to ensure semantic interoperability. This could be done using interface-design guideline like SAP did with CCTS stack.

      But I consider this approach as heavy-weight and the most challenge when designing standards for the internet of things will to find simple, pragmatic solutions. Perhaps semantic standards and technology can help us.

      Cheers,
      Tobias

      Author's profile photo Former Member
      Former Member
      Ha ha,

      now those are interesting comments 🙂
      First of all, thanks for showing interest to it.

      I must say that the main priority of our approach can be summarised as "SIMPLICITY". That's why we use REST and URLs, because it's pretty darn simple, everybody knows it (I mean, at least URLs), and it's implemented in quite many languages.
      Now the thing is, when you want to go for something for "heavier" software, with controlled dev etc, you will need a language that describes what services or objects are exposing. This is for diminishing development mistakes, by automating control mechanisms for instance. REST does not care about that, that's why we also have the web services flavor when it comes to "advanced" services.

      To get back also to your remark on different ways of concieving a "SAP Consultant" object, with different views: Our approach -which I don't mention in this blog, but I think I'll release the prototype video soon if you're interested- is what we call ModelForge. The idea is to propose a collaborative platform, for developers (or actually anyone) to expose, enhance, extend or consume models. We used the "don't fight the internet" motto: if we cannot force users to use certain object models, let's at least provide them with a collaborative site so that they can show what they did. And from a snowball effect, de facto "standards" for models will appear. This way, you solve the issue that for instance a "customer" object can mean different things. Communities of users will have their own customer object, profiting from inheritance.
      When we looked at this idea, funnily enough, we found actually no website proposing this, whereas we think it would be a very cool way to promote objects design best practices.

      Regards,

      Cedric

      Author's profile photo Former Member
      Former Member
      re. last paragraph with model-forging: I like the idea and would like to ask you to provide linkage with data objects(=classes) and properties from the semantic web space (in the spec and in a tool like the one you proposed)

      (something like explicitly showing in the document that a  xyz:CustomerContact is a foaf:Person, and a xyz:email1 is linked to the foaf:mbox:property of the Person object. --> this would open open semantic interoperability.)

      Kind regards,

      Daniel

      Author's profile photo Former Member
      Former Member
      Hi all,

      as promised in my previous comment, and sorry about the delay, I have finally released a video about our modelforge prototype. Have a look at the corresponding blog entry, where you'll find more details as well as the video. I gladly welcome comments!

      ModelForge - Web 2.0 for sharing software objects

      Regards,

      Cedric